@sayknow-cli/coding-agent 0.3.12 → 0.3.15
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/dist/types/autoresearch/tools/init-experiment.d.ts +1 -1
- package/dist/types/autoresearch/tools/log-experiment.d.ts +2 -2
- package/dist/types/cli/classify-install-target.d.ts +0 -10
- package/dist/types/cli/daemon-cli.d.ts +2 -0
- package/dist/types/cli/initial-message.d.ts +1 -1
- package/dist/types/cli/malloc-env-guard.d.ts +65 -0
- package/dist/types/cli/malloc-env-guard.test.d.ts +1 -0
- package/dist/types/cli/notify-cli.d.ts +3 -1
- package/dist/types/cli/session-picker.d.ts +4 -3
- package/dist/types/cli/update-cli.d.ts +22 -3
- package/dist/types/cli.d.ts +5 -0
- package/dist/types/commands/daemon.d.ts +6 -2
- package/dist/types/commands/launch.d.ts +1 -0
- package/dist/types/commands/notify.d.ts +6 -0
- package/dist/types/commands/web-search.d.ts +1 -1
- package/dist/types/commit/agentic/tools/propose-changelog.d.ts +4 -4
- package/dist/types/commit/agentic/tools/propose-commit.d.ts +9 -9
- package/dist/types/commit/agentic/tools/schemas.d.ts +9 -9
- package/dist/types/commit/agentic/tools/split-commit.d.ts +9 -9
- package/dist/types/commit/analysis/conventional.d.ts +1 -1
- package/dist/types/commit/analysis/summary.d.ts +1 -1
- package/dist/types/commit/changelog/generate.d.ts +3 -3
- package/dist/types/commit/changelog/index.d.ts +2 -2
- package/dist/types/commit/map-reduce/map-phase.d.ts +1 -1
- package/dist/types/commit/map-reduce/reduce-phase.d.ts +1 -1
- package/dist/types/commit/shared-llm.d.ts +9 -9
- package/dist/types/config/keybindings.d.ts +134 -129
- package/dist/types/config/model-profile-activation.d.ts +1 -0
- package/dist/types/config/model-registry.d.ts +35 -35
- package/dist/types/config/models-config-schema.d.ts +111 -111
- package/dist/types/config/settings-schema.d.ts +56 -16
- package/dist/types/config/settings.d.ts +2 -0
- package/dist/types/coordinator/contract.d.ts +1 -1
- package/dist/types/coordinator-mcp/model-preset.d.ts +45 -0
- package/dist/types/coordinator-mcp/policy.d.ts +3 -0
- package/dist/types/coordinator-mcp/server.d.ts +79 -6
- package/dist/types/coordinator-mcp/session-reaper.d.ts +53 -0
- package/dist/types/daemon/control-types.d.ts +10 -0
- package/dist/types/daemon/operator-contract.d.ts +47 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.d.ts +4 -0
- package/dist/types/defaults/skc/extensions/grok-cli-vendor/src/shared/errors.d.ts +12 -12
- package/dist/types/discovery/helpers.d.ts +1 -1
- package/dist/types/discovery/substitute-plugin-root.d.ts +0 -4
- package/dist/types/edit/modes/patch.d.ts +2 -2
- package/dist/types/extensibility/extensions/types.d.ts +3 -1
- package/dist/types/goals/tools/goal-tool.d.ts +6 -6
- package/dist/types/i18n/messages/en.d.ts +8 -8
- package/dist/types/internal-urls/local-protocol.d.ts +13 -9
- package/dist/types/lsp/index.d.ts +9 -9
- package/dist/types/lsp/types.d.ts +9 -9
- package/dist/types/main.d.ts +66 -2
- package/dist/types/modes/acp/acp-agent.d.ts +19 -2
- package/dist/types/modes/acp/acp-mode.d.ts +12 -0
- package/dist/types/modes/components/assistant-message.d.ts +1 -1
- package/dist/types/modes/components/custom-editor.d.ts +2 -0
- package/dist/types/modes/components/hook-selector.d.ts +5 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +32 -0
- package/dist/types/modes/components/pet-selector.d.ts +11 -0
- package/dist/types/modes/components/sayknow-pet-widget.d.ts +59 -0
- package/dist/types/modes/components/session-selector.d.ts +22 -9
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/status-line/types.d.ts +1 -1
- package/dist/types/modes/components/status-line.d.ts +0 -10
- package/dist/types/modes/components/tool-execution.d.ts +1 -0
- package/dist/types/modes/components/user-message.d.ts +2 -1
- package/dist/types/modes/controllers/event-controller.d.ts +4 -0
- package/dist/types/modes/controllers/selector-controller.d.ts +1 -0
- package/dist/types/modes/interactive-mode.d.ts +24 -2
- package/dist/types/modes/irc-observation-ledger.d.ts +22 -0
- package/dist/types/modes/print-mode.d.ts +3 -4
- package/dist/types/modes/rpc/rpc-client.d.ts +7 -1
- package/dist/types/modes/rpc/rpc-mode.d.ts +2 -1
- package/dist/types/modes/rpc/rpc-types.d.ts +17 -1
- package/dist/types/modes/shared/agent-wire/deep-interview-gate.d.ts +8 -0
- package/dist/types/modes/shared/agent-wire/unattended-run-controller.d.ts +5 -0
- package/dist/types/modes/shared/agent-wire/unattended-session.d.ts +45 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +42 -2
- package/dist/types/modes/theme/defaults/index.d.ts +568 -568
- package/dist/types/modes/types.d.ts +28 -2
- package/dist/types/modes/utils/abort-message.d.ts +1 -1
- package/dist/types/modes/utils/context-usage.d.ts +4 -19
- package/dist/types/modes/utils/irc-message.d.ts +38 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +13 -4
- package/dist/types/notifications/config.d.ts +34 -0
- package/dist/types/notifications/daemon-paths.d.ts +7 -0
- package/dist/types/notifications/index.d.ts +27 -0
- package/dist/types/notifications/lifecycle-control-runtime.d.ts +12 -4
- package/dist/types/notifications/notification-service.d.ts +144 -0
- package/dist/types/notifications/rate-limit-pool.d.ts +27 -9
- package/dist/types/notifications/telegram-daemon-control.d.ts +6 -0
- package/dist/types/notifications/telegram-daemon.d.ts +130 -3
- package/dist/types/notifications/telegram-reference.d.ts +19 -2
- package/dist/types/notifications/topic-registry.d.ts +24 -4
- package/dist/types/registry/agent-registry.d.ts +2 -0
- package/dist/types/rlm/index.d.ts +1 -1
- package/dist/types/sdk.d.ts +2 -0
- package/dist/types/secrets/obfuscator.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +40 -3
- package/dist/types/session/cache-economics.d.ts +79 -0
- package/dist/types/session/context-estimation.d.ts +31 -0
- package/dist/types/session/provider-safety-stop.d.ts +5 -0
- package/dist/types/session/session-manager.d.ts +124 -4
- package/dist/types/session/session-storage.d.ts +155 -13
- package/dist/types/setup/credential-auto-import.d.ts +2 -2
- package/dist/types/skc-runtime/session-state-sidecar.d.ts +34 -3
- package/dist/types/skc-runtime/state-schema.d.ts +19 -19
- package/dist/types/skc-runtime/tmux-common.d.ts +6 -0
- package/dist/types/skc-runtime/tmux-owner-isolation-cli.d.ts +5 -0
- package/dist/types/skc-runtime/tmux-owner-isolation.d.ts +309 -0
- package/dist/types/skc-runtime/tmux-sessions.d.ts +49 -17
- package/dist/types/task/agents.d.ts +2 -2
- package/dist/types/task/executor.d.ts +3 -0
- package/dist/types/task/receipt.d.ts +3 -1
- package/dist/types/task/types.d.ts +35 -27
- package/dist/types/tools/ask-answer-registry.d.ts +5 -0
- package/dist/types/tools/bash.d.ts +1 -1
- package/dist/types/tools/browser/tab-supervisor.d.ts +6 -0
- package/dist/types/tools/browser.d.ts +28 -28
- package/dist/types/tools/computer.d.ts +20 -20
- package/dist/types/tools/cron.d.ts +2 -2
- package/dist/types/tools/debug.d.ts +40 -40
- package/dist/types/tools/gh.d.ts +10 -10
- package/dist/types/tools/image-gen.d.ts +2 -2
- package/dist/types/tools/index.d.ts +58 -6
- package/dist/types/tools/monitor.d.ts +6 -6
- package/dist/types/tools/skill-discovery.d.ts +4 -4
- package/dist/types/tools/subagent.d.ts +12 -12
- package/dist/types/tools/telegram-send.d.ts +7 -0
- package/dist/types/tools/todo-write.d.ts +8 -8
- package/dist/types/utils/external-editor.d.ts +2 -0
- package/dist/types/web/insane/bridge.d.ts +9 -9
- package/dist/types/web/search/index.d.ts +4 -4
- package/package.json +8 -8
- package/scripts/g004-tmux-smoke.ts +196 -36
- package/src/cli/daemon-cli.ts +19 -29
- package/src/cli/malloc-env-guard.test.ts +104 -0
- package/src/cli/malloc-env-guard.ts +149 -0
- package/src/cli/notify-cli.ts +78 -14
- package/src/cli/session-picker.ts +23 -40
- package/src/cli/update-cli.ts +56 -37
- package/src/cli.ts +51 -10
- package/src/commands/daemon.ts +19 -5
- package/src/commands/harness.ts +515 -47
- package/src/commands/launch.ts +11 -3
- package/src/commands/notify.ts +5 -1
- package/src/commands/session.ts +6 -1
- package/src/config/keybindings.ts +5 -0
- package/src/config/model-profile-activation.ts +1 -1
- package/src/config/model-profiles.ts +14 -14
- package/src/config/settings-schema.ts +41 -1
- package/src/config/settings.ts +96 -45
- package/src/coordinator/contract.ts +1 -0
- package/src/coordinator-mcp/model-preset.ts +100 -0
- package/src/coordinator-mcp/policy.ts +30 -0
- package/src/coordinator-mcp/server.ts +2958 -430
- package/src/coordinator-mcp/session-reaper.ts +129 -0
- package/src/daemon/control-types.ts +11 -0
- package/src/daemon/operator-contract.ts +121 -0
- package/src/defaults/skc/extensions/grok-cli-vendor/src/models/catalog.ts +57 -17
- package/src/defaults/skc/extensions/grok-cli-vendor/src/payload/sanitize.ts +15 -2
- package/src/defaults/skc/extensions/grok-cli-vendor/src/provider/register.ts +5 -1
- package/src/extensibility/extensions/runner.ts +1 -1
- package/src/extensibility/extensions/types.ts +3 -1
- package/src/internal-urls/docs-index.generated.ts +10 -9
- package/src/internal-urls/local-protocol.ts +29 -10
- package/src/main.ts +301 -80
- package/src/modes/acp/acp-agent.ts +730 -100
- package/src/modes/acp/acp-mode.ts +29 -2
- package/src/modes/components/assistant-message.ts +32 -3
- package/src/modes/components/bash-execution.ts +43 -13
- package/src/modes/components/custom-editor.ts +5 -0
- package/src/modes/components/footer.ts +3 -3
- package/src/modes/components/hook-selector.ts +12 -0
- package/src/modes/components/irc-sidebar.ts +206 -0
- package/src/modes/components/pet-selector.ts +55 -0
- package/src/modes/components/sayknow-pet-widget.ts +360 -0
- package/src/modes/components/session-selector.ts +222 -221
- package/src/modes/components/settings-selector.ts +10 -0
- package/src/modes/components/status-line/segments.ts +14 -7
- package/src/modes/components/status-line/types.ts +1 -1
- package/src/modes/components/status-line.ts +4 -171
- package/src/modes/components/tool-execution.ts +47 -6
- package/src/modes/components/user-message.ts +26 -9
- package/src/modes/controllers/command-controller.ts +28 -2
- package/src/modes/controllers/event-controller.ts +159 -36
- package/src/modes/controllers/extension-ui-controller.ts +37 -18
- package/src/modes/controllers/input-controller.ts +8 -2
- package/src/modes/controllers/selector-controller.ts +62 -15
- package/src/modes/interactive-mode.ts +199 -7
- package/src/modes/irc-observation-ledger.ts +127 -0
- package/src/modes/print-mode.ts +228 -92
- package/src/modes/rpc/rpc-client.ts +58 -1
- package/src/modes/rpc/rpc-mode.ts +286 -85
- package/src/modes/rpc/rpc-types.ts +15 -1
- package/src/modes/shared/agent-wire/command-dispatch.ts +33 -1
- package/src/modes/shared/agent-wire/command-validation.ts +10 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +45 -2
- package/src/modes/shared/agent-wire/scopes.ts +1 -0
- package/src/modes/shared/agent-wire/unattended-session.ts +288 -1
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +130 -20
- package/src/modes/types.ts +34 -2
- package/src/modes/utils/context-usage.ts +56 -92
- package/src/modes/utils/hotkeys-markdown.ts +1 -0
- package/src/modes/utils/irc-message.ts +138 -0
- package/src/modes/utils/ui-helpers.ts +216 -50
- package/src/notifications/config.ts +44 -0
- package/src/notifications/daemon-paths.ts +8 -0
- package/src/notifications/index.ts +535 -75
- package/src/notifications/lifecycle-control-runtime.ts +930 -77
- package/src/notifications/notification-service.ts +710 -0
- package/src/notifications/rate-limit-pool.ts +46 -12
- package/src/notifications/telegram-daemon-control.ts +27 -2
- package/src/notifications/telegram-daemon.ts +635 -94
- package/src/notifications/telegram-reference.ts +73 -13
- package/src/notifications/topic-registry.ts +86 -9
- package/src/prompts/system/irc-peer-roster.md +1 -0
- package/src/prompts/system/subagent-system-prompt.md +1 -0
- package/src/prompts/system/system-prompt.md +1 -0
- package/src/prompts/tools/irc.md +1 -1
- package/src/registry/agent-registry.ts +3 -0
- package/src/sdk.ts +52 -1
- package/src/secrets/obfuscator.ts +4 -2
- package/src/session/agent-session.ts +670 -217
- package/src/session/cache-economics.ts +275 -0
- package/src/session/context-estimation.ts +91 -0
- package/src/session/provider-safety-stop.ts +9 -0
- package/src/session/session-dump-format.ts +6 -0
- package/src/session/session-manager.ts +809 -39
- package/src/session/session-storage.ts +582 -38
- package/src/skc-runtime/session-state-sidecar.ts +756 -135
- package/src/skc-runtime/tmux-common.ts +26 -7
- package/src/skc-runtime/tmux-gc.ts +52 -9
- package/src/skc-runtime/tmux-owner-isolation-cli.ts +185 -0
- package/src/skc-runtime/tmux-owner-isolation.ts +2060 -0
- package/src/skc-runtime/tmux-sessions.ts +871 -68
- package/src/slash-commands/builtin-registry.ts +153 -9
- package/src/slash-commands/helpers/context-report.ts +26 -4
- package/src/task/executor.ts +12 -3
- package/src/task/index.ts +8 -0
- package/src/task/receipt.ts +7 -2
- package/src/task/types.ts +26 -0
- package/src/tools/ask-answer-registry.ts +25 -0
- package/src/tools/browser/tab-supervisor.ts +63 -6
- package/src/tools/browser.ts +8 -3
- package/src/tools/index.ts +81 -6
- package/src/tools/sqlite-reader.ts +8 -4
- package/src/tui/output-block.ts +18 -6
- package/src/utils/external-editor.ts +6 -1
package/src/cli.ts
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* CLI entry point — registers all commands explicitly and delegates to the
|
|
5
5
|
* lightweight CLI runner from pi-utils.
|
|
6
6
|
*/
|
|
7
|
+
import "@sayknow-cli/utils/postmortem";
|
|
7
8
|
import { Args, type CliConfig, Command, type CommandEntry, Flags, run } from "@sayknow-cli/utils/cli";
|
|
8
9
|
import { APP_NAME, formatBunRuntimeError, MIN_BUN_VERSION, VERSION } from "@sayknow-cli/utils/dirs";
|
|
9
10
|
import { runFixtureReport } from "./cli/fixture-report";
|
|
11
|
+
import { isTmuxOwnerIsolationCliArgv, runTmuxOwnerIsolationCliFromStdin } from "./skc-runtime/tmux-owner-isolation-cli";
|
|
10
12
|
|
|
11
13
|
if (Bun.semver.order(Bun.version, MIN_BUN_VERSION) < 0) {
|
|
12
14
|
process.stderr.write(
|
|
@@ -80,9 +82,13 @@ async function installRuntimeGlobals(): Promise<void> {
|
|
|
80
82
|
const { warnIfMacOSNoFileLimitTooLow } = await import("./cli/nofile-limit");
|
|
81
83
|
warnIfMacOSNoFileLimitTooLow();
|
|
82
84
|
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
85
|
+
// Secondary in-process scrub of the macOS malloc-stack-logging vars. The real
|
|
86
|
+
// boundary is the darwin re-exec guard at the top of runCli(): Bun snapshots the
|
|
87
|
+
// spawn-default environment at startup, so deleting these here does NOT clean the
|
|
88
|
+
// env children inherit by default — it only tidies `process.env` for code that
|
|
89
|
+
// reads it directly. Kept as belt-and-braces for the rare re-exec-unavailable
|
|
90
|
+
// fallback; managed spawns already use filterProcessEnv and the native PTY lane
|
|
91
|
+
// strips them independently.
|
|
86
92
|
delete process.env.MallocStackLogging;
|
|
87
93
|
delete process.env.MallocStackLoggingNoCompact;
|
|
88
94
|
}
|
|
@@ -260,8 +266,49 @@ async function runSmokeTest(): Promise<void> {
|
|
|
260
266
|
process.stdout.write("smoke-test: ok\n");
|
|
261
267
|
}
|
|
262
268
|
|
|
269
|
+
/** Normalize the sole `skc resume` alias into the value-less launch intent. */
|
|
270
|
+
export function normalizeResumeAlias(argv: readonly string[]): string[] {
|
|
271
|
+
return argv.length === 1 && argv[0] === "resume" ? ["--resume"] : [...argv];
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/** Apply the same default-launch routing used by runCli after root fast paths. */
|
|
275
|
+
export function routeRootArgv(argv: readonly string[]): string[] {
|
|
276
|
+
const normalizedArgv = normalizeResumeAlias(argv);
|
|
277
|
+
const first = normalizedArgv[0];
|
|
278
|
+
return first === "--help" || first === "-h" || first === "--version" || first === "-v" || first === "help"
|
|
279
|
+
? normalizedArgv
|
|
280
|
+
: isSubcommand(first)
|
|
281
|
+
? normalizedArgv
|
|
282
|
+
: ["launch", ...normalizedArgv];
|
|
283
|
+
}
|
|
284
|
+
|
|
263
285
|
/** Run the CLI with the given argv (no `process.argv` prefix). */
|
|
264
286
|
export async function runCli(argv: string[]): Promise<void> {
|
|
287
|
+
// macOS malloc-env launch boundary. Re-exec once with a scrubbed environment
|
|
288
|
+
// BEFORE any fast path or subprocess spawn, so the startup env snapshot Bun hands
|
|
289
|
+
// to every child lane (Bun.spawn defaults, node:child_process, native PTY, tmux
|
|
290
|
+
// owner, plugin installs, subagents) is clean. This runs ahead of the
|
|
291
|
+
// tmux-owner-isolation and notify-daemon fast paths so those lanes execute inside
|
|
292
|
+
// the already-scrubbed process too. The cheap inline predicate keeps the common
|
|
293
|
+
// (uncontaminated / non-darwin) path free of extra module loads; the guard module
|
|
294
|
+
// (MACOS_MALLOC_ENV_VARS / SKC_MALLOC_ENV_REEXEC) loads only when a re-exec is due.
|
|
295
|
+
if (
|
|
296
|
+
process.platform === "darwin" &&
|
|
297
|
+
process.env.SKC_MALLOC_ENV_REEXEC === undefined &&
|
|
298
|
+
(process.env.MallocStackLogging !== undefined || process.env.MallocStackLoggingNoCompact !== undefined)
|
|
299
|
+
) {
|
|
300
|
+
const { reexecWithScrubbedMallocEnv } = await import("./cli/malloc-env-guard");
|
|
301
|
+
const code = await reexecWithScrubbedMallocEnv();
|
|
302
|
+
if (code !== null) {
|
|
303
|
+
process.exitCode = code;
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
// Re-exec could not be spawned; fall through and run in this process.
|
|
307
|
+
}
|
|
308
|
+
if (isTmuxOwnerIsolationCliArgv(argv)) {
|
|
309
|
+
await runTmuxOwnerIsolationCliFromStdin();
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
265
312
|
if (isNotifyDaemonInternalFastPath(argv)) {
|
|
266
313
|
await runNotifyDaemonInternalFastPath(argv);
|
|
267
314
|
return;
|
|
@@ -302,13 +349,7 @@ export async function runCli(argv: string[]): Promise<void> {
|
|
|
302
349
|
await installRuntimeGlobals();
|
|
303
350
|
// --help and --version are handled by run() directly, don't rewrite those.
|
|
304
351
|
// Everything else that isn't a known subcommand routes to "launch".
|
|
305
|
-
const
|
|
306
|
-
const runArgv =
|
|
307
|
-
first === "--help" || first === "-h" || first === "--version" || first === "-v" || first === "help"
|
|
308
|
-
? argv
|
|
309
|
-
: isSubcommand(first)
|
|
310
|
-
? argv
|
|
311
|
-
: ["launch", ...argv];
|
|
352
|
+
const runArgv = routeRootArgv(argv);
|
|
312
353
|
return run({ bin: APP_NAME, version: VERSION, argv: runArgv, commands, help: showHelp });
|
|
313
354
|
}
|
|
314
355
|
|
package/src/commands/daemon.ts
CHANGED
|
@@ -4,19 +4,32 @@
|
|
|
4
4
|
import { Args, Command, Flags } from "@sayknow-cli/utils/cli";
|
|
5
5
|
import { type DaemonCliAction, type DaemonCommandArgs, runDaemonCommand } from "../cli/daemon-cli";
|
|
6
6
|
import type { DaemonKind } from "../daemon/control-types";
|
|
7
|
+
import { DAEMON_ACTION_TOKENS, resolveDaemonAction } from "../daemon/operator-contract";
|
|
7
8
|
import { initTheme } from "../modes/theme/theme";
|
|
8
9
|
|
|
9
|
-
const ACTIONS: DaemonCliAction[] = ["list", "status", "stop", "reload"];
|
|
10
|
-
|
|
11
10
|
export default class Daemon extends Command {
|
|
12
|
-
static description =
|
|
11
|
+
static description =
|
|
12
|
+
"Manage SKC background daemons. Routine use: `skc daemon status` to check, `skc daemon restart` to reload (spawns one if none is running). `stop`/`list` and the escalation flags below are advanced primitives.";
|
|
13
|
+
|
|
14
|
+
static examples = [
|
|
15
|
+
"# Check the daemon (concise per-daemon result)\n skc daemon status",
|
|
16
|
+
"# Reload, spawning a fresh owner if none is running\n skc daemon restart",
|
|
17
|
+
"# Full runtime detail and the roots list\n skc daemon status --verbose",
|
|
18
|
+
"# Machine-readable output for automation\n skc daemon status --json",
|
|
19
|
+
"# Stop, hard-killing an unresponsive owner\n skc daemon stop --force",
|
|
20
|
+
];
|
|
13
21
|
|
|
14
22
|
static args = {
|
|
15
|
-
action: Args.string({
|
|
23
|
+
action: Args.string({
|
|
24
|
+
description: "Daemon action (status, restart, reload, stop, list)",
|
|
25
|
+
required: false,
|
|
26
|
+
options: DAEMON_ACTION_TOKENS as string[],
|
|
27
|
+
}),
|
|
16
28
|
kind: Args.string({ description: "Daemon kind(s) to target", required: false, multiple: true }),
|
|
17
29
|
};
|
|
18
30
|
|
|
19
31
|
static flags = {
|
|
32
|
+
verbose: Flags.boolean({ char: "v", description: "Show runtime detail and the full roots list" }),
|
|
20
33
|
all: Flags.boolean({ description: "Target all registered daemon kinds" }),
|
|
21
34
|
json: Flags.boolean({ description: "Emit JSON output" }),
|
|
22
35
|
force: Flags.boolean({ description: "Allow hard-kill escalation when graceful stop times out" }),
|
|
@@ -27,7 +40,7 @@ export default class Daemon extends Command {
|
|
|
27
40
|
|
|
28
41
|
async run(): Promise<void> {
|
|
29
42
|
const { args, flags } = await this.parse(Daemon);
|
|
30
|
-
const action = (args.action ?? "status") as DaemonCliAction;
|
|
43
|
+
const action = (resolveDaemonAction(args.action) ?? "status") as DaemonCliAction;
|
|
31
44
|
const kinds = (Array.isArray(args.kind) ? args.kind : args.kind ? [args.kind] : []) as DaemonKind[];
|
|
32
45
|
const flagRec = flags as Record<string, unknown>;
|
|
33
46
|
const cmd: DaemonCommandArgs = {
|
|
@@ -36,6 +49,7 @@ export default class Daemon extends Command {
|
|
|
36
49
|
all: Boolean(flags.all),
|
|
37
50
|
json: Boolean(flags.json),
|
|
38
51
|
force: Boolean(flags.force),
|
|
52
|
+
verbose: Boolean(flags.verbose),
|
|
39
53
|
gracefulTimeoutMs: flagRec["graceful-timeout-ms"] as number | undefined,
|
|
40
54
|
killTimeoutMs: flagRec["kill-timeout-ms"] as number | undefined,
|
|
41
55
|
spawnIfStopped: flagRec["spawn-if-stopped"] as boolean | undefined,
|