@stigmer/cli 3.0.8
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/LICENSE +190 -0
- package/README.md +42 -0
- package/auth/auth0.d.ts +19 -0
- package/auth/auth0.d.ts.map +1 -0
- package/auth/auth0.js +39 -0
- package/auth/auth0.js.map +1 -0
- package/auth/callback-server.d.ts +18 -0
- package/auth/callback-server.d.ts.map +1 -0
- package/auth/callback-server.js +77 -0
- package/auth/callback-server.js.map +1 -0
- package/auth/index.d.ts +5 -0
- package/auth/index.d.ts.map +1 -0
- package/auth/index.js +6 -0
- package/auth/index.js.map +1 -0
- package/auth/login.d.ts +2 -0
- package/auth/login.d.ts.map +1 -0
- package/auth/login.js +56 -0
- package/auth/login.js.map +1 -0
- package/auth/pages.d.ts +7 -0
- package/auth/pages.d.ts.map +1 -0
- package/auth/pages.js +21 -0
- package/auth/pages.js.map +1 -0
- package/auth/pkce.d.ts +7 -0
- package/auth/pkce.d.ts.map +1 -0
- package/auth/pkce.js +22 -0
- package/auth/pkce.js.map +1 -0
- package/auth/token.d.ts +33 -0
- package/auth/token.d.ts.map +1 -0
- package/auth/token.js +111 -0
- package/auth/token.js.map +1 -0
- package/backend.d.ts +5 -0
- package/backend.d.ts.map +1 -0
- package/backend.js +14 -0
- package/backend.js.map +1 -0
- package/cli/stigmer.d.ts +3 -0
- package/cli/stigmer.d.ts.map +1 -0
- package/cli/stigmer.js +14 -0
- package/cli/stigmer.js.map +1 -0
- package/client/client.d.ts +25 -0
- package/client/client.d.ts.map +1 -0
- package/client/client.js +55 -0
- package/client/client.js.map +1 -0
- package/client/index.d.ts +2 -0
- package/client/index.d.ts.map +1 -0
- package/client/index.js +3 -0
- package/client/index.js.map +1 -0
- package/commands/agent-exec-flags.d.ts +30 -0
- package/commands/agent-exec-flags.d.ts.map +1 -0
- package/commands/agent-exec-flags.js +52 -0
- package/commands/agent-exec-flags.js.map +1 -0
- package/commands/apikey/duration.d.ts +2 -0
- package/commands/apikey/duration.d.ts.map +1 -0
- package/commands/apikey/duration.js +30 -0
- package/commands/apikey/duration.js.map +1 -0
- package/commands/apikey/index.d.ts +3 -0
- package/commands/apikey/index.d.ts.map +1 -0
- package/commands/apikey/index.js +118 -0
- package/commands/apikey/index.js.map +1 -0
- package/commands/apply.d.ts +3 -0
- package/commands/apply.d.ts.map +1 -0
- package/commands/apply.js +155 -0
- package/commands/apply.js.map +1 -0
- package/commands/auth/index.d.ts +3 -0
- package/commands/auth/index.d.ts.map +1 -0
- package/commands/auth/index.js +76 -0
- package/commands/auth/index.js.map +1 -0
- package/commands/completion.d.ts +3 -0
- package/commands/completion.d.ts.map +1 -0
- package/commands/completion.js +82 -0
- package/commands/completion.js.map +1 -0
- package/commands/config/backend.d.ts +3 -0
- package/commands/config/backend.d.ts.map +1 -0
- package/commands/config/backend.js +49 -0
- package/commands/config/backend.js.map +1 -0
- package/commands/config/context.d.ts +3 -0
- package/commands/config/context.d.ts.map +1 -0
- package/commands/config/context.js +23 -0
- package/commands/config/context.js.map +1 -0
- package/commands/config/index.d.ts +3 -0
- package/commands/config/index.d.ts.map +1 -0
- package/commands/config/index.js +13 -0
- package/commands/config/index.js.map +1 -0
- package/commands/config/kv.d.ts +3 -0
- package/commands/config/kv.d.ts.map +1 -0
- package/commands/config/kv.js +39 -0
- package/commands/config/kv.js.map +1 -0
- package/commands/connect.d.ts +3 -0
- package/commands/connect.d.ts.map +1 -0
- package/commands/connect.js +56 -0
- package/commands/connect.js.map +1 -0
- package/commands/delete.d.ts +3 -0
- package/commands/delete.d.ts.map +1 -0
- package/commands/delete.js +41 -0
- package/commands/delete.js.map +1 -0
- package/commands/diff.d.ts +3 -0
- package/commands/diff.d.ts.map +1 -0
- package/commands/diff.js +87 -0
- package/commands/diff.js.map +1 -0
- package/commands/down.d.ts +3 -0
- package/commands/down.d.ts.map +1 -0
- package/commands/down.js +23 -0
- package/commands/down.js.map +1 -0
- package/commands/download.d.ts +3 -0
- package/commands/download.d.ts.map +1 -0
- package/commands/download.js +46 -0
- package/commands/download.js.map +1 -0
- package/commands/draft.d.ts +3 -0
- package/commands/draft.d.ts.map +1 -0
- package/commands/draft.js +97 -0
- package/commands/draft.js.map +1 -0
- package/commands/execution/approve.d.ts +3 -0
- package/commands/execution/approve.d.ts.map +1 -0
- package/commands/execution/approve.js +60 -0
- package/commands/execution/approve.js.map +1 -0
- package/commands/execution/control.d.ts +3 -0
- package/commands/execution/control.d.ts.map +1 -0
- package/commands/execution/control.js +57 -0
- package/commands/execution/control.js.map +1 -0
- package/commands/execution/index.d.ts +3 -0
- package/commands/execution/index.d.ts.map +1 -0
- package/commands/execution/index.js +21 -0
- package/commands/execution/index.js.map +1 -0
- package/commands/execution/logs.d.ts +3 -0
- package/commands/execution/logs.d.ts.map +1 -0
- package/commands/execution/logs.js +34 -0
- package/commands/execution/logs.js.map +1 -0
- package/commands/execution/trace.d.ts +3 -0
- package/commands/execution/trace.d.ts.map +1 -0
- package/commands/execution/trace.js +24 -0
- package/commands/execution/trace.js.map +1 -0
- package/commands/get.d.ts +3 -0
- package/commands/get.d.ts.map +1 -0
- package/commands/get.js +81 -0
- package/commands/get.js.map +1 -0
- package/commands/internal-daemon.d.ts +3 -0
- package/commands/internal-daemon.d.ts.map +1 -0
- package/commands/internal-daemon.js +22 -0
- package/commands/internal-daemon.js.map +1 -0
- package/commands/list.d.ts +3 -0
- package/commands/list.d.ts.map +1 -0
- package/commands/list.js +117 -0
- package/commands/list.js.map +1 -0
- package/commands/logs.d.ts +3 -0
- package/commands/logs.d.ts.map +1 -0
- package/commands/logs.js +59 -0
- package/commands/logs.js.map +1 -0
- package/commands/mcp-server.d.ts +22 -0
- package/commands/mcp-server.d.ts.map +1 -0
- package/commands/mcp-server.js +104 -0
- package/commands/mcp-server.js.map +1 -0
- package/commands/push.d.ts +3 -0
- package/commands/push.d.ts.map +1 -0
- package/commands/push.js +150 -0
- package/commands/push.js.map +1 -0
- package/commands/reset.d.ts +3 -0
- package/commands/reset.d.ts.map +1 -0
- package/commands/reset.js +45 -0
- package/commands/reset.js.map +1 -0
- package/commands/resume.d.ts +3 -0
- package/commands/resume.d.ts.map +1 -0
- package/commands/resume.js +87 -0
- package/commands/resume.js.map +1 -0
- package/commands/run.d.ts +3 -0
- package/commands/run.d.ts.map +1 -0
- package/commands/run.js +193 -0
- package/commands/run.js.map +1 -0
- package/commands/search.d.ts +3 -0
- package/commands/search.d.ts.map +1 -0
- package/commands/search.js +73 -0
- package/commands/search.js.map +1 -0
- package/commands/seedpack.d.ts +3 -0
- package/commands/seedpack.d.ts.map +1 -0
- package/commands/seedpack.js +76 -0
- package/commands/seedpack.js.map +1 -0
- package/commands/setup.d.ts +3 -0
- package/commands/setup.d.ts.map +1 -0
- package/commands/setup.js +57 -0
- package/commands/setup.js.map +1 -0
- package/commands/shared.d.ts +15 -0
- package/commands/shared.d.ts.map +1 -0
- package/commands/shared.js +34 -0
- package/commands/shared.js.map +1 -0
- package/commands/status.d.ts +3 -0
- package/commands/status.d.ts.map +1 -0
- package/commands/status.js +18 -0
- package/commands/status.js.map +1 -0
- package/commands/tag.d.ts +3 -0
- package/commands/tag.d.ts.map +1 -0
- package/commands/tag.js +24 -0
- package/commands/tag.js.map +1 -0
- package/commands/up.d.ts +3 -0
- package/commands/up.d.ts.map +1 -0
- package/commands/up.js +39 -0
- package/commands/up.js.map +1 -0
- package/commands/usage.d.ts +3 -0
- package/commands/usage.d.ts.map +1 -0
- package/commands/usage.js +56 -0
- package/commands/usage.js.map +1 -0
- package/commands/validate.d.ts +3 -0
- package/commands/validate.d.ts.map +1 -0
- package/commands/validate.js +64 -0
- package/commands/validate.js.map +1 -0
- package/commands/version.d.ts +3 -0
- package/commands/version.d.ts.map +1 -0
- package/commands/version.js +11 -0
- package/commands/version.js.map +1 -0
- package/config/config.d.ts +39 -0
- package/config/config.d.ts.map +1 -0
- package/config/config.js +85 -0
- package/config/config.js.map +1 -0
- package/config/index.d.ts +5 -0
- package/config/index.d.ts.map +1 -0
- package/config/index.js +6 -0
- package/config/index.js.map +1 -0
- package/config/keys.d.ts +6 -0
- package/config/keys.d.ts.map +1 -0
- package/config/keys.js +53 -0
- package/config/keys.js.map +1 -0
- package/config/paths.d.ts +10 -0
- package/config/paths.d.ts.map +1 -0
- package/config/paths.js +21 -0
- package/config/paths.js.map +1 -0
- package/config/resolve.d.ts +33 -0
- package/config/resolve.d.ts.map +1 -0
- package/config/resolve.js +77 -0
- package/config/resolve.js.map +1 -0
- package/errors/classify.d.ts +17 -0
- package/errors/classify.d.ts.map +1 -0
- package/errors/classify.js +158 -0
- package/errors/classify.js.map +1 -0
- package/errors/cli-exit-error.d.ts +6 -0
- package/errors/cli-exit-error.d.ts.map +1 -0
- package/errors/cli-exit-error.js +15 -0
- package/errors/cli-exit-error.js.map +1 -0
- package/errors/exit-codes.d.ts +10 -0
- package/errors/exit-codes.d.ts.map +1 -0
- package/errors/exit-codes.js +12 -0
- package/errors/exit-codes.js.map +1 -0
- package/errors/handle.d.ts +14 -0
- package/errors/handle.d.ts.map +1 -0
- package/errors/handle.js +46 -0
- package/errors/handle.js.map +1 -0
- package/errors/index.d.ts +6 -0
- package/errors/index.d.ts.map +1 -0
- package/errors/index.js +7 -0
- package/errors/index.js.map +1 -0
- package/errors/usage-error.d.ts +5 -0
- package/errors/usage-error.d.ts.map +1 -0
- package/errors/usage-error.js +13 -0
- package/errors/usage-error.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +8 -0
- package/index.js.map +1 -0
- package/local/artifact.d.ts +38 -0
- package/local/artifact.d.ts.map +1 -0
- package/local/artifact.js +133 -0
- package/local/artifact.js.map +1 -0
- package/local/constants.d.ts +36 -0
- package/local/constants.d.ts.map +1 -0
- package/local/constants.js +44 -0
- package/local/constants.js.map +1 -0
- package/local/daemon/components.d.ts +20 -0
- package/local/daemon/components.d.ts.map +1 -0
- package/local/daemon/components.js +105 -0
- package/local/daemon/components.js.map +1 -0
- package/local/daemon/env.d.ts +55 -0
- package/local/daemon/env.d.ts.map +1 -0
- package/local/daemon/env.js +82 -0
- package/local/daemon/env.js.map +1 -0
- package/local/daemon/host.d.ts +7 -0
- package/local/daemon/host.d.ts.map +1 -0
- package/local/daemon/host.js +74 -0
- package/local/daemon/host.js.map +1 -0
- package/local/daemon/index.d.ts +8 -0
- package/local/daemon/index.d.ts.map +1 -0
- package/local/daemon/index.js +8 -0
- package/local/daemon/index.js.map +1 -0
- package/local/daemon/launch.d.ts +11 -0
- package/local/daemon/launch.d.ts.map +1 -0
- package/local/daemon/launch.js +219 -0
- package/local/daemon/launch.js.map +1 -0
- package/local/daemon/process.d.ts +28 -0
- package/local/daemon/process.d.ts.map +1 -0
- package/local/daemon/process.js +149 -0
- package/local/daemon/process.js.map +1 -0
- package/local/daemon/supervisor.d.ts +56 -0
- package/local/daemon/supervisor.d.ts.map +1 -0
- package/local/daemon/supervisor.js +211 -0
- package/local/daemon/supervisor.js.map +1 -0
- package/local/daemon/types.d.ts +63 -0
- package/local/daemon/types.d.ts.map +1 -0
- package/local/daemon/types.js +9 -0
- package/local/daemon/types.js.map +1 -0
- package/local/llm-config.d.ts +30 -0
- package/local/llm-config.d.ts.map +1 -0
- package/local/llm-config.js +93 -0
- package/local/llm-config.js.map +1 -0
- package/local/logs/tail.d.ts +19 -0
- package/local/logs/tail.d.ts.map +1 -0
- package/local/logs/tail.js +86 -0
- package/local/logs/tail.js.map +1 -0
- package/local/logs/view.d.ts +20 -0
- package/local/logs/view.d.ts.map +1 -0
- package/local/logs/view.js +50 -0
- package/local/logs/view.js.map +1 -0
- package/local/net/tcp.d.ts +23 -0
- package/local/net/tcp.d.ts.map +1 -0
- package/local/net/tcp.js +47 -0
- package/local/net/tcp.js.map +1 -0
- package/local/paths.d.ts +26 -0
- package/local/paths.d.ts.map +1 -0
- package/local/paths.js +57 -0
- package/local/paths.js.map +1 -0
- package/local/reset.d.ts +14 -0
- package/local/reset.d.ts.map +1 -0
- package/local/reset.js +57 -0
- package/local/reset.js.map +1 -0
- package/local/runtime/index.d.ts +5 -0
- package/local/runtime/index.d.ts.map +1 -0
- package/local/runtime/index.js +6 -0
- package/local/runtime/index.js.map +1 -0
- package/local/runtime/node.d.ts +8 -0
- package/local/runtime/node.d.ts.map +1 -0
- package/local/runtime/node.js +59 -0
- package/local/runtime/node.js.map +1 -0
- package/local/runtime/runner.d.ts +40 -0
- package/local/runtime/runner.d.ts.map +1 -0
- package/local/runtime/runner.js +154 -0
- package/local/runtime/runner.js.map +1 -0
- package/local/runtime/server.d.ts +39 -0
- package/local/runtime/server.d.ts.map +1 -0
- package/local/runtime/server.js +141 -0
- package/local/runtime/server.js.map +1 -0
- package/local/runtime/which.d.ts +3 -0
- package/local/runtime/which.d.ts.map +1 -0
- package/local/runtime/which.js +30 -0
- package/local/runtime/which.js.map +1 -0
- package/local/seedpack/apply.d.ts +43 -0
- package/local/seedpack/apply.d.ts.map +1 -0
- package/local/seedpack/apply.js +94 -0
- package/local/seedpack/apply.js.map +1 -0
- package/local/seedpack/content.d.ts +56 -0
- package/local/seedpack/content.d.ts.map +1 -0
- package/local/seedpack/content.js +201 -0
- package/local/seedpack/content.js.map +1 -0
- package/local/setup/prompt.d.ts +8 -0
- package/local/setup/prompt.d.ts.map +1 -0
- package/local/setup/prompt.js +63 -0
- package/local/setup/prompt.js.map +1 -0
- package/local/setup/wizard.d.ts +22 -0
- package/local/setup/wizard.d.ts.map +1 -0
- package/local/setup/wizard.js +65 -0
- package/local/setup/wizard.js.map +1 -0
- package/local/state/health-state.d.ts +26 -0
- package/local/state/health-state.d.ts.map +1 -0
- package/local/state/health-state.js +34 -0
- package/local/state/health-state.js.map +1 -0
- package/local/state/index.d.ts +7 -0
- package/local/state/index.d.ts.map +1 -0
- package/local/state/index.js +8 -0
- package/local/state/index.js.map +1 -0
- package/local/state/lock.d.ts +12 -0
- package/local/state/lock.d.ts.map +1 -0
- package/local/state/lock.js +70 -0
- package/local/state/lock.js.map +1 -0
- package/local/state/log-rotation.d.ts +17 -0
- package/local/state/log-rotation.d.ts.map +1 -0
- package/local/state/log-rotation.js +101 -0
- package/local/state/log-rotation.js.map +1 -0
- package/local/state/pidfile.d.ts +11 -0
- package/local/state/pidfile.d.ts.map +1 -0
- package/local/state/pidfile.js +35 -0
- package/local/state/pidfile.js.map +1 -0
- package/local/state/proc.d.ts +16 -0
- package/local/state/proc.d.ts.map +1 -0
- package/local/state/proc.js +69 -0
- package/local/state/proc.js.map +1 -0
- package/local/state/startup-config.d.ts +23 -0
- package/local/state/startup-config.d.ts.map +1 -0
- package/local/state/startup-config.js +33 -0
- package/local/state/startup-config.js.map +1 -0
- package/local/status.d.ts +9 -0
- package/local/status.d.ts.map +1 -0
- package/local/status.js +168 -0
- package/local/status.js.map +1 -0
- package/local/temporal/download.d.ts +20 -0
- package/local/temporal/download.d.ts.map +1 -0
- package/local/temporal/download.js +36 -0
- package/local/temporal/download.js.map +1 -0
- package/local/temporal/index.d.ts +5 -0
- package/local/temporal/index.d.ts.map +1 -0
- package/local/temporal/index.js +6 -0
- package/local/temporal/index.js.map +1 -0
- package/local/temporal/inspect.d.ts +8 -0
- package/local/temporal/inspect.d.ts.map +1 -0
- package/local/temporal/inspect.js +33 -0
- package/local/temporal/inspect.js.map +1 -0
- package/local/temporal/manager.d.ts +50 -0
- package/local/temporal/manager.d.ts.map +1 -0
- package/local/temporal/manager.js +208 -0
- package/local/temporal/manager.js.map +1 -0
- package/local/temporal/supervisor.d.ts +34 -0
- package/local/temporal/supervisor.d.ts.map +1 -0
- package/local/temporal/supervisor.js +83 -0
- package/local/temporal/supervisor.js.map +1 -0
- package/local/webconsole/index.d.ts +4 -0
- package/local/webconsole/index.d.ts.map +1 -0
- package/local/webconsole/index.js +13 -0
- package/local/webconsole/index.js.map +1 -0
- package/logger.d.ts +13 -0
- package/logger.d.ts.map +1 -0
- package/logger.js +35 -0
- package/logger.js.map +1 -0
- package/output/command-result.d.ts +47 -0
- package/output/command-result.d.ts.map +1 -0
- package/output/command-result.js +134 -0
- package/output/command-result.js.map +1 -0
- package/output/confirm.d.ts +22 -0
- package/output/confirm.d.ts.map +1 -0
- package/output/confirm.js +42 -0
- package/output/confirm.js.map +1 -0
- package/output/format.d.ts +22 -0
- package/output/format.d.ts.map +1 -0
- package/output/format.js +72 -0
- package/output/format.js.map +1 -0
- package/output/index.d.ts +7 -0
- package/output/index.d.ts.map +1 -0
- package/output/index.js +8 -0
- package/output/index.js.map +1 -0
- package/output/ndjson.d.ts +24 -0
- package/output/ndjson.d.ts.map +1 -0
- package/output/ndjson.js +38 -0
- package/output/ndjson.js.map +1 -0
- package/output/proto.d.ts +12 -0
- package/output/proto.d.ts.map +1 -0
- package/output/proto.js +34 -0
- package/output/proto.js.map +1 -0
- package/output/style.d.ts +19 -0
- package/output/style.d.ts.map +1 -0
- package/output/style.js +44 -0
- package/output/style.js.map +1 -0
- package/output/table.d.ts +5 -0
- package/output/table.d.ts.map +1 -0
- package/output/table.js +43 -0
- package/output/table.js.map +1 -0
- package/package.json +49 -0
- package/program.d.ts +3 -0
- package/program.d.ts.map +1 -0
- package/program.js +95 -0
- package/program.js.map +1 -0
- package/registry/aliases.d.ts +18 -0
- package/registry/aliases.d.ts.map +1 -0
- package/registry/aliases.js +85 -0
- package/registry/aliases.js.map +1 -0
- package/registry/index.d.ts +6 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +7 -0
- package/registry/index.js.map +1 -0
- package/registry/metadata.d.ts +12 -0
- package/registry/metadata.d.ts.map +1 -0
- package/registry/metadata.js +49 -0
- package/registry/metadata.js.map +1 -0
- package/registry/registry.d.ts +39 -0
- package/registry/registry.d.ts.map +1 -0
- package/registry/registry.js +59 -0
- package/registry/registry.js.map +1 -0
- package/registry/verb-support.d.ts +5 -0
- package/registry/verb-support.d.ts.map +1 -0
- package/registry/verb-support.js +48 -0
- package/registry/verb-support.js.map +1 -0
- package/registry/verbs.d.ts +16 -0
- package/registry/verbs.d.ts.map +1 -0
- package/registry/verbs.js +36 -0
- package/registry/verbs.js.map +1 -0
- package/resources/apply/apply.d.ts +55 -0
- package/resources/apply/apply.d.ts.map +1 -0
- package/resources/apply/apply.js +163 -0
- package/resources/apply/apply.js.map +1 -0
- package/resources/apply/declarative.d.ts +106 -0
- package/resources/apply/declarative.d.ts.map +1 -0
- package/resources/apply/declarative.js +378 -0
- package/resources/apply/declarative.js.map +1 -0
- package/resources/apply/discovery.d.ts +7 -0
- package/resources/apply/discovery.d.ts.map +1 -0
- package/resources/apply/discovery.js +47 -0
- package/resources/apply/discovery.js.map +1 -0
- package/resources/apply/handlers.d.ts +15 -0
- package/resources/apply/handlers.d.ts.map +1 -0
- package/resources/apply/handlers.js +126 -0
- package/resources/apply/handlers.js.map +1 -0
- package/resources/apply/synth/project-track.d.ts +21 -0
- package/resources/apply/synth/project-track.d.ts.map +1 -0
- package/resources/apply/synth/project-track.js +102 -0
- package/resources/apply/synth/project-track.js.map +1 -0
- package/resources/apply/synth/reader.d.ts +18 -0
- package/resources/apply/synth/reader.d.ts.map +1 -0
- package/resources/apply/synth/reader.js +55 -0
- package/resources/apply/synth/reader.js.map +1 -0
- package/resources/apply/synth/runtime.d.ts +8 -0
- package/resources/apply/synth/runtime.d.ts.map +1 -0
- package/resources/apply/synth/runtime.js +32 -0
- package/resources/apply/synth/runtime.js.map +1 -0
- package/resources/apply/synth/synthesize.d.ts +43 -0
- package/resources/apply/synth/synthesize.d.ts.map +1 -0
- package/resources/apply/synth/synthesize.js +115 -0
- package/resources/apply/synth/synthesize.js.map +1 -0
- package/resources/connect/connect.d.ts +24 -0
- package/resources/connect/connect.d.ts.map +1 -0
- package/resources/connect/connect.js +71 -0
- package/resources/connect/connect.js.map +1 -0
- package/resources/connect/discover.d.ts +5 -0
- package/resources/connect/discover.d.ts.map +1 -0
- package/resources/connect/discover.js +100 -0
- package/resources/connect/discover.js.map +1 -0
- package/resources/connect/display.d.ts +5 -0
- package/resources/connect/display.d.ts.map +1 -0
- package/resources/connect/display.js +58 -0
- package/resources/connect/display.js.map +1 -0
- package/resources/connect/oauth.d.ts +45 -0
- package/resources/connect/oauth.d.ts.map +1 -0
- package/resources/connect/oauth.js +152 -0
- package/resources/connect/oauth.js.map +1 -0
- package/resources/delete.d.ts +18 -0
- package/resources/delete.d.ts.map +1 -0
- package/resources/delete.js +180 -0
- package/resources/delete.js.map +1 -0
- package/resources/diff.d.ts +16 -0
- package/resources/diff.d.ts.map +1 -0
- package/resources/diff.js +158 -0
- package/resources/diff.js.map +1 -0
- package/resources/documents.d.ts +16 -0
- package/resources/documents.d.ts.map +1 -0
- package/resources/documents.js +89 -0
- package/resources/documents.js.map +1 -0
- package/resources/download.d.ts +16 -0
- package/resources/download.d.ts.map +1 -0
- package/resources/download.js +107 -0
- package/resources/download.js.map +1 -0
- package/resources/execution-approve.d.ts +26 -0
- package/resources/execution-approve.d.ts.map +1 -0
- package/resources/execution-approve.js +69 -0
- package/resources/execution-approve.js.map +1 -0
- package/resources/execution-control.d.ts +16 -0
- package/resources/execution-control.d.ts.map +1 -0
- package/resources/execution-control.js +57 -0
- package/resources/execution-control.js.map +1 -0
- package/resources/execution-format.d.ts +12 -0
- package/resources/execution-format.d.ts.map +1 -0
- package/resources/execution-format.js +56 -0
- package/resources/execution-format.js.map +1 -0
- package/resources/execution-logs.d.ts +16 -0
- package/resources/execution-logs.d.ts.map +1 -0
- package/resources/execution-logs.js +132 -0
- package/resources/execution-logs.js.map +1 -0
- package/resources/execution-trace.d.ts +10 -0
- package/resources/execution-trace.d.ts.map +1 -0
- package/resources/execution-trace.js +125 -0
- package/resources/execution-trace.js.map +1 -0
- package/resources/execution.d.ts +59 -0
- package/resources/execution.d.ts.map +1 -0
- package/resources/execution.js +192 -0
- package/resources/execution.js.map +1 -0
- package/resources/get-bindings.d.ts +12 -0
- package/resources/get-bindings.d.ts.map +1 -0
- package/resources/get-bindings.js +40 -0
- package/resources/get-bindings.js.map +1 -0
- package/resources/get.d.ts +6 -0
- package/resources/get.d.ts.map +1 -0
- package/resources/get.js +31 -0
- package/resources/get.js.map +1 -0
- package/resources/git.d.ts +15 -0
- package/resources/git.d.ts.map +1 -0
- package/resources/git.js +69 -0
- package/resources/git.js.map +1 -0
- package/resources/ignore/defaults.d.ts +2 -0
- package/resources/ignore/defaults.d.ts.map +1 -0
- package/resources/ignore/defaults.js +140 -0
- package/resources/ignore/defaults.js.map +1 -0
- package/resources/ignore/index.d.ts +5 -0
- package/resources/ignore/index.d.ts.map +1 -0
- package/resources/ignore/index.js +6 -0
- package/resources/ignore/index.js.map +1 -0
- package/resources/ignore/match.d.ts +3 -0
- package/resources/ignore/match.d.ts.map +1 -0
- package/resources/ignore/match.js +166 -0
- package/resources/ignore/match.js.map +1 -0
- package/resources/ignore/matcher.d.ts +44 -0
- package/resources/ignore/matcher.d.ts.map +1 -0
- package/resources/ignore/matcher.js +125 -0
- package/resources/ignore/matcher.js.map +1 -0
- package/resources/ignore/pattern.d.ts +13 -0
- package/resources/ignore/pattern.d.ts.map +1 -0
- package/resources/ignore/pattern.js +118 -0
- package/resources/ignore/pattern.js.map +1 -0
- package/resources/list.d.ts +7 -0
- package/resources/list.d.ts.map +1 -0
- package/resources/list.js +82 -0
- package/resources/list.js.map +1 -0
- package/resources/mcp/runtime-env.d.ts +23 -0
- package/resources/mcp/runtime-env.d.ts.map +1 -0
- package/resources/mcp/runtime-env.js +68 -0
- package/resources/mcp/runtime-env.js.map +1 -0
- package/resources/picker/ink.d.ts +35 -0
- package/resources/picker/ink.d.ts.map +1 -0
- package/resources/picker/ink.js +45 -0
- package/resources/picker/ink.js.map +1 -0
- package/resources/picker/tty.d.ts +19 -0
- package/resources/picker/tty.d.ts.map +1 -0
- package/resources/picker/tty.js +21 -0
- package/resources/picker/tty.js.map +1 -0
- package/resources/reference.d.ts +32 -0
- package/resources/reference.d.ts.map +1 -0
- package/resources/reference.js +128 -0
- package/resources/reference.js.map +1 -0
- package/resources/render.d.ts +28 -0
- package/resources/render.d.ts.map +1 -0
- package/resources/render.js +87 -0
- package/resources/render.js.map +1 -0
- package/resources/run/agent-exec.d.ts +15 -0
- package/resources/run/agent-exec.d.ts.map +1 -0
- package/resources/run/agent-exec.js +81 -0
- package/resources/run/agent-exec.js.map +1 -0
- package/resources/run/attachments.d.ts +24 -0
- package/resources/run/attachments.d.ts.map +1 -0
- package/resources/run/attachments.js +209 -0
- package/resources/run/attachments.js.map +1 -0
- package/resources/run/create.d.ts +56 -0
- package/resources/run/create.d.ts.map +1 -0
- package/resources/run/create.js +105 -0
- package/resources/run/create.js.map +1 -0
- package/resources/run/env.d.ts +18 -0
- package/resources/run/env.d.ts.map +1 -0
- package/resources/run/env.js +147 -0
- package/resources/run/env.js.map +1 -0
- package/resources/run/epilogue.d.ts +9 -0
- package/resources/run/epilogue.d.ts.map +1 -0
- package/resources/run/epilogue.js +144 -0
- package/resources/run/epilogue.js.map +1 -0
- package/resources/run/header.d.ts +23 -0
- package/resources/run/header.d.ts.map +1 -0
- package/resources/run/header.js +51 -0
- package/resources/run/header.js.map +1 -0
- package/resources/run/prepare.d.ts +60 -0
- package/resources/run/prepare.d.ts.map +1 -0
- package/resources/run/prepare.js +78 -0
- package/resources/run/prepare.js.map +1 -0
- package/resources/run/resolve.d.ts +8 -0
- package/resources/run/resolve.d.ts.map +1 -0
- package/resources/run/resolve.js +28 -0
- package/resources/run/resolve.js.map +1 -0
- package/resources/run/resume.d.ts +13 -0
- package/resources/run/resume.d.ts.map +1 -0
- package/resources/run/resume.js +94 -0
- package/resources/run/resume.js.map +1 -0
- package/resources/run/stream.d.ts +24 -0
- package/resources/run/stream.d.ts.map +1 -0
- package/resources/run/stream.js +80 -0
- package/resources/run/stream.js.map +1 -0
- package/resources/run/workflow-stream.d.ts +25 -0
- package/resources/run/workflow-stream.d.ts.map +1 -0
- package/resources/run/workflow-stream.js +152 -0
- package/resources/run/workflow-stream.js.map +1 -0
- package/resources/run/workspace.d.ts +17 -0
- package/resources/run/workspace.d.ts.map +1 -0
- package/resources/run/workspace.js +147 -0
- package/resources/run/workspace.js.map +1 -0
- package/resources/search.d.ts +22 -0
- package/resources/search.d.ts.map +1 -0
- package/resources/search.js +23 -0
- package/resources/search.js.map +1 -0
- package/resources/session.d.ts +19 -0
- package/resources/session.d.ts.map +1 -0
- package/resources/session.js +51 -0
- package/resources/session.js.map +1 -0
- package/resources/skill.d.ts +84 -0
- package/resources/skill.d.ts.map +1 -0
- package/resources/skill.js +342 -0
- package/resources/skill.js.map +1 -0
- package/resources/stream/approval-detect.d.ts +38 -0
- package/resources/stream/approval-detect.d.ts.map +1 -0
- package/resources/stream/approval-detect.js +93 -0
- package/resources/stream/approval-detect.js.map +1 -0
- package/resources/stream/convert.d.ts +38 -0
- package/resources/stream/convert.d.ts.map +1 -0
- package/resources/stream/convert.js +178 -0
- package/resources/stream/convert.js.map +1 -0
- package/resources/stream/diff.d.ts +29 -0
- package/resources/stream/diff.d.ts.map +1 -0
- package/resources/stream/diff.js +214 -0
- package/resources/stream/diff.js.map +1 -0
- package/resources/stream/events.d.ts +137 -0
- package/resources/stream/events.d.ts.map +1 -0
- package/resources/stream/events.js +15 -0
- package/resources/stream/events.js.map +1 -0
- package/resources/stream/headless.d.ts +38 -0
- package/resources/stream/headless.d.ts.map +1 -0
- package/resources/stream/headless.js +75 -0
- package/resources/stream/headless.js.map +1 -0
- package/resources/stream/ink.d.ts +22 -0
- package/resources/stream/ink.d.ts.map +1 -0
- package/resources/stream/ink.js +24 -0
- package/resources/stream/ink.js.map +1 -0
- package/resources/stream/render-ndjson.d.ts +25 -0
- package/resources/stream/render-ndjson.d.ts.map +1 -0
- package/resources/stream/render-ndjson.js +156 -0
- package/resources/stream/render-ndjson.js.map +1 -0
- package/resources/stream/render-plaintext.d.ts +18 -0
- package/resources/stream/render-plaintext.d.ts.map +1 -0
- package/resources/stream/render-plaintext.js +71 -0
- package/resources/stream/render-plaintext.js.map +1 -0
- package/resources/stream/snapshot.d.ts +8 -0
- package/resources/stream/snapshot.d.ts.map +1 -0
- package/resources/stream/snapshot.js +163 -0
- package/resources/stream/snapshot.js.map +1 -0
- package/resources/stream/subagent.d.ts +12 -0
- package/resources/stream/subagent.d.ts.map +1 -0
- package/resources/stream/subagent.js +76 -0
- package/resources/stream/subagent.js.map +1 -0
- package/resources/stream/submit.d.ts +20 -0
- package/resources/stream/submit.d.ts.map +1 -0
- package/resources/stream/submit.js +125 -0
- package/resources/stream/submit.js.map +1 -0
- package/resources/stream/todo.d.ts +11 -0
- package/resources/stream/todo.d.ts.map +1 -0
- package/resources/stream/todo.js +44 -0
- package/resources/stream/todo.js.map +1 -0
- package/resources/stream/tool-state.d.ts +31 -0
- package/resources/stream/tool-state.d.ts.map +1 -0
- package/resources/stream/tool-state.js +126 -0
- package/resources/stream/tool-state.js.map +1 -0
- package/resources/stream/tty.d.ts +8 -0
- package/resources/stream/tty.d.ts.map +1 -0
- package/resources/stream/tty.js +15 -0
- package/resources/stream/tty.js.map +1 -0
- package/resources/stream/workflow-event-view.d.ts +21 -0
- package/resources/stream/workflow-event-view.d.ts.map +1 -0
- package/resources/stream/workflow-event-view.js +88 -0
- package/resources/stream/workflow-event-view.js.map +1 -0
- package/resources/stream/workflow-render-ndjson.d.ts +5 -0
- package/resources/stream/workflow-render-ndjson.d.ts.map +1 -0
- package/resources/stream/workflow-render-ndjson.js +54 -0
- package/resources/stream/workflow-render-ndjson.js.map +1 -0
- package/resources/stream/workflow-render-plaintext.d.ts +8 -0
- package/resources/stream/workflow-render-plaintext.d.ts.map +1 -0
- package/resources/stream/workflow-render-plaintext.js +34 -0
- package/resources/stream/workflow-render-plaintext.js.map +1 -0
- package/resources/tag.d.ts +4 -0
- package/resources/tag.d.ts.map +1 -0
- package/resources/tag.js +36 -0
- package/resources/tag.js.map +1 -0
- package/resources/usage.d.ts +14 -0
- package/resources/usage.d.ts.map +1 -0
- package/resources/usage.js +251 -0
- package/resources/usage.js.map +1 -0
- package/resources/validate.d.ts +6 -0
- package/resources/validate.d.ts.map +1 -0
- package/resources/validate.js +28 -0
- package/resources/validate.js.map +1 -0
- package/resources/version.d.ts +6 -0
- package/resources/version.d.ts.map +1 -0
- package/resources/version.js +75 -0
- package/resources/version.js.map +1 -0
- package/runtime.d.ts +5 -0
- package/runtime.d.ts.map +1 -0
- package/runtime.js +19 -0
- package/runtime.js.map +1 -0
- package/src/auth/auth0.ts +43 -0
- package/src/auth/callback-server.ts +104 -0
- package/src/auth/index.ts +6 -0
- package/src/auth/login.ts +61 -0
- package/src/auth/pages.ts +31 -0
- package/src/auth/pkce.test.ts +37 -0
- package/src/auth/pkce.ts +26 -0
- package/src/auth/token.test.ts +95 -0
- package/src/auth/token.ts +135 -0
- package/src/backend.ts +15 -0
- package/src/cli/stigmer.ts +16 -0
- package/src/client/client.test.ts +46 -0
- package/src/client/client.ts +84 -0
- package/src/client/index.ts +3 -0
- package/src/commands/agent-exec-flags.ts +75 -0
- package/src/commands/apikey/duration.test.ts +23 -0
- package/src/commands/apikey/duration.ts +35 -0
- package/src/commands/apikey/index.ts +133 -0
- package/src/commands/apply.ts +213 -0
- package/src/commands/auth/index.ts +87 -0
- package/src/commands/completion.ts +96 -0
- package/src/commands/config/backend.ts +58 -0
- package/src/commands/config/context.ts +26 -0
- package/src/commands/config/index.ts +18 -0
- package/src/commands/config/kv.ts +44 -0
- package/src/commands/connect.ts +75 -0
- package/src/commands/delete.ts +56 -0
- package/src/commands/diff.ts +97 -0
- package/src/commands/down.ts +27 -0
- package/src/commands/download.ts +68 -0
- package/src/commands/draft.ts +128 -0
- package/src/commands/execution/approve.ts +76 -0
- package/src/commands/execution/control.ts +79 -0
- package/src/commands/execution/index.ts +24 -0
- package/src/commands/execution/logs.ts +47 -0
- package/src/commands/execution/trace.ts +32 -0
- package/src/commands/get.ts +99 -0
- package/src/commands/internal-daemon.ts +25 -0
- package/src/commands/list.ts +138 -0
- package/src/commands/logs.ts +73 -0
- package/src/commands/mcp-server.test.ts +65 -0
- package/src/commands/mcp-server.ts +124 -0
- package/src/commands/push.ts +205 -0
- package/src/commands/reset.ts +57 -0
- package/src/commands/resume.ts +121 -0
- package/src/commands/run.ts +276 -0
- package/src/commands/search.ts +90 -0
- package/src/commands/seedpack.ts +94 -0
- package/src/commands/setup.ts +71 -0
- package/src/commands/shared.ts +41 -0
- package/src/commands/status.ts +20 -0
- package/src/commands/tag.ts +31 -0
- package/src/commands/up.ts +51 -0
- package/src/commands/usage.ts +74 -0
- package/src/commands/validate.test.ts +79 -0
- package/src/commands/validate.ts +73 -0
- package/src/commands/version.ts +13 -0
- package/src/config/config.test.ts +76 -0
- package/src/config/config.ts +127 -0
- package/src/config/index.ts +22 -0
- package/src/config/keys.test.ts +38 -0
- package/src/config/keys.ts +64 -0
- package/src/config/paths.ts +25 -0
- package/src/config/resolve.test.ts +103 -0
- package/src/config/resolve.ts +80 -0
- package/src/errors/classify.ts +199 -0
- package/src/errors/cli-exit-error.ts +16 -0
- package/src/errors/clierr.test.ts +172 -0
- package/src/errors/exit-codes.ts +14 -0
- package/src/errors/handle.ts +53 -0
- package/src/errors/index.ts +7 -0
- package/src/errors/usage-error.ts +14 -0
- package/src/index.ts +8 -0
- package/src/local/artifact.test.ts +28 -0
- package/src/local/artifact.ts +166 -0
- package/src/local/constants.ts +52 -0
- package/src/local/daemon/components.test.ts +80 -0
- package/src/local/daemon/components.ts +113 -0
- package/src/local/daemon/daemon.integration.test.ts +183 -0
- package/src/local/daemon/env.test.ts +51 -0
- package/src/local/daemon/env.ts +118 -0
- package/src/local/daemon/host.ts +79 -0
- package/src/local/daemon/index.ts +18 -0
- package/src/local/daemon/launch.ts +260 -0
- package/src/local/daemon/process.ts +183 -0
- package/src/local/daemon/supervisor.test.ts +260 -0
- package/src/local/daemon/supervisor.ts +249 -0
- package/src/local/daemon/types.ts +76 -0
- package/src/local/llm-config.test.ts +80 -0
- package/src/local/llm-config.ts +107 -0
- package/src/local/logs/tail.test.ts +70 -0
- package/src/local/logs/tail.ts +100 -0
- package/src/local/logs/view.test.ts +46 -0
- package/src/local/logs/view.ts +65 -0
- package/src/local/net/tcp.ts +65 -0
- package/src/local/paths.ts +67 -0
- package/src/local/reset.test.ts +53 -0
- package/src/local/reset.ts +90 -0
- package/src/local/runtime/index.ts +18 -0
- package/src/local/runtime/node.ts +67 -0
- package/src/local/runtime/runner.ts +186 -0
- package/src/local/runtime/runtime.test.ts +155 -0
- package/src/local/runtime/server.test.ts +152 -0
- package/src/local/runtime/server.ts +172 -0
- package/src/local/runtime/which.ts +30 -0
- package/src/local/seedpack/apply.test.ts +166 -0
- package/src/local/seedpack/apply.ts +139 -0
- package/src/local/seedpack/content.test.ts +148 -0
- package/src/local/seedpack/content.ts +223 -0
- package/src/local/setup/prompt.ts +70 -0
- package/src/local/setup/wizard.test.ts +42 -0
- package/src/local/setup/wizard.ts +78 -0
- package/src/local/state/health-state.ts +55 -0
- package/src/local/state/index.ts +8 -0
- package/src/local/state/lock.ts +77 -0
- package/src/local/state/log-rotation.ts +112 -0
- package/src/local/state/pidfile.ts +37 -0
- package/src/local/state/proc.ts +66 -0
- package/src/local/state/startup-config.ts +51 -0
- package/src/local/state/state.test.ts +166 -0
- package/src/local/status.test.ts +88 -0
- package/src/local/status.ts +186 -0
- package/src/local/temporal/download.test.ts +64 -0
- package/src/local/temporal/download.ts +54 -0
- package/src/local/temporal/index.ts +6 -0
- package/src/local/temporal/inspect.ts +32 -0
- package/src/local/temporal/manager.test.ts +31 -0
- package/src/local/temporal/manager.ts +247 -0
- package/src/local/temporal/supervisor.test.ts +77 -0
- package/src/local/temporal/supervisor.ts +97 -0
- package/src/local/webconsole/index.ts +13 -0
- package/src/logger.ts +39 -0
- package/src/output/command-result.test.ts +64 -0
- package/src/output/command-result.ts +185 -0
- package/src/output/confirm.test.ts +43 -0
- package/src/output/confirm.ts +53 -0
- package/src/output/format.test.ts +65 -0
- package/src/output/format.ts +101 -0
- package/src/output/index.ts +30 -0
- package/src/output/ndjson.ts +55 -0
- package/src/output/proto.test.ts +72 -0
- package/src/output/proto.ts +55 -0
- package/src/output/style.ts +57 -0
- package/src/output/table.test.ts +37 -0
- package/src/output/table.ts +52 -0
- package/src/program.test.ts +64 -0
- package/src/program.ts +100 -0
- package/src/registry/aliases.test.ts +99 -0
- package/src/registry/aliases.ts +93 -0
- package/src/registry/index.ts +7 -0
- package/src/registry/metadata.ts +60 -0
- package/src/registry/registry.test.ts +80 -0
- package/src/registry/registry.ts +101 -0
- package/src/registry/verb-support.ts +50 -0
- package/src/registry/verbs.ts +43 -0
- package/src/resources/apply/apply.integration.test.ts +207 -0
- package/src/resources/apply/apply.ts +202 -0
- package/src/resources/apply/declarative.integration.test.ts +126 -0
- package/src/resources/apply/declarative.test.ts +132 -0
- package/src/resources/apply/declarative.ts +474 -0
- package/src/resources/apply/discovery.ts +60 -0
- package/src/resources/apply/handlers.ts +145 -0
- package/src/resources/apply/synth/capstone.integration.test.ts +134 -0
- package/src/resources/apply/synth/project-track.integration.test.ts +194 -0
- package/src/resources/apply/synth/project-track.ts +126 -0
- package/src/resources/apply/synth/reader.test.ts +90 -0
- package/src/resources/apply/synth/reader.ts +68 -0
- package/src/resources/apply/synth/runtime.test.ts +29 -0
- package/src/resources/apply/synth/runtime.ts +39 -0
- package/src/resources/apply/synth/synthesize.test.ts +109 -0
- package/src/resources/apply/synth/synthesize.ts +161 -0
- package/src/resources/connect/__fixtures__/stdio-crash.mjs +6 -0
- package/src/resources/connect/__fixtures__/stdio-server.mjs +43 -0
- package/src/resources/connect/connect.integration.test.ts +185 -0
- package/src/resources/connect/connect.ts +107 -0
- package/src/resources/connect/discover.test.ts +45 -0
- package/src/resources/connect/discover.ts +125 -0
- package/src/resources/connect/display.ts +68 -0
- package/src/resources/connect/oauth.test.ts +155 -0
- package/src/resources/connect/oauth.ts +191 -0
- package/src/resources/delete.ts +239 -0
- package/src/resources/diff.integration.test.ts +103 -0
- package/src/resources/diff.test.ts +34 -0
- package/src/resources/diff.ts +187 -0
- package/src/resources/documents.test.ts +67 -0
- package/src/resources/documents.ts +102 -0
- package/src/resources/download.ts +151 -0
- package/src/resources/execution-approve.test.ts +50 -0
- package/src/resources/execution-approve.ts +94 -0
- package/src/resources/execution-control.ts +78 -0
- package/src/resources/execution-format.test.ts +48 -0
- package/src/resources/execution-format.ts +54 -0
- package/src/resources/execution-logs.ts +176 -0
- package/src/resources/execution-trace.ts +159 -0
- package/src/resources/execution.integration.test.ts +285 -0
- package/src/resources/execution.test.ts +138 -0
- package/src/resources/execution.ts +229 -0
- package/src/resources/get-bindings.ts +61 -0
- package/src/resources/get.ts +41 -0
- package/src/resources/git.ts +71 -0
- package/src/resources/ignore/defaults.ts +155 -0
- package/src/resources/ignore/ignore.test.ts +139 -0
- package/src/resources/ignore/index.ts +17 -0
- package/src/resources/ignore/match.ts +158 -0
- package/src/resources/ignore/matcher.ts +158 -0
- package/src/resources/ignore/pattern.ts +131 -0
- package/src/resources/list.ts +97 -0
- package/src/resources/mcp/runtime-env.test.ts +68 -0
- package/src/resources/mcp/runtime-env.ts +79 -0
- package/src/resources/mutate-verbs.integration.test.ts +233 -0
- package/src/resources/picker/ink.tsx +114 -0
- package/src/resources/picker/tty.test.ts +37 -0
- package/src/resources/picker/tty.ts +30 -0
- package/src/resources/push-download.integration.test.ts +175 -0
- package/src/resources/read-completion.integration.test.ts +156 -0
- package/src/resources/read-verbs.integration.test.ts +164 -0
- package/src/resources/reference.test.ts +107 -0
- package/src/resources/reference.ts +140 -0
- package/src/resources/render.ts +118 -0
- package/src/resources/run/agent-exec.ts +107 -0
- package/src/resources/run/attachments.test.ts +113 -0
- package/src/resources/run/attachments.ts +261 -0
- package/src/resources/run/create.test.ts +119 -0
- package/src/resources/run/create.ts +165 -0
- package/src/resources/run/env.test.ts +131 -0
- package/src/resources/run/env.ts +167 -0
- package/src/resources/run/epilogue.ts +166 -0
- package/src/resources/run/header.test.ts +61 -0
- package/src/resources/run/header.ts +62 -0
- package/src/resources/run/prepare.test.ts +92 -0
- package/src/resources/run/prepare.ts +139 -0
- package/src/resources/run/resolve.ts +32 -0
- package/src/resources/run/resume.ts +119 -0
- package/src/resources/run/stream.ts +108 -0
- package/src/resources/run/workflow-stream.integration.test.ts +157 -0
- package/src/resources/run/workflow-stream.ts +203 -0
- package/src/resources/run/workspace.test.ts +93 -0
- package/src/resources/run/workspace.ts +171 -0
- package/src/resources/search.ts +53 -0
- package/src/resources/session.test.ts +48 -0
- package/src/resources/session.ts +66 -0
- package/src/resources/skill.test.ts +227 -0
- package/src/resources/skill.ts +451 -0
- package/src/resources/stream/approval-detect.ts +118 -0
- package/src/resources/stream/convert.ts +210 -0
- package/src/resources/stream/diff.test.ts +316 -0
- package/src/resources/stream/diff.ts +254 -0
- package/src/resources/stream/events.ts +193 -0
- package/src/resources/stream/headless.test.ts +119 -0
- package/src/resources/stream/headless.ts +112 -0
- package/src/resources/stream/ink.tsx +56 -0
- package/src/resources/stream/lazy-import.test.ts +63 -0
- package/src/resources/stream/render-ndjson.test.ts +116 -0
- package/src/resources/stream/render-ndjson.ts +176 -0
- package/src/resources/stream/render-plaintext.test.ts +68 -0
- package/src/resources/stream/render-plaintext.ts +86 -0
- package/src/resources/stream/snapshot.test.ts +97 -0
- package/src/resources/stream/snapshot.ts +191 -0
- package/src/resources/stream/subagent.ts +104 -0
- package/src/resources/stream/submit.test.ts +77 -0
- package/src/resources/stream/submit.ts +137 -0
- package/src/resources/stream/todo.ts +53 -0
- package/src/resources/stream/tool-state.ts +142 -0
- package/src/resources/stream/tty.ts +14 -0
- package/src/resources/stream/workflow-event-view.test.ts +116 -0
- package/src/resources/stream/workflow-event-view.ts +111 -0
- package/src/resources/stream/workflow-render-ndjson.ts +61 -0
- package/src/resources/stream/workflow-render-plaintext.ts +43 -0
- package/src/resources/stream/workflow-render.test.ts +81 -0
- package/src/resources/tag.ts +50 -0
- package/src/resources/usage.test.ts +94 -0
- package/src/resources/usage.ts +301 -0
- package/src/resources/validate.test.ts +54 -0
- package/src/resources/validate.ts +31 -0
- package/src/resources/version.ts +105 -0
- package/src/runtime.ts +23 -0
- package/src/types/marked-terminal.d.ts +31 -0
- package/src/version.ts +46 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +45 -0
- package/version.js.map +1 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
// Tool-call state-transition tracking for the snapshot differ.
|
|
2
|
+
//
|
|
3
|
+
// Ports the Go CLI's trackToolCallStates (run_stream_events.go:597-695). Each
|
|
4
|
+
// snapshot carries the full tool-call list; this tracker diffs it against the
|
|
5
|
+
// last-known per-tool status/result to emit only the *transitions* (running,
|
|
6
|
+
// completed, waiting-approval, streaming delta). One tracker instance per scope:
|
|
7
|
+
// the top-level execution gets one, each sub-agent gets its own (matching Go's
|
|
8
|
+
// per-sub-agent tracker maps).
|
|
9
|
+
|
|
10
|
+
import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
11
|
+
import { convertToolCall, isTerminalToolStatus, mapToolCallStatus } from "./convert.js";
|
|
12
|
+
import type { StreamEvent } from "./events.js";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Stateful tracker that converts successive tool-call snapshots into discrete
|
|
16
|
+
* lifecycle events. The state (last status + last streamed result per tool ID)
|
|
17
|
+
* persists across calls, so only genuine transitions produce events.
|
|
18
|
+
*/
|
|
19
|
+
export class ToolStateTracker {
|
|
20
|
+
// toolCallID -> last known status string.
|
|
21
|
+
private readonly states = new Map<string, string>();
|
|
22
|
+
// toolCallID -> last known result content, for streaming-delta detection.
|
|
23
|
+
private readonly results = new Map<string, string>();
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Diff `toolCalls` against tracked state and return the resulting events.
|
|
27
|
+
* `subAgentId` scopes the events for nested rendering ("" for top-level).
|
|
28
|
+
* Mirrors Go's trackToolCallStates branch-for-branch.
|
|
29
|
+
*/
|
|
30
|
+
track(toolCalls: readonly ToolCall[], subAgentId: string): StreamEvent[] {
|
|
31
|
+
const pending: StreamEvent[] = [];
|
|
32
|
+
|
|
33
|
+
for (const tc of toolCalls) {
|
|
34
|
+
if (tc.id === "") continue;
|
|
35
|
+
|
|
36
|
+
const current = mapToolCallStatus(tc.status);
|
|
37
|
+
const seen = this.states.has(tc.id);
|
|
38
|
+
const prev = this.states.get(tc.id);
|
|
39
|
+
|
|
40
|
+
// First sight, already running: open a running block.
|
|
41
|
+
if (!seen && current === "running") {
|
|
42
|
+
pending.push(this.running(tc, subAgentId));
|
|
43
|
+
this.states.set(tc.id, current);
|
|
44
|
+
this.results.set(tc.id, tc.result);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// First sight, awaiting approval: open a waiting block.
|
|
49
|
+
if (!seen && current === "waiting_approval") {
|
|
50
|
+
pending.push(this.waiting(tc, subAgentId));
|
|
51
|
+
this.states.set(tc.id, current);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// First sight, already terminal (e.g. re-attach): synthesize completion so
|
|
56
|
+
// the block exists — otherwise its MESSAGE_TOOL is suppressed and it vanishes.
|
|
57
|
+
if (!seen && isTerminalToolStatus(current)) {
|
|
58
|
+
pending.push(this.completed(tc, subAgentId));
|
|
59
|
+
this.states.set(tc.id, current);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// running/waiting -> terminal: close the block.
|
|
64
|
+
if (seen && (prev === "running" || prev === "waiting_approval") && isTerminalToolStatus(current)) {
|
|
65
|
+
pending.push(this.completed(tc, subAgentId));
|
|
66
|
+
this.states.set(tc.id, current);
|
|
67
|
+
this.results.delete(tc.id);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Any other status change: open running/waiting as appropriate.
|
|
72
|
+
if (current !== prev) {
|
|
73
|
+
if (current === "running") {
|
|
74
|
+
pending.push(this.running(tc, subAgentId));
|
|
75
|
+
this.results.set(tc.id, tc.result);
|
|
76
|
+
} else if (current === "waiting_approval") {
|
|
77
|
+
pending.push(this.waiting(tc, subAgentId));
|
|
78
|
+
}
|
|
79
|
+
this.states.set(tc.id, current);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Streaming content changed on a running tool: emit a delta.
|
|
84
|
+
if (current === "running" && tc.isStreaming && tc.result !== this.results.get(tc.id)) {
|
|
85
|
+
pending.push({
|
|
86
|
+
kind: "toolStreamDelta",
|
|
87
|
+
toolCallId: tc.id,
|
|
88
|
+
toolCall: convertToolCall(tc),
|
|
89
|
+
content: tc.result,
|
|
90
|
+
subAgentId,
|
|
91
|
+
});
|
|
92
|
+
this.results.set(tc.id, tc.result);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return pending;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* True if `id` has a tracked state, i.e. a stateful block already exists for
|
|
101
|
+
* it. Used to suppress a duplicate ToolResultEvent for a MESSAGE_TOOL the
|
|
102
|
+
* tracker already owns. Mirrors the membership check in Go's isTrackedToolMessage.
|
|
103
|
+
*/
|
|
104
|
+
has(id: string): boolean {
|
|
105
|
+
return this.states.has(id);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private running(tc: ToolCall, subAgentId: string): StreamEvent {
|
|
109
|
+
return { kind: "toolRunning", toolCallId: tc.id, toolCall: convertToolCall(tc), subAgentId };
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
private waiting(tc: ToolCall, subAgentId: string): StreamEvent {
|
|
113
|
+
return { kind: "toolWaitingApproval", toolCallId: tc.id, toolCall: convertToolCall(tc), subAgentId };
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
private completed(tc: ToolCall, subAgentId: string): StreamEvent {
|
|
117
|
+
return { kind: "toolCompleted", toolCallId: tc.id, toolCall: convertToolCall(tc), subAgentId };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** The tool-call ID carried by a tool-lifecycle event, or "" otherwise. Mirrors Go's toolEventID. */
|
|
122
|
+
export function toolEventId(event: StreamEvent): string {
|
|
123
|
+
switch (event.kind) {
|
|
124
|
+
case "toolRunning":
|
|
125
|
+
case "toolCompleted":
|
|
126
|
+
case "toolWaitingApproval":
|
|
127
|
+
case "toolStreamDelta":
|
|
128
|
+
return event.toolCallId;
|
|
129
|
+
default:
|
|
130
|
+
return "";
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** Index tool events by tool-call ID for chronological interleaving. Mirrors Go's buildToolEventMap. */
|
|
135
|
+
export function buildToolEventMap(events: readonly StreamEvent[]): Map<string, StreamEvent> {
|
|
136
|
+
const m = new Map<string, StreamEvent>();
|
|
137
|
+
for (const ev of events) {
|
|
138
|
+
const id = toolEventId(ev);
|
|
139
|
+
if (id !== "") m.set(id, ev);
|
|
140
|
+
}
|
|
141
|
+
return m;
|
|
142
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Terminal-capability gate for renderer selection.
|
|
2
|
+
//
|
|
3
|
+
// Deliberately free of any React/Ink imports so the command can decide whether
|
|
4
|
+
// to take the interactive path *before* paying the dynamic-import cost of
|
|
5
|
+
// ink.tsx (DD-001 lazy boundary). Mirrors Go's termctl.IsSupported.
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Whether the terminal can host the interactive Ink renderer: stdout must be a
|
|
9
|
+
* TTY and TERM must not be "dumb". When false, the command uses plaintext.
|
|
10
|
+
*/
|
|
11
|
+
export function isInkSupported(stream: { isTTY?: boolean } = process.stdout): boolean {
|
|
12
|
+
if (stream.isTTY !== true) return false;
|
|
13
|
+
return process.env.TERM !== "dumb";
|
|
14
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { create } from "@bufbuild/protobuf";
|
|
2
|
+
import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
3
|
+
import {
|
|
4
|
+
ApprovalRequestedPayloadSchema,
|
|
5
|
+
ApprovalResolvedPayloadSchema,
|
|
6
|
+
BudgetCheckpointPayloadSchema,
|
|
7
|
+
ExecutionFailedPayloadSchema,
|
|
8
|
+
TaskFailedPayloadSchema,
|
|
9
|
+
TaskRetryingPayloadSchema,
|
|
10
|
+
WorkflowExecutionEventSchema,
|
|
11
|
+
WorkflowEventType,
|
|
12
|
+
} from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
|
|
13
|
+
import { describe, expect, it } from "vitest";
|
|
14
|
+
import { toWorkflowEventView, workflowEventTypeName } from "./workflow-event-view.js";
|
|
15
|
+
|
|
16
|
+
describe("workflowEventTypeName", () => {
|
|
17
|
+
it("returns the canonical proto name for the type", () => {
|
|
18
|
+
expect(workflowEventTypeName(WorkflowEventType.execution_started)).toBe("execution_started");
|
|
19
|
+
expect(workflowEventTypeName(WorkflowEventType.approval_requested)).toBe("approval_requested");
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe("toWorkflowEventView", () => {
|
|
24
|
+
it("formats the HH:MM:SS slice of occurred_at", () => {
|
|
25
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
26
|
+
eventType: WorkflowEventType.execution_started,
|
|
27
|
+
occurredAt: "2026-06-12T13:45:09.123Z",
|
|
28
|
+
payload: { case: "executionStarted", value: {} as never },
|
|
29
|
+
});
|
|
30
|
+
expect(toWorkflowEventView(event).time).toBe("13:45:09");
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("falls back to dashes when occurred_at is empty", () => {
|
|
34
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
35
|
+
eventType: WorkflowEventType.execution_started,
|
|
36
|
+
payload: { case: "executionStarted", value: {} as never },
|
|
37
|
+
});
|
|
38
|
+
expect(toWorkflowEventView(event).time).toBe("--------");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("marks execution_completed/failed/cancelled/terminated as terminal", () => {
|
|
42
|
+
for (const c of ["executionCompleted", "executionCancelled", "executionTerminated"] as const) {
|
|
43
|
+
const event = create(WorkflowExecutionEventSchema, { payload: { case: c, value: {} as never } });
|
|
44
|
+
expect(toWorkflowEventView(event).terminal).toBe(true);
|
|
45
|
+
}
|
|
46
|
+
const failed = create(WorkflowExecutionEventSchema, {
|
|
47
|
+
payload: { case: "executionFailed", value: create(ExecutionFailedPayloadSchema, { error: "boom" }) },
|
|
48
|
+
});
|
|
49
|
+
const view = toWorkflowEventView(failed);
|
|
50
|
+
expect(view.terminal).toBe(true);
|
|
51
|
+
expect(view.tone).toBe("error");
|
|
52
|
+
expect(view.text).toBe("execution failed: boom");
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("does not mark task/lifecycle non-terminal events as terminal", () => {
|
|
56
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
57
|
+
taskName: "validate",
|
|
58
|
+
payload: { case: "taskStarted", value: {} as never },
|
|
59
|
+
});
|
|
60
|
+
const view = toWorkflowEventView(event);
|
|
61
|
+
expect(view.terminal).toBe(false);
|
|
62
|
+
expect(view.text).toBe("task started: validate");
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it("extracts the error and task name for task_failed", () => {
|
|
66
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
67
|
+
taskName: "send",
|
|
68
|
+
payload: { case: "taskFailed", value: create(TaskFailedPayloadSchema, { error: "timeout" }) },
|
|
69
|
+
});
|
|
70
|
+
expect(toWorkflowEventView(event).text).toBe("task failed: send — timeout");
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("includes the next attempt for task_retrying", () => {
|
|
74
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
75
|
+
taskName: "send",
|
|
76
|
+
payload: { case: "taskRetrying", value: create(TaskRetryingPayloadSchema, { nextAttempt: 3 }) },
|
|
77
|
+
});
|
|
78
|
+
expect(toWorkflowEventView(event).text).toBe("task retrying: send (attempt 3)");
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it("renders the prompt for approval_requested", () => {
|
|
82
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
83
|
+
taskName: "review",
|
|
84
|
+
payload: { case: "approvalRequested", value: create(ApprovalRequestedPayloadSchema, { prompt: "ok?" }) },
|
|
85
|
+
});
|
|
86
|
+
expect(toWorkflowEventView(event).text).toBe("approval requested: review — ok?");
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("renders the action and resolver for approval_resolved", () => {
|
|
90
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
91
|
+
taskName: "review",
|
|
92
|
+
payload: {
|
|
93
|
+
case: "approvalResolved",
|
|
94
|
+
value: create(ApprovalResolvedPayloadSchema, { action: ApprovalAction.APPROVE, resolvedBy: "alice" }),
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
expect(toWorkflowEventView(event).text).toBe("approval resolved: review — approve by alice");
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("converts micros to a dollar amount for budget_checkpoint", () => {
|
|
101
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
102
|
+
payload: { case: "budgetCheckpoint", value: create(BudgetCheckpointPayloadSchema, { costConsumedMicros: 1_234_500n }) },
|
|
103
|
+
});
|
|
104
|
+
expect(toWorkflowEventView(event).text).toBe("budget: $1.2345 spent");
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("falls back to a generic line for events without a dedicated view", () => {
|
|
108
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
109
|
+
eventType: WorkflowEventType.signal_received,
|
|
110
|
+
payload: { case: "signalReceived", value: {} as never },
|
|
111
|
+
});
|
|
112
|
+
const view = toWorkflowEventView(event);
|
|
113
|
+
expect(view.glyph).toBe("");
|
|
114
|
+
expect(view.text).toBe("event: signal_received");
|
|
115
|
+
});
|
|
116
|
+
});
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// Canonical WorkflowExecutionEvent → display mapping.
|
|
2
|
+
//
|
|
3
|
+
// This is the single source of truth for how a workflow event is presented,
|
|
4
|
+
// shared by `run workflow` (live stream) and `execution logs` (historical +
|
|
5
|
+
// follow). It is a pure transform with no I/O: a renderer (plaintext or NDJSON)
|
|
6
|
+
// decides where bytes go; this module decides *what* each event means.
|
|
7
|
+
//
|
|
8
|
+
// Why an event view at all: WorkflowExecution exposes a canonical, sequenced
|
|
9
|
+
// event stream (subscribeEvents) with a rich WorkflowEventType taxonomy. Rather
|
|
10
|
+
// than invent a CLI-private vocabulary, every CLI surface renders the server's
|
|
11
|
+
// events directly, so the CLI, the web execution viewer, and the SDK all agree
|
|
12
|
+
// on what happened. Ports Go's execution.renderWorkflowEvent switch
|
|
13
|
+
// (internal/cli/execution/logs_workflow.go), preserving its glyphs and wording.
|
|
14
|
+
|
|
15
|
+
import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
16
|
+
import {
|
|
17
|
+
type WorkflowExecutionEvent,
|
|
18
|
+
WorkflowEventType,
|
|
19
|
+
} from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
|
|
20
|
+
|
|
21
|
+
/** Color intent for an event line; the renderer maps this to ANSI (or nothing). */
|
|
22
|
+
export type EventTone = "success" | "error" | "warning" | "info" | "muted";
|
|
23
|
+
|
|
24
|
+
/** A renderer-agnostic view of one workflow event. */
|
|
25
|
+
export interface WorkflowEventView {
|
|
26
|
+
/** HH:MM:SS slice of occurred_at, or "--------" when absent. */
|
|
27
|
+
readonly time: string;
|
|
28
|
+
/** Leading glyph (▶ ✓ ✗ → …); empty for the generic fallback line. */
|
|
29
|
+
readonly glyph: string;
|
|
30
|
+
/** Tone applied to the glyph. */
|
|
31
|
+
readonly tone: EventTone;
|
|
32
|
+
/** Human sentence describing the event. */
|
|
33
|
+
readonly text: string;
|
|
34
|
+
/** True when this event marks a terminal execution phase. */
|
|
35
|
+
readonly terminal: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Canonical WorkflowEventType name (e.g. "execution_started") for NDJSON `type`. */
|
|
39
|
+
export function workflowEventTypeName(type: WorkflowEventType): string {
|
|
40
|
+
return WorkflowEventType[type] ?? "workflow_event_type_unspecified";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Map a workflow event to its display view. Switches on the typed oneof payload. */
|
|
44
|
+
export function toWorkflowEventView(event: WorkflowExecutionEvent): WorkflowEventView {
|
|
45
|
+
const time = formatEventTime(event.occurredAt);
|
|
46
|
+
const taskName = event.taskName;
|
|
47
|
+
const view = (glyph: string, tone: EventTone, text: string, terminal = false): WorkflowEventView => ({
|
|
48
|
+
time,
|
|
49
|
+
glyph,
|
|
50
|
+
tone,
|
|
51
|
+
text,
|
|
52
|
+
terminal,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
switch (event.payload.case) {
|
|
56
|
+
case "executionStarted":
|
|
57
|
+
return view("▶", "success", "execution started");
|
|
58
|
+
case "executionCompleted":
|
|
59
|
+
return view("✓", "success", "execution completed", true);
|
|
60
|
+
case "executionFailed":
|
|
61
|
+
return view("✗", "error", `execution failed: ${event.payload.value.error}`, true);
|
|
62
|
+
case "executionPaused":
|
|
63
|
+
return view("⏸", "warning", "execution paused");
|
|
64
|
+
case "executionResumed":
|
|
65
|
+
return view("▶", "success", "execution resumed");
|
|
66
|
+
case "executionCancelled":
|
|
67
|
+
return view("⊘", "warning", "execution cancelled", true);
|
|
68
|
+
case "executionTerminated":
|
|
69
|
+
return view("⊘", "error", "execution terminated", true);
|
|
70
|
+
case "taskStarted":
|
|
71
|
+
return view("→", "info", `task started: ${taskName}`);
|
|
72
|
+
case "taskCompleted":
|
|
73
|
+
return view("✓", "success", `task completed: ${taskName}`);
|
|
74
|
+
case "taskFailed":
|
|
75
|
+
return view("✗", "error", `task failed: ${taskName} — ${event.payload.value.error}`);
|
|
76
|
+
case "taskSkipped":
|
|
77
|
+
return view("⊘", "muted", `task skipped: ${taskName}`);
|
|
78
|
+
case "taskRetrying":
|
|
79
|
+
return view("↻", "warning", `task retrying: ${taskName} (attempt ${event.payload.value.nextAttempt})`);
|
|
80
|
+
case "agentCallStarted":
|
|
81
|
+
return view("⚡", "info", `agent call started: ${taskName}`);
|
|
82
|
+
case "agentCallCompleted":
|
|
83
|
+
return view("⚡", "success", `agent call completed: ${taskName}`);
|
|
84
|
+
case "approvalRequested":
|
|
85
|
+
return view("⏳", "warning", `approval requested: ${taskName} — ${event.payload.value.prompt}`);
|
|
86
|
+
case "approvalResolved": {
|
|
87
|
+
const { action, resolvedBy } = event.payload.value;
|
|
88
|
+
return view("✓", "success", `approval resolved: ${taskName} — ${approvalActionLabel(action)} by ${resolvedBy}`);
|
|
89
|
+
}
|
|
90
|
+
case "budgetCheckpoint": {
|
|
91
|
+
const costUsd = Number(event.payload.value.costConsumedMicros) / 1_000_000;
|
|
92
|
+
return view("$", "muted", `budget: $${costUsd.toFixed(4)} spent`);
|
|
93
|
+
}
|
|
94
|
+
default:
|
|
95
|
+
// Events with no dedicated line (agent_call_progress, signal_received,
|
|
96
|
+
// event_emitted, artifact_created, unspecified): a generic fallback,
|
|
97
|
+
// mirroring Go's default branch.
|
|
98
|
+
return view("", "muted", `event: ${workflowEventTypeName(event.eventType)}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// HH:MM:SS slice of an ISO 8601 timestamp; mirrors Go's formatEventTimestamp.
|
|
103
|
+
function formatEventTime(occurredAt: string): string {
|
|
104
|
+
if (occurredAt.length > 19) return occurredAt.slice(11, 19);
|
|
105
|
+
if (occurredAt === "") return "--------";
|
|
106
|
+
return occurredAt;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function approvalActionLabel(action: ApprovalAction): string {
|
|
110
|
+
return (ApprovalAction[action] ?? "unspecified").toLowerCase();
|
|
111
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// NDJSON renderer for workflow events (`run workflow --json`).
|
|
2
|
+
//
|
|
3
|
+
// Emits one `{type, ts, payload}` envelope per event, where `type` is the
|
|
4
|
+
// canonical WorkflowEventType name (e.g. "execution_started") — the server's
|
|
5
|
+
// own vocabulary, not a CLI invention. This is the machine-readable workflow
|
|
6
|
+
// stream that the Go CLI never produced (defect D-WF-1): Go's
|
|
7
|
+
// `run workflow --json` flag was silently ignored.
|
|
8
|
+
//
|
|
9
|
+
// The payload carries the always-present envelope fields plus the salient,
|
|
10
|
+
// event-specific fields extracted from the typed oneof. Empty/nil fields are
|
|
11
|
+
// stripped by ndjsonEnvelope, matching the agent run --json wire shape.
|
|
12
|
+
|
|
13
|
+
import { ndjsonEnvelope, type NdjsonEnvelope } from "../../output/ndjson.js";
|
|
14
|
+
import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
15
|
+
import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
|
|
16
|
+
import { workflowEventTypeName } from "./workflow-event-view.js";
|
|
17
|
+
|
|
18
|
+
/** Build the NDJSON envelope for a workflow event. `now` is injectable for tests. */
|
|
19
|
+
export function workflowEventToNdjson(event: WorkflowExecutionEvent, now?: () => string): NdjsonEnvelope {
|
|
20
|
+
return ndjsonEnvelope(
|
|
21
|
+
workflowEventTypeName(event.eventType),
|
|
22
|
+
{
|
|
23
|
+
sequence: Number(event.sequenceNumber),
|
|
24
|
+
task: event.taskName,
|
|
25
|
+
...eventPayloadFields(event),
|
|
26
|
+
},
|
|
27
|
+
now ?? (() => event.occurredAt),
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Salient fields per event kind. Kept deliberately small and stable — the same
|
|
32
|
+
// keys the plaintext line surfaces — so consumers get a predictable shape.
|
|
33
|
+
function eventPayloadFields(event: WorkflowExecutionEvent): Record<string, unknown> {
|
|
34
|
+
switch (event.payload.case) {
|
|
35
|
+
case "executionFailed":
|
|
36
|
+
return { error: event.payload.value.error };
|
|
37
|
+
case "executionCompleted":
|
|
38
|
+
return {
|
|
39
|
+
durationMs: Number(event.payload.value.durationMs),
|
|
40
|
+
costMicros: Number(event.payload.value.totalCostMicros),
|
|
41
|
+
};
|
|
42
|
+
case "executionCancelled":
|
|
43
|
+
case "executionTerminated":
|
|
44
|
+
return { reason: event.payload.value.reason };
|
|
45
|
+
case "taskFailed":
|
|
46
|
+
return { error: event.payload.value.error };
|
|
47
|
+
case "taskRetrying":
|
|
48
|
+
return { nextAttempt: event.payload.value.nextAttempt };
|
|
49
|
+
case "approvalRequested":
|
|
50
|
+
return { prompt: event.payload.value.prompt, toolCallId: event.payload.value.toolCallId };
|
|
51
|
+
case "approvalResolved":
|
|
52
|
+
return {
|
|
53
|
+
action: (ApprovalAction[event.payload.value.action] ?? "unspecified").toLowerCase(),
|
|
54
|
+
resolvedBy: event.payload.value.resolvedBy,
|
|
55
|
+
};
|
|
56
|
+
case "budgetCheckpoint":
|
|
57
|
+
return { costMicros: Number(event.payload.value.costConsumedMicros) };
|
|
58
|
+
default:
|
|
59
|
+
return {};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Plaintext renderer for workflow events (human + `execution logs` output).
|
|
2
|
+
//
|
|
3
|
+
// Renders one line per event: `[HH:MM:SS] <glyph> <text>`, with the glyph tinted
|
|
4
|
+
// by the event tone (color auto-disables off a TTY / under NO_COLOR, like the
|
|
5
|
+
// rest of the CLI). Mirrors the layout of Go's renderWorkflowEvent. Output goes
|
|
6
|
+
// to a caller-supplied sink so this composes into both the `run workflow` inline
|
|
7
|
+
// stream and `execution logs`.
|
|
8
|
+
|
|
9
|
+
import { type Styler, styler } from "../../output/style.js";
|
|
10
|
+
import { type EventTone, type WorkflowEventView, toWorkflowEventView } from "./workflow-event-view.js";
|
|
11
|
+
import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
|
|
12
|
+
|
|
13
|
+
/** A single-line writer (e.g. a wrapper over process.stdout). */
|
|
14
|
+
export interface LineSink {
|
|
15
|
+
write(line: string): void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Render a workflow event as one tinted line to `sink`. */
|
|
19
|
+
export function renderWorkflowEventPlaintext(event: WorkflowExecutionEvent, sink: LineSink, colorize: boolean): void {
|
|
20
|
+
const view = toWorkflowEventView(event);
|
|
21
|
+
sink.write(formatLine(view, styler(colorize)));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function formatLine(view: WorkflowEventView, style: Styler): string {
|
|
25
|
+
const prefix = style.dim(`[${view.time}]`);
|
|
26
|
+
const glyph = view.glyph === "" ? " " : tint(view.glyph, view.tone, style);
|
|
27
|
+
return `${prefix} ${glyph} ${view.text}\n`;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function tint(glyph: string, tone: EventTone, style: Styler): string {
|
|
31
|
+
switch (tone) {
|
|
32
|
+
case "success":
|
|
33
|
+
return style.green(glyph);
|
|
34
|
+
case "error":
|
|
35
|
+
return style.red(glyph);
|
|
36
|
+
case "warning":
|
|
37
|
+
return style.yellow(glyph);
|
|
38
|
+
case "info":
|
|
39
|
+
return style.cyan(glyph);
|
|
40
|
+
case "muted":
|
|
41
|
+
return style.dim(glyph);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { create } from "@bufbuild/protobuf";
|
|
2
|
+
import {
|
|
3
|
+
ApprovalRequestedPayloadSchema,
|
|
4
|
+
ExecutionFailedPayloadSchema,
|
|
5
|
+
WorkflowExecutionEventSchema,
|
|
6
|
+
WorkflowEventType,
|
|
7
|
+
} from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
|
|
8
|
+
import { describe, expect, it } from "vitest";
|
|
9
|
+
import { renderWorkflowEventPlaintext } from "./workflow-render-plaintext.js";
|
|
10
|
+
import { workflowEventToNdjson } from "./workflow-render-ndjson.js";
|
|
11
|
+
|
|
12
|
+
function collect(): { sink: { write(line: string): void }; lines: string[] } {
|
|
13
|
+
const lines: string[] = [];
|
|
14
|
+
return { sink: { write: (line) => lines.push(line) }, lines };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
describe("renderWorkflowEventPlaintext", () => {
|
|
18
|
+
it("renders a single uncolored line with timestamp, glyph, and text", () => {
|
|
19
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
20
|
+
eventType: WorkflowEventType.task_started,
|
|
21
|
+
occurredAt: "2026-06-12T13:45:09Z",
|
|
22
|
+
taskName: "validate",
|
|
23
|
+
payload: { case: "taskStarted", value: {} as never },
|
|
24
|
+
});
|
|
25
|
+
const { sink, lines } = collect();
|
|
26
|
+
renderWorkflowEventPlaintext(event, sink, false);
|
|
27
|
+
expect(lines).toEqual(["[13:45:09] → task started: validate\n"]);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("pads the glyph column for the generic fallback line", () => {
|
|
31
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
32
|
+
eventType: WorkflowEventType.signal_received,
|
|
33
|
+
occurredAt: "2026-06-12T13:45:09Z",
|
|
34
|
+
payload: { case: "signalReceived", value: {} as never },
|
|
35
|
+
});
|
|
36
|
+
const { sink, lines } = collect();
|
|
37
|
+
renderWorkflowEventPlaintext(event, sink, false);
|
|
38
|
+
expect(lines).toEqual(["[13:45:09] event: signal_received\n"]);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
describe("workflowEventToNdjson", () => {
|
|
43
|
+
it("uses the canonical event type as `type` and carries the occurred_at ts", () => {
|
|
44
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
45
|
+
eventType: WorkflowEventType.execution_started,
|
|
46
|
+
occurredAt: "2026-06-12T13:45:09Z",
|
|
47
|
+
sequenceNumber: 1n,
|
|
48
|
+
payload: { case: "executionStarted", value: {} as never },
|
|
49
|
+
});
|
|
50
|
+
const env = workflowEventToNdjson(event);
|
|
51
|
+
expect(env.type).toBe("execution_started");
|
|
52
|
+
expect(env.ts).toBe("2026-06-12T13:45:09Z");
|
|
53
|
+
expect(env.payload).toEqual({ sequence: 1 });
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("surfaces salient fields and strips empty ones", () => {
|
|
57
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
58
|
+
eventType: WorkflowEventType.execution_failed,
|
|
59
|
+
occurredAt: "2026-06-12T13:45:10Z",
|
|
60
|
+
sequenceNumber: 7n,
|
|
61
|
+
payload: { case: "executionFailed", value: create(ExecutionFailedPayloadSchema, { error: "boom" }) },
|
|
62
|
+
});
|
|
63
|
+
const env = workflowEventToNdjson(event);
|
|
64
|
+
expect(env.payload).toEqual({ sequence: 7, error: "boom" });
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("includes the tool call id on approval_requested (drives interactive approval)", () => {
|
|
68
|
+
const event = create(WorkflowExecutionEventSchema, {
|
|
69
|
+
eventType: WorkflowEventType.approval_requested,
|
|
70
|
+
occurredAt: "2026-06-12T13:45:11Z",
|
|
71
|
+
sequenceNumber: 9n,
|
|
72
|
+
taskName: "review",
|
|
73
|
+
payload: {
|
|
74
|
+
case: "approvalRequested",
|
|
75
|
+
value: create(ApprovalRequestedPayloadSchema, { prompt: "ok?", toolCallId: "tc_1" }),
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
const env = workflowEventToNdjson(event);
|
|
79
|
+
expect(env.payload).toMatchObject({ task: "review", prompt: "ok?", toolCallId: "tc_1" });
|
|
80
|
+
});
|
|
81
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// `tag` dispatch: assign a tag to a versioned resource. Tags are mutable
|
|
2
|
+
// pointers — reassigning a tag moves it to the named version. Only workflows are
|
|
3
|
+
// versioned/taggable today, matching the Go CLI's tag command.
|
|
4
|
+
//
|
|
5
|
+
// This is an id-shaped mutation, so it rides the high-level workflow sub-client
|
|
6
|
+
// (resolve the workflow by reference, then tagVersion) rather than a raw
|
|
7
|
+
// controller.
|
|
8
|
+
|
|
9
|
+
import { create } from "@bufbuild/protobuf";
|
|
10
|
+
import { TagWorkflowVersionInputSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/version_pb";
|
|
11
|
+
import type { Stigmer } from "@stigmer/sdk";
|
|
12
|
+
import { UsageError } from "../errors/index.js";
|
|
13
|
+
import { CommandResult } from "../output/index.js";
|
|
14
|
+
|
|
15
|
+
export async function tagVersion(
|
|
16
|
+
client: Stigmer,
|
|
17
|
+
typeArg: string,
|
|
18
|
+
ref: string,
|
|
19
|
+
hash: string,
|
|
20
|
+
tag: string,
|
|
21
|
+
org: string,
|
|
22
|
+
): Promise<CommandResult> {
|
|
23
|
+
const normalized = typeArg.trim().toLowerCase();
|
|
24
|
+
if (normalized !== "workflow" && normalized !== "wf") {
|
|
25
|
+
throw new UsageError(`tagging is not supported for resource type "${typeArg}"\n\nSupported types: workflow`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const [refOrg, slug] = parseOrgSlug(ref, org);
|
|
29
|
+
const workflow = await client.workflow.getByReference({ org: refOrg, slug });
|
|
30
|
+
const workflowId = workflow.metadata?.id ?? "";
|
|
31
|
+
|
|
32
|
+
await client.workflow.tagVersion(create(TagWorkflowVersionInputSchema, { workflowId, versionHash: hash, tag }));
|
|
33
|
+
|
|
34
|
+
return CommandResult.success(`Tagged version ${truncateHash(hash)} as '${tag}'`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// "org/slug" → [org, slug]; a bare token uses the resolved org context.
|
|
38
|
+
function parseOrgSlug(ref: string, defaultOrg: string): [string, string] {
|
|
39
|
+
const slash = ref.indexOf("/");
|
|
40
|
+
if (slash > 0) {
|
|
41
|
+
return [ref.slice(0, slash), ref.slice(slash + 1)];
|
|
42
|
+
}
|
|
43
|
+
return [defaultOrg, ref];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// The backend addresses versions by their full content hash; the CLI echoes a
|
|
47
|
+
// 12-char prefix for readability, matching Go's truncateHash.
|
|
48
|
+
function truncateHash(hash: string): string {
|
|
49
|
+
return hash.length > 12 ? hash.slice(0, 12) : hash;
|
|
50
|
+
}
|