urbit/pkg/interface/webterm/constants.ts
tomholford e7e5c63409 ux: support agent!session-name syntax
When adding a session, using this special syntax will create a new session for the indicated agent.

E.g., `book!my-session` opens a new session for the %book agent.
2022-03-09 16:15:24 -06:00

27 lines
710 B
TypeScript

export const DEFAULT_SESSION = '';
/**
* Session ID validity:
*
* - must start with an alphabetical
* - can be composed of alphanumerics with hyphens
* - can be length 1 or longer
* - cannot begin or end with a hyphen
*/
export const SESSION_ID_REGEX = /(^[a-z]{1}[a-z\d\-]*[a-z\d]{1}$)|(^[a-z]{1}$)/;
/**
* Open a session with a given agent using `[agent]![session_name]
*
* For example:
* ```
* book!my-session
* ```
*
* This will create a new session in webterm for the `%book` agent.
*
* Note that the second capture group after the ! is composed of the session ID
* regex above.
*/
export const AGENT_SESSION_REGEX = /^([a-z]{4})\!(([a-z]{1}[a-z\d\-]*[a-z\d]{1}$)|(^[a-z]{1}))/;