@blxzer/cursor-trellis 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +25 -14
- package/README.zh-CN.md +14 -10
- package/bin/smart-search.js +10 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +36 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +42 -153
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +10 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +38 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +144 -41
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/cursor.d.ts +2 -1
- package/dist/configurators/cursor.d.ts.map +1 -1
- package/dist/configurators/cursor.js +4 -2
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/index.js +4 -4
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/shared.d.ts +8 -0
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +27 -1
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +0 -9
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +12 -45
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/constants/paths.d.ts +13 -0
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +17 -0
- package/dist/constants/paths.js.map +1 -1
- package/dist/migrations/manifests/0.3.0.json +1 -1
- package/dist/templates/common/bundled-skills/cstl-check/SKILL.md +1 -1
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/hooks-and-settings.md +2 -2
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/overview.md +1 -1
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/skills-and-commands.md +2 -4
- package/dist/templates/common/bundled-skills/cstl-skill-creator/SKILL.md +10 -7
- package/dist/templates/common/bundled-skills/cstl-skill-creator/references/authoring-rules.md +93 -19
- package/dist/templates/common/bundled-skills/cstl-skill-creator/references/general-authoring.md +189 -0
- package/dist/templates/common/bundled-skills/cstl-skill-creator/references/review-checklist.md +10 -5
- package/dist/templates/common/commands/continue.md +6 -5
- package/dist/templates/common/index.d.ts +20 -0
- package/dist/templates/common/index.d.ts.map +1 -1
- package/dist/templates/common/index.js +21 -2
- package/dist/templates/common/index.js.map +1 -1
- package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +179 -0
- package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +149 -0
- package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +903 -0
- package/dist/templates/common/skills/brainstorm.md +2 -2
- package/dist/templates/cursor/agents/cstl-check.md +2 -2
- package/dist/templates/cursor/agents/cstl-implement.md +1 -1
- package/dist/templates/cursor/agents/cstl-research.md +2 -2
- package/dist/templates/cursor/fixtures/expected-rules.d.ts +1 -1
- package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -1
- package/dist/templates/cursor/fixtures/expected-rules.js +7 -24
- package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -1
- package/dist/templates/cursor/hooks.json +4 -0
- package/dist/templates/cursor/index.d.ts +1 -1
- package/dist/templates/cursor/index.js +1 -1
- package/dist/templates/cursor/rules/cstl-bootstrap.mdc +17 -0
- package/dist/templates/markdown/agents.md +36 -3
- package/dist/templates/markdown/{spec/guides → framework}/cursor-native-modes-guide.md.txt +13 -10
- package/dist/templates/markdown/{spec/guides → framework}/cursor-subagent-policy.md.txt +63 -127
- package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +29 -0
- package/dist/templates/markdown/{spec/guides → framework}/execution-strategy.md.txt +2 -0
- package/dist/templates/markdown/framework/index.md.txt +31 -0
- package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +45 -0
- package/dist/templates/markdown/framework/middleware-protocol.md.txt +83 -0
- package/dist/templates/markdown/framework/parallel-first-execution.md.txt +78 -0
- package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +83 -0
- package/dist/templates/markdown/framework/release-boundary.md.txt +30 -0
- package/dist/templates/markdown/{spec/guides → framework}/retrieval-daily-guide.md.txt +1 -1
- package/dist/templates/markdown/framework/upgrade.md.txt +15 -0
- package/dist/templates/markdown/{spec/guides → framework}/verification-strength-guide.md.txt +2 -2
- package/dist/templates/markdown/index.d.ts +26 -10
- package/dist/templates/markdown/index.d.ts.map +1 -1
- package/dist/templates/markdown/index.js +87 -11
- package/dist/templates/markdown/index.js.map +1 -1
- package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +1 -1
- package/dist/templates/markdown/spec/guides/index.md.txt +5 -19
- package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +10 -10
- package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +1 -1
- package/dist/templates/shared-hooks/event-bridge.py +60 -0
- package/dist/templates/shared-hooks/index.d.ts +1 -1
- package/dist/templates/shared-hooks/index.d.ts.map +1 -1
- package/dist/templates/shared-hooks/index.js +1 -0
- package/dist/templates/shared-hooks/index.js.map +1 -1
- package/dist/templates/shared-hooks/session-start.py +19 -2
- package/dist/templates/trellis/CONTEXT.md +63 -3
- package/dist/templates/trellis/config.yaml +1 -1
- package/dist/templates/trellis/gitignore.txt +39 -39
- package/dist/templates/trellis/index.d.ts +12 -0
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +73 -15
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/pool/README.md +12 -3
- package/dist/templates/trellis/pool/plan.md +24 -5
- package/dist/templates/trellis/scripts/common/adapter_middleware.py +158 -0
- package/dist/templates/trellis/scripts/common/artifact_locale.py +12 -3
- package/dist/templates/trellis/scripts/common/cursor_retrieval_env.py +5 -2
- package/dist/templates/trellis/scripts/common/full_quality.py +237 -0
- package/dist/templates/trellis/scripts/common/git.py +6 -0
- package/dist/templates/trellis/scripts/common/git_context.py +17 -5
- package/dist/templates/trellis/scripts/common/kernel_command.py +367 -0
- package/dist/templates/trellis/scripts/common/lite_context.py +280 -0
- package/dist/templates/trellis/scripts/common/ondemand_topology.py +225 -0
- package/dist/templates/trellis/scripts/common/parent_orchestration.py +1 -1
- package/dist/templates/trellis/scripts/common/pool_store.py +16 -4
- package/dist/templates/trellis/scripts/common/retrieval_agent_instructions.py +2 -2
- package/dist/templates/trellis/scripts/common/session_context.py +28 -2
- package/dist/templates/trellis/scripts/common/task_gates.py +73 -12
- package/dist/templates/trellis/scripts/common/task_map.py +42 -9
- package/dist/templates/trellis/scripts/common/task_store.py +293 -61
- package/dist/templates/trellis/scripts/common/test_adapter_middleware.py +56 -0
- package/dist/templates/trellis/scripts/common/test_depends_mode_block.py +9 -0
- package/dist/templates/trellis/scripts/common/test_full_quality.py +197 -0
- package/dist/templates/trellis/scripts/common/test_kernel_command.py +326 -0
- package/dist/templates/trellis/scripts/common/test_lite_path.py +190 -0
- package/dist/templates/trellis/scripts/common/test_observable_defaults.py +10 -4
- package/dist/templates/trellis/scripts/common/test_ondemand_topology.py +122 -0
- package/dist/templates/trellis/scripts/common/test_pool_store.py +17 -0
- package/dist/templates/trellis/scripts/common/test_task_store_kernel_patch.py +163 -0
- package/dist/templates/trellis/scripts/common/workflow_phase.py +3 -0
- package/dist/templates/trellis/scripts/cursor_retrieval_probe_prompt.md +4 -5
- package/dist/templates/trellis/scripts/get_context.py +1 -0
- package/dist/templates/trellis/scripts/pool.py +5 -0
- package/dist/templates/trellis/scripts/task.py +83 -7
- package/dist/templates/trellis/workflow.md +109 -23
- package/dist/utils/cursor-retrieval-env.d.ts +2 -1
- package/dist/utils/cursor-retrieval-env.d.ts.map +1 -1
- package/dist/utils/cursor-retrieval-env.js +3 -2
- package/dist/utils/cursor-retrieval-env.js.map +1 -1
- package/dist/utils/cursor2plus-residue-cleanup.d.ts +38 -0
- package/dist/utils/cursor2plus-residue-cleanup.d.ts.map +1 -0
- package/dist/utils/cursor2plus-residue-cleanup.js +145 -0
- package/dist/utils/cursor2plus-residue-cleanup.js.map +1 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -1
- package/dist/utils/manifest-prune.js +7 -2
- package/dist/utils/manifest-prune.js.map +1 -1
- package/dist/utils/p36-upgrade.d.ts +62 -0
- package/dist/utils/p36-upgrade.d.ts.map +1 -0
- package/dist/utils/p36-upgrade.js +160 -0
- package/dist/utils/p36-upgrade.js.map +1 -0
- package/dist/utils/project-capabilities.d.ts +1 -12
- package/dist/utils/project-capabilities.d.ts.map +1 -1
- package/dist/utils/project-capabilities.js +3 -100
- package/dist/utils/project-capabilities.js.map +1 -1
- package/dist/utils/readiness.d.ts +10 -0
- package/dist/utils/readiness.d.ts.map +1 -1
- package/dist/utils/readiness.js +58 -26
- package/dist/utils/readiness.js.map +1 -1
- package/dist/utils/retrieval-agent-instructions.js +1 -1
- package/dist/utils/retrieval-agent-instructions.js.map +1 -1
- package/dist/utils/retrieval-execution-telemetry.js +1 -1
- package/dist/utils/retrieval-execution-telemetry.js.map +1 -1
- package/dist/utils/template-hash.d.ts.map +1 -1
- package/dist/utils/template-hash.js +11 -1
- package/dist/utils/template-hash.js.map +1 -1
- package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
- package/dist/utils/uninstall-scrubbers.js +52 -14
- package/dist/utils/uninstall-scrubbers.js.map +1 -1
- package/dist/utils/update-rollout-report.d.ts +14 -0
- package/dist/utils/update-rollout-report.d.ts.map +1 -1
- package/dist/utils/update-rollout-report.js +1 -0
- package/dist/utils/update-rollout-report.js.map +1 -1
- package/dist/utils/workflow-ownership.d.ts +1 -1
- package/dist/utils/workflow-ownership.js +4 -4
- package/dist/utils/workflow-ownership.js.map +1 -1
- package/package.json +5 -4
- package/scripts/postinstall.js +6 -7
- package/dist/commands/campaign/canvas-render.d.ts +0 -68
- package/dist/commands/campaign/canvas-render.d.ts.map +0 -1
- package/dist/commands/campaign/canvas-render.js +0 -414
- package/dist/commands/campaign/canvas-render.js.map +0 -1
- package/dist/commands/campaign/compose.d.ts +0 -15
- package/dist/commands/campaign/compose.d.ts.map +0 -1
- package/dist/commands/campaign/compose.js +0 -110
- package/dist/commands/campaign/compose.js.map +0 -1
- package/dist/commands/campaign/index.d.ts +0 -13
- package/dist/commands/campaign/index.d.ts.map +0 -1
- package/dist/commands/campaign/index.js +0 -134
- package/dist/commands/campaign/index.js.map +0 -1
- package/dist/commands/campaign/kind-map.d.ts +0 -6
- package/dist/commands/campaign/kind-map.d.ts.map +0 -1
- package/dist/commands/campaign/kind-map.js +0 -21
- package/dist/commands/campaign/kind-map.js.map +0 -1
- package/dist/commands/campaign/mcp-server.d.ts +0 -6
- package/dist/commands/campaign/mcp-server.d.ts.map +0 -1
- package/dist/commands/campaign/mcp-server.js +0 -167
- package/dist/commands/campaign/mcp-server.js.map +0 -1
- package/dist/commands/campaign/render.d.ts +0 -5
- package/dist/commands/campaign/render.d.ts.map +0 -1
- package/dist/commands/campaign/render.js +0 -103
- package/dist/commands/campaign/render.js.map +0 -1
- package/dist/commands/campaign/trellis-load.d.ts +0 -13
- package/dist/commands/campaign/trellis-load.d.ts.map +0 -1
- package/dist/commands/campaign/trellis-load.js +0 -122
- package/dist/commands/campaign/trellis-load.js.map +0 -1
- package/dist/commands/campaign/types.d.ts +0 -61
- package/dist/commands/campaign/types.d.ts.map +0 -1
- package/dist/commands/campaign/types.js +0 -3
- package/dist/commands/campaign/types.js.map +0 -1
- package/dist/commands/goal/index.d.ts +0 -3
- package/dist/commands/goal/index.d.ts.map +0 -1
- package/dist/commands/goal/index.js +0 -159
- package/dist/commands/goal/index.js.map +0 -1
- package/dist/commands/goal/review.d.ts +0 -6
- package/dist/commands/goal/review.d.ts.map +0 -1
- package/dist/commands/goal/review.js +0 -28
- package/dist/commands/goal/review.js.map +0 -1
- package/dist/commands/rpc/client.d.ts +0 -51
- package/dist/commands/rpc/client.d.ts.map +0 -1
- package/dist/commands/rpc/client.js +0 -147
- package/dist/commands/rpc/client.js.map +0 -1
- package/dist/commands/rpc/index.d.ts +0 -10
- package/dist/commands/rpc/index.d.ts.map +0 -1
- package/dist/commands/rpc/index.js +0 -157
- package/dist/commands/rpc/index.js.map +0 -1
- package/dist/commands/rpc/serve.d.ts +0 -23
- package/dist/commands/rpc/serve.d.ts.map +0 -1
- package/dist/commands/rpc/serve.js +0 -60
- package/dist/commands/rpc/serve.js.map +0 -1
- package/dist/commands/rpc/smoke.d.ts +0 -16
- package/dist/commands/rpc/smoke.d.ts.map +0 -1
- package/dist/commands/rpc/smoke.js +0 -92
- package/dist/commands/rpc/smoke.js.map +0 -1
- package/dist/commands/sdk/index.d.ts +0 -9
- package/dist/commands/sdk/index.d.ts.map +0 -1
- package/dist/commands/sdk/index.js +0 -58
- package/dist/commands/sdk/index.js.map +0 -1
- package/dist/commands/sdk/run.d.ts +0 -42
- package/dist/commands/sdk/run.d.ts.map +0 -1
- package/dist/commands/sdk/run.js +0 -220
- package/dist/commands/sdk/run.js.map +0 -1
- package/dist/commands/sdk/status.d.ts +0 -14
- package/dist/commands/sdk/status.d.ts.map +0 -1
- package/dist/commands/sdk/status.js +0 -69
- package/dist/commands/sdk/status.js.map +0 -1
- package/dist/configurators/cursor2plus-local.d.ts +0 -6
- package/dist/configurators/cursor2plus-local.d.ts.map +0 -1
- package/dist/configurators/cursor2plus-local.js +0 -21
- package/dist/configurators/cursor2plus-local.js.map +0 -1
- package/dist/goal/action-packet.d.ts +0 -89
- package/dist/goal/action-packet.d.ts.map +0 -1
- package/dist/goal/action-packet.js +0 -113
- package/dist/goal/action-packet.js.map +0 -1
- package/dist/goal/audit.d.ts +0 -14
- package/dist/goal/audit.d.ts.map +0 -1
- package/dist/goal/audit.js +0 -12
- package/dist/goal/audit.js.map +0 -1
- package/dist/goal/constants.d.ts +0 -26
- package/dist/goal/constants.d.ts.map +0 -1
- package/dist/goal/constants.js +0 -24
- package/dist/goal/constants.js.map +0 -1
- package/dist/goal/paths.d.ts +0 -8
- package/dist/goal/paths.d.ts.map +0 -1
- package/dist/goal/paths.js +0 -36
- package/dist/goal/paths.js.map +0 -1
- package/dist/goal/preflight.d.ts +0 -21
- package/dist/goal/preflight.d.ts.map +0 -1
- package/dist/goal/preflight.js +0 -97
- package/dist/goal/preflight.js.map +0 -1
- package/dist/goal/review-seam.d.ts +0 -44
- package/dist/goal/review-seam.d.ts.map +0 -1
- package/dist/goal/review-seam.js +0 -153
- package/dist/goal/review-seam.js.map +0 -1
- package/dist/goal/reviewer-rules.d.ts +0 -13
- package/dist/goal/reviewer-rules.d.ts.map +0 -1
- package/dist/goal/reviewer-rules.js +0 -153
- package/dist/goal/reviewer-rules.js.map +0 -1
- package/dist/goal/reviewer.d.ts +0 -9
- package/dist/goal/reviewer.d.ts.map +0 -1
- package/dist/goal/reviewer.js +0 -54
- package/dist/goal/reviewer.js.map +0 -1
- package/dist/goal/runtime.d.ts +0 -32
- package/dist/goal/runtime.d.ts.map +0 -1
- package/dist/goal/runtime.js +0 -242
- package/dist/goal/runtime.js.map +0 -1
- package/dist/goal/sdk-client.d.ts +0 -10
- package/dist/goal/sdk-client.d.ts.map +0 -1
- package/dist/goal/sdk-client.js +0 -34
- package/dist/goal/sdk-client.js.map +0 -1
- package/dist/goal/state.d.ts +0 -40
- package/dist/goal/state.d.ts.map +0 -1
- package/dist/goal/state.js +0 -37
- package/dist/goal/state.js.map +0 -1
- package/dist/goal/task-triggers.d.ts +0 -15
- package/dist/goal/task-triggers.d.ts.map +0 -1
- package/dist/goal/task-triggers.js +0 -23
- package/dist/goal/task-triggers.js.map +0 -1
- package/dist/goal/walls.d.ts +0 -12
- package/dist/goal/walls.d.ts.map +0 -1
- package/dist/goal/walls.js +0 -65
- package/dist/goal/walls.js.map +0 -1
- package/dist/goal/worker-prompt.d.ts +0 -13
- package/dist/goal/worker-prompt.d.ts.map +0 -1
- package/dist/goal/worker-prompt.js +0 -41
- package/dist/goal/worker-prompt.js.map +0 -1
- package/dist/goal/worker.d.ts +0 -42
- package/dist/goal/worker.d.ts.map +0 -1
- package/dist/goal/worker.js +0 -180
- package/dist/goal/worker.js.map +0 -1
- package/dist/templates/common/bundled-skills/cstl-cursor2plus-setup/SKILL.md +0 -63
- package/dist/templates/cursor/commands/cursor2plus-setup.md +0 -82
- package/dist/templates/cursor/rules/cstl-cursor-modes.mdc +0 -32
- package/dist/templates/cursor/rules/cstl-session-rename.mdc +0 -31
- package/dist/templates/cursor/rules/cstl-subagent-dispatch.mdc +0 -34
- package/dist/templates/cursor/rules/cstl-triage.mdc +0 -36
- package/dist/templates/cursor/rules/retrieval-routing.mdc +0 -78
- package/dist/templates/markdown/spec/guides/cursor-trellis-release-coexistence-guide.md.txt +0 -166
- package/dist/templates/markdown/spec/guides/goal-release-regression-runbook.md.txt +0 -132
- package/dist/templates/trellis/local/README.md +0 -85
- package/dist/templates/trellis/local/config.local.json.example +0 -6
- package/dist/templates/trellis/local/index.d.ts +0 -8
- package/dist/templates/trellis/local/index.d.ts.map +0 -1
- package/dist/templates/trellis/local/index.js +0 -15
- package/dist/templates/trellis/local/index.js.map +0 -1
- package/dist/templates/trellis/local/patch_wpelc8.py +0 -421
- package/dist/templates/trellis/local/smoke.py +0 -94
- package/dist/templates/trellis/local/subagent-models.json.example +0 -4
- package/dist/templates/trellis/local/trellis-task-models.json.example +0 -10
- package/dist/templates/trellis/local/trellis-task-models.json5.example +0 -45
- package/dist/templates/trellis/local/trellis_task_models_config.py +0 -200
- package/dist/utils/cursor-sdk-gate.d.ts +0 -10
- package/dist/utils/cursor-sdk-gate.d.ts.map +0 -1
- package/dist/utils/cursor-sdk-gate.js +0 -32
- package/dist/utils/cursor-sdk-gate.js.map +0 -1
- /package/dist/templates/markdown/{spec/guides → framework}/artifact-locale-guide.md.txt +0 -0
- /package/dist/templates/markdown/{spec/guides → framework}/cursor-context-injection-guide.md.txt +0 -0
- /package/dist/templates/markdown/{spec/guides → framework}/cursor-semantic-compliance.md.txt +0 -0
- /package/dist/templates/markdown/{spec/guides → framework}/injection-budget-guide.md.txt +0 -0
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { InvalidArgumentError } from "commander";
|
|
2
|
-
import { RPC_ADDRESS_KINDS, } from "@blxzer/cursor-trellis-core/rpc";
|
|
3
|
-
import { exitForEnvelope, getJson, parseAddressArg, parseJsonObject, printEnvelope, resolveRpcToken, resolveRpcUrl, rpcPublish, rpcRegister, rpcSend, rpcSubscribe, } from "./client.js";
|
|
4
|
-
import { runRpcServeCommand } from "./serve.js";
|
|
5
|
-
import { runRpcSmoke } from "./smoke.js";
|
|
6
|
-
function parsePort(value) {
|
|
7
|
-
if (!/^\d+$/.test(value)) {
|
|
8
|
-
throw new InvalidArgumentError(`expected port integer, got '${value}'`);
|
|
9
|
-
}
|
|
10
|
-
return Number(value);
|
|
11
|
-
}
|
|
12
|
-
function parseKind(value) {
|
|
13
|
-
if (!RPC_ADDRESS_KINDS.includes(value)) {
|
|
14
|
-
throw new InvalidArgumentError(`kind must be one of: ${RPC_ADDRESS_KINDS.join(", ")}`);
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Register `cstl rpc` — localhost RPC-FULL CORE control plane.
|
|
20
|
-
* Does not replace durable `channel` event logs. Does not auto-approve HITL gates.
|
|
21
|
-
*/
|
|
22
|
-
export function registerRpcCommand(program) {
|
|
23
|
-
const rpc = program
|
|
24
|
-
.command("rpc")
|
|
25
|
-
.description("Localhost RPC-FULL CORE broker (register/send/push/topics). Non-goals: multi-machine, A2A impl, ops console. Never auto-approves Trellis HITL gates.");
|
|
26
|
-
rpc
|
|
27
|
-
.command("serve")
|
|
28
|
-
.description("Start localhost broker on 127.0.0.1 (HTTP+/WS). Non-goals: multi-machine / A2A / ops console.")
|
|
29
|
-
.option("--host <host>", "loopback host only", "127.0.0.1")
|
|
30
|
-
.option("--port <port>", "listen port (0 = ephemeral)", parsePort, 7843)
|
|
31
|
-
.option("--token <token>", "shared local token (or TRELLIS_RPC_TOKEN)")
|
|
32
|
-
.option("--journal-dir <dir>", "audit journal directory (default: ~/.cstl/rpc)")
|
|
33
|
-
.option("--no-journal", "disable on-disk audit journal")
|
|
34
|
-
.action(async (opts) => {
|
|
35
|
-
const code = await runRpcServeCommand({
|
|
36
|
-
host: opts.host,
|
|
37
|
-
port: opts.port,
|
|
38
|
-
token: resolveRpcToken(opts.token),
|
|
39
|
-
journalDir: opts.journal === false ? null : opts.journalDir,
|
|
40
|
-
});
|
|
41
|
-
process.exitCode = code;
|
|
42
|
-
});
|
|
43
|
-
rpc
|
|
44
|
-
.command("status")
|
|
45
|
-
.description("Fetch broker status snapshot")
|
|
46
|
-
.option("--url <url>", "broker base URL (or TRELLIS_RPC_URL)")
|
|
47
|
-
.option("--json", "print raw JSON")
|
|
48
|
-
.action(async (opts) => {
|
|
49
|
-
const url = resolveRpcUrl(opts.url);
|
|
50
|
-
const status = await getJson(url, "/status");
|
|
51
|
-
console.log(JSON.stringify(status, null, opts.json ? 2 : 2));
|
|
52
|
-
});
|
|
53
|
-
rpc
|
|
54
|
-
.command("register")
|
|
55
|
-
.description("Register a client address with the broker")
|
|
56
|
-
.requiredOption("--kind <kind>", "worker|session|cli|sdk|broker", parseKind)
|
|
57
|
-
.requiredOption("--id <id>", "address id")
|
|
58
|
-
.option("--campaign <id>", "optional campaign id")
|
|
59
|
-
.option("--url <url>", "broker base URL")
|
|
60
|
-
.option("--token <token>", "shared local token")
|
|
61
|
-
.option("--json", "print full envelope JSON")
|
|
62
|
-
.action(async (opts) => {
|
|
63
|
-
const envelope = await rpcRegister({
|
|
64
|
-
url: resolveRpcUrl(opts.url),
|
|
65
|
-
kind: opts.kind,
|
|
66
|
-
id: opts.id,
|
|
67
|
-
campaignId: opts.campaign,
|
|
68
|
-
token: resolveRpcToken(opts.token),
|
|
69
|
-
});
|
|
70
|
-
printEnvelope(envelope, Boolean(opts.json));
|
|
71
|
-
process.exitCode = exitForEnvelope(envelope);
|
|
72
|
-
});
|
|
73
|
-
rpc
|
|
74
|
-
.command("send")
|
|
75
|
-
.description("Send an addressable one-way message")
|
|
76
|
-
.requiredOption("--from <addr>", "kind:id sender")
|
|
77
|
-
.requiredOption("--to <addr>", "kind:id recipient")
|
|
78
|
-
.option("--body <json>", "JSON object payload", "{}")
|
|
79
|
-
.option("--url <url>", "broker base URL")
|
|
80
|
-
.option("--token <token>", "shared local token")
|
|
81
|
-
.option("--json", "print full envelope JSON")
|
|
82
|
-
.action(async (opts) => {
|
|
83
|
-
const envelope = await rpcSend({
|
|
84
|
-
url: resolveRpcUrl(opts.url),
|
|
85
|
-
from: parseAddressArg(opts.from),
|
|
86
|
-
to: parseAddressArg(opts.to),
|
|
87
|
-
body: parseJsonObject(opts.body, "--body"),
|
|
88
|
-
token: resolveRpcToken(opts.token),
|
|
89
|
-
});
|
|
90
|
-
printEnvelope(envelope, Boolean(opts.json));
|
|
91
|
-
process.exitCode = exitForEnvelope(envelope);
|
|
92
|
-
});
|
|
93
|
-
rpc
|
|
94
|
-
.command("subscribe")
|
|
95
|
-
.description("Subscribe an address to a campaign topic")
|
|
96
|
-
.requiredOption("--from <addr>", "kind:id subscriber")
|
|
97
|
-
.requiredOption("--topic <topic>", "campaign:<id>:broadcast|stage:<sid>")
|
|
98
|
-
.option("--url <url>", "broker base URL")
|
|
99
|
-
.option("--token <token>", "shared local token")
|
|
100
|
-
.option("--json", "print full envelope JSON")
|
|
101
|
-
.action(async (opts) => {
|
|
102
|
-
const envelope = await rpcSubscribe({
|
|
103
|
-
url: resolveRpcUrl(opts.url),
|
|
104
|
-
from: parseAddressArg(opts.from),
|
|
105
|
-
topic: opts.topic,
|
|
106
|
-
token: resolveRpcToken(opts.token),
|
|
107
|
-
});
|
|
108
|
-
printEnvelope(envelope, Boolean(opts.json));
|
|
109
|
-
process.exitCode = exitForEnvelope(envelope);
|
|
110
|
-
});
|
|
111
|
-
rpc
|
|
112
|
-
.command("publish")
|
|
113
|
-
.description("Publish to a campaign topic")
|
|
114
|
-
.requiredOption("--from <addr>", "kind:id publisher")
|
|
115
|
-
.requiredOption("--topic <topic>", "campaign topic")
|
|
116
|
-
.option("--body <json>", "JSON object payload", "{}")
|
|
117
|
-
.option("--campaign <id>", "campaign id stamp")
|
|
118
|
-
.option("--url <url>", "broker base URL")
|
|
119
|
-
.option("--token <token>", "shared local token")
|
|
120
|
-
.option("--json", "print full envelope JSON")
|
|
121
|
-
.action(async (opts) => {
|
|
122
|
-
const envelope = await rpcPublish({
|
|
123
|
-
url: resolveRpcUrl(opts.url),
|
|
124
|
-
from: parseAddressArg(opts.from),
|
|
125
|
-
topic: opts.topic,
|
|
126
|
-
body: parseJsonObject(opts.body, "--body"),
|
|
127
|
-
campaignId: opts.campaign,
|
|
128
|
-
token: resolveRpcToken(opts.token),
|
|
129
|
-
});
|
|
130
|
-
printEnvelope(envelope, Boolean(opts.json));
|
|
131
|
-
process.exitCode = exitForEnvelope(envelope);
|
|
132
|
-
});
|
|
133
|
-
rpc
|
|
134
|
-
.command("smoke")
|
|
135
|
-
.description("Run two-client + topic round-trip against an ephemeral localhost broker")
|
|
136
|
-
.option("--token <token>", "optional shared token for the smoke broker")
|
|
137
|
-
.option("--json", "print machine-readable result")
|
|
138
|
-
.action(async (opts) => {
|
|
139
|
-
const result = await runRpcSmoke({
|
|
140
|
-
token: resolveRpcToken(opts.token),
|
|
141
|
-
});
|
|
142
|
-
if (opts.json) {
|
|
143
|
-
console.log(JSON.stringify(result, null, 2));
|
|
144
|
-
}
|
|
145
|
-
else if (result.ok) {
|
|
146
|
-
console.log(`RPC smoke OK (url=${result.url}, clients=${result.statusClients}, topicDelivered=${result.topicDelivered})`);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
console.error(`RPC smoke FAILED: ${result.errors.join("; ")}`);
|
|
150
|
-
}
|
|
151
|
-
process.exitCode = result.ok ? 0 : 1;
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
export { startRpcServe, runRpcServeCommand, } from "./serve.js";
|
|
155
|
-
export { runRpcSmoke } from "./smoke.js";
|
|
156
|
-
export { resolveRpcUrl, resolveRpcToken, parseAddressArg, postRpc, rpcRegister, rpcSend, rpcSubscribe, rpcPublish, getJson, } from "./client.js";
|
|
157
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/rpc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { LocalhostRpcServer, type LocalhostRpcServerInfo } from "@blxzer/cursor-trellis-core/rpc";
|
|
2
|
-
export interface RpcServeOptions {
|
|
3
|
-
host?: string;
|
|
4
|
-
port?: number;
|
|
5
|
-
token?: string;
|
|
6
|
-
/** Omit or pass undefined for default `~/.cstl/rpc`; pass `null` to disable. */
|
|
7
|
-
journalDir?: string | null;
|
|
8
|
-
heartbeatTimeoutMs?: number;
|
|
9
|
-
/** When set, return after listen instead of waiting (tests). */
|
|
10
|
-
listenOnly?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface RpcServeHandle {
|
|
13
|
-
server: LocalhostRpcServer;
|
|
14
|
-
info: LocalhostRpcServerInfo;
|
|
15
|
-
close(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Start localhost RPC-FULL CORE broker.
|
|
19
|
-
* Non-goals (printed in help): multi-machine, A2A runtime, ops console.
|
|
20
|
-
*/
|
|
21
|
-
export declare function startRpcServe(options?: RpcServeOptions): Promise<RpcServeHandle>;
|
|
22
|
-
export declare function runRpcServeCommand(options?: RpcServeOptions): Promise<number>;
|
|
23
|
-
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/commands/rpc/serve.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import os from "node:os";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { LocalhostRpcServer, } from "@blxzer/cursor-trellis-core/rpc";
|
|
4
|
-
function defaultJournalDir() {
|
|
5
|
-
return path.join(os.homedir(), ".cstl", "rpc");
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Start localhost RPC-FULL CORE broker.
|
|
9
|
-
* Non-goals (printed in help): multi-machine, A2A runtime, ops console.
|
|
10
|
-
*/
|
|
11
|
-
export async function startRpcServe(options = {}) {
|
|
12
|
-
const host = options.host ?? "127.0.0.1";
|
|
13
|
-
const port = options.port ??
|
|
14
|
-
(process.env.TRELLIS_RPC_PORT
|
|
15
|
-
? Number(process.env.TRELLIS_RPC_PORT)
|
|
16
|
-
: 7843);
|
|
17
|
-
if (!Number.isInteger(port) || port < 0) {
|
|
18
|
-
throw new Error(`Invalid RPC port: ${String(port)}`);
|
|
19
|
-
}
|
|
20
|
-
const journalDir = options.journalDir === null
|
|
21
|
-
? undefined
|
|
22
|
-
: (options.journalDir ?? defaultJournalDir());
|
|
23
|
-
const server = new LocalhostRpcServer({
|
|
24
|
-
host,
|
|
25
|
-
port,
|
|
26
|
-
token: options.token,
|
|
27
|
-
...(journalDir !== undefined ? { journalDir } : {}),
|
|
28
|
-
heartbeatTimeoutMs: options.heartbeatTimeoutMs ?? 30_000,
|
|
29
|
-
});
|
|
30
|
-
const info = await server.listen();
|
|
31
|
-
return {
|
|
32
|
-
server,
|
|
33
|
-
info,
|
|
34
|
-
close: () => server.close(),
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export async function runRpcServeCommand(options = {}) {
|
|
38
|
-
const handle = await startRpcServe(options);
|
|
39
|
-
console.log("RPC-FULL CORE listening (localhost only)");
|
|
40
|
-
console.log(` url: ${handle.info.url}`);
|
|
41
|
-
console.log(` health: ${handle.info.url}/health`);
|
|
42
|
-
console.log(` rpc: POST ${handle.info.url}/rpc`);
|
|
43
|
-
console.log(` ws: ws://${handle.info.host}:${handle.info.port}/ws`);
|
|
44
|
-
console.log(` events: ${handle.info.url}/events?kind=&id=`);
|
|
45
|
-
console.log("Non-goals: multi-machine, A2A implementation, standalone ops console.");
|
|
46
|
-
console.log("HITL gates are never auto-approved by this broker.");
|
|
47
|
-
if (options.listenOnly) {
|
|
48
|
-
await handle.close();
|
|
49
|
-
return 0;
|
|
50
|
-
}
|
|
51
|
-
await new Promise((resolve) => {
|
|
52
|
-
const shutdown = () => {
|
|
53
|
-
void handle.close().finally(resolve);
|
|
54
|
-
};
|
|
55
|
-
process.once("SIGINT", shutdown);
|
|
56
|
-
process.once("SIGTERM", shutdown);
|
|
57
|
-
});
|
|
58
|
-
return 0;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=serve.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/rpc/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface RpcSmokeResult {
|
|
2
|
-
ok: boolean;
|
|
3
|
-
url: string;
|
|
4
|
-
sendDelivered: boolean;
|
|
5
|
-
topicDelivered: number;
|
|
6
|
-
statusClients: number;
|
|
7
|
-
errors: string[];
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Two-client + campaign topic round-trip against a fresh localhost broker.
|
|
11
|
-
* Used by tests and `cstl rpc smoke`.
|
|
12
|
-
*/
|
|
13
|
-
export declare function runRpcSmoke(options?: {
|
|
14
|
-
token?: string;
|
|
15
|
-
}): Promise<RpcSmokeResult>;
|
|
16
|
-
//# sourceMappingURL=smoke.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smoke.d.ts","sourceRoot":"","sources":["../../../src/commands/rpc/smoke.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,OAAO,CAAC,cAAc,CAAC,CAsF/B"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { campaignBroadcastTopic } from "@blxzer/cursor-trellis-core/rpc";
|
|
2
|
-
import { getJson, rpcPublish, rpcRegister, rpcSend, rpcSubscribe, } from "./client.js";
|
|
3
|
-
import { startRpcServe } from "./serve.js";
|
|
4
|
-
/**
|
|
5
|
-
* Two-client + campaign topic round-trip against a fresh localhost broker.
|
|
6
|
-
* Used by tests and `cstl rpc smoke`.
|
|
7
|
-
*/
|
|
8
|
-
export async function runRpcSmoke(options = {}) {
|
|
9
|
-
const errors = [];
|
|
10
|
-
const handle = await startRpcServe({
|
|
11
|
-
port: 0,
|
|
12
|
-
token: options.token,
|
|
13
|
-
heartbeatTimeoutMs: 0,
|
|
14
|
-
journalDir: null,
|
|
15
|
-
});
|
|
16
|
-
const url = handle.info.url;
|
|
17
|
-
const a = { kind: "cli", id: "smoke-a" };
|
|
18
|
-
const b = { kind: "worker", id: "smoke-b" };
|
|
19
|
-
const topic = campaignBroadcastTopic("smoke-camp");
|
|
20
|
-
try {
|
|
21
|
-
const regA = await rpcRegister({
|
|
22
|
-
url,
|
|
23
|
-
kind: a.kind,
|
|
24
|
-
id: a.id,
|
|
25
|
-
campaignId: "smoke-camp",
|
|
26
|
-
token: options.token,
|
|
27
|
-
});
|
|
28
|
-
const regB = await rpcRegister({
|
|
29
|
-
url,
|
|
30
|
-
kind: b.kind,
|
|
31
|
-
id: b.id,
|
|
32
|
-
token: options.token,
|
|
33
|
-
});
|
|
34
|
-
if (regA.error)
|
|
35
|
-
errors.push(`register A: ${regA.error.message}`);
|
|
36
|
-
if (regB.error)
|
|
37
|
-
errors.push(`register B: ${regB.error.message}`);
|
|
38
|
-
const sent = await rpcSend({
|
|
39
|
-
url,
|
|
40
|
-
from: a,
|
|
41
|
-
to: b,
|
|
42
|
-
body: { hello: "smoke" },
|
|
43
|
-
token: options.token,
|
|
44
|
-
});
|
|
45
|
-
if (sent.error)
|
|
46
|
-
errors.push(`send: ${sent.error.message}`);
|
|
47
|
-
const sub = await rpcSubscribe({
|
|
48
|
-
url,
|
|
49
|
-
from: b,
|
|
50
|
-
topic,
|
|
51
|
-
token: options.token,
|
|
52
|
-
});
|
|
53
|
-
if (sub.error)
|
|
54
|
-
errors.push(`subscribe: ${sub.error.message}`);
|
|
55
|
-
const published = await rpcPublish({
|
|
56
|
-
url,
|
|
57
|
-
from: a,
|
|
58
|
-
topic,
|
|
59
|
-
body: { stage: "ready" },
|
|
60
|
-
campaignId: "smoke-camp",
|
|
61
|
-
token: options.token,
|
|
62
|
-
});
|
|
63
|
-
if (published.error)
|
|
64
|
-
errors.push(`publish: ${published.error.message}`);
|
|
65
|
-
const status = (await getJson(url, "/status"));
|
|
66
|
-
const sendDelivered = sent.payload.delivered === true;
|
|
67
|
-
const topicDelivered = typeof published.payload.delivered === "number"
|
|
68
|
-
? published.payload.delivered
|
|
69
|
-
: 0;
|
|
70
|
-
const statusClients = Array.isArray(status.clients)
|
|
71
|
-
? status.clients.length
|
|
72
|
-
: 0;
|
|
73
|
-
if (topicDelivered < 1)
|
|
74
|
-
errors.push("topic deliver count < 1");
|
|
75
|
-
if (statusClients < 2)
|
|
76
|
-
errors.push("status clients < 2");
|
|
77
|
-
if (!sendDelivered)
|
|
78
|
-
errors.push("send not delivered");
|
|
79
|
-
return {
|
|
80
|
-
ok: errors.length === 0,
|
|
81
|
-
url,
|
|
82
|
-
sendDelivered,
|
|
83
|
-
topicDelivered,
|
|
84
|
-
statusClients,
|
|
85
|
-
errors,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
finally {
|
|
89
|
-
await handle.close();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=smoke.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/commands/rpc/smoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
/**
|
|
3
|
-
* Register `cstl sdk` — Trellis↔Cursor SDK RUN path (CAP: safe-task/SDK only).
|
|
4
|
-
* Non-goals: fake IDE chat tab, Parent integrate, MIX UI, broker rewrite.
|
|
5
|
-
*/
|
|
6
|
-
export declare function registerSdkCommand(program: Command): void;
|
|
7
|
-
export { runSdkRun, runSdkRunCommand, type SdkRunOptions, type SdkRunResult } from "./run.js";
|
|
8
|
-
export { collectSdkStatus, runSdkStatusCommand, type SdkStatusResult, } from "./status.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0EzD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { resolveRpcToken, resolveRpcUrl } from "../rpc/client.js";
|
|
2
|
-
import { runSdkRunCommand } from "./run.js";
|
|
3
|
-
import { runSdkStatusCommand } from "./status.js";
|
|
4
|
-
/**
|
|
5
|
-
* Register `cstl sdk` — Trellis↔Cursor SDK RUN path (CAP: safe-task/SDK only).
|
|
6
|
-
* Non-goals: fake IDE chat tab, Parent integrate, MIX UI, broker rewrite.
|
|
7
|
-
*/
|
|
8
|
-
export function registerSdkCommand(program) {
|
|
9
|
-
const sdk = program
|
|
10
|
-
.command("sdk")
|
|
11
|
-
.description("Cursor SDK RUN bridge for Trellis (explicit --task; mock/live; RPC kind=sdk). Non-goals: IDE chat tab, Parent integrate, MIX UI.");
|
|
12
|
-
sdk
|
|
13
|
-
.command("status")
|
|
14
|
-
.description("Show whether CURSOR_API_KEY is present and whether cursor-sdk can be enabled (never prints the key)")
|
|
15
|
-
.option("--cwd <dir>", "Project directory to inspect for capabilities.json")
|
|
16
|
-
.option("--json", "Print machine-readable status JSON")
|
|
17
|
-
.action(async (opts) => {
|
|
18
|
-
const code = await runSdkStatusCommand({
|
|
19
|
-
cwd: opts.cwd,
|
|
20
|
-
json: opts.json === true,
|
|
21
|
-
});
|
|
22
|
-
process.exitCode = code;
|
|
23
|
-
});
|
|
24
|
-
sdk
|
|
25
|
-
.command("run")
|
|
26
|
-
.description("Bind an explicit task path, run mock or live Agent.prompt, write dogfood evidence, emit campaign RPC events")
|
|
27
|
-
.requiredOption("--task <path>", "Explicit Trellis task directory (must contain prd.md). Required — SDK has no selected_task.")
|
|
28
|
-
.option("--campaign <id>", "Campaign id for RPC topic (no colon)", "08-01-trellis-intent-multisession")
|
|
29
|
-
.option("--prompt <text>", "Prompt body for the SDK / mock agent")
|
|
30
|
-
.option("--cwd <dir>", "Working directory for live local Agent (default: process.cwd())")
|
|
31
|
-
.option("--live", "Call @cursor/sdk Agent.prompt (requires consent + CURSOR_API_KEY)")
|
|
32
|
-
.option("--mock", "Force mock adapter (default when --live is absent)")
|
|
33
|
-
.option("--rpc-url <url>", "RPC CORE URL (default TRELLIS_RPC_URL or http://127.0.0.1:7843)")
|
|
34
|
-
.option("--token <token>", "RPC token (or TRELLIS_RPC_TOKEN)")
|
|
35
|
-
.option("--no-rpc", "Skip RPC register/publish (still writes dogfood)")
|
|
36
|
-
.action(async (opts) => {
|
|
37
|
-
if (opts.live && opts.mock) {
|
|
38
|
-
console.error("SDK RUN error: use only one of --live or --mock");
|
|
39
|
-
process.exitCode = 1;
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const mode = opts.live ? "live" : "mock";
|
|
43
|
-
const code = await runSdkRunCommand({
|
|
44
|
-
task: opts.task,
|
|
45
|
-
campaign: opts.campaign ?? "08-01-trellis-intent-multisession",
|
|
46
|
-
mode,
|
|
47
|
-
prompt: opts.prompt,
|
|
48
|
-
cwd: opts.cwd,
|
|
49
|
-
rpcUrl: opts.rpcUrl ? resolveRpcUrl(opts.rpcUrl) : undefined,
|
|
50
|
-
token: resolveRpcToken(opts.token),
|
|
51
|
-
noRpc: opts.rpc === false,
|
|
52
|
-
});
|
|
53
|
-
process.exitCode = code;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
export { runSdkRun, runSdkRunCommand } from "./run.js";
|
|
57
|
-
export { collectSdkStatus, runSdkStatusCommand, } from "./status.js";
|
|
58
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sdk/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,kIAAkI,CACnI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,qGAAqG,CACtG;SACA,MAAM,CAAC,aAAa,EAAE,oDAAoD,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;SACzB,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,6GAA6G,CAC9G;SACA,cAAc,CACb,eAAe,EACf,6FAA6F,CAC9F;SACA,MAAM,CACL,iBAAiB,EACjB,sCAAsC,EACtC,mCAAmC,CACpC;SACA,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,iEAAiE,CAAC;SACxF,MAAM,CAAC,QAAQ,EAAE,mEAAmE,CAAC;SACrF,MAAM,CAAC,QAAQ,EAAE,oDAAoD,CAAC;SACtE,MAAM,CAAC,iBAAiB,EAAE,iEAAiE,CAAC;SAC5F,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;SAC7D,MAAM,CAAC,UAAU,EAAE,kDAAkD,CAAC;SACtE,MAAM,CACL,KAAK,EAAE,IAUN,EAAE,EAAE;QACH,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mCAAmC;YAC9D,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC,CACF,CAAC;AACN,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAyC,MAAM,UAAU,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export type SdkRunMode = "mock" | "live";
|
|
2
|
-
export interface SdkRunOptions {
|
|
3
|
-
task: string;
|
|
4
|
-
campaign: string;
|
|
5
|
-
mode: SdkRunMode;
|
|
6
|
-
prompt?: string;
|
|
7
|
-
cwd?: string;
|
|
8
|
-
rpcUrl?: string;
|
|
9
|
-
token?: string;
|
|
10
|
-
noRpc?: boolean;
|
|
11
|
-
/** When set, write dogfood under this absolute path instead of <task>/research/ */
|
|
12
|
-
evidencePath?: string;
|
|
13
|
-
}
|
|
14
|
-
export interface SdkRunResult {
|
|
15
|
-
ok: boolean;
|
|
16
|
-
runId: string;
|
|
17
|
-
mode: SdkRunMode;
|
|
18
|
-
taskPath: string;
|
|
19
|
-
evidencePath: string;
|
|
20
|
-
rpc: {
|
|
21
|
-
attempted: boolean;
|
|
22
|
-
ok: boolean;
|
|
23
|
-
url?: string;
|
|
24
|
-
detail: string;
|
|
25
|
-
};
|
|
26
|
-
agent: {
|
|
27
|
-
status: string;
|
|
28
|
-
result: string;
|
|
29
|
-
};
|
|
30
|
-
errors: string[];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Build the Agent prompt for SDK RUN. Always prepends an explicit --task binding
|
|
34
|
-
* block so SessionStart "Selected task: none" cannot be misread as unbound.
|
|
35
|
-
*/
|
|
36
|
-
export declare function buildSdkRunPrompt(taskPath: string, userPrompt?: string): string;
|
|
37
|
-
/**
|
|
38
|
-
* Minimal Trellis SDK RUN: bind explicit task path, run mock/live agent, write dogfood, emit RPC.
|
|
39
|
-
*/
|
|
40
|
-
export declare function runSdkRun(options: SdkRunOptions): Promise<SdkRunResult>;
|
|
41
|
-
export declare function runSdkRunCommand(options: SdkRunOptions): Promise<number>;
|
|
42
|
-
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/sdk/run.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE;QACH,SAAS,EAAE,OAAO,CAAC;QACnB,EAAE,EAAE,OAAO,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAqBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAeR;AA8HD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkE7E;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|