@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,57 @@
|
|
|
1
|
+
// Minimal ANSI styling for human-facing output.
|
|
2
|
+
//
|
|
3
|
+
// Mirrors the Go CLI's reliance on fatih/color, which auto-disables when the
|
|
4
|
+
// target stream is not a TTY and honors NO_COLOR. Keeping this tiny avoids a
|
|
5
|
+
// dependency for what is a handful of escape codes.
|
|
6
|
+
|
|
7
|
+
const ANSI = {
|
|
8
|
+
reset: "\x1b[0m",
|
|
9
|
+
bold: "\x1b[1m",
|
|
10
|
+
faint: "\x1b[2m",
|
|
11
|
+
red: "\x1b[31m",
|
|
12
|
+
green: "\x1b[32m",
|
|
13
|
+
yellow: "\x1b[33m",
|
|
14
|
+
cyan: "\x1b[36m",
|
|
15
|
+
} as const;
|
|
16
|
+
|
|
17
|
+
/** A styler whose methods either wrap text in ANSI codes or pass it through. */
|
|
18
|
+
export interface Styler {
|
|
19
|
+
green(text: string): string;
|
|
20
|
+
yellow(text: string): string;
|
|
21
|
+
red(text: string): string;
|
|
22
|
+
cyan(text: string): string;
|
|
23
|
+
bold(text: string): string;
|
|
24
|
+
dim(text: string): string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const PLAIN: Styler = {
|
|
28
|
+
green: (t) => t,
|
|
29
|
+
yellow: (t) => t,
|
|
30
|
+
red: (t) => t,
|
|
31
|
+
cyan: (t) => t,
|
|
32
|
+
bold: (t) => t,
|
|
33
|
+
dim: (t) => t,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const COLORED: Styler = {
|
|
37
|
+
green: (t) => `${ANSI.green}${ANSI.bold}${t}${ANSI.reset}`,
|
|
38
|
+
yellow: (t) => `${ANSI.yellow}${ANSI.bold}${t}${ANSI.reset}`,
|
|
39
|
+
red: (t) => `${ANSI.red}${ANSI.bold}${t}${ANSI.reset}`,
|
|
40
|
+
cyan: (t) => `${ANSI.cyan}${t}${ANSI.reset}`,
|
|
41
|
+
bold: (t) => `${ANSI.bold}${t}${ANSI.reset}`,
|
|
42
|
+
dim: (t) => `${ANSI.faint}${t}${ANSI.reset}`,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/** Pick a styler: colored only when explicitly enabled. */
|
|
46
|
+
export function styler(colorize: boolean): Styler {
|
|
47
|
+
return colorize ? COLORED : PLAIN;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Whether color should be enabled for a stream. Disabled when NO_COLOR is set
|
|
52
|
+
* (any value) or the stream is not an interactive TTY.
|
|
53
|
+
*/
|
|
54
|
+
export function shouldColorize(stream: { isTTY?: boolean }): boolean {
|
|
55
|
+
if (process.env.NO_COLOR !== undefined && process.env.NO_COLOR !== "") return false;
|
|
56
|
+
return stream.isTTY === true;
|
|
57
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { renderEmpty, renderTable } from "./table.js";
|
|
3
|
+
|
|
4
|
+
describe("renderTable", () => {
|
|
5
|
+
it("returns empty string for no rows", () => {
|
|
6
|
+
expect(renderTable(["NAME", "KIND"], [])).toBe("");
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it("renders aligned columns with a dash separator", () => {
|
|
10
|
+
const out = renderTable(
|
|
11
|
+
["NAME", "KIND"],
|
|
12
|
+
[
|
|
13
|
+
["my-agent", "agent"],
|
|
14
|
+
["wf", "workflow"],
|
|
15
|
+
],
|
|
16
|
+
);
|
|
17
|
+
const lines = out.trimEnd().split("\n");
|
|
18
|
+
expect(lines[0]).toBe("NAME KIND");
|
|
19
|
+
expect(lines[1]).toBe("-------- --------");
|
|
20
|
+
expect(lines[2]).toBe("my-agent agent");
|
|
21
|
+
expect(lines[3]).toBe("wf workflow");
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("tolerates short rows by padding missing cells", () => {
|
|
25
|
+
const out = renderTable(["A", "B"], [["only"]]);
|
|
26
|
+
expect(out.trimEnd().split("\n")[2]).toBe("only");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe("renderEmpty", () => {
|
|
31
|
+
it("reports an unfiltered empty state", () => {
|
|
32
|
+
expect(renderEmpty("agents")).toBe("\nNo agents found\n\n");
|
|
33
|
+
});
|
|
34
|
+
it("reports a query-filtered empty state", () => {
|
|
35
|
+
expect(renderEmpty("agents", "foo")).toBe("\nNo agents found matching 'foo'\n\n");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Shared table renderer for list/collection views. Mirrors the column model of
|
|
2
|
+
// the Go CLI's pkg/display table (dynamic widths, dash separator, 3-space gap).
|
|
3
|
+
//
|
|
4
|
+
// Wave 1 implements the non-adaptive path: columns size to their widest cell.
|
|
5
|
+
// Terminal-width adaptation and ANSI-aware measurement can be layered on later
|
|
6
|
+
// without changing the call sites.
|
|
7
|
+
|
|
8
|
+
const COLUMN_GAP = " ";
|
|
9
|
+
|
|
10
|
+
/** Render a table from headers and rows. Returns "" when there are no rows. */
|
|
11
|
+
export function renderTable(
|
|
12
|
+
headers: readonly string[],
|
|
13
|
+
rows: readonly (readonly string[])[],
|
|
14
|
+
): string {
|
|
15
|
+
if (rows.length === 0) return "";
|
|
16
|
+
|
|
17
|
+
const widths = headers.map((header, column) => {
|
|
18
|
+
let width = header.length;
|
|
19
|
+
for (const row of rows) {
|
|
20
|
+
const cell = row[column] ?? "";
|
|
21
|
+
if (cell.length > width) width = cell.length;
|
|
22
|
+
}
|
|
23
|
+
return width;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const renderRow = (cells: readonly string[]): string =>
|
|
27
|
+
headers
|
|
28
|
+
.map((_, column) => padRight(cells[column] ?? "", widths[column]))
|
|
29
|
+
.join(COLUMN_GAP)
|
|
30
|
+
.replace(/ +$/, "");
|
|
31
|
+
|
|
32
|
+
const lines: string[] = [];
|
|
33
|
+
lines.push(renderRow(headers));
|
|
34
|
+
lines.push(widths.map((width) => "-".repeat(width)).join(COLUMN_GAP));
|
|
35
|
+
for (const row of rows) {
|
|
36
|
+
lines.push(renderRow(row));
|
|
37
|
+
}
|
|
38
|
+
return lines.join("\n") + "\n";
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Standardized empty-state message for list commands. */
|
|
42
|
+
export function renderEmpty(resourceName: string, query?: string): string {
|
|
43
|
+
const middle =
|
|
44
|
+
query !== undefined && query !== ""
|
|
45
|
+
? `No ${resourceName} found matching '${query}'`
|
|
46
|
+
: `No ${resourceName} found`;
|
|
47
|
+
return `\n${middle}\n\n`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function padRight(text: string, width: number): string {
|
|
51
|
+
return text + " ".repeat(Math.max(0, width - text.length));
|
|
52
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { buildProgram } from "./program.js";
|
|
3
|
+
import { VERSION } from "./version.js";
|
|
4
|
+
|
|
5
|
+
describe("buildProgram", () => {
|
|
6
|
+
it("registers the foundational commands", () => {
|
|
7
|
+
const program = buildProgram();
|
|
8
|
+
const names = program.commands.map((command) => command.name()).sort();
|
|
9
|
+
expect(names).toContain("version");
|
|
10
|
+
expect(names).toContain("completion");
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("registers the Wave 2b read commands", () => {
|
|
14
|
+
const program = buildProgram();
|
|
15
|
+
const names = program.commands.map((command) => command.name());
|
|
16
|
+
expect(names).toEqual(expect.arrayContaining(["search", "usage", "diff"]));
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("registers the Wave 2d artifact commands", () => {
|
|
20
|
+
const program = buildProgram();
|
|
21
|
+
const names = program.commands.map((command) => command.name());
|
|
22
|
+
expect(names).toEqual(expect.arrayContaining(["push", "download"]));
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("registers the Wave 3c streaming commands", () => {
|
|
26
|
+
const program = buildProgram();
|
|
27
|
+
const names = program.commands.map((command) => command.name());
|
|
28
|
+
expect(names).toEqual(expect.arrayContaining(["run", "resume", "draft"]));
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("exposes the draft subcommands", () => {
|
|
32
|
+
const program = buildProgram();
|
|
33
|
+
const draft = program.commands.find((command) => command.name() === "draft");
|
|
34
|
+
const subs = draft?.commands.map((command) => command.name()).sort();
|
|
35
|
+
expect(subs).toEqual(["agent", "mcp-server", "skill"]);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("marks draft subcommands' --message as required", () => {
|
|
39
|
+
const program = buildProgram();
|
|
40
|
+
const draft = program.commands.find((command) => command.name() === "draft");
|
|
41
|
+
const skill = draft?.commands.find((command) => command.name() === "skill");
|
|
42
|
+
const message = skill?.options.find((option) => option.long === "--message");
|
|
43
|
+
expect(message?.required).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("exposes the usage subcommands", () => {
|
|
47
|
+
const program = buildProgram();
|
|
48
|
+
const usage = program.commands.find((command) => command.name() === "usage");
|
|
49
|
+
const subs = usage?.commands.map((command) => command.name()).sort();
|
|
50
|
+
expect(subs).toEqual(["agent", "org", "session"]);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("exposes the global flags as persistent options", () => {
|
|
54
|
+
const program = buildProgram();
|
|
55
|
+
const longFlags = program.options.map((option) => option.long);
|
|
56
|
+
expect(longFlags).toEqual(
|
|
57
|
+
expect.arrayContaining(["--debug", "--standalone", "--org", "--api-key"]),
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("reports a semver-shaped version", () => {
|
|
62
|
+
expect(VERSION).toMatch(/^\d+\.\d+\.\d+/);
|
|
63
|
+
});
|
|
64
|
+
});
|
package/src/program.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Builds the root commander program: global flags, the preAction hook that
|
|
2
|
+
// captures them into process-global runtime state, and command registration.
|
|
3
|
+
//
|
|
4
|
+
// Command modules are registered through small `register*` functions so the
|
|
5
|
+
// entry path stays light; heavier commands lazy-load their implementation via
|
|
6
|
+
// dynamic import inside the action (DD-001), so `stigmer --help`/`version`/
|
|
7
|
+
// `completion` never pay for importing the backend client or auth stack.
|
|
8
|
+
|
|
9
|
+
import { Command } from "commander";
|
|
10
|
+
import { registerApiKey } from "./commands/apikey/index.js";
|
|
11
|
+
import { registerApply } from "./commands/apply.js";
|
|
12
|
+
import { registerAuth } from "./commands/auth/index.js";
|
|
13
|
+
import { registerCompletion } from "./commands/completion.js";
|
|
14
|
+
import { registerConfig } from "./commands/config/index.js";
|
|
15
|
+
import { registerConnect } from "./commands/connect.js";
|
|
16
|
+
import { registerDelete } from "./commands/delete.js";
|
|
17
|
+
import { registerDiff } from "./commands/diff.js";
|
|
18
|
+
import { registerDown } from "./commands/down.js";
|
|
19
|
+
import { registerDownload } from "./commands/download.js";
|
|
20
|
+
import { registerDraft } from "./commands/draft.js";
|
|
21
|
+
import { registerExecution } from "./commands/execution/index.js";
|
|
22
|
+
import { registerGet } from "./commands/get.js";
|
|
23
|
+
import { registerInternalDaemon } from "./commands/internal-daemon.js";
|
|
24
|
+
import { registerList } from "./commands/list.js";
|
|
25
|
+
import { registerLogs } from "./commands/logs.js";
|
|
26
|
+
import { registerMcpServer } from "./commands/mcp-server.js";
|
|
27
|
+
import { registerPush } from "./commands/push.js";
|
|
28
|
+
import { registerReset } from "./commands/reset.js";
|
|
29
|
+
import { registerResume } from "./commands/resume.js";
|
|
30
|
+
import { registerRun } from "./commands/run.js";
|
|
31
|
+
import { registerSearch } from "./commands/search.js";
|
|
32
|
+
import { registerSeedpack } from "./commands/seedpack.js";
|
|
33
|
+
import { registerSetup } from "./commands/setup.js";
|
|
34
|
+
import { registerStatus } from "./commands/status.js";
|
|
35
|
+
import { registerTag } from "./commands/tag.js";
|
|
36
|
+
import { registerUp } from "./commands/up.js";
|
|
37
|
+
import { registerUsage } from "./commands/usage.js";
|
|
38
|
+
import { registerValidate } from "./commands/validate.js";
|
|
39
|
+
import { registerVersion } from "./commands/version.js";
|
|
40
|
+
import { setDebug, setStandalone } from "./runtime.js";
|
|
41
|
+
import { VERSION } from "./version.js";
|
|
42
|
+
|
|
43
|
+
export function buildProgram(): Command {
|
|
44
|
+
const program = new Command();
|
|
45
|
+
|
|
46
|
+
program
|
|
47
|
+
.name("stigmer")
|
|
48
|
+
.description("Stigmer command-line interface")
|
|
49
|
+
.version(VERSION, "--version", "print the CLI version")
|
|
50
|
+
.option("-d, --debug", "enable debug output")
|
|
51
|
+
.option("--standalone", "ignore the config file; use flags and environment only")
|
|
52
|
+
.option("--org <slug>", "organization slug override")
|
|
53
|
+
.option("--api-key <key>", "API key for authentication")
|
|
54
|
+
.enablePositionalOptions();
|
|
55
|
+
|
|
56
|
+
// Capture global flags into process-global state before any command runs.
|
|
57
|
+
// Bridging --api-key to the env mirrors the Go CLI's PersistentPreRun so the
|
|
58
|
+
// SDK auth interceptor and config layer pick it up uniformly.
|
|
59
|
+
program.hook("preAction", () => {
|
|
60
|
+
const globals = program.opts();
|
|
61
|
+
setDebug(Boolean(globals.debug));
|
|
62
|
+
setStandalone(Boolean(globals.standalone));
|
|
63
|
+
if (typeof globals.apiKey === "string" && globals.apiKey !== "") {
|
|
64
|
+
process.env.STIGMER_API_KEY = globals.apiKey;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
registerVersion(program);
|
|
69
|
+
registerCompletion(program);
|
|
70
|
+
registerConfig(program);
|
|
71
|
+
registerAuth(program);
|
|
72
|
+
registerApiKey(program);
|
|
73
|
+
registerGet(program);
|
|
74
|
+
registerList(program);
|
|
75
|
+
registerSearch(program);
|
|
76
|
+
registerValidate(program);
|
|
77
|
+
registerDelete(program);
|
|
78
|
+
registerTag(program);
|
|
79
|
+
registerDiff(program);
|
|
80
|
+
registerUsage(program);
|
|
81
|
+
registerPush(program);
|
|
82
|
+
registerDownload(program);
|
|
83
|
+
registerApply(program);
|
|
84
|
+
registerRun(program);
|
|
85
|
+
registerResume(program);
|
|
86
|
+
registerDraft(program);
|
|
87
|
+
registerExecution(program);
|
|
88
|
+
registerConnect(program);
|
|
89
|
+
registerMcpServer(program);
|
|
90
|
+
registerUp(program);
|
|
91
|
+
registerDown(program);
|
|
92
|
+
registerStatus(program);
|
|
93
|
+
registerLogs(program);
|
|
94
|
+
registerSeedpack(program);
|
|
95
|
+
registerSetup(program);
|
|
96
|
+
registerReset(program);
|
|
97
|
+
registerInternalDaemon(program);
|
|
98
|
+
|
|
99
|
+
return program;
|
|
100
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { generateAliases, normalizeAlias, pluralize, toKebabCase, toSnakeCase } from "./aliases.js";
|
|
3
|
+
|
|
4
|
+
function normalized(aliases: string[]): Set<string> {
|
|
5
|
+
return new Set(aliases.map(normalizeAlias));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
describe("generateAliases", () => {
|
|
9
|
+
it("derives the full McpServer alias set", () => {
|
|
10
|
+
const found = normalized(generateAliases("McpServer", "MCP Server", "mcp"));
|
|
11
|
+
for (const exp of [
|
|
12
|
+
"mcpserver",
|
|
13
|
+
"mcp-server",
|
|
14
|
+
"mcp_server",
|
|
15
|
+
"mcp",
|
|
16
|
+
"mcpservers",
|
|
17
|
+
"mcp-servers",
|
|
18
|
+
"mcp_servers",
|
|
19
|
+
"mcps",
|
|
20
|
+
]) {
|
|
21
|
+
expect(found).toContain(exp);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("derives the Agent alias set", () => {
|
|
26
|
+
const found = normalized(generateAliases("Agent", "Agent", "agt"));
|
|
27
|
+
for (const exp of ["agent", "agt", "agents", "agts"]) {
|
|
28
|
+
expect(found).toContain(exp);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("derives the Workflow alias set", () => {
|
|
33
|
+
const found = normalized(generateAliases("Workflow", "Workflow", "wfl"));
|
|
34
|
+
for (const exp of ["workflow", "wfl", "workflows", "wfls"]) {
|
|
35
|
+
expect(found).toContain(exp);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("does not let a multi-word display name steal the parent's name", () => {
|
|
40
|
+
// "Agent Instance" must NOT register "agent" (that belongs to Agent).
|
|
41
|
+
const found = normalized(generateAliases("AgentInstance", "Agent Instance", "ain"));
|
|
42
|
+
expect(found).not.toContain("agent");
|
|
43
|
+
expect(found).toContain("agentinstance");
|
|
44
|
+
expect(found).toContain("agent-instance");
|
|
45
|
+
expect(found).toContain("ain");
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("produces no duplicate normalized aliases", () => {
|
|
49
|
+
const aliases = generateAliases("Agent", "Agent", "agent");
|
|
50
|
+
const lower = aliases.map(normalizeAlias);
|
|
51
|
+
expect(new Set(lower).size).toBe(lower.length);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
describe("case conversion", () => {
|
|
56
|
+
it.each([
|
|
57
|
+
["McpServer", "mcp-server"],
|
|
58
|
+
["Agent", "agent"],
|
|
59
|
+
["AgentInstance", "agent-instance"],
|
|
60
|
+
["WorkflowExecution", "workflow-execution"],
|
|
61
|
+
["", ""],
|
|
62
|
+
])("toKebabCase(%s) = %s", (input, expected) => {
|
|
63
|
+
expect(toKebabCase(input)).toBe(expected);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it.each([
|
|
67
|
+
["McpServer", "mcp_server"],
|
|
68
|
+
["Agent", "agent"],
|
|
69
|
+
["AgentInstance", "agent_instance"],
|
|
70
|
+
["WorkflowExecution", "workflow_execution"],
|
|
71
|
+
["", ""],
|
|
72
|
+
])("toSnakeCase(%s) = %s", (input, expected) => {
|
|
73
|
+
expect(toSnakeCase(input)).toBe(expected);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
describe("pluralize", () => {
|
|
78
|
+
it.each([
|
|
79
|
+
["agent", "agents"],
|
|
80
|
+
["workflow", "workflows"],
|
|
81
|
+
["mcpserver", "mcpservers"],
|
|
82
|
+
["agents", "agents"],
|
|
83
|
+
["", ""],
|
|
84
|
+
])("pluralize(%s) = %s", (input, expected) => {
|
|
85
|
+
expect(pluralize(input)).toBe(expected);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
describe("normalizeAlias", () => {
|
|
90
|
+
it.each([
|
|
91
|
+
["Agent", "agent"],
|
|
92
|
+
[" agent ", "agent"],
|
|
93
|
+
["MCP-Server", "mcp-server"],
|
|
94
|
+
["WORKFLOW", "workflow"],
|
|
95
|
+
["", ""],
|
|
96
|
+
])("normalizeAlias(%s) = %s", (input, expected) => {
|
|
97
|
+
expect(normalizeAlias(input)).toBe(expected);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// Algorithmic alias generation — a faithful port of the Go types.GenerateAliases
|
|
2
|
+
// family. Aliases are *derived* from proto kind metadata (name/display_name/
|
|
3
|
+
// id_prefix), never hardcoded, so a new resource kind picks up its full set of
|
|
4
|
+
// accepted spellings automatically. Keeping the algorithm byte-for-byte
|
|
5
|
+
// identical to Go guarantees both CLIs accept exactly the same inputs.
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Generate every accepted input form for a resource kind.
|
|
9
|
+
*
|
|
10
|
+
* From name "McpServer": "mcpserver", "mcp-server", "mcp_server", "McpServer"
|
|
11
|
+
* From displayName "MCP Server": "mcp" / "MCP"
|
|
12
|
+
* From idPrefix "mcp": "mcp"
|
|
13
|
+
* Plus the plural of every form above.
|
|
14
|
+
*/
|
|
15
|
+
export function generateAliases(name: string, displayName: string, idPrefix: string): string[] {
|
|
16
|
+
const seen = new Set<string>();
|
|
17
|
+
const aliases: string[] = [];
|
|
18
|
+
|
|
19
|
+
const add = (alias: string): void => {
|
|
20
|
+
if (alias === "") return;
|
|
21
|
+
const lower = alias.toLowerCase();
|
|
22
|
+
if (!seen.has(lower)) {
|
|
23
|
+
seen.add(lower);
|
|
24
|
+
aliases.push(alias);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// From name: "McpServer"
|
|
29
|
+
add(name.toLowerCase()); // "mcpserver"
|
|
30
|
+
add(toKebabCase(name)); // "mcp-server"
|
|
31
|
+
add(toSnakeCase(name)); // "mcp_server"
|
|
32
|
+
add(name); // "McpServer"
|
|
33
|
+
|
|
34
|
+
// From display_name: single-word names contribute lower/upper forms; for
|
|
35
|
+
// multi-word names only the first word is added, and only when it does not
|
|
36
|
+
// simply re-derive the name (this stops "Agent Instance" from stealing
|
|
37
|
+
// "agent" from "Agent", while still letting "MCP Server" register "mcp").
|
|
38
|
+
const words = displayName.split(/\s+/).filter((w) => w.length > 0);
|
|
39
|
+
if (words.length === 1) {
|
|
40
|
+
add(words[0].toLowerCase());
|
|
41
|
+
add(words[0].toUpperCase());
|
|
42
|
+
} else if (words.length > 1) {
|
|
43
|
+
const firstWord = words[0].toLowerCase();
|
|
44
|
+
const lowerName = name.toLowerCase();
|
|
45
|
+
if (!lowerName.startsWith(firstWord) || firstWord === lowerName) {
|
|
46
|
+
add(firstWord);
|
|
47
|
+
add(words[0].toUpperCase());
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// From id_prefix: "mcp"
|
|
52
|
+
add(idPrefix);
|
|
53
|
+
|
|
54
|
+
// Plurals of every form gathered so far.
|
|
55
|
+
for (const alias of [...aliases]) {
|
|
56
|
+
add(pluralize(alias));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return aliases;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Convert PascalCase to kebab-case: "McpServer" -> "mcp-server". */
|
|
63
|
+
export function toKebabCase(s: string): string {
|
|
64
|
+
return splitCase(s, "-");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** Convert PascalCase to snake_case: "McpServer" -> "mcp_server". */
|
|
68
|
+
export function toSnakeCase(s: string): string {
|
|
69
|
+
return splitCase(s, "_");
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function splitCase(s: string, sep: string): string {
|
|
73
|
+
let result = "";
|
|
74
|
+
for (let i = 0; i < s.length; i++) {
|
|
75
|
+
const ch = s[i];
|
|
76
|
+
if (i > 0 && ch >= "A" && ch <= "Z") {
|
|
77
|
+
result += sep;
|
|
78
|
+
}
|
|
79
|
+
result += ch.toLowerCase();
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Naive English pluralization; the singular is always accepted too. */
|
|
85
|
+
export function pluralize(s: string): string {
|
|
86
|
+
if (s === "" || s.endsWith("s")) return s;
|
|
87
|
+
return `${s}s`;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Normalize user input for case-insensitive alias lookup. */
|
|
91
|
+
export function normalizeAlias(input: string): string {
|
|
92
|
+
return input.trim().toLowerCase();
|
|
93
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Public surface of the type-registry module.
|
|
2
|
+
|
|
3
|
+
export { generateAliases, normalizeAlias, pluralize, toKebabCase, toSnakeCase } from "./aliases.js";
|
|
4
|
+
export { CLI_RELEVANT_KINDS, type KindMeta, KIND_META } from "./metadata.js";
|
|
5
|
+
export { defaultRegistry, type Registry, supportsVerb, type TypeInfo } from "./registry.js";
|
|
6
|
+
export { ALL_VERBS, isFileBasedVerb, isReferenceBasedVerb, Verb } from "./verbs.js";
|
|
7
|
+
export { VERB_SUPPORT, verbsForKind } from "./verb-support.js";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// Declarative mirror of api_resource_kind.proto `kind_meta` for CLI-relevant
|
|
2
|
+
// kinds.
|
|
3
|
+
//
|
|
4
|
+
// Why a hand-maintained table instead of reading the proto extension at
|
|
5
|
+
// runtime: protobuf-es does not surface custom enum-value options (the
|
|
6
|
+
// `kind_meta` extension) through its runtime reflection the way Go's protobuf
|
|
7
|
+
// reflection does. The SDK already established this pattern — see
|
|
8
|
+
// `sdk/typescript/src/gen/resource-availability.ts`, a generated table derived
|
|
9
|
+
// from the same `kind_meta`. T06's codegen pass can emit THIS file the same
|
|
10
|
+
// way; until then the table is small, stable, and guarded by tests that pin the
|
|
11
|
+
// derived aliases. Values below are copied verbatim from the proto.
|
|
12
|
+
|
|
13
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
14
|
+
|
|
15
|
+
export interface KindMeta {
|
|
16
|
+
/** Proto kind_meta.name — also the YAML `kind` value (e.g. "McpServer"). */
|
|
17
|
+
readonly name: string;
|
|
18
|
+
/** Proto kind_meta.display_name (e.g. "MCP Server"). */
|
|
19
|
+
readonly displayName: string;
|
|
20
|
+
/** Proto kind_meta.id_prefix (e.g. "mcp"). */
|
|
21
|
+
readonly idPrefix: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export const KIND_META: ReadonlyMap<ApiResourceKind, KindMeta> = new Map([
|
|
25
|
+
[ApiResourceKind.organization, { name: "Organization", displayName: "Organization", idPrefix: "org" }],
|
|
26
|
+
[ApiResourceKind.agent, { name: "Agent", displayName: "Agent", idPrefix: "agt" }],
|
|
27
|
+
[ApiResourceKind.workflow, { name: "Workflow", displayName: "Workflow", idPrefix: "wfl" }],
|
|
28
|
+
[ApiResourceKind.skill, { name: "Skill", displayName: "Skill", idPrefix: "skl" }],
|
|
29
|
+
[ApiResourceKind.mcp_server, { name: "McpServer", displayName: "MCP Server", idPrefix: "mcp" }],
|
|
30
|
+
[ApiResourceKind.project, { name: "Project", displayName: "Project", idPrefix: "prj" }],
|
|
31
|
+
[ApiResourceKind.api_key, { name: "ApiKey", displayName: "API Key", idPrefix: "key" }],
|
|
32
|
+
[ApiResourceKind.identity_provider, { name: "IdentityProvider", displayName: "Identity Provider", idPrefix: "idp" }],
|
|
33
|
+
[ApiResourceKind.oauth_app, { name: "OAuthApp", displayName: "OAuth App", idPrefix: "oapp" }],
|
|
34
|
+
[ApiResourceKind.environment, { name: "Environment", displayName: "Environment", idPrefix: "env" }],
|
|
35
|
+
[ApiResourceKind.agent_instance, { name: "AgentInstance", displayName: "Agent Instance", idPrefix: "ain" }],
|
|
36
|
+
[ApiResourceKind.workflow_instance, { name: "WorkflowInstance", displayName: "Workflow Instance", idPrefix: "win" }],
|
|
37
|
+
[ApiResourceKind.session, { name: "Session", displayName: "Session", idPrefix: "ses" }],
|
|
38
|
+
[ApiResourceKind.agent_execution, { name: "AgentExecution", displayName: "Agent Execution", idPrefix: "aex" }],
|
|
39
|
+
]);
|
|
40
|
+
|
|
41
|
+
// Kinds that are user-facing in the CLI and therefore registered as addressable
|
|
42
|
+
// types. Mirrors Go's `cliRelevantKinds`. Note: agent_execution is intentionally
|
|
43
|
+
// excluded — it is driven through its dedicated AgentExecutionQueryController
|
|
44
|
+
// RPCs as a command special-case, not the generic verb dispatch, even though it
|
|
45
|
+
// carries kind metadata above and a verb-support entry below.
|
|
46
|
+
export const CLI_RELEVANT_KINDS: readonly ApiResourceKind[] = [
|
|
47
|
+
ApiResourceKind.organization,
|
|
48
|
+
ApiResourceKind.agent,
|
|
49
|
+
ApiResourceKind.workflow,
|
|
50
|
+
ApiResourceKind.skill,
|
|
51
|
+
ApiResourceKind.mcp_server,
|
|
52
|
+
ApiResourceKind.project,
|
|
53
|
+
ApiResourceKind.api_key,
|
|
54
|
+
ApiResourceKind.identity_provider,
|
|
55
|
+
ApiResourceKind.oauth_app,
|
|
56
|
+
ApiResourceKind.environment,
|
|
57
|
+
ApiResourceKind.agent_instance,
|
|
58
|
+
ApiResourceKind.workflow_instance,
|
|
59
|
+
ApiResourceKind.session,
|
|
60
|
+
];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { defaultRegistry } from "./registry.js";
|
|
4
|
+
import { Verb } from "./verbs.js";
|
|
5
|
+
|
|
6
|
+
const registry = defaultRegistry();
|
|
7
|
+
|
|
8
|
+
describe("registry — alias resolution", () => {
|
|
9
|
+
it.each([
|
|
10
|
+
["mcp", ApiResourceKind.mcp_server],
|
|
11
|
+
["mcp-server", ApiResourceKind.mcp_server],
|
|
12
|
+
["mcp_server", ApiResourceKind.mcp_server],
|
|
13
|
+
["McpServer", ApiResourceKind.mcp_server],
|
|
14
|
+
["mcpservers", ApiResourceKind.mcp_server],
|
|
15
|
+
["agent", ApiResourceKind.agent],
|
|
16
|
+
["agents", ApiResourceKind.agent],
|
|
17
|
+
["agt", ApiResourceKind.agent],
|
|
18
|
+
["workflow", ApiResourceKind.workflow],
|
|
19
|
+
["wfl", ApiResourceKind.workflow],
|
|
20
|
+
["org", ApiResourceKind.organization],
|
|
21
|
+
["oapp", ApiResourceKind.oauth_app],
|
|
22
|
+
])("resolves %s -> kind", (alias, kind) => {
|
|
23
|
+
expect(registry.getByAlias(alias)?.kind).toBe(kind);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("resolution is case-insensitive", () => {
|
|
27
|
+
expect(registry.getByAlias("MCP-SERVER")?.kind).toBe(ApiResourceKind.mcp_server);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("returns undefined for an unknown alias", () => {
|
|
31
|
+
expect(registry.getByAlias("nope")).toBeUndefined();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("does not register agent_execution as an addressable type", () => {
|
|
35
|
+
expect(registry.getByKind(ApiResourceKind.agent_execution)).toBeUndefined();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe("registry — YAML kind resolution", () => {
|
|
40
|
+
it("resolves the exact YAML kind", () => {
|
|
41
|
+
expect(registry.getByYamlKind("McpServer")?.kind).toBe(ApiResourceKind.mcp_server);
|
|
42
|
+
expect(registry.getByYamlKind("Workflow")?.kind).toBe(ApiResourceKind.workflow);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
describe("registry — verb support matrix", () => {
|
|
47
|
+
it("agent supports read + run + search verbs", () => {
|
|
48
|
+
for (const v of [Verb.Apply, Verb.Validate, Verb.Get, Verb.List, Verb.Delete, Verb.Run, Verb.Search]) {
|
|
49
|
+
expect(registry.supportsVerb(ApiResourceKind.agent, v)).toBe(true);
|
|
50
|
+
}
|
|
51
|
+
expect(registry.supportsVerb(ApiResourceKind.agent, Verb.Push)).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("skill supports push but not apply", () => {
|
|
55
|
+
expect(registry.supportsVerb(ApiResourceKind.skill, Verb.Push)).toBe(true);
|
|
56
|
+
expect(registry.supportsVerb(ApiResourceKind.skill, Verb.Apply)).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("workflow_instance has no list verb", () => {
|
|
60
|
+
expect(registry.supportsVerb(ApiResourceKind.workflow_instance, Verb.Get)).toBe(true);
|
|
61
|
+
expect(registry.supportsVerb(ApiResourceKind.workflow_instance, Verb.List)).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("typesForVerb(get) includes the core read kinds", () => {
|
|
65
|
+
const kinds = new Set(registry.typesForVerb(Verb.Get).map((t) => t.kind));
|
|
66
|
+
expect(kinds).toContain(ApiResourceKind.agent);
|
|
67
|
+
expect(kinds).toContain(ApiResourceKind.workflow);
|
|
68
|
+
expect(kinds).toContain(ApiResourceKind.mcp_server);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe("registry — completeness", () => {
|
|
73
|
+
it("registers every CLI-relevant kind with metadata", () => {
|
|
74
|
+
for (const info of registry.all()) {
|
|
75
|
+
expect(info.name).not.toBe("");
|
|
76
|
+
expect(info.singular).toBe(info.name.toLowerCase());
|
|
77
|
+
expect(info.aliases.length).toBeGreaterThan(0);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|