@songsid/agend 2.1.4-beta.8 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/dist/agent-cli-instructions.md +2 -2
- package/dist/agent-endpoint.js +1 -1
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/backend/antigravity.d.ts +12 -8
- package/dist/backend/antigravity.js +189 -42
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/claude-code.d.ts +87 -23
- package/dist/backend/claude-code.js +361 -46
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex.d.ts +18 -0
- package/dist/backend/codex.js +139 -5
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/gemini-cli.js +2 -2
- package/dist/backend/gemini-cli.js.map +1 -1
- package/dist/backend/grok.js +2 -2
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +52 -2
- package/dist/backend/kiro.js +267 -12
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/opencode.js +17 -4
- package/dist/backend/opencode.js.map +1 -1
- package/dist/backend/types.d.ts +122 -3
- package/dist/backend/types.js +5 -1
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-outage.d.ts +61 -0
- package/dist/backend-outage.js +71 -0
- package/dist/backend-outage.js.map +1 -0
- package/dist/channel/adapters/discord.d.ts +44 -2
- package/dist/channel/adapters/discord.js +529 -89
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +30 -0
- package/dist/channel/adapters/telegram.js +221 -19
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/agy-mcp-launcher.d.ts +2 -0
- package/dist/channel/agy-mcp-launcher.js +28 -0
- package/dist/channel/agy-mcp-launcher.js.map +1 -0
- package/dist/channel/ipc-bridge.d.ts +2 -1
- package/dist/channel/ipc-bridge.js +33 -4
- package/dist/channel/ipc-bridge.js.map +1 -1
- package/dist/channel/markdown-chunk.d.ts +42 -0
- package/dist/channel/markdown-chunk.js +205 -0
- package/dist/channel/markdown-chunk.js.map +1 -0
- package/dist/channel/mcp-server.js +34 -5
- package/dist/channel/mcp-server.js.map +1 -1
- package/dist/channel/mcp-tools.js +5 -3
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/message-queue.js +64 -8
- package/dist/channel/message-queue.js.map +1 -1
- package/dist/channel/types.d.ts +31 -1
- package/dist/classic-channel-manager.d.ts +65 -0
- package/dist/classic-channel-manager.js +172 -3
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +124 -83
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +16 -0
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.js +12 -1
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-envelope.d.ts +6 -0
- package/dist/cross-instance-envelope.js +30 -0
- package/dist/cross-instance-envelope.js.map +1 -0
- package/dist/daemon.d.ts +538 -11
- package/dist/daemon.js +2272 -288
- package/dist/daemon.js.map +1 -1
- package/dist/doctor.d.ts +41 -0
- package/dist/doctor.js +267 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fleet-context.d.ts +63 -0
- package/dist/fleet-context.js.map +1 -1
- package/dist/fleet-manager.d.ts +424 -11
- package/dist/fleet-manager.js +2753 -444
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-yaml-slim.d.ts +10 -0
- package/dist/fleet-yaml-slim.js +59 -0
- package/dist/fleet-yaml-slim.js.map +1 -0
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +1 -0
- package/dist/general-knowledge/skills/model-discovery/SKILL.md +63 -16
- package/dist/general-knowledge/skills/session-management/SKILL.md +171 -8
- package/dist/instance-lifecycle.d.ts +114 -1
- package/dist/instance-lifecycle.js +404 -14
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.js +42 -4
- package/dist/instructions.js.map +1 -1
- package/dist/locale.js +1024 -310
- package/dist/locale.js.map +1 -1
- package/dist/login-flows.d.ts +91 -0
- package/dist/login-flows.js +170 -0
- package/dist/login-flows.js.map +1 -0
- package/dist/login-manager.d.ts +63 -0
- package/dist/login-manager.js +134 -0
- package/dist/login-manager.js.map +1 -0
- package/dist/network-family.d.ts +18 -0
- package/dist/network-family.js +20 -0
- package/dist/network-family.js.map +1 -0
- package/dist/outbound-handlers.d.ts +16 -1
- package/dist/outbound-handlers.js +174 -40
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +10 -3
- package/dist/outbound-schemas.js +10 -0
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/pane-input-residue.d.ts +52 -0
- package/dist/pane-input-residue.js +107 -0
- package/dist/pane-input-residue.js.map +1 -0
- package/dist/process-memory.d.ts +6 -0
- package/dist/process-memory.js +45 -0
- package/dist/process-memory.js.map +1 -1
- package/dist/reply-dedup.d.ts +7 -8
- package/dist/reply-dedup.js +0 -0
- package/dist/reply-dedup.js.map +1 -1
- package/dist/restart-progress.d.ts +2 -0
- package/dist/restart-progress.js +3 -0
- package/dist/restart-progress.js.map +1 -1
- package/dist/scheduler/db.d.ts +12 -0
- package/dist/scheduler/db.js +59 -0
- package/dist/scheduler/db.js.map +1 -1
- package/dist/service-installer.d.ts +11 -0
- package/dist/service-installer.js +84 -18
- package/dist/service-installer.js.map +1 -1
- package/dist/settings-api.js +1 -1
- package/dist/settings-api.js.map +1 -1
- package/dist/setup-wizard.js +2 -2
- package/dist/setup-wizard.js.map +1 -1
- package/dist/spawn-gate.d.ts +30 -0
- package/dist/spawn-gate.js +79 -0
- package/dist/spawn-gate.js.map +1 -0
- package/dist/steer-capability.d.ts +1 -0
- package/dist/steer-capability.js +6 -0
- package/dist/steer-capability.js.map +1 -0
- package/dist/storm-window.d.ts +83 -0
- package/dist/storm-window.js +251 -0
- package/dist/storm-window.js.map +1 -0
- package/dist/tips.d.ts +44 -0
- package/dist/tips.js +355 -0
- package/dist/tips.js.map +1 -0
- package/dist/tmux-manager.d.ts +16 -0
- package/dist/tmux-manager.js +110 -25
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tool-progress.d.ts +40 -0
- package/dist/tool-progress.js +289 -0
- package/dist/tool-progress.js.map +1 -0
- package/dist/topic-commands.d.ts +45 -6
- package/dist/topic-commands.js +394 -66
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-monitor.d.ts +15 -2
- package/dist/transcript-monitor.js +63 -17
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +131 -0
- package/dist/transcript-sources.js +580 -0
- package/dist/transcript-sources.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/ui/dashboard.html +55 -32
- package/dist/ui/settings.html +200 -60
- package/dist/ui/view.html +147 -30
- package/dist/usage/format-rich.d.ts +1 -1
- package/dist/usage/format-rich.js +28 -24
- package/dist/usage/format-rich.js.map +1 -1
- package/dist/usage/i18n-keys.d.ts +7 -0
- package/dist/usage/i18n-keys.js +34 -0
- package/dist/usage/i18n-keys.js.map +1 -0
- package/dist/usage/i18n.d.ts +5 -0
- package/dist/usage/i18n.js +27 -0
- package/dist/usage/i18n.js.map +1 -0
- package/dist/usage/providers.d.ts +21 -0
- package/dist/usage/providers.js +153 -75
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/usage-api.d.ts +11 -3
- package/dist/usage/usage-api.js +61 -24
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/workflow-templates/default.md +2 -1
- package/package.json +2 -2
package/dist/locale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-backend remote login flows for `/login`.
|
|
3
|
+
*
|
|
4
|
+
* Every command, menu label, prompt, and success string here was verified
|
|
5
|
+
* against the installed CLI (`--help` output or strings extracted from the
|
|
6
|
+
* release binary) rather than written from memory:
|
|
7
|
+
* - codex: `codex login --device-auth`, success "Successfully logged in"
|
|
8
|
+
* - grok: `grok login --device-auth`, success "Login successful!"
|
|
9
|
+
* - kiro: `kiro-cli login --use-device-flow`; free/pro selector is the
|
|
10
|
+
* arrow-key menu "Select login method" with exactly the four
|
|
11
|
+
* options below; Identity Center then asks "Enter Start URL" /
|
|
12
|
+
* "Enter Region"; success "Logged in successfully"/"Logged in with"
|
|
13
|
+
* - claude: `claude auth login`, paste-back prompt "Paste code here if
|
|
14
|
+
* prompted", success "Login successful"/"Logged in as"
|
|
15
|
+
* - agy: no login subcommand — starting the TUI shows the device URL and
|
|
16
|
+
* code, and the main screen (ready markers) means auth completed.
|
|
17
|
+
*
|
|
18
|
+
* The login session runs in a dedicated tmux window, never in an instance
|
|
19
|
+
* pane, so instance delivery, pane-state detection, and progress monitors are
|
|
20
|
+
* untouched by design.
|
|
21
|
+
*/
|
|
22
|
+
export interface AuthCheck {
|
|
23
|
+
/** argv of a cheap, LLM-token-free status probe (5s timeout). */
|
|
24
|
+
argv: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Exit 0 alone is not proof for every CLI: `claude auth status` exits 0
|
|
27
|
+
* either way and reports {"loggedIn": true|false} — verified live.
|
|
28
|
+
*/
|
|
29
|
+
validPattern?: RegExp;
|
|
30
|
+
}
|
|
31
|
+
export interface LoginFlow {
|
|
32
|
+
/** AgEnD backend id this flow signs in. */
|
|
33
|
+
backend: string;
|
|
34
|
+
/** Shell command started inside the dedicated login window. */
|
|
35
|
+
command: string;
|
|
36
|
+
/** Pre-check run before starting a session; valid auth asks for confirmation. */
|
|
37
|
+
authCheck?: AuthCheck;
|
|
38
|
+
/**
|
|
39
|
+
* The CLI's own logged-out startup screen (binary-verified strings). Matched
|
|
40
|
+
* only during the spawn/startup dialog phase — a CLI sitting here is an auth
|
|
41
|
+
* incident, not a crash and not an MCP failure.
|
|
42
|
+
*/
|
|
43
|
+
loginScreenPattern?: RegExp;
|
|
44
|
+
/** Arrow-key selector shown by the CLI (kiro). Option N = Down×N then Enter. */
|
|
45
|
+
menu?: {
|
|
46
|
+
promptPattern: RegExp;
|
|
47
|
+
/** Labels in on-screen order — the order defines the Down-key count. */
|
|
48
|
+
options: string[];
|
|
49
|
+
};
|
|
50
|
+
/** Pane prompt that requires admin-supplied text (`/login code <text>`). */
|
|
51
|
+
inputPrompt?: RegExp;
|
|
52
|
+
/** Overrides the generic first-URL capture when the CLI prints several URLs. */
|
|
53
|
+
urlPattern?: RegExp;
|
|
54
|
+
/** One-time user code displayed next to the URL, when the CLI prints one. */
|
|
55
|
+
codePattern?: RegExp;
|
|
56
|
+
/** Pane content that proves the CLI finished signing in. */
|
|
57
|
+
successPattern: RegExp;
|
|
58
|
+
/** Hard cap for the whole login session. */
|
|
59
|
+
timeoutMs: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Cheap auth probes for backends that do not have an AgEnD-managed /login
|
|
63
|
+
* flow. OpenCode exits 0 even with zero credentials, so its output marker is
|
|
64
|
+
* required in addition to the exit status (live-verified with OpenCode 1.18.20).
|
|
65
|
+
*/
|
|
66
|
+
export declare const BACKEND_AUTH_CHECKS: Readonly<Record<string, AuthCheck>>;
|
|
67
|
+
export declare const LOGIN_FLOWS: Record<string, LoginFlow>;
|
|
68
|
+
/** Chat-command aliases accepted by `/login <backend>`. */
|
|
69
|
+
export declare const LOGIN_BACKEND_ALIASES: Record<string, string>;
|
|
70
|
+
/**
|
|
71
|
+
* Extract the authorization URL and one-time code from joined pane text.
|
|
72
|
+
* Returns nulls until the CLI has printed them.
|
|
73
|
+
*/
|
|
74
|
+
export declare function extractLoginHint(pane: string, flow: Pick<LoginFlow, "urlPattern" | "codePattern">): {
|
|
75
|
+
url: string | null;
|
|
76
|
+
code: string | null;
|
|
77
|
+
};
|
|
78
|
+
export type AuthCheckResult = "valid" | "invalid" | "unknown";
|
|
79
|
+
export type AuthCheckRunner = (argv: string[], timeoutMs: number) => Promise<{
|
|
80
|
+
code: number | null;
|
|
81
|
+
output: string;
|
|
82
|
+
}>;
|
|
83
|
+
/** Test seam — replaces the real process runner (pass null to restore). */
|
|
84
|
+
export declare function setAuthCheckRunnerForTests(run: AuthCheckRunner | null): void;
|
|
85
|
+
/**
|
|
86
|
+
* Probe whether a backend's credentials still work, without spending LLM
|
|
87
|
+
* tokens. "valid" gates the /login confirmation prompt; "invalid" and
|
|
88
|
+
* "unknown" (timeout, missing binary) both proceed straight to login — an
|
|
89
|
+
* uncertain check must never block a re-login the admin asked for.
|
|
90
|
+
*/
|
|
91
|
+
export declare function checkAuthStatus(check: AuthCheck): Promise<AuthCheckResult>;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-backend remote login flows for `/login`.
|
|
3
|
+
*
|
|
4
|
+
* Every command, menu label, prompt, and success string here was verified
|
|
5
|
+
* against the installed CLI (`--help` output or strings extracted from the
|
|
6
|
+
* release binary) rather than written from memory:
|
|
7
|
+
* - codex: `codex login --device-auth`, success "Successfully logged in"
|
|
8
|
+
* - grok: `grok login --device-auth`, success "Login successful!"
|
|
9
|
+
* - kiro: `kiro-cli login --use-device-flow`; free/pro selector is the
|
|
10
|
+
* arrow-key menu "Select login method" with exactly the four
|
|
11
|
+
* options below; Identity Center then asks "Enter Start URL" /
|
|
12
|
+
* "Enter Region"; success "Logged in successfully"/"Logged in with"
|
|
13
|
+
* - claude: `claude auth login`, paste-back prompt "Paste code here if
|
|
14
|
+
* prompted", success "Login successful"/"Logged in as"
|
|
15
|
+
* - agy: no login subcommand — starting the TUI shows the device URL and
|
|
16
|
+
* code, and the main screen (ready markers) means auth completed.
|
|
17
|
+
*
|
|
18
|
+
* The login session runs in a dedicated tmux window, never in an instance
|
|
19
|
+
* pane, so instance delivery, pane-state detection, and progress monitors are
|
|
20
|
+
* untouched by design.
|
|
21
|
+
*/
|
|
22
|
+
const LOGIN_TIMEOUT_MS = 10 * 60 * 1000;
|
|
23
|
+
/**
|
|
24
|
+
* Cheap auth probes for backends that do not have an AgEnD-managed /login
|
|
25
|
+
* flow. OpenCode exits 0 even with zero credentials, so its output marker is
|
|
26
|
+
* required in addition to the exit status (live-verified with OpenCode 1.18.20).
|
|
27
|
+
*/
|
|
28
|
+
export const BACKEND_AUTH_CHECKS = {
|
|
29
|
+
opencode: {
|
|
30
|
+
argv: ["opencode", "auth", "list"],
|
|
31
|
+
validPattern: /(?:^|\D)[1-9]\d*\s+credentials?\b/i,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Generic https matcher. Login panes are captured with wrapped lines joined
|
|
36
|
+
* (`capture-pane -J`), so a long OAuth URL arrives as one logical line.
|
|
37
|
+
*/
|
|
38
|
+
const GENERIC_URL = /https:\/\/[^\s"'<>\])]+/;
|
|
39
|
+
/**
|
|
40
|
+
* A device code standing on its own line (live-verified codex 0.149 output:
|
|
41
|
+
* "Enter this one-time code (expires in 15 minutes)\n 677A-4BGJ6").
|
|
42
|
+
*/
|
|
43
|
+
const STANDALONE_DEVICE_CODE = /^\s*([A-Z0-9]{4,10}-[A-Z0-9]{4,10})\s*$/m;
|
|
44
|
+
export const LOGIN_FLOWS = {
|
|
45
|
+
"codex": {
|
|
46
|
+
backend: "codex",
|
|
47
|
+
command: "codex login --device-auth",
|
|
48
|
+
authCheck: { argv: ["codex", "login", "status"] },
|
|
49
|
+
loginScreenPattern: /Sign in with ChatGPT/,
|
|
50
|
+
codePattern: STANDALONE_DEVICE_CODE,
|
|
51
|
+
successPattern: /Successfully logged in/,
|
|
52
|
+
timeoutMs: LOGIN_TIMEOUT_MS,
|
|
53
|
+
},
|
|
54
|
+
"grok": {
|
|
55
|
+
backend: "grok",
|
|
56
|
+
command: "grok login --device-auth",
|
|
57
|
+
authCheck: { argv: ["grok", "models"] },
|
|
58
|
+
loginScreenPattern: /Run `grok login`/,
|
|
59
|
+
// Binary template is "enter code: $CODE"; the standalone form is a fallback.
|
|
60
|
+
codePattern: /\bcode[:\s]+([A-Z0-9][A-Z0-9-]{3,})|^\s*([A-Z0-9]{4,10}-[A-Z0-9]{4,10})\s*$/im,
|
|
61
|
+
successPattern: /Login successful!/,
|
|
62
|
+
timeoutMs: LOGIN_TIMEOUT_MS,
|
|
63
|
+
},
|
|
64
|
+
"kiro-cli": {
|
|
65
|
+
backend: "kiro-cli",
|
|
66
|
+
command: "kiro-cli login --use-device-flow",
|
|
67
|
+
authCheck: { argv: ["kiro-cli", "whoami", "--format", "json"] },
|
|
68
|
+
loginScreenPattern: /Select login method/,
|
|
69
|
+
menu: {
|
|
70
|
+
promptPattern: /Select login method/,
|
|
71
|
+
// Binary-verified on-screen order; "Your Organization" = Identity Center
|
|
72
|
+
// and is followed by the Start URL / Region text prompts below.
|
|
73
|
+
options: ["Builder ID", "Google", "GitHub", "Your Organization"],
|
|
74
|
+
},
|
|
75
|
+
inputPrompt: /Enter Start URL|Enter Region/,
|
|
76
|
+
codePattern: /Code:\s*([A-Z0-9][A-Z0-9-]{3,})/,
|
|
77
|
+
successPattern: /Logged in successfully|Logged in with /,
|
|
78
|
+
timeoutMs: LOGIN_TIMEOUT_MS,
|
|
79
|
+
},
|
|
80
|
+
"claude-code": {
|
|
81
|
+
backend: "claude-code",
|
|
82
|
+
command: "claude auth login",
|
|
83
|
+
authCheck: { argv: ["claude", "auth", "status"], validPattern: /"loggedIn":\s*true/ },
|
|
84
|
+
loginScreenPattern: /Select login method:|Sign in (?:to|with) your Anthropic account/,
|
|
85
|
+
inputPrompt: /Paste code here if prompted/,
|
|
86
|
+
successPattern: /Login successful|Logged in as/,
|
|
87
|
+
timeoutMs: LOGIN_TIMEOUT_MS,
|
|
88
|
+
},
|
|
89
|
+
"antigravity": {
|
|
90
|
+
backend: "antigravity",
|
|
91
|
+
command: "agy",
|
|
92
|
+
authCheck: { argv: ["agy", "models"] },
|
|
93
|
+
loginScreenPattern: /not logged into Antigravity|https:\/\/\S*google\.com\/device/i,
|
|
94
|
+
codePattern: STANDALONE_DEVICE_CODE,
|
|
95
|
+
// agy has no terminal success line — reaching the normal TUI ready screen
|
|
96
|
+
// (same markers as the backend's ready pattern) means auth completed.
|
|
97
|
+
successPattern: /\? for shortcuts|^>\s*$/m,
|
|
98
|
+
timeoutMs: LOGIN_TIMEOUT_MS,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
/** Chat-command aliases accepted by `/login <backend>`. */
|
|
102
|
+
export const LOGIN_BACKEND_ALIASES = {
|
|
103
|
+
"claude": "claude-code",
|
|
104
|
+
"claude-code": "claude-code",
|
|
105
|
+
"codex": "codex",
|
|
106
|
+
"grok": "grok",
|
|
107
|
+
"kiro": "kiro-cli",
|
|
108
|
+
"kiro-cli": "kiro-cli",
|
|
109
|
+
"agy": "antigravity",
|
|
110
|
+
"antigravity": "antigravity",
|
|
111
|
+
// /install-cli accepts opencode too; /login keeps rejecting it (no flow).
|
|
112
|
+
"opencode": "opencode",
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Extract the authorization URL and one-time code from joined pane text.
|
|
116
|
+
* Returns nulls until the CLI has printed them.
|
|
117
|
+
*/
|
|
118
|
+
export function extractLoginHint(pane, flow) {
|
|
119
|
+
const urlMatch = pane.match(flow.urlPattern ?? GENERIC_URL);
|
|
120
|
+
// A trailing period/comma is prose punctuation, not part of the URL.
|
|
121
|
+
const url = urlMatch ? urlMatch[0].replace(/[.,]+$/, "") : null;
|
|
122
|
+
const codeMatch = flow.codePattern ? pane.match(flow.codePattern) : null;
|
|
123
|
+
// Alternation patterns carry several capture groups — take the one that hit.
|
|
124
|
+
const code = codeMatch ? codeMatch.slice(1).find(group => group !== undefined) ?? null : null;
|
|
125
|
+
return { url, code };
|
|
126
|
+
}
|
|
127
|
+
const AUTH_CHECK_TIMEOUT_MS = 5_000;
|
|
128
|
+
let authCheckRunnerOverride = null;
|
|
129
|
+
/** Test seam — replaces the real process runner (pass null to restore). */
|
|
130
|
+
export function setAuthCheckRunnerForTests(run) {
|
|
131
|
+
authCheckRunnerOverride = run;
|
|
132
|
+
}
|
|
133
|
+
async function runAuthCheckProcess(argv, timeoutMs) {
|
|
134
|
+
const { execFile } = await import("node:child_process");
|
|
135
|
+
return new Promise(resolve => {
|
|
136
|
+
execFile(argv[0], argv.slice(1), { timeout: timeoutMs, encoding: "utf8" }, (err, stdout, stderr) => {
|
|
137
|
+
const anyErr = err;
|
|
138
|
+
// A timeout kill or a spawn failure (CLI missing) has no meaningful exit
|
|
139
|
+
// code — that is "unknown", not "logged out".
|
|
140
|
+
if (anyErr && (anyErr.killed || typeof anyErr.code !== "number")) {
|
|
141
|
+
resolve({ code: null, output: `${stdout ?? ""}${stderr ?? ""}` });
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
resolve({ code: anyErr ? anyErr.code : 0, output: `${stdout ?? ""}${stderr ?? ""}` });
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Probe whether a backend's credentials still work, without spending LLM
|
|
150
|
+
* tokens. "valid" gates the /login confirmation prompt; "invalid" and
|
|
151
|
+
* "unknown" (timeout, missing binary) both proceed straight to login — an
|
|
152
|
+
* uncertain check must never block a re-login the admin asked for.
|
|
153
|
+
*/
|
|
154
|
+
export async function checkAuthStatus(check) {
|
|
155
|
+
const run = authCheckRunnerOverride ?? runAuthCheckProcess;
|
|
156
|
+
try {
|
|
157
|
+
const { code, output } = await run(check.argv, AUTH_CHECK_TIMEOUT_MS);
|
|
158
|
+
if (code === null)
|
|
159
|
+
return "unknown";
|
|
160
|
+
if (code !== 0)
|
|
161
|
+
return "invalid";
|
|
162
|
+
if (check.validPattern && !check.validPattern.test(output))
|
|
163
|
+
return "invalid";
|
|
164
|
+
return "valid";
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return "unknown";
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=login-flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-flows.js","sourceRoot":"","sources":["../src/login-flows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One remote login session: a dedicated tmux window running a backend's login
|
|
3
|
+
* command, polled until it succeeds, fails, times out, or is cancelled.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately NOT an instance pane. Credentials are per-backend (instances
|
|
6
|
+
* symlink or share the backend's real home), so signing in once from a clean
|
|
7
|
+
* window fixes every instance of that backend, and no instance delivery,
|
|
8
|
+
* pane-state machine, or progress monitor ever observes login output.
|
|
9
|
+
*/
|
|
10
|
+
import type { Logger } from "./logger.js";
|
|
11
|
+
import { type LoginFlow } from "./login-flows.js";
|
|
12
|
+
/** The slice of TmuxManager a login session drives (injectable for tests). */
|
|
13
|
+
export interface LoginTmux {
|
|
14
|
+
createWindow(command: string, cwd: string, windowName?: string): Promise<string>;
|
|
15
|
+
setRemainOnExit(): Promise<void>;
|
|
16
|
+
capturePaneJoined(lines?: number): Promise<string>;
|
|
17
|
+
getPaneStatus(): Promise<{
|
|
18
|
+
alive: boolean;
|
|
19
|
+
exitCode?: number;
|
|
20
|
+
} | null>;
|
|
21
|
+
killWindow(): Promise<void>;
|
|
22
|
+
sendSpecialKey(key: "Enter" | "Escape" | "Up" | "Down" | "Right" | "Left" | "C-c" | "C-q"): Promise<boolean>;
|
|
23
|
+
pasteText(text: string, opts?: {
|
|
24
|
+
retryEnter?: boolean;
|
|
25
|
+
}): Promise<boolean>;
|
|
26
|
+
}
|
|
27
|
+
export interface LoginSessionEvents {
|
|
28
|
+
/** The CLI is showing its arrow-key selector — offer the options as buttons. */
|
|
29
|
+
onMenu(options: string[]): void | Promise<void>;
|
|
30
|
+
/** The authorization URL (and one-time code, when shown) is on screen. */
|
|
31
|
+
onAuthHint(url: string, code: string | null): void | Promise<void>;
|
|
32
|
+
/** The CLI is waiting for admin-supplied text (`/login code <text>`). */
|
|
33
|
+
onNeedInput(promptExcerpt: string): void | Promise<void>;
|
|
34
|
+
/** Terminal state — exactly once per session. */
|
|
35
|
+
onDone(result: {
|
|
36
|
+
ok: boolean;
|
|
37
|
+
detail: string;
|
|
38
|
+
}): void | Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export type LoginSessionState = "starting" | "menu" | "waiting" | "input" | "done";
|
|
41
|
+
export declare class LoginSession {
|
|
42
|
+
readonly flow: LoginFlow;
|
|
43
|
+
private readonly tmux;
|
|
44
|
+
private readonly events;
|
|
45
|
+
private readonly logger;
|
|
46
|
+
private readonly pollIntervalMs;
|
|
47
|
+
state: LoginSessionState;
|
|
48
|
+
private pollTimer;
|
|
49
|
+
private timeoutTimer;
|
|
50
|
+
private sentUrl;
|
|
51
|
+
private lastInputPrompt;
|
|
52
|
+
private finished;
|
|
53
|
+
constructor(flow: LoginFlow, tmux: LoginTmux, events: LoginSessionEvents, logger: Logger, pollIntervalMs?: number);
|
|
54
|
+
start(): Promise<void>;
|
|
55
|
+
/** Admin picked menu option N: Down×N then Enter, matching the CLI selector. */
|
|
56
|
+
selectMenuOption(index: number): Promise<boolean>;
|
|
57
|
+
/** Paste admin-supplied text (authorization code, start URL, region). */
|
|
58
|
+
submitInput(text: string): Promise<boolean>;
|
|
59
|
+
cancel(reason?: string): Promise<void>;
|
|
60
|
+
private schedulePoll;
|
|
61
|
+
private poll;
|
|
62
|
+
private finish;
|
|
63
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { extractLoginHint } from "./login-flows.js";
|
|
2
|
+
const POLL_INTERVAL_MS = 2_000;
|
|
3
|
+
const MENU_KEY_GAP_MS = 200;
|
|
4
|
+
export class LoginSession {
|
|
5
|
+
flow;
|
|
6
|
+
tmux;
|
|
7
|
+
events;
|
|
8
|
+
logger;
|
|
9
|
+
pollIntervalMs;
|
|
10
|
+
state = "starting";
|
|
11
|
+
pollTimer = null;
|
|
12
|
+
timeoutTimer = null;
|
|
13
|
+
sentUrl = null;
|
|
14
|
+
lastInputPrompt = null;
|
|
15
|
+
finished = false;
|
|
16
|
+
constructor(flow, tmux, events, logger, pollIntervalMs = POLL_INTERVAL_MS) {
|
|
17
|
+
this.flow = flow;
|
|
18
|
+
this.tmux = tmux;
|
|
19
|
+
this.events = events;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
this.pollIntervalMs = pollIntervalMs;
|
|
22
|
+
}
|
|
23
|
+
async start() {
|
|
24
|
+
// remain-on-exit keeps the dead pane (and its final output) so a CLI that
|
|
25
|
+
// prints "Successfully logged in" and exits is still observable; without it
|
|
26
|
+
// the window vanishes between polls and success is indistinguishable from a
|
|
27
|
+
// crash.
|
|
28
|
+
await this.tmux.createWindow(this.flow.command, process.env.HOME ?? "/", `agend-login-${this.flow.backend}`);
|
|
29
|
+
await this.tmux.setRemainOnExit();
|
|
30
|
+
this.timeoutTimer = setTimeout(() => {
|
|
31
|
+
void this.finish(false, "timeout");
|
|
32
|
+
}, this.flow.timeoutMs);
|
|
33
|
+
this.timeoutTimer.unref?.();
|
|
34
|
+
this.schedulePoll();
|
|
35
|
+
}
|
|
36
|
+
/** Admin picked menu option N: Down×N then Enter, matching the CLI selector. */
|
|
37
|
+
async selectMenuOption(index) {
|
|
38
|
+
if (this.state !== "menu" || !this.flow.menu)
|
|
39
|
+
return false;
|
|
40
|
+
if (!Number.isInteger(index) || index < 0 || index >= this.flow.menu.options.length)
|
|
41
|
+
return false;
|
|
42
|
+
this.state = "waiting";
|
|
43
|
+
for (let i = 0; i < index; i++) {
|
|
44
|
+
await this.tmux.sendSpecialKey("Down");
|
|
45
|
+
await delay(MENU_KEY_GAP_MS);
|
|
46
|
+
}
|
|
47
|
+
await this.tmux.sendSpecialKey("Enter");
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
/** Paste admin-supplied text (authorization code, start URL, region). */
|
|
51
|
+
async submitInput(text) {
|
|
52
|
+
if (this.state === "done")
|
|
53
|
+
return false;
|
|
54
|
+
// pasteText presses Enter itself; the retry Enter is for TUIs that swallow
|
|
55
|
+
// the first one, harmless for a line-input prompt.
|
|
56
|
+
const ok = await this.tmux.pasteText(text, { retryEnter: false });
|
|
57
|
+
if (ok && this.state === "input")
|
|
58
|
+
this.state = "waiting";
|
|
59
|
+
return ok;
|
|
60
|
+
}
|
|
61
|
+
async cancel(reason = "cancelled") {
|
|
62
|
+
await this.finish(false, reason);
|
|
63
|
+
}
|
|
64
|
+
schedulePoll() {
|
|
65
|
+
if (this.finished)
|
|
66
|
+
return;
|
|
67
|
+
this.pollTimer = setTimeout(() => {
|
|
68
|
+
void this.poll().catch(err => {
|
|
69
|
+
this.logger.warn({ err: err.message }, "login poll error");
|
|
70
|
+
this.schedulePoll();
|
|
71
|
+
});
|
|
72
|
+
}, this.pollIntervalMs);
|
|
73
|
+
this.pollTimer.unref?.();
|
|
74
|
+
}
|
|
75
|
+
async poll() {
|
|
76
|
+
if (this.finished)
|
|
77
|
+
return;
|
|
78
|
+
const pane = await this.tmux.capturePaneJoined(200).catch(() => "");
|
|
79
|
+
// Success first: the pane may show the success line with the process
|
|
80
|
+
// already gone (remain-on-exit), and success must win over "exited".
|
|
81
|
+
if (this.flow.successPattern.test(pane)) {
|
|
82
|
+
await this.finish(true, "success");
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const status = await this.tmux.getPaneStatus().catch(() => null);
|
|
86
|
+
if (status && !status.alive) {
|
|
87
|
+
// Exit code 0 without the success line still counts as success (some
|
|
88
|
+
// CLIs clear the screen on exit); non-zero is a failure with evidence.
|
|
89
|
+
const tail = pane.trim().split("\n").slice(-3).join(" / ").slice(0, 300);
|
|
90
|
+
await this.finish(status.exitCode === 0, status.exitCode === 0
|
|
91
|
+
? "clean exit"
|
|
92
|
+
: `CLI exited with code ${status.exitCode}${tail ? ` — ${tail}` : ""}`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (this.flow.menu && this.state === "starting" && this.flow.menu.promptPattern.test(pane)) {
|
|
96
|
+
this.state = "menu";
|
|
97
|
+
await this.events.onMenu(this.flow.menu.options);
|
|
98
|
+
}
|
|
99
|
+
const hint = extractLoginHint(pane, this.flow);
|
|
100
|
+
if (hint.url && hint.url !== this.sentUrl) {
|
|
101
|
+
this.sentUrl = hint.url;
|
|
102
|
+
if (this.state === "starting")
|
|
103
|
+
this.state = "waiting";
|
|
104
|
+
await this.events.onAuthHint(hint.url, hint.code);
|
|
105
|
+
}
|
|
106
|
+
if (this.flow.inputPrompt) {
|
|
107
|
+
const match = pane.match(this.flow.inputPrompt);
|
|
108
|
+
// Notify once per distinct prompt: "Enter Start URL" then "Enter Region"
|
|
109
|
+
// are two prompts, but a persistent "Paste code here" line is one.
|
|
110
|
+
if (match && match[0] !== this.lastInputPrompt) {
|
|
111
|
+
this.lastInputPrompt = match[0];
|
|
112
|
+
this.state = "input";
|
|
113
|
+
await this.events.onNeedInput(match[0]);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.schedulePoll();
|
|
117
|
+
}
|
|
118
|
+
async finish(ok, detail) {
|
|
119
|
+
if (this.finished)
|
|
120
|
+
return;
|
|
121
|
+
this.finished = true;
|
|
122
|
+
this.state = "done";
|
|
123
|
+
if (this.pollTimer)
|
|
124
|
+
clearTimeout(this.pollTimer);
|
|
125
|
+
if (this.timeoutTimer)
|
|
126
|
+
clearTimeout(this.timeoutTimer);
|
|
127
|
+
await this.tmux.killWindow().catch(err => this.logger.warn({ err: err.message }, "login window cleanup failed"));
|
|
128
|
+
await this.events.onDone({ ok, detail });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function delay(ms) {
|
|
132
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=login-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-manager.js","sourceRoot":"","sources":["../src/login-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node's 250ms Happy Eyeballs attempt window is too short for some WSL, VPN,
|
|
3
|
+
* cellular, and heavily-loaded hosts. Keep dual-stack family autoselection,
|
|
4
|
+
* but give each non-final TCP attempt enough time to establish.
|
|
5
|
+
*/
|
|
6
|
+
export declare const AGEND_NETWORK_FAMILY_ATTEMPT_TIMEOUT_MS = 2500;
|
|
7
|
+
interface NetworkFamilyApi {
|
|
8
|
+
getDefaultAutoSelectFamily(): boolean;
|
|
9
|
+
getDefaultAutoSelectFamilyAttemptTimeout(): number;
|
|
10
|
+
setDefaultAutoSelectFamilyAttemptTimeout(value: number): void;
|
|
11
|
+
}
|
|
12
|
+
export interface NetworkFamilyState {
|
|
13
|
+
autoSelectFamily: boolean;
|
|
14
|
+
attemptTimeoutMs: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function getNetworkFamilyState(api?: NetworkFamilyApi): NetworkFamilyState;
|
|
17
|
+
export declare function applyNetworkReliabilityDefaults(api?: NetworkFamilyApi): NetworkFamilyState;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import net from "node:net";
|
|
2
|
+
/**
|
|
3
|
+
* Node's 250ms Happy Eyeballs attempt window is too short for some WSL, VPN,
|
|
4
|
+
* cellular, and heavily-loaded hosts. Keep dual-stack family autoselection,
|
|
5
|
+
* but give each non-final TCP attempt enough time to establish.
|
|
6
|
+
*/
|
|
7
|
+
export const AGEND_NETWORK_FAMILY_ATTEMPT_TIMEOUT_MS = 2_500;
|
|
8
|
+
export function getNetworkFamilyState(api = net) {
|
|
9
|
+
return {
|
|
10
|
+
autoSelectFamily: api.getDefaultAutoSelectFamily(),
|
|
11
|
+
attemptTimeoutMs: api.getDefaultAutoSelectFamilyAttemptTimeout(),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export function applyNetworkReliabilityDefaults(api = net) {
|
|
15
|
+
// Deliberately do not call setDefaultAutoSelectFamily(): honor Node's native
|
|
16
|
+
// Happy Eyeballs default and any explicit NODE_OPTIONS override.
|
|
17
|
+
api.setDefaultAutoSelectFamilyAttemptTimeout(Math.max(api.getDefaultAutoSelectFamilyAttemptTimeout(), AGEND_NETWORK_FAMILY_ATTEMPT_TIMEOUT_MS));
|
|
18
|
+
return getNetworkFamilyState(api);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=network-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-family.js","sourceRoot":"","sources":["../src/network-family.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B;;;;GAIG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,KAAK,CAAC;AAa7D,MAAM,UAAU,qBAAqB,CAAC,MAAwB,GAAG;IAC/D,OAAO;QACL,gBAAgB,EAAE,GAAG,CAAC,0BAA0B,EAAE;QAClD,gBAAgB,EAAE,GAAG,CAAC,wCAAwC,EAAE;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAwB,GAAG;IACzE,6EAA6E;IAC7E,iEAAiE;IACjE,GAAG,CAAC,wCAAwC,CAAC,IAAI,CAAC,GAAG,CACnD,GAAG,CAAC,wCAAwC,EAAE,EAC9C,uCAAuC,CACxC,CAAC,CAAC;IACH,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -22,6 +22,8 @@ export interface OutboundContext {
|
|
|
22
22
|
name: string;
|
|
23
23
|
backend?: string;
|
|
24
24
|
model?: string;
|
|
25
|
+
displayName?: string;
|
|
26
|
+
description?: string;
|
|
25
27
|
channelId: string;
|
|
26
28
|
adapterId?: string;
|
|
27
29
|
}[];
|
|
@@ -34,7 +36,9 @@ export interface OutboundContext {
|
|
|
34
36
|
restartSingleInstance(name: string): Promise<void>;
|
|
35
37
|
connectIpcToInstance(name: string): Promise<void>;
|
|
36
38
|
/** FleetManager facade that wakes paused instances before delivery. */
|
|
37
|
-
deliverToInstance?(instanceName: string, payload: Record<string, unknown
|
|
39
|
+
deliverToInstance?(instanceName: string, payload: Record<string, unknown>, options?: OutboundDeliveryOptions): Promise<void>;
|
|
40
|
+
/** True while an earlier idle-gated delivery still owns this target's FIFO tail. */
|
|
41
|
+
hasPendingIdleGatedDelivery?(instanceName: string): boolean;
|
|
38
42
|
saveFleetConfig(): void;
|
|
39
43
|
queueMirrorMessage?(text: string): void;
|
|
40
44
|
getAdapterForInstance?(name: string): ChannelAdapter | null;
|
|
@@ -50,6 +54,8 @@ export interface OutboundContext {
|
|
|
50
54
|
clearCancelButton?(instanceName: string): void;
|
|
51
55
|
clearCancelButtonByCorrelation?(correlationId: string): void;
|
|
52
56
|
getInstanceExecutionState?(name: string): "idle" | "working" | "stuck" | "paused" | null;
|
|
57
|
+
/** Subscription provider IDs used by running or paused fleet/Classic instances. */
|
|
58
|
+
getActiveUsageProviderIds?(): ReadonlySet<string>;
|
|
53
59
|
/** Effective process state used to annotate cross-instance delivery results. */
|
|
54
60
|
getInstanceStatus?(name: string): "running" | "paused" | "stopped" | "crashed";
|
|
55
61
|
resolveInstanceModel?(name: string): {
|
|
@@ -58,6 +64,15 @@ export interface OutboundContext {
|
|
|
58
64
|
display: string;
|
|
59
65
|
reason?: string;
|
|
60
66
|
};
|
|
67
|
+
listModelCatalog?(opts: {
|
|
68
|
+
backend?: string;
|
|
69
|
+
instanceName?: string;
|
|
70
|
+
}): Promise<import("./fleet-manager.js").ModelCatalog>;
|
|
71
|
+
}
|
|
72
|
+
interface OutboundDeliveryOptions {
|
|
73
|
+
isCrossInstance?: boolean;
|
|
74
|
+
waitForIdle?: boolean;
|
|
75
|
+
idleTimeoutMs?: number;
|
|
61
76
|
}
|
|
62
77
|
/** Metadata extracted from the raw outbound message. */
|
|
63
78
|
export interface OutboundMeta {
|