@ponythewhite/base-context 1.0.0 → 1.0.1
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/CHANGELOG.md +33 -0
- package/NOTICE +0 -5
- package/README.md +44 -27
- package/dist/NOTICE +0 -5
- package/dist/base-context-runtime/pyproject.toml +1 -1
- package/dist/base-context-runtime/src/rlm/__init__.py +7 -5
- package/dist/base-context-runtime/test/test_subagent_registry.py +28 -1
- package/dist/base-context-runtime/uv.lock +1 -1
- package/dist/build-info.json +1 -1
- package/dist/bundle/amazon-bedrock.js +21 -0
- package/dist/bundle/{anthropic-YY4S534V.js → anthropic-UV5GZDGU.js} +5 -5
- package/dist/bundle/{azure-openai-responses-JRP6MIM3.js → azure-openai-responses-WSNPXLYC.js} +6 -6
- package/dist/bundle/{bundled-modules-P5HARVZA.js → bundled-modules-TXUMJ2XQ.js} +71 -16
- package/dist/bundle/chunk-27QCJ2AZ.js +2578 -0
- package/dist/bundle/{chunk-MZHTNNVA.js → chunk-4GXPNXOJ.js} +8 -0
- package/dist/bundle/{chunk-SC5KG5R4.js → chunk-DGNX7HQ3.js} +1 -7
- package/dist/bundle/{chunk-A53O363M.js → chunk-GRJFXLBM.js} +0 -1
- package/dist/bundle/chunk-HKINIBP4.js +29 -0
- package/dist/bundle/{chunk-UDSW6FNG.js → chunk-KTNETTHI.js} +1 -1
- package/dist/bundle/{chunk-BYVP7LWV.js → chunk-S3INFPZZ.js} +1861 -4662
- package/dist/bundle/{chunk-73DCPU3D.js → chunk-V3L54UD6.js} +1019 -3427
- package/dist/bundle/{chunk-U7AUVG3B.js → chunk-VSIYFWYI.js} +24 -6
- package/dist/bundle/{chunk-IW77OXFS.js → chunk-W46VZFI6.js} +0 -2099
- package/dist/bundle/{cli-main-O4X7GFGY.js → cli-main-BYMSRPH6.js} +8 -6
- package/dist/bundle/cli.js +2 -2
- package/dist/bundle/{google-AUTVGDGZ.js → google-T32FMD4G.js} +6 -6
- package/dist/bundle/{google-vertex-Q75D7RKS.js → google-vertex-56KP6I3B.js} +3 -3
- package/dist/bundle/{main-XKOW2BV6.js → main-ODOYCEQC.js} +7 -5
- package/dist/bundle/{mistral-7ESB7QUD.js → mistral-WGBMYIVU.js} +5 -5
- package/dist/bundle/{openai-codex-responses-LV3QRPN4.js → openai-codex-responses-PIV2RQ3G.js} +6 -6
- package/dist/bundle/{openai-completions-OJECLPXJ.js → openai-completions-64C3JPR4.js} +11 -22
- package/dist/bundle/{openai-responses-FN6HZMBC.js → openai-responses-UI7RSTDV.js} +6 -6
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +108 -59
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/daemon-ps.d.ts +4 -3
- package/dist/cli/daemon-ps.d.ts.map +1 -1
- package/dist/cli/daemon-ps.js +6 -1
- package/dist/cli/daemon-ps.js.map +1 -1
- package/dist/cli/product-doctor.d.ts +0 -1
- package/dist/cli/product-doctor.d.ts.map +1 -1
- package/dist/cli/product-doctor.js +6 -3
- package/dist/cli/product-doctor.js.map +1 -1
- package/dist/config.d.ts +0 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -8
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-config.d.ts +1 -2
- package/dist/core/agent-session-config.d.ts.map +1 -1
- package/dist/core/agent-session-config.js +0 -3
- package/dist/core/agent-session-config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +5 -4
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +5 -3
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +2 -27
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +10 -6
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +107 -107
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +8 -35
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +33 -243
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/cron-jobs.d.ts.map +1 -1
- package/dist/core/cron-jobs.js +7 -1
- package/dist/core/cron-jobs.js.map +1 -1
- package/dist/core/inference-coordinator.d.ts +6 -1
- package/dist/core/inference-coordinator.d.ts.map +1 -1
- package/dist/core/inference-coordinator.js +18 -2
- package/dist/core/inference-coordinator.js.map +1 -1
- package/dist/core/kernel/bootstrap.d.ts.map +1 -1
- package/dist/core/kernel/bootstrap.js +2 -2
- package/dist/core/kernel/bootstrap.js.map +1 -1
- package/dist/core/kernel/repl-manager.d.ts +2 -0
- package/dist/core/kernel/repl-manager.d.ts.map +1 -1
- package/dist/core/kernel/repl-manager.js +44 -1
- package/dist/core/kernel/repl-manager.js.map +1 -1
- package/dist/core/logging.d.ts +4 -3
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +6 -6
- package/dist/core/logging.js.map +1 -1
- package/dist/core/mcp/mcp-manager.d.ts.map +1 -1
- package/dist/core/mcp/mcp-manager.js +3 -3
- package/dist/core/mcp/mcp-manager.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -16
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +88 -196
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -19
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +36 -266
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/provider-contracts.d.ts +5 -6
- package/dist/core/provider-contracts.d.ts.map +1 -1
- package/dist/core/provider-contracts.js +25 -36
- package/dist/core/provider-contracts.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +0 -2
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/rlm-max-subagents.d.ts +32 -0
- package/dist/core/rlm-max-subagents.d.ts.map +1 -0
- package/dist/core/rlm-max-subagents.js +50 -0
- package/dist/core/rlm-max-subagents.js.map +1 -0
- package/dist/core/rlm-runtime.d.ts +3 -3
- package/dist/core/rlm-runtime.d.ts.map +1 -1
- package/dist/core/rlm-runtime.js.map +1 -1
- package/dist/core/sdk.d.ts +4 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +27 -14
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +12 -44
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +6 -6
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer.mjs +2 -3
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +39 -34
- package/dist/main.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts.map +1 -1
- package/dist/modes/acp/acp-mode.js +1 -1
- package/dist/modes/acp/acp-mode.js.map +1 -1
- package/dist/modes/agent-connection/daemon-agent-connection.d.ts +6 -2
- package/dist/modes/agent-connection/daemon-agent-connection.d.ts.map +1 -1
- package/dist/modes/agent-connection/daemon-agent-connection.js +13 -2
- package/dist/modes/agent-connection/daemon-agent-connection.js.map +1 -1
- package/dist/modes/agent-connection/in-process-agent-connection.d.ts +2 -0
- package/dist/modes/agent-connection/in-process-agent-connection.d.ts.map +1 -1
- package/dist/modes/agent-connection/in-process-agent-connection.js +6 -0
- package/dist/modes/agent-connection/in-process-agent-connection.js.map +1 -1
- package/dist/modes/agent-connection/types.d.ts +3 -0
- package/dist/modes/agent-connection/types.d.ts.map +1 -1
- package/dist/modes/agent-connection/types.js.map +1 -1
- package/dist/modes/agents-view/agents-view-mode.d.ts.map +1 -1
- package/dist/modes/agents-view/agents-view-mode.js +2 -19
- package/dist/modes/agents-view/agents-view-mode.js.map +1 -1
- package/dist/modes/daemon/daemon-mode.d.ts +5 -0
- package/dist/modes/daemon/daemon-mode.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-mode.js +107 -12
- package/dist/modes/daemon/daemon-mode.js.map +1 -1
- package/dist/modes/daemon/daemon-protocol.d.ts +194 -165
- package/dist/modes/daemon/daemon-protocol.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-protocol.js +16 -11
- package/dist/modes/daemon/daemon-protocol.js.map +1 -1
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts +19 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js +74 -0
- package/dist/modes/daemon/daemon-rlm-capacity-coordinator.js.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity.d.ts +19 -0
- package/dist/modes/daemon/daemon-rlm-capacity.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-rlm-capacity.js +85 -0
- package/dist/modes/daemon/daemon-rlm-capacity.js.map +1 -0
- package/dist/modes/daemon/daemon-session-summarizer.d.ts +2 -3
- package/dist/modes/daemon/daemon-session-summarizer.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-session-summarizer.js +32 -23
- package/dist/modes/daemon/daemon-session-summarizer.js.map +1 -1
- package/dist/modes/daemon/daemon-state-root.d.ts +15 -0
- package/dist/modes/daemon/daemon-state-root.d.ts.map +1 -0
- package/dist/modes/daemon/daemon-state-root.js +40 -0
- package/dist/modes/daemon/daemon-state-root.js.map +1 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.d.ts +2 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-supervisor-ownership.js +27 -0
- package/dist/modes/daemon/daemon-supervisor-ownership.js.map +1 -1
- package/dist/modes/daemon/daemon-supervisor.d.ts +10 -1
- package/dist/modes/daemon/daemon-supervisor.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-supervisor.js +213 -20
- package/dist/modes/daemon/daemon-supervisor.js.map +1 -1
- package/dist/modes/daemon/daemon-worker-protocol.d.ts +28 -1
- package/dist/modes/daemon/daemon-worker-protocol.d.ts.map +1 -1
- package/dist/modes/daemon/daemon-worker-protocol.js +16 -2
- package/dist/modes/daemon/daemon-worker-protocol.js.map +1 -1
- package/dist/modes/daemon/saved-session-catalog.d.ts.map +1 -1
- package/dist/modes/daemon/saved-session-catalog.js +2 -0
- package/dist/modes/daemon/saved-session-catalog.js.map +1 -1
- package/dist/modes/interactive/auth-flows.d.ts +0 -6
- package/dist/modes/interactive/auth-flows.d.ts.map +1 -1
- package/dist/modes/interactive/auth-flows.js +6 -126
- package/dist/modes/interactive/auth-flows.js.map +1 -1
- package/dist/modes/interactive/components/configuration-menu.d.ts +3 -0
- package/dist/modes/interactive/components/configuration-menu.d.ts.map +1 -1
- package/dist/modes/interactive/components/configuration-menu.js +13 -2
- package/dist/modes/interactive/components/configuration-menu.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -2
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +0 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +0 -1
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +3 -40
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +13 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +2 -11
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/feature-hints.d.ts.map +1 -1
- package/dist/modes/interactive/feature-hints.js +0 -4
- package/dist/modes/interactive/feature-hints.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -12
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +81 -507
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/onboarding.d.ts +0 -3
- package/dist/modes/interactive/onboarding.d.ts.map +1 -1
- package/dist/modes/interactive/onboarding.js +0 -17
- package/dist/modes/interactive/onboarding.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +2 -1
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +24 -11
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/node/amazon-bedrock.d.ts +2 -0
- package/dist/node/amazon-bedrock.d.ts.map +1 -0
- package/dist/node/amazon-bedrock.js +6 -0
- package/dist/node/amazon-bedrock.js.map +1 -0
- package/dist/product-identity.d.ts +0 -1
- package/dist/product-identity.d.ts.map +1 -1
- package/dist/product-identity.js +0 -1
- package/dist/product-identity.js.map +1 -1
- package/docs/development.md +1 -1
- package/docs/fork-philosophy.md +4 -8
- package/docs/installation.md +83 -62
- package/docs/providers.md +23 -25
- package/docs/quickstart.md +19 -10
- package/docs/rlm-runtime.md +13 -5
- package/docs/rpc.md +4 -4
- package/docs/sdk.md +20 -11
- package/docs/sessions.md +0 -1
- package/docs/settings.md +9 -42
- package/docs/skills.md +0 -1
- package/docs/upstream-0.9.5.md +171 -0
- package/docs/usage.md +14 -10
- package/package.json +4 -4
- package/dist/core/agent-traces.d.ts +0 -149
- package/dist/core/agent-traces.d.ts.map +0 -1
- package/dist/core/agent-traces.js +0 -904
- package/dist/core/agent-traces.js.map +0 -1
- package/dist/core/prime-inference-auth.d.ts +0 -70
- package/dist/core/prime-inference-auth.d.ts.map +0 -1
- package/dist/core/prime-inference-auth.js +0 -352
- package/dist/core/prime-inference-auth.js.map +0 -1
- package/dist/core/prime-inference-model-selection.d.ts +0 -16
- package/dist/core/prime-inference-model-selection.d.ts.map +0 -1
- package/dist/core/prime-inference-model-selection.js +0 -16
- package/dist/core/prime-inference-model-selection.js.map +0 -1
- package/dist/core/prime-inference-models.d.ts +0 -6
- package/dist/core/prime-inference-models.d.ts.map +0 -1
- package/dist/core/prime-inference-models.js +0 -62
- package/dist/core/prime-inference-models.js.map +0 -1
- package/dist/core/telemetry.d.ts +0 -95
- package/dist/core/telemetry.d.ts.map +0 -1
- package/dist/core/telemetry.js +0 -637
- package/dist/core/telemetry.js.map +0 -1
- package/dist/modes/interactive/components/prime-onboarding-splash.d.ts +0 -39
- package/dist/modes/interactive/components/prime-onboarding-splash.d.ts.map +0 -1
- package/dist/modes/interactive/components/prime-onboarding-splash.js +0 -286
- package/dist/modes/interactive/components/prime-onboarding-splash.js.map +0 -1
- package/dist/modes/interactive/components/prime-team-selector.d.ts +0 -30
- package/dist/modes/interactive/components/prime-team-selector.d.ts.map +0 -1
- package/dist/modes/interactive/components/prime-team-selector.js +0 -166
- package/dist/modes/interactive/components/prime-team-selector.js.map +0 -1
- package/dist/skills/prime-intellect/SKILL.md +0 -87
- package/dist/skills/prime-intellect/references/compute.md +0 -45
- package/dist/skills/prime-intellect/references/environments.md +0 -73
- package/dist/skills/prime-intellect/references/inference.md +0 -47
- package/dist/skills/prime-intellect/references/sandboxes.md +0 -75
- package/skills/prime-intellect/SKILL.md +0 -87
- package/skills/prime-intellect/references/compute.md +0 -45
- package/skills/prime-intellect/references/environments.md +0 -73
- package/skills/prime-intellect/references/inference.md +0 -47
- package/skills/prime-intellect/references/sandboxes.md +0 -75
package/dist/cli/args.js
CHANGED
|
@@ -6,6 +6,10 @@ import { THINKING_LEVELS } from "../core/thinking-levels.js";
|
|
|
6
6
|
import { DAEMON_PROTOCOL_VERSION } from "../modes/daemon/daemon-protocol.js";
|
|
7
7
|
const REMOVED_BUILTIN_TOOL_NAMES = new Set(["read", "write", "grep", "find", "ls"]);
|
|
8
8
|
const BUILTIN_TOOL_NAMES = ["ipython", "prime_context"];
|
|
9
|
+
/** Free-form objectives and commands may start with a short-option-looking token. */
|
|
10
|
+
const FREEFORM_VALUE_FLAGS = new Set(["--goal", "--autonomous-gate"]);
|
|
11
|
+
/** Prompt text may start with long-option-looking text, such as YAML frontmatter. */
|
|
12
|
+
const PROMPT_VALUE_FLAGS = new Set(["--system-prompt", "--append-system-prompt"]);
|
|
9
13
|
export const INTERNAL_RUNTIME_COMMAND_MARKER = "\0prime-agent-runtime-command";
|
|
10
14
|
export function isValidThinkingLevel(level) {
|
|
11
15
|
return THINKING_LEVELS.includes(level);
|
|
@@ -38,18 +42,28 @@ export function parseArgs(args) {
|
|
|
38
42
|
else if (arg === "--version" || arg === "-v") {
|
|
39
43
|
result.version = true;
|
|
40
44
|
}
|
|
41
|
-
else if (arg === "--mode"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
else if (arg === "--mode") {
|
|
46
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
47
|
+
const mode = args[++i];
|
|
48
|
+
if (mode === "text" || mode === "json" || mode === "rpc" || mode === "acp" || mode === "daemon") {
|
|
49
|
+
result.mode = mode;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
result.diagnostics.push({
|
|
53
|
+
type: "error",
|
|
54
|
+
message: `Invalid --mode "${mode}". Valid values: text, json, rpc, acp, daemon`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
45
57
|
}
|
|
46
58
|
}
|
|
47
59
|
else if (arg === "--rpc-protocol-version") {
|
|
48
60
|
if (hasRequiredOptionValue(args, i, arg, result))
|
|
49
61
|
result.rpcProtocolVersion = Number(args[++i]);
|
|
50
62
|
}
|
|
51
|
-
else if (arg === "--daemon-socket"
|
|
52
|
-
|
|
63
|
+
else if (arg === "--daemon-socket") {
|
|
64
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
65
|
+
result.daemonSocket = args[++i];
|
|
66
|
+
}
|
|
53
67
|
}
|
|
54
68
|
else if (arg === "--continue" || arg === "-c") {
|
|
55
69
|
result.continue = true;
|
|
@@ -79,36 +93,54 @@ export function parseArgs(args) {
|
|
|
79
93
|
result.resume = value;
|
|
80
94
|
}
|
|
81
95
|
}
|
|
82
|
-
else if (arg === "--provider"
|
|
83
|
-
|
|
96
|
+
else if (arg === "--provider") {
|
|
97
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
98
|
+
result.provider = args[++i];
|
|
99
|
+
}
|
|
84
100
|
}
|
|
85
|
-
else if (arg === "--model"
|
|
86
|
-
|
|
101
|
+
else if (arg === "--model") {
|
|
102
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
103
|
+
result.model = args[++i];
|
|
104
|
+
}
|
|
87
105
|
}
|
|
88
|
-
else if (arg === "--api-key"
|
|
89
|
-
|
|
106
|
+
else if (arg === "--api-key") {
|
|
107
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
108
|
+
result.apiKey = args[++i];
|
|
109
|
+
}
|
|
90
110
|
}
|
|
91
|
-
else if (arg === "--cwd"
|
|
92
|
-
|
|
111
|
+
else if (arg === "--cwd") {
|
|
112
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
113
|
+
result.cwd = args[++i];
|
|
114
|
+
}
|
|
93
115
|
}
|
|
94
|
-
else if (arg === "--system-prompt"
|
|
95
|
-
|
|
116
|
+
else if (arg === "--system-prompt") {
|
|
117
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
118
|
+
result.systemPrompt = args[++i];
|
|
119
|
+
}
|
|
96
120
|
}
|
|
97
|
-
else if (arg === "--append-system-prompt"
|
|
98
|
-
|
|
99
|
-
|
|
121
|
+
else if (arg === "--append-system-prompt") {
|
|
122
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
123
|
+
result.appendSystemPrompt = result.appendSystemPrompt ?? [];
|
|
124
|
+
result.appendSystemPrompt.push(args[++i]);
|
|
125
|
+
}
|
|
100
126
|
}
|
|
101
127
|
else if (arg === "--no-session") {
|
|
102
128
|
result.noSession = true;
|
|
103
129
|
}
|
|
104
|
-
else if (arg === "--fork"
|
|
105
|
-
|
|
130
|
+
else if (arg === "--fork") {
|
|
131
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
132
|
+
result.fork = args[++i];
|
|
133
|
+
}
|
|
106
134
|
}
|
|
107
|
-
else if (arg === "--session-dir"
|
|
108
|
-
|
|
135
|
+
else if (arg === "--session-dir") {
|
|
136
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
137
|
+
result.sessionDir = args[++i];
|
|
138
|
+
}
|
|
109
139
|
}
|
|
110
|
-
else if (arg === "--models"
|
|
111
|
-
|
|
140
|
+
else if (arg === "--models") {
|
|
141
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
142
|
+
result.models = args[++i].split(",").map((s) => s.trim());
|
|
143
|
+
}
|
|
112
144
|
}
|
|
113
145
|
else if (arg === "--no-tools" || arg === "-nt") {
|
|
114
146
|
result.noTools = true;
|
|
@@ -116,29 +148,33 @@ export function parseArgs(args) {
|
|
|
116
148
|
else if (arg === "--no-builtin-tools" || arg === "-nbt") {
|
|
117
149
|
result.noBuiltinTools = true;
|
|
118
150
|
}
|
|
119
|
-
else if (
|
|
120
|
-
|
|
121
|
-
.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
151
|
+
else if (arg === "--tools" || arg === "-t") {
|
|
152
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
153
|
+
result.tools = args[++i]
|
|
154
|
+
.split(",")
|
|
155
|
+
.map((s) => s.trim())
|
|
156
|
+
.filter((name) => name.length > 0);
|
|
157
|
+
const removedTools = result.tools.filter((name) => REMOVED_BUILTIN_TOOL_NAMES.has(name));
|
|
158
|
+
if (removedTools.length > 0) {
|
|
159
|
+
result.diagnostics.push({
|
|
160
|
+
type: "error",
|
|
161
|
+
message: `Unknown built-in tool(s): ${removedTools.join(", ")}. Available built-in tools: ${BUILTIN_TOOL_NAMES.join(", ")}`,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
130
164
|
}
|
|
131
165
|
}
|
|
132
|
-
else if (arg === "--thinking"
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
166
|
+
else if (arg === "--thinking") {
|
|
167
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
168
|
+
const level = args[++i];
|
|
169
|
+
if (isValidThinkingLevel(level)) {
|
|
170
|
+
result.thinking = level;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
result.diagnostics.push({
|
|
174
|
+
type: "error",
|
|
175
|
+
message: `Invalid thinking level "${level}". Valid values: ${THINKING_LEVELS.join(", ")}`,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
142
178
|
}
|
|
143
179
|
}
|
|
144
180
|
else if (arg === "--print" || arg === "-p") {
|
|
@@ -171,24 +207,32 @@ export function parseArgs(args) {
|
|
|
171
207
|
message: `--export was removed. Use "${APP_NAME} session export <file> [output]".`,
|
|
172
208
|
});
|
|
173
209
|
}
|
|
174
|
-
else if (
|
|
175
|
-
|
|
176
|
-
|
|
210
|
+
else if (arg === "--extension" || arg === "-e") {
|
|
211
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
212
|
+
result.extensions = result.extensions ?? [];
|
|
213
|
+
result.extensions.push(args[++i]);
|
|
214
|
+
}
|
|
177
215
|
}
|
|
178
216
|
else if (arg === "--no-extensions" || arg === "-ne") {
|
|
179
217
|
result.noExtensions = true;
|
|
180
218
|
}
|
|
181
|
-
else if (arg === "--skill"
|
|
182
|
-
|
|
183
|
-
|
|
219
|
+
else if (arg === "--skill") {
|
|
220
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
221
|
+
result.skills = result.skills ?? [];
|
|
222
|
+
result.skills.push(args[++i]);
|
|
223
|
+
}
|
|
184
224
|
}
|
|
185
|
-
else if (arg === "--prompt-template"
|
|
186
|
-
|
|
187
|
-
|
|
225
|
+
else if (arg === "--prompt-template") {
|
|
226
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
227
|
+
result.promptTemplates = result.promptTemplates ?? [];
|
|
228
|
+
result.promptTemplates.push(args[++i]);
|
|
229
|
+
}
|
|
188
230
|
}
|
|
189
|
-
else if (arg === "--theme"
|
|
190
|
-
|
|
191
|
-
|
|
231
|
+
else if (arg === "--theme") {
|
|
232
|
+
if (hasRequiredOptionValue(args, i, arg, result)) {
|
|
233
|
+
result.themes = result.themes ?? [];
|
|
234
|
+
result.themes.push(args[++i]);
|
|
235
|
+
}
|
|
192
236
|
}
|
|
193
237
|
else if (arg === "--no-skills" || arg === "-ns") {
|
|
194
238
|
result.noSkills = true;
|
|
@@ -339,7 +383,12 @@ export function parseArgs(args) {
|
|
|
339
383
|
}
|
|
340
384
|
function hasRequiredOptionValue(args, index, flag, result) {
|
|
341
385
|
const next = args[index + 1];
|
|
342
|
-
|
|
386
|
+
// Keep the standalone end-of-options delimiter for the main loop in every case.
|
|
387
|
+
const valueMayStartWithDash = FREEFORM_VALUE_FLAGS.has(flag);
|
|
388
|
+
const valueIsArbitraryPromptText = PROMPT_VALUE_FLAGS.has(flag);
|
|
389
|
+
if (next === undefined ||
|
|
390
|
+
next === "--" ||
|
|
391
|
+
(!valueIsArbitraryPromptText && next.startsWith(valueMayStartWithDash ? "--" : "-"))) {
|
|
343
392
|
result.diagnostics.push({ type: "error", message: `${flag} requires a value` });
|
|
344
393
|
return false;
|
|
345
394
|
}
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CLI argument parsing and help display\n */\n\nimport type { ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport { APP_NAME } from \"../config.js\";\nimport { THINKING_LEVELS } from \"../core/thinking-levels.js\";\nimport { DAEMON_PROTOCOL_VERSION } from \"../modes/daemon/daemon-protocol.js\";\n\nexport type Mode = \"text\" | \"json\" | \"rpc\" | \"acp\" | \"daemon\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\tapiKey?: string;\n\tcwd?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string[];\n\tthinking?: ThinkingLevel;\n\tcontinue?: boolean;\n\tresume?: true | string;\n\thelp?: boolean;\n\tversion?: boolean;\n\tmode?: Mode;\n\t/** RPC clients must understand this event protocol, including refusal-only agent_end. */\n\trpcProtocolVersion?: number;\n\tdaemonSocket?: string;\n\tnoSession?: boolean;\n\tfork?: string;\n\tsessionDir?: string;\n\tmodels?: string[];\n\ttools?: string[];\n\tnoTools?: boolean;\n\tnoBuiltinTools?: boolean;\n\textensions?: string[];\n\tnoExtensions?: boolean;\n\tprint?: boolean;\n\texport?: string;\n\tnoSkills?: boolean;\n\tskills?: string[];\n\tpromptTemplates?: string[];\n\tnoPromptTemplates?: boolean;\n\tthemes?: string[];\n\tnoThemes?: boolean;\n\tnoContextFiles?: boolean;\n\tautonomous?: boolean;\n\tautonomousGates?: string[];\n\tautonomousGateRetries?: number;\n\tautonomousGateTimeoutMs?: number;\n\tautonomousMaxContinuations?: number;\n\tautonomousMaxTurns?: number;\n\tautonomousMaxTokens?: number;\n\tautonomousTimeoutMs?: number;\n\tgoal?: string;\n\tgoalTokenBudget?: number;\n\tlistModels?: string | true;\n\toffline?: boolean;\n\tverbose?: boolean;\n\tmessages: string[];\n\tfileArgs: string[];\n\t/** Unknown flags (potentially extension flags) - map of flag name to value */\n\tunknownFlags: Map<string, boolean | string>;\n\tdiagnostics: Array<{ type: \"warning\" | \"error\"; message: string }>;\n}\n\nconst REMOVED_BUILTIN_TOOL_NAMES = new Set([\"read\", \"write\", \"grep\", \"find\", \"ls\"]);\nconst BUILTIN_TOOL_NAMES = [\"ipython\", \"prime_context\"];\n\nexport const INTERNAL_RUNTIME_COMMAND_MARKER = \"\\0prime-agent-runtime-command\";\n\nexport function isValidThinkingLevel(level: string): level is ThinkingLevel {\n\treturn THINKING_LEVELS.includes(level as ThinkingLevel);\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t\tfileArgs: [],\n\t\tunknownFlags: new Map(),\n\t\tdiagnostics: [],\n\t};\n\n\tlet endOfOptions = false;\n\tconst internalRuntimeCommand = args[0] === INTERNAL_RUNTIME_COMMAND_MARKER;\n\tconst firstArgIndex = internalRuntimeCommand ? 1 : 0;\n\n\tfor (let i = firstArgIndex; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\t// POSIX end-of-options: everything after a standalone \"--\" is a positional\n\t\t// message, even if it starts with a dash (e.g. a Markdown-bullet prompt).\n\t\tif (endOfOptions) {\n\t\t\tresult.messages.push(arg);\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg === \"--\") {\n\t\t\tendOfOptions = true;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg === \"--mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (mode === \"text\" || mode === \"json\" || mode === \"rpc\" || mode === \"acp\" || mode === \"daemon\") {\n\t\t\t\tresult.mode = mode;\n\t\t\t}\n\t\t} else if (arg === \"--rpc-protocol-version\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) result.rpcProtocolVersion = Number(args[++i]);\n\t\t} else if (arg === \"--daemon-socket\" && i + 1 < args.length) {\n\t\t\tresult.daemonSocket = args[++i];\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tconst next = args[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) {\n\t\t\t\tif (next === \"\") {\n\t\t\t\t\tresult.resume = true;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.resume = next;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--resume=\")) {\n\t\t\tconst value = arg.slice(\"--resume=\".length);\n\t\t\tif (!value) {\n\t\t\t\tresult.resume = true;\n\t\t\t} else {\n\t\t\t\tresult.resume = value;\n\t\t\t}\n\t\t} else if (arg === \"--provider\" && i + 1 < args.length) {\n\t\t\tresult.provider = args[++i];\n\t\t} else if (arg === \"--model\" && i + 1 < args.length) {\n\t\t\tresult.model = args[++i];\n\t\t} else if (arg === \"--api-key\" && i + 1 < args.length) {\n\t\t\tresult.apiKey = args[++i];\n\t\t} else if (arg === \"--cwd\" && i + 1 < args.length) {\n\t\t\tresult.cwd = args[++i];\n\t\t} else if (arg === \"--system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.systemPrompt = args[++i];\n\t\t} else if (arg === \"--append-system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.appendSystemPrompt = result.appendSystemPrompt ?? [];\n\t\t\tresult.appendSystemPrompt.push(args[++i]);\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--fork\" && i + 1 < args.length) {\n\t\t\tresult.fork = args[++i];\n\t\t} else if (arg === \"--session-dir\" && i + 1 < args.length) {\n\t\t\tresult.sessionDir = args[++i];\n\t\t} else if (arg === \"--models\" && i + 1 < args.length) {\n\t\t\tresult.models = args[++i].split(\",\").map((s) => s.trim());\n\t\t} else if (arg === \"--no-tools\" || arg === \"-nt\") {\n\t\t\tresult.noTools = true;\n\t\t} else if (arg === \"--no-builtin-tools\" || arg === \"-nbt\") {\n\t\t\tresult.noBuiltinTools = true;\n\t\t} else if ((arg === \"--tools\" || arg === \"-t\") && i + 1 < args.length) {\n\t\t\tresult.tools = args[++i]\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((s) => s.trim())\n\t\t\t\t.filter((name) => name.length > 0);\n\t\t\tconst removedTools = result.tools.filter((name) => REMOVED_BUILTIN_TOOL_NAMES.has(name));\n\t\t\tif (removedTools.length > 0) {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `Unknown built-in tool(s): ${removedTools.join(\", \")}. Available built-in tools: ${BUILTIN_TOOL_NAMES.join(\", \")}`,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (arg === \"--thinking\" && i + 1 < args.length) {\n\t\t\tconst level = args[++i];\n\t\t\tif (isValidThinkingLevel(level)) {\n\t\t\t\tresult.thinking = level;\n\t\t\t} else {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tmessage: `Invalid thinking level \"${level}\". Valid values: ${THINKING_LEVELS.join(\", \")}`,\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (arg === \"--print\" || arg === \"-p\") {\n\t\t\tresult.print = true;\n\t\t\tconst next = args[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"@\") && (!next.startsWith(\"-\") || next.startsWith(\"---\"))) {\n\t\t\t\tresult.messages.push(next);\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg === \"--export\") {\n\t\t\tif (!internalRuntimeCommand) {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `--export was removed. Use \"${APP_NAME} session export <file> [output]\".`,\n\t\t\t\t});\n\t\t\t\tif (i + 1 < args.length && !args[i + 1].startsWith(\"-\")) i++;\n\t\t\t} else if (i + 1 < args.length) {\n\t\t\t\tresult.export = args[++i];\n\t\t\t} else {\n\t\t\t\tresult.diagnostics.push({ type: \"error\", message: \"--export requires a value\" });\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--export=\")) {\n\t\t\tresult.diagnostics.push({\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `--export was removed. Use \"${APP_NAME} session export <file> [output]\".`,\n\t\t\t});\n\t\t} else if ((arg === \"--extension\" || arg === \"-e\") && i + 1 < args.length) {\n\t\t\tresult.extensions = result.extensions ?? [];\n\t\t\tresult.extensions.push(args[++i]);\n\t\t} else if (arg === \"--no-extensions\" || arg === \"-ne\") {\n\t\t\tresult.noExtensions = true;\n\t\t} else if (arg === \"--skill\" && i + 1 < args.length) {\n\t\t\tresult.skills = result.skills ?? [];\n\t\t\tresult.skills.push(args[++i]);\n\t\t} else if (arg === \"--prompt-template\" && i + 1 < args.length) {\n\t\t\tresult.promptTemplates = result.promptTemplates ?? [];\n\t\t\tresult.promptTemplates.push(args[++i]);\n\t\t} else if (arg === \"--theme\" && i + 1 < args.length) {\n\t\t\tresult.themes = result.themes ?? [];\n\t\t\tresult.themes.push(args[++i]);\n\t\t} else if (arg === \"--no-skills\" || arg === \"-ns\") {\n\t\t\tresult.noSkills = true;\n\t\t} else if (arg === \"--no-prompt-templates\" || arg === \"-np\") {\n\t\t\tresult.noPromptTemplates = true;\n\t\t} else if (arg === \"--no-themes\") {\n\t\t\tresult.noThemes = true;\n\t\t} else if (arg === \"--no-context-files\" || arg === \"-nc\") {\n\t\t\tresult.noContextFiles = true;\n\t\t} else if (arg === \"--autonomous\") {\n\t\t\tresult.autonomous = true;\n\t\t} else if (arg === \"--autonomous-gate\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGates = result.autonomousGates ?? [];\n\t\t\t\tresult.autonomousGates.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-gate-retries\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGateRetries = parsePositiveInt(args[++i], \"--autonomous-gate-retries\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-gate-timeout-ms\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGateTimeoutMs = parsePositiveInt(args[++i], \"--autonomous-gate-timeout-ms\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-continuations\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxContinuations = parsePositiveInt(args[++i], \"--autonomous-max-continuations\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-turns\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxTurns = parsePositiveInt(args[++i], \"--autonomous-max-turns\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-tokens\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxTokens = parsePositiveInt(args[++i], \"--autonomous-max-tokens\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-timeout-ms\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousTimeoutMs = parsePositiveInt(args[++i], \"--autonomous-timeout-ms\", result);\n\t\t\t}\n\t\t} else if (arg === \"--goal\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tconst value = args[++i];\n\t\t\t\tif (!value.trim()) {\n\t\t\t\t\tresult.diagnostics.push({ type: \"error\", message: \"--goal requires a non-empty objective\" });\n\t\t\t\t} else {\n\t\t\t\t\tresult.goal = value;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--goal-token-budget\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.goalTokenBudget = parsePositiveInt(args[++i], \"--goal-token-budget\", result);\n\t\t\t}\n\t\t} else if (arg === \"--list-models\") {\n\t\t\tconst hasSearch = i + 1 < args.length && !args[i + 1].startsWith(\"-\") && !args[i + 1].startsWith(\"@\");\n\t\t\tif (!internalRuntimeCommand) {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `--list-models was removed. Use \"${APP_NAME} model list [search]\".`,\n\t\t\t\t});\n\t\t\t\tif (hasSearch) i++;\n\t\t\t} else if (hasSearch) {\n\t\t\t\tresult.listModels = args[++i];\n\t\t\t} else {\n\t\t\t\tresult.listModels = true;\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--list-models=\")) {\n\t\t\tresult.diagnostics.push({\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `--list-models was removed. Use \"${APP_NAME} model list [search]\".`,\n\t\t\t});\n\t\t} else if (arg === \"--verbose\") {\n\t\t\tresult.verbose = true;\n\t\t} else if (arg === \"--offline\") {\n\t\t\tresult.offline = true;\n\t\t} else if (arg.startsWith(\"@\")) {\n\t\t\tresult.fileArgs.push(arg.slice(1)); // Remove @ prefix\n\t\t} else if (arg.startsWith(\"--\")) {\n\t\t\tconst eqIndex = arg.indexOf(\"=\");\n\t\t\tif (eqIndex !== -1) {\n\t\t\t\tresult.unknownFlags.set(arg.slice(2, eqIndex), arg.slice(eqIndex + 1));\n\t\t\t} else {\n\t\t\t\tconst flagName = arg.slice(2);\n\t\t\t\tconst next = args[i + 1];\n\t\t\t\tif (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) {\n\t\t\t\t\tresult.unknownFlags.set(flagName, next);\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.unknownFlags.set(flagName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg.startsWith(\"-\") && !arg.startsWith(\"--\")) {\n\t\t\tresult.diagnostics.push({ type: \"error\", message: `Unknown option: ${arg}` });\n\t\t} else if (!arg.startsWith(\"-\")) {\n\t\t\tresult.messages.push(arg);\n\t\t}\n\t}\n\n\tif (result.goalTokenBudget !== undefined && !result.goal) {\n\t\tresult.diagnostics.push({\n\t\t\ttype: \"error\",\n\t\t\tmessage: \"--goal-token-budget requires --goal\",\n\t\t});\n\t}\n\n\tif (\n\t\tresult.mode === \"rpc\" &&\n\t\t!result.help &&\n\t\t!result.version &&\n\t\tresult.rpcProtocolVersion !== DAEMON_PROTOCOL_VERSION\n\t) {\n\t\tresult.diagnostics.push({\n\t\t\ttype: \"error\",\n\t\t\tmessage: `RPC mode requires --rpc-protocol-version ${DAEMON_PROTOCOL_VERSION}; the client must handle refusal-only agent_end as failed completion`,\n\t\t});\n\t}\n\n\treturn result;\n}\n\nfunction hasRequiredOptionValue(args: string[], index: number, flag: string, result: Args): boolean {\n\tconst next = args[index + 1];\n\tif (next === undefined || next.startsWith(\"--\")) {\n\t\tresult.diagnostics.push({ type: \"error\", message: `${flag} requires a value` });\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction parsePositiveInt(value: string, flag: string, result: Args): number | undefined {\n\tconst parsed = Number(value);\n\tif (!Number.isInteger(parsed) || parsed <= 0) {\n\t\tresult.diagnostics.push({ type: \"error\", message: `${flag} must be a positive integer` });\n\t\treturn undefined;\n\t}\n\treturn parsed;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CLI argument parsing and help display\n */\n\nimport type { ThinkingLevel } from \"@ponythewhite/base-context-agent\";\nimport { APP_NAME } from \"../config.js\";\nimport { THINKING_LEVELS } from \"../core/thinking-levels.js\";\nimport { DAEMON_PROTOCOL_VERSION } from \"../modes/daemon/daemon-protocol.js\";\n\nexport type Mode = \"text\" | \"json\" | \"rpc\" | \"acp\" | \"daemon\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\tapiKey?: string;\n\tcwd?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string[];\n\tthinking?: ThinkingLevel;\n\tcontinue?: boolean;\n\tresume?: true | string;\n\thelp?: boolean;\n\tversion?: boolean;\n\tmode?: Mode;\n\t/** RPC clients must understand this event protocol, including refusal-only agent_end. */\n\trpcProtocolVersion?: number;\n\tdaemonSocket?: string;\n\tnoSession?: boolean;\n\tfork?: string;\n\tsessionDir?: string;\n\tmodels?: string[];\n\ttools?: string[];\n\tnoTools?: boolean;\n\tnoBuiltinTools?: boolean;\n\textensions?: string[];\n\tnoExtensions?: boolean;\n\tprint?: boolean;\n\texport?: string;\n\tnoSkills?: boolean;\n\tskills?: string[];\n\tpromptTemplates?: string[];\n\tnoPromptTemplates?: boolean;\n\tthemes?: string[];\n\tnoThemes?: boolean;\n\tnoContextFiles?: boolean;\n\tautonomous?: boolean;\n\tautonomousGates?: string[];\n\tautonomousGateRetries?: number;\n\tautonomousGateTimeoutMs?: number;\n\tautonomousMaxContinuations?: number;\n\tautonomousMaxTurns?: number;\n\tautonomousMaxTokens?: number;\n\tautonomousTimeoutMs?: number;\n\tgoal?: string;\n\tgoalTokenBudget?: number;\n\tlistModels?: string | true;\n\toffline?: boolean;\n\tverbose?: boolean;\n\tmessages: string[];\n\tfileArgs: string[];\n\t/** Unknown flags (potentially extension flags) - map of flag name to value */\n\tunknownFlags: Map<string, boolean | string>;\n\tdiagnostics: Array<{ type: \"warning\" | \"error\"; message: string }>;\n}\n\nconst REMOVED_BUILTIN_TOOL_NAMES = new Set([\"read\", \"write\", \"grep\", \"find\", \"ls\"]);\nconst BUILTIN_TOOL_NAMES = [\"ipython\", \"prime_context\"];\n/** Free-form objectives and commands may start with a short-option-looking token. */\nconst FREEFORM_VALUE_FLAGS = new Set([\"--goal\", \"--autonomous-gate\"]);\n/** Prompt text may start with long-option-looking text, such as YAML frontmatter. */\nconst PROMPT_VALUE_FLAGS = new Set([\"--system-prompt\", \"--append-system-prompt\"]);\n\nexport const INTERNAL_RUNTIME_COMMAND_MARKER = \"\\0prime-agent-runtime-command\";\n\nexport function isValidThinkingLevel(level: string): level is ThinkingLevel {\n\treturn THINKING_LEVELS.includes(level as ThinkingLevel);\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t\tfileArgs: [],\n\t\tunknownFlags: new Map(),\n\t\tdiagnostics: [],\n\t};\n\n\tlet endOfOptions = false;\n\tconst internalRuntimeCommand = args[0] === INTERNAL_RUNTIME_COMMAND_MARKER;\n\tconst firstArgIndex = internalRuntimeCommand ? 1 : 0;\n\n\tfor (let i = firstArgIndex; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\t// POSIX end-of-options: everything after a standalone \"--\" is a positional\n\t\t// message, even if it starts with a dash (e.g. a Markdown-bullet prompt).\n\t\tif (endOfOptions) {\n\t\t\tresult.messages.push(arg);\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg === \"--\") {\n\t\t\tendOfOptions = true;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg === \"--mode\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tconst mode = args[++i];\n\t\t\t\tif (mode === \"text\" || mode === \"json\" || mode === \"rpc\" || mode === \"acp\" || mode === \"daemon\") {\n\t\t\t\t\tresult.mode = mode;\n\t\t\t\t} else {\n\t\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: `Invalid --mode \"${mode}\". Valid values: text, json, rpc, acp, daemon`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--rpc-protocol-version\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) result.rpcProtocolVersion = Number(args[++i]);\n\t\t} else if (arg === \"--daemon-socket\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.daemonSocket = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tconst next = args[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) {\n\t\t\t\tif (next === \"\") {\n\t\t\t\t\tresult.resume = true;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.resume = next;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--resume=\")) {\n\t\t\tconst value = arg.slice(\"--resume=\".length);\n\t\t\tif (!value) {\n\t\t\t\tresult.resume = true;\n\t\t\t} else {\n\t\t\t\tresult.resume = value;\n\t\t\t}\n\t\t} else if (arg === \"--provider\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.provider = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--model\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.model = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--api-key\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.apiKey = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--cwd\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.cwd = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--system-prompt\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.systemPrompt = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--append-system-prompt\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.appendSystemPrompt = result.appendSystemPrompt ?? [];\n\t\t\t\tresult.appendSystemPrompt.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--fork\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.fork = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--session-dir\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.sessionDir = args[++i];\n\t\t\t}\n\t\t} else if (arg === \"--models\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.models = args[++i].split(\",\").map((s) => s.trim());\n\t\t\t}\n\t\t} else if (arg === \"--no-tools\" || arg === \"-nt\") {\n\t\t\tresult.noTools = true;\n\t\t} else if (arg === \"--no-builtin-tools\" || arg === \"-nbt\") {\n\t\t\tresult.noBuiltinTools = true;\n\t\t} else if (arg === \"--tools\" || arg === \"-t\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.tools = args[++i]\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.map((s) => s.trim())\n\t\t\t\t\t.filter((name) => name.length > 0);\n\t\t\t\tconst removedTools = result.tools.filter((name) => REMOVED_BUILTIN_TOOL_NAMES.has(name));\n\t\t\t\tif (removedTools.length > 0) {\n\t\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: `Unknown built-in tool(s): ${removedTools.join(\", \")}. Available built-in tools: ${BUILTIN_TOOL_NAMES.join(\", \")}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--thinking\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tconst level = args[++i];\n\t\t\t\tif (isValidThinkingLevel(level)) {\n\t\t\t\t\tresult.thinking = level;\n\t\t\t\t} else {\n\t\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\tmessage: `Invalid thinking level \"${level}\". Valid values: ${THINKING_LEVELS.join(\", \")}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--print\" || arg === \"-p\") {\n\t\t\tresult.print = true;\n\t\t\tconst next = args[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"@\") && (!next.startsWith(\"-\") || next.startsWith(\"---\"))) {\n\t\t\t\tresult.messages.push(next);\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg === \"--export\") {\n\t\t\tif (!internalRuntimeCommand) {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `--export was removed. Use \"${APP_NAME} session export <file> [output]\".`,\n\t\t\t\t});\n\t\t\t\tif (i + 1 < args.length && !args[i + 1].startsWith(\"-\")) i++;\n\t\t\t} else if (i + 1 < args.length) {\n\t\t\t\tresult.export = args[++i];\n\t\t\t} else {\n\t\t\t\tresult.diagnostics.push({ type: \"error\", message: \"--export requires a value\" });\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--export=\")) {\n\t\t\tresult.diagnostics.push({\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `--export was removed. Use \"${APP_NAME} session export <file> [output]\".`,\n\t\t\t});\n\t\t} else if (arg === \"--extension\" || arg === \"-e\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.extensions = result.extensions ?? [];\n\t\t\t\tresult.extensions.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--no-extensions\" || arg === \"-ne\") {\n\t\t\tresult.noExtensions = true;\n\t\t} else if (arg === \"--skill\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.skills = result.skills ?? [];\n\t\t\t\tresult.skills.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--prompt-template\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.promptTemplates = result.promptTemplates ?? [];\n\t\t\t\tresult.promptTemplates.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--theme\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.themes = result.themes ?? [];\n\t\t\t\tresult.themes.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--no-skills\" || arg === \"-ns\") {\n\t\t\tresult.noSkills = true;\n\t\t} else if (arg === \"--no-prompt-templates\" || arg === \"-np\") {\n\t\t\tresult.noPromptTemplates = true;\n\t\t} else if (arg === \"--no-themes\") {\n\t\t\tresult.noThemes = true;\n\t\t} else if (arg === \"--no-context-files\" || arg === \"-nc\") {\n\t\t\tresult.noContextFiles = true;\n\t\t} else if (arg === \"--autonomous\") {\n\t\t\tresult.autonomous = true;\n\t\t} else if (arg === \"--autonomous-gate\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGates = result.autonomousGates ?? [];\n\t\t\t\tresult.autonomousGates.push(args[++i]);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-gate-retries\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGateRetries = parsePositiveInt(args[++i], \"--autonomous-gate-retries\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-gate-timeout-ms\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousGateTimeoutMs = parsePositiveInt(args[++i], \"--autonomous-gate-timeout-ms\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-continuations\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxContinuations = parsePositiveInt(args[++i], \"--autonomous-max-continuations\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-turns\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxTurns = parsePositiveInt(args[++i], \"--autonomous-max-turns\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-max-tokens\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousMaxTokens = parsePositiveInt(args[++i], \"--autonomous-max-tokens\", result);\n\t\t\t}\n\t\t} else if (arg === \"--autonomous-timeout-ms\") {\n\t\t\tresult.autonomous = true;\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.autonomousTimeoutMs = parsePositiveInt(args[++i], \"--autonomous-timeout-ms\", result);\n\t\t\t}\n\t\t} else if (arg === \"--goal\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tconst value = args[++i];\n\t\t\t\tif (!value.trim()) {\n\t\t\t\t\tresult.diagnostics.push({ type: \"error\", message: \"--goal requires a non-empty objective\" });\n\t\t\t\t} else {\n\t\t\t\t\tresult.goal = value;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--goal-token-budget\") {\n\t\t\tif (hasRequiredOptionValue(args, i, arg, result)) {\n\t\t\t\tresult.goalTokenBudget = parsePositiveInt(args[++i], \"--goal-token-budget\", result);\n\t\t\t}\n\t\t} else if (arg === \"--list-models\") {\n\t\t\tconst hasSearch = i + 1 < args.length && !args[i + 1].startsWith(\"-\") && !args[i + 1].startsWith(\"@\");\n\t\t\tif (!internalRuntimeCommand) {\n\t\t\t\tresult.diagnostics.push({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `--list-models was removed. Use \"${APP_NAME} model list [search]\".`,\n\t\t\t\t});\n\t\t\t\tif (hasSearch) i++;\n\t\t\t} else if (hasSearch) {\n\t\t\t\tresult.listModels = args[++i];\n\t\t\t} else {\n\t\t\t\tresult.listModels = true;\n\t\t\t}\n\t\t} else if (arg.startsWith(\"--list-models=\")) {\n\t\t\tresult.diagnostics.push({\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `--list-models was removed. Use \"${APP_NAME} model list [search]\".`,\n\t\t\t});\n\t\t} else if (arg === \"--verbose\") {\n\t\t\tresult.verbose = true;\n\t\t} else if (arg === \"--offline\") {\n\t\t\tresult.offline = true;\n\t\t} else if (arg.startsWith(\"@\")) {\n\t\t\tresult.fileArgs.push(arg.slice(1)); // Remove @ prefix\n\t\t} else if (arg.startsWith(\"--\")) {\n\t\t\tconst eqIndex = arg.indexOf(\"=\");\n\t\t\tif (eqIndex !== -1) {\n\t\t\t\tresult.unknownFlags.set(arg.slice(2, eqIndex), arg.slice(eqIndex + 1));\n\t\t\t} else {\n\t\t\t\tconst flagName = arg.slice(2);\n\t\t\t\tconst next = args[i + 1];\n\t\t\t\tif (next !== undefined && !next.startsWith(\"-\") && !next.startsWith(\"@\")) {\n\t\t\t\t\tresult.unknownFlags.set(flagName, next);\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.unknownFlags.set(flagName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg.startsWith(\"-\") && !arg.startsWith(\"--\")) {\n\t\t\tresult.diagnostics.push({ type: \"error\", message: `Unknown option: ${arg}` });\n\t\t} else if (!arg.startsWith(\"-\")) {\n\t\t\tresult.messages.push(arg);\n\t\t}\n\t}\n\n\tif (result.goalTokenBudget !== undefined && !result.goal) {\n\t\tresult.diagnostics.push({\n\t\t\ttype: \"error\",\n\t\t\tmessage: \"--goal-token-budget requires --goal\",\n\t\t});\n\t}\n\n\tif (\n\t\tresult.mode === \"rpc\" &&\n\t\t!result.help &&\n\t\t!result.version &&\n\t\tresult.rpcProtocolVersion !== DAEMON_PROTOCOL_VERSION\n\t) {\n\t\tresult.diagnostics.push({\n\t\t\ttype: \"error\",\n\t\t\tmessage: `RPC mode requires --rpc-protocol-version ${DAEMON_PROTOCOL_VERSION}; the client must handle refusal-only agent_end as failed completion`,\n\t\t});\n\t}\n\n\treturn result;\n}\n\nfunction hasRequiredOptionValue(args: string[], index: number, flag: string, result: Args): boolean {\n\tconst next = args[index + 1];\n\t// Keep the standalone end-of-options delimiter for the main loop in every case.\n\tconst valueMayStartWithDash = FREEFORM_VALUE_FLAGS.has(flag);\n\tconst valueIsArbitraryPromptText = PROMPT_VALUE_FLAGS.has(flag);\n\tif (\n\t\tnext === undefined ||\n\t\tnext === \"--\" ||\n\t\t(!valueIsArbitraryPromptText && next.startsWith(valueMayStartWithDash ? \"--\" : \"-\"))\n\t) {\n\t\tresult.diagnostics.push({ type: \"error\", message: `${flag} requires a value` });\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction parsePositiveInt(value: string, flag: string, result: Args): number | undefined {\n\tconst parsed = Number(value);\n\tif (!Number.isInteger(parsed) || parsed <= 0) {\n\t\tresult.diagnostics.push({ type: \"error\", message: `${flag} must be a positive integer` });\n\t\treturn undefined;\n\t}\n\treturn parsed;\n}\n"]}
|
package/dist/cli/daemon-ps.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type DaemonRuntimeIdentity } from "../modes/daemon/daemon-protocol.js";
|
|
2
2
|
import { type ProductDiagnostics } from "./product-doctor.js";
|
|
3
3
|
/**
|
|
4
|
-
* `daemon ps` discovers
|
|
4
|
+
* `daemon ps` discovers base-context daemons in this state root, not just the
|
|
5
5
|
* one on a single socket. Discovery has two sources merged by socket path:
|
|
6
6
|
*
|
|
7
7
|
* 1. The OS list of listening unix sockets owned by a base-context process
|
|
@@ -9,7 +9,8 @@ import { type ProductDiagnostics } from "./product-doctor.js";
|
|
|
9
9
|
* APP_NAME and carry nothing useful in argv, so the socket→pid mapping the
|
|
10
10
|
* kernel keeps is the only reliable way to find daemons on arbitrary
|
|
11
11
|
* `--daemon-socket` paths. This is the same data as `ss -lxp | grep
|
|
12
|
-
* base-context`,
|
|
12
|
+
* base-context`, parsed and filtered to this root before any listing or
|
|
13
|
+
* cleanup. Other agent directories must not become shutdown targets.
|
|
13
14
|
* 2. A sweep of the default socket dir, which catches orphaned socket *files*
|
|
14
15
|
* left behind by daemons that are no longer running.
|
|
15
16
|
*
|
|
@@ -59,7 +60,7 @@ interface ProbeResult {
|
|
|
59
60
|
}
|
|
60
61
|
export declare function probeDaemon(socketPath: string): Promise<ProbeResult>;
|
|
61
62
|
export declare function verifyHelloSupervisorPid(pid: number | undefined, expectedProcessStartId: string | undefined): number | undefined;
|
|
62
|
-
/** Discover
|
|
63
|
+
/** Discover daemons in this state root and probe each for version + session count. */
|
|
63
64
|
export declare function discoverDaemons(): Promise<DaemonInfo[]>;
|
|
64
65
|
export declare function sortDaemons(infos: DaemonInfo[]): DaemonInfo[];
|
|
65
66
|
export declare function runPs(json: boolean, report?: ProductDiagnostics): Promise<void>;
|