@mesh-tech/mesh-cli 0.1.1 → 0.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/intent/agents-fence.md +10 -0
- package/assets/intent/intent-claude-gate.mjs +255 -0
- package/assets/log-shipper.mjs +94 -0
- package/bin/mesh.mjs +80 -0
- package/dist/bin/mesh.d.ts +7 -9
- package/dist/bin/mesh.d.ts.map +1 -1
- package/dist/bin/mesh.js +20878 -37
- package/dist/bin/mesh.js.map +7 -1
- package/dist/build-info.json +4 -0
- package/dist/src/commands/agent-api-client.d.ts +79 -0
- package/dist/src/commands/agent-api-client.d.ts.map +1 -0
- package/dist/src/commands/agent-api-client.js +170 -0
- package/dist/src/commands/agent-api-client.js.map +1 -0
- package/dist/src/commands/artifacts.d.ts +13 -0
- package/dist/src/commands/artifacts.d.ts.map +1 -0
- package/dist/src/commands/artifacts.js +140 -0
- package/dist/src/commands/artifacts.js.map +1 -0
- package/dist/src/commands/cluster.d.ts +45 -0
- package/dist/src/commands/cluster.d.ts.map +1 -0
- package/dist/src/commands/cluster.js +259 -0
- package/dist/src/commands/cluster.js.map +1 -0
- package/dist/src/commands/conversations.d.ts +61 -0
- package/dist/src/commands/conversations.d.ts.map +1 -0
- package/dist/src/commands/conversations.js +239 -0
- package/dist/src/commands/conversations.js.map +1 -0
- package/dist/src/commands/create-app.d.ts +26 -3
- package/dist/src/commands/create-app.d.ts.map +1 -1
- package/dist/src/commands/create-app.js +465 -107
- package/dist/src/commands/create-app.js.map +1 -1
- package/dist/src/commands/deploy.d.ts +19 -0
- package/dist/src/commands/deploy.d.ts.map +1 -1
- package/dist/src/commands/deploy.js +83 -142
- package/dist/src/commands/deploy.js.map +1 -1
- package/dist/src/commands/dev-doctor.d.ts +137 -0
- package/dist/src/commands/dev-doctor.d.ts.map +1 -0
- package/dist/src/commands/dev-doctor.js +671 -0
- package/dist/src/commands/dev-doctor.js.map +1 -0
- package/dist/src/commands/dev-launch.d.ts +59 -0
- package/dist/src/commands/dev-launch.d.ts.map +1 -0
- package/dist/src/commands/dev-launch.js +118 -0
- package/dist/src/commands/dev-launch.js.map +1 -0
- package/dist/src/commands/dev-token-server.d.ts +32 -0
- package/dist/src/commands/dev-token-server.d.ts.map +1 -0
- package/dist/src/commands/dev-token-server.js +68 -0
- package/dist/src/commands/dev-token-server.js.map +1 -0
- package/dist/src/commands/dev.d.ts +289 -2
- package/dist/src/commands/dev.d.ts.map +1 -1
- package/dist/src/commands/dev.js +2501 -574
- package/dist/src/commands/dev.js.map +1 -1
- package/dist/src/commands/docs.d.ts +3 -0
- package/dist/src/commands/docs.d.ts.map +1 -0
- package/dist/src/commands/docs.js +262 -0
- package/dist/src/commands/docs.js.map +1 -0
- package/dist/src/commands/hub/index.d.ts +99 -0
- package/dist/src/commands/hub/index.d.ts.map +1 -0
- package/dist/src/commands/hub/index.js +452 -0
- package/dist/src/commands/hub/index.js.map +1 -0
- package/dist/src/commands/init.d.ts +65 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +370 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/install-shim.d.ts +28 -0
- package/dist/src/commands/install-shim.d.ts.map +1 -0
- package/dist/src/commands/install-shim.js +191 -0
- package/dist/src/commands/install-shim.js.map +1 -0
- package/dist/src/commands/local/auth-provision.d.ts +71 -0
- package/dist/src/commands/local/auth-provision.d.ts.map +1 -0
- package/dist/src/commands/local/auth-provision.js +286 -0
- package/dist/src/commands/local/auth-provision.js.map +1 -0
- package/dist/src/commands/local/dev-local.d.ts +97 -0
- package/dist/src/commands/local/dev-local.d.ts.map +1 -0
- package/dist/src/commands/local/dev-local.js +306 -0
- package/dist/src/commands/local/dev-local.js.map +1 -0
- package/dist/src/commands/local/docker-runner.d.ts +37 -0
- package/dist/src/commands/local/docker-runner.d.ts.map +1 -0
- package/dist/src/commands/local/docker-runner.js +104 -0
- package/dist/src/commands/local/docker-runner.js.map +1 -0
- package/dist/src/commands/local/helpers.d.ts +22 -0
- package/dist/src/commands/local/helpers.d.ts.map +1 -0
- package/dist/src/commands/local/helpers.js +46 -0
- package/dist/src/commands/local/helpers.js.map +1 -0
- package/dist/src/commands/local/hub-local.d.ts +51 -0
- package/dist/src/commands/local/hub-local.d.ts.map +1 -0
- package/dist/src/commands/local/hub-local.js +197 -0
- package/dist/src/commands/local/hub-local.js.map +1 -0
- package/dist/src/commands/local/index.d.ts +23 -0
- package/dist/src/commands/local/index.d.ts.map +1 -0
- package/dist/src/commands/local/index.js +386 -0
- package/dist/src/commands/local/index.js.map +1 -0
- package/dist/src/commands/local/mocks.d.ts +361 -0
- package/dist/src/commands/local/mocks.d.ts.map +1 -0
- package/dist/src/commands/local/mocks.js +756 -0
- package/dist/src/commands/local/mocks.js.map +1 -0
- package/dist/src/commands/local/seed-zitadel.d.ts +151 -0
- package/dist/src/commands/local/seed-zitadel.d.ts.map +1 -0
- package/dist/src/commands/local/seed-zitadel.js +408 -0
- package/dist/src/commands/local/seed-zitadel.js.map +1 -0
- package/dist/src/commands/local/seed.d.ts +106 -0
- package/dist/src/commands/local/seed.d.ts.map +1 -0
- package/dist/src/commands/local/seed.js +252 -0
- package/dist/src/commands/local/seed.js.map +1 -0
- package/dist/src/commands/local/stack.d.ts +173 -0
- package/dist/src/commands/local/stack.d.ts.map +1 -0
- package/dist/src/commands/local/stack.js +499 -0
- package/dist/src/commands/local/stack.js.map +1 -0
- package/dist/src/commands/login.d.ts +256 -12
- package/dist/src/commands/login.d.ts.map +1 -1
- package/dist/src/commands/login.js +978 -50
- package/dist/src/commands/login.js.map +1 -1
- package/dist/src/commands/peer-addressing.d.ts +51 -0
- package/dist/src/commands/peer-addressing.d.ts.map +1 -0
- package/dist/src/commands/peer-addressing.js +64 -0
- package/dist/src/commands/peer-addressing.js.map +1 -0
- package/dist/src/commands/port-ownership.d.ts +69 -0
- package/dist/src/commands/port-ownership.d.ts.map +1 -0
- package/dist/src/commands/port-ownership.js +161 -0
- package/dist/src/commands/port-ownership.js.map +1 -0
- package/dist/src/commands/registry-publish.d.ts +3 -0
- package/dist/src/commands/registry-publish.d.ts.map +1 -0
- package/dist/src/commands/registry-publish.js +161 -0
- package/dist/src/commands/registry-publish.js.map +1 -0
- package/dist/src/commands/registry.d.ts +146 -2
- package/dist/src/commands/registry.d.ts.map +1 -1
- package/dist/src/commands/registry.js +541 -85
- package/dist/src/commands/registry.js.map +1 -1
- package/dist/src/commands/secrets/index.d.ts.map +1 -1
- package/dist/src/commands/secrets/index.js +15 -1
- package/dist/src/commands/secrets/index.js.map +1 -1
- package/dist/src/commands/secrets/migrate-config.d.ts +24 -0
- package/dist/src/commands/secrets/migrate-config.d.ts.map +1 -0
- package/dist/src/commands/secrets/migrate-config.js +277 -0
- package/dist/src/commands/secrets/migrate-config.js.map +1 -0
- package/dist/src/commands/secrets/set.d.ts +1 -0
- package/dist/src/commands/secrets/set.d.ts.map +1 -1
- package/dist/src/commands/secrets/set.js +96 -2
- package/dist/src/commands/secrets/set.js.map +1 -1
- package/dist/src/commands/skills.d.ts +34 -0
- package/dist/src/commands/skills.d.ts.map +1 -0
- package/dist/src/commands/skills.js +207 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/stack.d.ts.map +1 -1
- package/dist/src/commands/stack.js +361 -23
- package/dist/src/commands/stack.js.map +1 -1
- package/dist/src/commands/temporal.d.ts +15 -0
- package/dist/src/commands/temporal.d.ts.map +1 -0
- package/dist/src/commands/temporal.js +781 -0
- package/dist/src/commands/temporal.js.map +1 -0
- package/dist/src/commands/tenant.d.ts +56 -0
- package/dist/src/commands/tenant.d.ts.map +1 -0
- package/dist/src/commands/tenant.js +233 -0
- package/dist/src/commands/tenant.js.map +1 -0
- package/dist/src/commands/tunnel/index.d.ts +49 -3
- package/dist/src/commands/tunnel/index.d.ts.map +1 -1
- package/dist/src/commands/tunnel/index.js +331 -8
- package/dist/src/commands/tunnel/index.js.map +1 -1
- package/dist/src/commands/vcs/clone.d.ts +3 -0
- package/dist/src/commands/vcs/clone.d.ts.map +1 -0
- package/dist/src/commands/vcs/clone.js +20 -0
- package/dist/src/commands/vcs/clone.js.map +1 -0
- package/dist/src/commands/vcs/common.d.ts +21 -0
- package/dist/src/commands/vcs/common.d.ts.map +1 -0
- package/dist/src/commands/vcs/common.js +62 -0
- package/dist/src/commands/vcs/common.js.map +1 -0
- package/dist/src/commands/vcs/drafts.d.ts +13 -0
- package/dist/src/commands/vcs/drafts.d.ts.map +1 -0
- package/dist/src/commands/vcs/drafts.js +45 -0
- package/dist/src/commands/vcs/drafts.js.map +1 -0
- package/dist/src/commands/vcs/get.d.ts +8 -0
- package/dist/src/commands/vcs/get.d.ts.map +1 -0
- package/dist/src/commands/vcs/get.js +61 -0
- package/dist/src/commands/vcs/get.js.map +1 -0
- package/dist/src/commands/vcs/index.d.ts +3 -0
- package/dist/src/commands/vcs/index.d.ts.map +1 -0
- package/dist/src/commands/vcs/index.js +58 -0
- package/dist/src/commands/vcs/index.js.map +1 -0
- package/dist/src/commands/vcs/propose.d.ts +23 -0
- package/dist/src/commands/vcs/propose.d.ts.map +1 -0
- package/dist/src/commands/vcs/propose.js +94 -0
- package/dist/src/commands/vcs/propose.js.map +1 -0
- package/dist/src/commands/vcs/review.d.ts +15 -0
- package/dist/src/commands/vcs/review.d.ts.map +1 -0
- package/dist/src/commands/vcs/review.js +35 -0
- package/dist/src/commands/vcs/review.js.map +1 -0
- package/dist/src/commands/vcs-enrich.d.ts +15 -0
- package/dist/src/commands/vcs-enrich.d.ts.map +1 -0
- package/dist/src/commands/vcs-enrich.js +28 -0
- package/dist/src/commands/vcs-enrich.js.map +1 -0
- package/dist/src/commands/vpn/index.d.ts +24 -0
- package/dist/src/commands/vpn/index.d.ts.map +1 -0
- package/dist/src/commands/vpn/index.js +543 -0
- package/dist/src/commands/vpn/index.js.map +1 -0
- package/dist/src/commands/vpn/tunnel.d.ts +11 -0
- package/dist/src/commands/vpn/tunnel.d.ts.map +1 -0
- package/dist/src/commands/vpn/tunnel.js +188 -0
- package/dist/src/commands/vpn/tunnel.js.map +1 -0
- package/dist/src/commands/workflow.d.ts +24 -0
- package/dist/src/commands/workflow.d.ts.map +1 -0
- package/dist/src/commands/workflow.js +577 -0
- package/dist/src/commands/workflow.js.map +1 -0
- package/dist/src/docs/assemble.d.ts +217 -0
- package/dist/src/docs/assemble.d.ts.map +1 -0
- package/dist/src/docs/assemble.js +739 -0
- package/dist/src/docs/assemble.js.map +1 -0
- package/dist/src/docs/cli-reference.d.ts +93 -0
- package/dist/src/docs/cli-reference.d.ts.map +1 -0
- package/dist/src/docs/cli-reference.js +256 -0
- package/dist/src/docs/cli-reference.js.map +1 -0
- package/dist/src/docs/discover.d.ts +60 -0
- package/dist/src/docs/discover.d.ts.map +1 -0
- package/dist/src/docs/discover.js +233 -0
- package/dist/src/docs/discover.js.map +1 -0
- package/dist/src/docs/portal.d.ts +79 -0
- package/dist/src/docs/portal.d.ts.map +1 -0
- package/dist/src/docs/portal.js +242 -0
- package/dist/src/docs/portal.js.map +1 -0
- package/dist/src/docs/registry-docs.d.ts +43 -0
- package/dist/src/docs/registry-docs.d.ts.map +1 -0
- package/dist/src/docs/registry-docs.js +138 -0
- package/dist/src/docs/registry-docs.js.map +1 -0
- package/dist/src/docs/schema.d.ts +48 -0
- package/dist/src/docs/schema.d.ts.map +1 -0
- package/dist/src/docs/schema.js +96 -0
- package/dist/src/docs/schema.js.map +1 -0
- package/dist/src/docs/serve.d.ts +27 -0
- package/dist/src/docs/serve.d.ts.map +1 -0
- package/dist/src/docs/serve.js +102 -0
- package/dist/src/docs/serve.js.map +1 -0
- package/dist/src/docs/start.d.ts +80 -0
- package/dist/src/docs/start.d.ts.map +1 -0
- package/dist/src/docs/start.js +313 -0
- package/dist/src/docs/start.js.map +1 -0
- package/dist/src/eval/agent-eval.d.mts +14 -0
- package/dist/src/eval/agent-eval.d.mts.map +1 -0
- package/dist/src/eval/agent-eval.mjs +273 -0
- package/dist/src/eval/agent-eval.mjs.map +1 -0
- package/dist/src/index.js +624 -7
- package/dist/src/index.js.map +7 -1
- package/dist/src/program.d.ts +26 -0
- package/dist/src/program.d.ts.map +1 -0
- package/dist/src/program.js +76 -0
- package/dist/src/program.js.map +1 -0
- package/dist/src/utils/auth-preflight.d.ts +159 -0
- package/dist/src/utils/auth-preflight.d.ts.map +1 -0
- package/dist/src/utils/auth-preflight.js +298 -0
- package/dist/src/utils/auth-preflight.js.map +1 -0
- package/dist/src/utils/aws-auth.d.ts +181 -0
- package/dist/src/utils/aws-auth.d.ts.map +1 -0
- package/dist/src/utils/aws-auth.js +527 -0
- package/dist/src/utils/aws-auth.js.map +1 -0
- package/dist/src/utils/bastion.d.ts +1 -1
- package/dist/src/utils/bastion.d.ts.map +1 -1
- package/dist/src/utils/bastion.js +29 -8
- package/dist/src/utils/bastion.js.map +1 -1
- package/dist/src/utils/build-info.d.ts +33 -0
- package/dist/src/utils/build-info.d.ts.map +1 -0
- package/dist/src/utils/build-info.js +102 -0
- package/dist/src/utils/build-info.js.map +1 -0
- package/dist/src/utils/capture-history.d.ts +62 -0
- package/dist/src/utils/capture-history.d.ts.map +1 -0
- package/dist/src/utils/capture-history.js +94 -0
- package/dist/src/utils/capture-history.js.map +1 -0
- package/dist/src/utils/deploy-preflight.d.ts +52 -0
- package/dist/src/utils/deploy-preflight.d.ts.map +1 -0
- package/dist/src/utils/deploy-preflight.js +183 -0
- package/dist/src/utils/deploy-preflight.js.map +1 -0
- package/dist/src/utils/errors.d.ts +75 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +106 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/first-party-contexts.d.ts +40 -0
- package/dist/src/utils/first-party-contexts.d.ts.map +1 -0
- package/dist/src/utils/first-party-contexts.js +53 -0
- package/dist/src/utils/first-party-contexts.js.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +2 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/kubeconfig.d.ts +62 -0
- package/dist/src/utils/kubeconfig.d.ts.map +1 -0
- package/dist/src/utils/kubeconfig.js +118 -0
- package/dist/src/utils/kubeconfig.js.map +1 -0
- package/dist/src/utils/log.d.ts +27 -1
- package/dist/src/utils/log.d.ts.map +1 -1
- package/dist/src/utils/log.js +59 -5
- package/dist/src/utils/log.js.map +1 -1
- package/dist/src/utils/pid.d.ts +47 -0
- package/dist/src/utils/pid.d.ts.map +1 -0
- package/dist/src/utils/pid.js +83 -0
- package/dist/src/utils/pid.js.map +1 -0
- package/dist/src/utils/pulumi-run.d.ts +23 -0
- package/dist/src/utils/pulumi-run.d.ts.map +1 -0
- package/dist/src/utils/pulumi-run.js +112 -0
- package/dist/src/utils/pulumi-run.js.map +1 -0
- package/dist/src/utils/pulumi.d.ts +15 -0
- package/dist/src/utils/pulumi.d.ts.map +1 -1
- package/dist/src/utils/pulumi.js +35 -0
- package/dist/src/utils/pulumi.js.map +1 -1
- package/dist/src/utils/reachability.d.ts +29 -0
- package/dist/src/utils/reachability.d.ts.map +1 -0
- package/dist/src/utils/reachability.js +81 -0
- package/dist/src/utils/reachability.js.map +1 -0
- package/dist/src/utils/recover-conversation.d.ts +154 -0
- package/dist/src/utils/recover-conversation.d.ts.map +1 -0
- package/dist/src/utils/recover-conversation.js +314 -0
- package/dist/src/utils/recover-conversation.js.map +1 -0
- package/dist/src/utils/registry-broker.d.ts +148 -0
- package/dist/src/utils/registry-broker.d.ts.map +1 -0
- package/dist/src/utils/registry-broker.js +180 -0
- package/dist/src/utils/registry-broker.js.map +1 -0
- package/dist/src/utils/socks-forward.d.ts +40 -0
- package/dist/src/utils/socks-forward.d.ts.map +1 -0
- package/dist/src/utils/socks-forward.js +97 -0
- package/dist/src/utils/socks-forward.js.map +1 -0
- package/dist/src/utils/stack-flag.d.ts +23 -0
- package/dist/src/utils/stack-flag.d.ts.map +1 -0
- package/dist/src/utils/stack-flag.js +41 -0
- package/dist/src/utils/stack-flag.js.map +1 -0
- package/dist/src/utils/tailscale-targets.d.ts +52 -0
- package/dist/src/utils/tailscale-targets.d.ts.map +1 -0
- package/dist/src/utils/tailscale-targets.js +93 -0
- package/dist/src/utils/tailscale-targets.js.map +1 -0
- package/dist/src/utils/tailscale.d.ts +277 -0
- package/dist/src/utils/tailscale.d.ts.map +1 -0
- package/dist/src/utils/tailscale.js +1007 -0
- package/dist/src/utils/tailscale.js.map +1 -0
- package/dist/src/utils/temporal-auth.d.ts +43 -0
- package/dist/src/utils/temporal-auth.d.ts.map +1 -0
- package/dist/src/utils/temporal-auth.js +176 -0
- package/dist/src/utils/temporal-auth.js.map +1 -0
- package/dist/src/utils/temporal-codec.d.ts +101 -0
- package/dist/src/utils/temporal-codec.d.ts.map +1 -0
- package/dist/src/utils/temporal-codec.js +319 -0
- package/dist/src/utils/temporal-codec.js.map +1 -0
- package/dist/src/utils/tunnel-ownership.d.ts +130 -0
- package/dist/src/utils/tunnel-ownership.d.ts.map +1 -0
- package/dist/src/utils/tunnel-ownership.js +274 -0
- package/dist/src/utils/tunnel-ownership.js.map +1 -0
- package/dist/src/utils/vpn-join.d.ts +32 -0
- package/dist/src/utils/vpn-join.d.ts.map +1 -0
- package/dist/src/utils/vpn-join.js +62 -0
- package/dist/src/utils/vpn-join.js.map +1 -0
- package/dist/src/utils/vpn.d.ts +62 -0
- package/dist/src/utils/vpn.d.ts.map +1 -0
- package/dist/src/utils/vpn.js +183 -0
- package/dist/src/utils/vpn.js.map +1 -0
- package/dist/src/utils/workflow-fingerprint.d.ts +49 -0
- package/dist/src/utils/workflow-fingerprint.d.ts.map +1 -0
- package/dist/src/utils/workflow-fingerprint.js +135 -0
- package/dist/src/utils/workflow-fingerprint.js.map +1 -0
- package/dist/src/utils/worktree-identity.d.ts +86 -0
- package/dist/src/utils/worktree-identity.d.ts.map +1 -0
- package/dist/src/utils/worktree-identity.js +164 -0
- package/dist/src/utils/worktree-identity.js.map +1 -0
- package/fragments/agents/AGENTS.md.hbs +92 -0
- package/fragments/agents/CLAUDE.md.hbs +8 -0
- package/fragments/base/Pulumi.dev.yaml.hbs +10 -0
- package/fragments/base/Pulumi.yaml.hbs +9 -0
- package/fragments/base/index.ts.hbs +107 -0
- package/fragments/base/package.json.hbs +22 -0
- package/{templates/api-web-db/api → fragments/base}/tsconfig.json +3 -4
- package/fragments/bucket/api/src/storage.ts.hbs +81 -0
- package/fragments/database/api/src/db.ts.hbs +23 -0
- package/fragments/database/prisma/schema.prisma.hbs +18 -0
- package/{templates/api-web-db → fragments/service}/api/.dockerignore +2 -0
- package/fragments/service/api/package.json.hbs +40 -0
- package/fragments/service/api/src/index.ts.hbs +58 -0
- package/{templates/api-web-db → fragments/service/api}/tsconfig.json +5 -3
- package/fragments/temporal/worker/.dockerignore +4 -0
- package/fragments/temporal/worker/Dockerfile +15 -0
- package/{templates/temporal-api-worker → fragments/temporal}/worker/package.json.hbs +3 -2
- package/fragments/temporal/worker/src/activities.ts.hbs +14 -0
- package/fragments/temporal/worker/src/worker.ts.hbs +27 -0
- package/fragments/temporal/worker/src/workflows.ts.hbs +24 -0
- package/fragments/temporal/worker/tsconfig.json +13 -0
- package/package.json +36 -22
- package/skills/core/SKILL.md +365 -0
- package/skills/pull-remote-agent-context/SKILL.md +194 -0
- package/stack/docker-compose.hub.yml +134 -0
- package/stack/docker-compose.yml +447 -0
- package/stack/hub/Dockerfile.api +18 -0
- package/stack/hub/Dockerfile.auth +10 -0
- package/stack/hub/Dockerfile.ui +10 -0
- package/stack/init/01-databases.sql +12 -0
- package/stack/observability/blackbox.yml +20 -0
- package/stack/observability/otel-collector.yaml +73 -0
- package/stack/observability/prometheus.yml +36 -0
- package/stack/observability/tempo.yaml +25 -0
- package/stack/temporal/local.yaml +44 -0
- package/templates/api-auth/AGENTS.md.hbs +16 -0
- package/templates/api-auth/Pulumi.dev.yaml.hbs +8 -0
- package/templates/api-auth/Pulumi.yaml.hbs +8 -0
- package/templates/api-auth/README.md.hbs +67 -0
- package/templates/api-auth/api/package.json.hbs +28 -0
- package/templates/api-auth/api/src/index.ts.hbs +96 -0
- package/templates/api-auth/api/src/schema.ts.hbs +35 -0
- package/templates/api-auth/api/src/seed-authz.ts.hbs +48 -0
- package/templates/api-auth/api/src/spicedb-http-provider.ts.hbs +89 -0
- package/templates/api-auth/index.ts.hbs +65 -0
- package/templates/api-auth/package.json.hbs +20 -0
- package/templates/api-auth/skills/develop/SKILL.md.hbs +32 -0
- package/templates/api-role-gating/AGENTS.md.hbs +20 -0
- package/templates/api-role-gating/Pulumi.dev.yaml.hbs +8 -0
- package/templates/api-role-gating/Pulumi.yaml.hbs +8 -0
- package/templates/api-role-gating/README.md.hbs +64 -0
- package/templates/api-role-gating/api/Dockerfile +17 -0
- package/templates/api-role-gating/api/package.json.hbs +28 -0
- package/templates/api-role-gating/api/src/authn.ts.hbs +29 -0
- package/templates/api-role-gating/api/src/authz.ts.hbs +12 -0
- package/templates/api-role-gating/api/src/main.ts.hbs +58 -0
- package/templates/api-role-gating/api/src/schema.ts.hbs +22 -0
- package/templates/api-role-gating/api/tsconfig.json +13 -0
- package/templates/api-role-gating/index.ts.hbs +107 -0
- package/templates/api-role-gating/package.json.hbs +21 -0
- package/templates/api-role-gating/skills/develop/SKILL.md.hbs +60 -0
- package/templates/api-role-gating/tsconfig.json +10 -0
- package/templates/apps-repo/README.md.hbs +24 -0
- package/templates/apps-repo/gitignore +41 -0
- package/templates/apps-repo/npmrc.hbs +7 -0
- package/templates/apps-repo/package.json.hbs +15 -0
- package/templates/apps-repo/pnpm-workspace.yaml +3 -0
- package/templates/apps-repo/tsconfig.json +18 -0
- package/templates/external-service/AGENTS.md.hbs +20 -0
- package/templates/external-service/Pulumi.dev.yaml.hbs +8 -0
- package/templates/external-service/Pulumi.yaml.hbs +8 -0
- package/templates/external-service/README.md.hbs +56 -0
- package/templates/external-service/api/Dockerfile +15 -0
- package/templates/external-service/api/package.json.hbs +25 -0
- package/templates/external-service/api/src/index.ts.hbs +81 -0
- package/templates/external-service/index.ts.hbs +82 -0
- package/templates/external-service/mocks/vendorpay/package.json.hbs +9 -0
- package/templates/external-service/mocks/vendorpay/server.mjs.hbs +61 -0
- package/templates/external-service/package.json.hbs +34 -0
- package/templates/external-service/skills/develop/SKILL.md.hbs +55 -0
- package/templates/external-service/tsconfig.json +10 -0
- package/templates/platform-repo/AGENTS.md.hbs +18 -0
- package/templates/platform-repo/README.md.hbs +38 -0
- package/templates/platform-repo/core/Pulumi.yaml.hbs +12 -0
- package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +57 -0
- package/templates/platform-repo/core/index.ts +62 -0
- package/templates/platform-repo/core/package.json.hbs +22 -0
- package/templates/platform-repo/core/tsconfig.json +8 -0
- package/templates/platform-repo/package.json.hbs +15 -0
- package/templates/platform-repo/platform/Pulumi.yaml.hbs +12 -0
- package/templates/platform-repo/platform/Pulumi.{{tenant}}-{{env}}.yaml.hbs +59 -0
- package/templates/platform-repo/platform/index.ts +95 -0
- package/templates/platform-repo/platform/package.json.hbs +26 -0
- package/templates/platform-repo/platform/tsconfig.json +8 -0
- package/templates/platform-repo/pnpm-workspace.yaml +3 -0
- package/templates/workflow/AGENTS.md.hbs +15 -0
- package/templates/workflow/Pulumi.dev.yaml.hbs +8 -0
- package/templates/workflow/Pulumi.yaml.hbs +8 -0
- package/templates/workflow/README.md.hbs +45 -0
- package/templates/workflow/api/.dockerignore +4 -0
- package/templates/workflow/api/Dockerfile +15 -0
- package/templates/{temporal-api-worker → workflow}/api/package.json.hbs +8 -6
- package/templates/workflow/api/src/index.ts.hbs +130 -0
- package/templates/workflow/api/tsconfig.json +14 -0
- package/templates/workflow/index.ts.hbs +67 -0
- package/templates/workflow/package.json.hbs +20 -0
- package/templates/workflow/skills/develop/SKILL.md.hbs +32 -0
- package/templates/workflow/tsconfig.json +10 -0
- package/templates/workflow/worker/.dockerignore +4 -0
- package/templates/workflow/worker/Dockerfile +13 -0
- package/templates/workflow/worker/package.json.hbs +25 -0
- package/templates/workflow/worker/src/worker.ts.hbs +24 -0
- package/templates/workflow/worker/tsconfig.json +14 -0
- package/dist/src/commands/devbox.d.ts +0 -22
- package/dist/src/commands/devbox.d.ts.map +0 -1
- package/dist/src/commands/devbox.js +0 -463
- package/dist/src/commands/devbox.js.map +0 -1
- package/templates/api-web-db/api/Dockerfile +0 -16
- package/templates/api-web-db/api/package.json.hbs +0 -21
- package/templates/api-web-db/api/src/index.ts.hbs +0 -123
- package/templates/api-web-db/package.json.hbs +0 -27
- package/templates/api-web-db/sst.config.ts.hbs +0 -151
- package/templates/api-web-db/web/.dockerignore +0 -3
- package/templates/api-web-db/web/Dockerfile +0 -17
- package/templates/api-web-db/web/app/lib/db.server.ts +0 -36
- package/templates/api-web-db/web/app/root.tsx +0 -29
- package/templates/api-web-db/web/app/routes/home.tsx.hbs +0 -114
- package/templates/api-web-db/web/app/routes.ts +0 -3
- package/templates/api-web-db/web/package.json.hbs +0 -30
- package/templates/api-web-db/web/prisma/schema.prisma +0 -25
- package/templates/api-web-db/web/prisma.config.ts +0 -18
- package/templates/api-web-db/web/react-router.config.ts +0 -5
- package/templates/api-web-db/web/tsconfig.json +0 -19
- package/templates/api-web-db/web/vite.config.ts +0 -9
- package/templates/temporal-api-worker/README.md.hbs +0 -133
- package/templates/temporal-api-worker/api/src/index.ts.hbs +0 -145
- package/templates/temporal-api-worker/package.json.hbs +0 -29
- package/templates/temporal-api-worker/sst.config.ts.hbs +0 -161
- package/templates/temporal-api-worker/worker/Dockerfile +0 -11
- package/templates/temporal-api-worker/worker/src/bundle-workflows.ts +0 -38
- package/templates/temporal-api-worker/worker/src/worker.ts.hbs +0 -93
- /package/templates/{temporal-api-worker → api-auth}/api/.dockerignore +0 -0
- /package/templates/{temporal-api-worker → api-auth}/api/Dockerfile +0 -0
- /package/templates/{temporal-api-worker → api-auth}/api/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker → api-auth}/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker/worker → api-role-gating/api}/.dockerignore +0 -0
- /package/templates/{temporal-api-worker/worker → external-service/api}/tsconfig.json +0 -0
- /package/templates/{temporal-api-worker → workflow}/api/src/encryption-codec.ts +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/activities.ts.hbs +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/encryption-codec.ts +0 -0
- /package/templates/{temporal-api-worker → workflow}/worker/src/workflows.ts.hbs +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mesh vcs get <repo> <path>` — read a SPECIFIC path (a file or subtree) from
|
|
3
|
+
* a repo, never the whole repo. The discretionary doc-pull the conversation
|
|
4
|
+
* `references[]` catalog points at: a `pull` bundle lists which repos/docs a
|
|
5
|
+
* conversation touched, and this fetches just the ones the agent/user wants.
|
|
6
|
+
*
|
|
7
|
+
* Resolves the vcs service either from an agent target (`--target`, via the
|
|
8
|
+
* shared agent-targets registry → derived `vcs.<baseDomain>` + mesh-login
|
|
9
|
+
* token) or directly (`--url` + `--token`/`--context`).
|
|
10
|
+
*/
|
|
11
|
+
import { writeFile, mkdir } from "node:fs/promises";
|
|
12
|
+
import { join, dirname } from "node:path";
|
|
13
|
+
import { createVcsFolderReader, deriveVcsBaseUrl } from "@mesh-tech/agent-targets";
|
|
14
|
+
import { resolveTarget } from "../agent-api-client.js";
|
|
15
|
+
import { getValidToken } from "../login.js";
|
|
16
|
+
import { resolveToken } from "./common.js";
|
|
17
|
+
import { logInfo } from "../../utils/log.js";
|
|
18
|
+
export async function getCommand(repo, path, opts) {
|
|
19
|
+
let vcsBaseUrl;
|
|
20
|
+
let token;
|
|
21
|
+
if (opts.target) {
|
|
22
|
+
const t = resolveTarget({ target: opts.target });
|
|
23
|
+
vcsBaseUrl = deriveVcsBaseUrl(t.apiBaseUrl);
|
|
24
|
+
token = t.token ?? (await getValidToken(t.loginContext ?? "mesh.dev")) ?? undefined;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
vcsBaseUrl = (opts.url ?? process.env.VCS_URL)?.replace(/\/$/, "") ?? null;
|
|
28
|
+
token = await resolveToken(opts);
|
|
29
|
+
}
|
|
30
|
+
if (!vcsBaseUrl)
|
|
31
|
+
throw new Error("vcs get requires --target <name> or --url <vcs-url>");
|
|
32
|
+
if (!token)
|
|
33
|
+
throw new Error("no token: pass --target (after mesh login), or --token / --context");
|
|
34
|
+
const reader = createVcsFolderReader({ vcsBaseUrl, token });
|
|
35
|
+
try {
|
|
36
|
+
const { ref, files } = await reader.readPath(repo, path);
|
|
37
|
+
if (files.length === 0) {
|
|
38
|
+
logInfo(`no files at ${repo}:${path}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (opts.output) {
|
|
42
|
+
for (const f of files) {
|
|
43
|
+
const abs = join(opts.output, f.path);
|
|
44
|
+
await mkdir(dirname(abs), { recursive: true });
|
|
45
|
+
await writeFile(abs, f.contents);
|
|
46
|
+
}
|
|
47
|
+
logInfo(`wrote ${files.length} file(s) from ${repo}:${path} (${ref}) → ${opts.output}`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
for (const f of files) {
|
|
51
|
+
if (files.length > 1)
|
|
52
|
+
process.stdout.write(`\n=== ${f.path} ===\n`);
|
|
53
|
+
process.stdout.write(f.contents);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
await reader.cleanup();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/vcs/get.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAmB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,IAAa;IACxE,IAAI,UAAyB,CAAC;IAC9B,IAAI,KAAyB,CAAC;IAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAC3E,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACxF,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAElG,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,eAAe,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,SAAS,KAAK,CAAC,MAAM,iBAAiB,IAAI,IAAI,IAAI,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;gBACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF1D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { cloneCommand } from "./clone.js";
|
|
2
|
+
import { getCommand } from "./get.js";
|
|
3
|
+
import { draftsCreateCommand, draftsDiscardCommand, draftsListCommand, draftsShowCommand, draftsSubmitCommand, } from "./drafts.js";
|
|
4
|
+
import { proposeCommand } from "./propose.js";
|
|
5
|
+
import { approveCommand, commentCommand, diffCommand, proposalsCommand, rejectCommand, requestChangesCommand, showCommand, } from "./review.js";
|
|
6
|
+
function withCommon(cmd) {
|
|
7
|
+
return cmd
|
|
8
|
+
.option("--url <url>", "vcs service URL (or VCS_URL, or derived from origin remote)")
|
|
9
|
+
.option("--token <token>", "bearer token (or VCS_TOKEN)")
|
|
10
|
+
.option("--context <context>", "mesh login context to mint a token from");
|
|
11
|
+
}
|
|
12
|
+
export function registerVcsCommands(program) {
|
|
13
|
+
const vcs = program
|
|
14
|
+
.command("vcs")
|
|
15
|
+
.description("Versioned content repos (mesh.vcs): clone, get, propose, review");
|
|
16
|
+
withCommon(vcs.command("clone <repo> [dest]").description("Clone a repo (read-only remote)")).action(cloneCommand);
|
|
17
|
+
withCommon(vcs
|
|
18
|
+
.command("get <repo> <path>")
|
|
19
|
+
.description("Read a specific path (file or subtree) from a repo — one doc, not the whole repo")
|
|
20
|
+
.option("--target <name>", "agent target (agent-targets registry) to derive the vcs URL + auth")
|
|
21
|
+
.option("-o, --output <dir>", "write file(s) here instead of stdout")).action(getCommand);
|
|
22
|
+
withCommon(vcs
|
|
23
|
+
.command("propose")
|
|
24
|
+
.description("Propose the working tree's changes (run inside a clone)")
|
|
25
|
+
.option("-m, --message <message>", "proposal message")
|
|
26
|
+
.option("--proposal-id <id>", "explicit proposal id")
|
|
27
|
+
.option("--revise <id>", "add a revision to an existing proposal")
|
|
28
|
+
.option("--merge-parent <sha>", "conflict resolution: main sha incorporated")).action(proposeCommand);
|
|
29
|
+
withCommon(vcs.command("proposals <repo>").description("List open proposals")).action(proposalsCommand);
|
|
30
|
+
withCommon(vcs.command("show <repo> <id>").description("Show proposal state")).action(showCommand);
|
|
31
|
+
withCommon(vcs.command("diff <repo> <id>").description("Show proposal diff")).action(diffCommand);
|
|
32
|
+
withCommon(vcs
|
|
33
|
+
.command("approve <repo> <id>")
|
|
34
|
+
.description("Approve at the current head (payload-bound)")
|
|
35
|
+
.option("--sha <sha>", "approve a specific head sha")).action(approveCommand);
|
|
36
|
+
withCommon(vcs
|
|
37
|
+
.command("reject <repo> <id>")
|
|
38
|
+
.description("Reject a proposal")
|
|
39
|
+
.option("--reason <reason>", "rejection reason")).action(rejectCommand);
|
|
40
|
+
withCommon(vcs.command("comment <repo> <id> <text>").description("Comment on a proposal")).action(commentCommand);
|
|
41
|
+
withCommon(vcs
|
|
42
|
+
.command("request-changes <repo> <id>")
|
|
43
|
+
.description("Ask the author for changes (review stays open)")
|
|
44
|
+
.option("--note <note>", "what needs to change")).action(requestChangesCommand);
|
|
45
|
+
const drafts = vcs.command("drafts").description("Work-in-progress drafts");
|
|
46
|
+
withCommon(drafts.command("list <repo>").description("List open drafts").option("--all", "include closed drafts")).action(draftsListCommand);
|
|
47
|
+
withCommon(drafts.command("show <repo> <id>").description("Show draft status")).action(draftsShowCommand);
|
|
48
|
+
withCommon(drafts
|
|
49
|
+
.command("create <repo>")
|
|
50
|
+
.description("Create a draft")
|
|
51
|
+
.option("--title <title>", "draft title")).action(draftsCreateCommand);
|
|
52
|
+
withCommon(drafts
|
|
53
|
+
.command("submit <repo> <id>")
|
|
54
|
+
.description("Submit a draft for review")
|
|
55
|
+
.option("--note <note>", "note to reviewers")).action(draftsSubmitCommand);
|
|
56
|
+
withCommon(drafts.command("discard <repo> <id>").description("Discard a draft")).action(draftsDiscardCommand);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/vcs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type CommonOpts } from "./common.js";
|
|
2
|
+
export interface FileChange {
|
|
3
|
+
status: string;
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
/** Parse `git status --porcelain -z` output into adds/modifies/deletes.
|
|
7
|
+
*
|
|
8
|
+
* Porcelain -z format: records are NUL-terminated. Normal record: `XY PATH`.
|
|
9
|
+
* Rename/copy record (X or Y is R/C): `XY PATH\0ORIGPATH` — the FOLLOWING NUL
|
|
10
|
+
* field is the source/original path. Renames expand to a delete of the old path
|
|
11
|
+
* plus a write of the new path. Copies only emit a write of the new path (the
|
|
12
|
+
* source still exists on disk). This stateful walk avoids mis-parsing the bare
|
|
13
|
+
* orig-path token as a status-prefixed record.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseStatus(out: string): FileChange[];
|
|
16
|
+
export interface ProposeOpts extends CommonOpts {
|
|
17
|
+
message?: string;
|
|
18
|
+
proposalId?: string;
|
|
19
|
+
revise?: string;
|
|
20
|
+
mergeParent?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function proposeCommand(opts: ProposeOpts): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=propose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/propose.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAiCrD;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmErE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { execFileAsync, resolveTarget, resolveToken, vcsApi, } from "./common.js";
|
|
4
|
+
/** Parse `git status --porcelain -z` output into adds/modifies/deletes.
|
|
5
|
+
*
|
|
6
|
+
* Porcelain -z format: records are NUL-terminated. Normal record: `XY PATH`.
|
|
7
|
+
* Rename/copy record (X or Y is R/C): `XY PATH\0ORIGPATH` — the FOLLOWING NUL
|
|
8
|
+
* field is the source/original path. Renames expand to a delete of the old path
|
|
9
|
+
* plus a write of the new path. Copies only emit a write of the new path (the
|
|
10
|
+
* source still exists on disk). This stateful walk avoids mis-parsing the bare
|
|
11
|
+
* orig-path token as a status-prefixed record.
|
|
12
|
+
*/
|
|
13
|
+
export function parseStatus(out) {
|
|
14
|
+
const tokens = out.split("\0");
|
|
15
|
+
const changes = [];
|
|
16
|
+
let i = 0;
|
|
17
|
+
while (i < tokens.length) {
|
|
18
|
+
const entry = tokens[i];
|
|
19
|
+
if (!entry) {
|
|
20
|
+
i++;
|
|
21
|
+
continue; // trailing empty from the final NUL
|
|
22
|
+
}
|
|
23
|
+
const status = entry.slice(0, 2); // XY — do NOT trim before classifying
|
|
24
|
+
const newPath = entry.slice(3);
|
|
25
|
+
const isRename = status[0] === "R" || status[1] === "R";
|
|
26
|
+
const isCopy = !isRename && (status[0] === "C" || status[1] === "C");
|
|
27
|
+
if (isRename || isCopy) {
|
|
28
|
+
const origPath = tokens[i + 1] ?? "";
|
|
29
|
+
i += 2; // consume the orig-path field too
|
|
30
|
+
if (isRename && origPath && !origPath.endsWith("/")) {
|
|
31
|
+
changes.push({ status: "D", path: origPath });
|
|
32
|
+
}
|
|
33
|
+
if (newPath && !newPath.endsWith("/")) {
|
|
34
|
+
changes.push({ status: "A", path: newPath });
|
|
35
|
+
}
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
i++;
|
|
39
|
+
if (newPath.length > 0 && !newPath.endsWith("/")) {
|
|
40
|
+
changes.push({ status: status.trim(), path: newPath });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return changes;
|
|
44
|
+
}
|
|
45
|
+
export async function proposeCommand(opts) {
|
|
46
|
+
const cwd = process.cwd();
|
|
47
|
+
const target = await resolveTarget(opts);
|
|
48
|
+
if (!target.repo) {
|
|
49
|
+
throw new Error("could not determine repo from the origin remote (pass --url from a clone)");
|
|
50
|
+
}
|
|
51
|
+
const token = await resolveToken(opts);
|
|
52
|
+
// --untracked-files=all: a brand-new directory otherwise collapses to a
|
|
53
|
+
// single "?? dir/" entry, which parseStatus skips — silently dropping the
|
|
54
|
+
// new files inside it from the proposal.
|
|
55
|
+
const { stdout: statusOut } = await execFileAsync("git", ["status", "--porcelain", "-z", "--untracked-files=all"], { cwd });
|
|
56
|
+
const changes = parseStatus(statusOut);
|
|
57
|
+
if (changes.length === 0) {
|
|
58
|
+
console.log("working tree clean — nothing to propose");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const operations = await Promise.all(changes.map(async (c) => c.status.startsWith("D")
|
|
62
|
+
? { op: "delete", path: c.path }
|
|
63
|
+
: {
|
|
64
|
+
op: "write",
|
|
65
|
+
path: c.path,
|
|
66
|
+
content: await readFile(join(cwd, c.path), "utf8"),
|
|
67
|
+
}));
|
|
68
|
+
// New proposals diff against the clone's HEAD; revisions against the
|
|
69
|
+
// proposal's current head (the author proposed from this clone).
|
|
70
|
+
let baseCommit;
|
|
71
|
+
if (opts.revise) {
|
|
72
|
+
const state = (await vcsApi(target.baseUrl, token, `/v1/repos/${target.repo}/proposals/${opts.revise}`));
|
|
73
|
+
if (!state.headSha)
|
|
74
|
+
throw new Error(`cannot resolve head of proposal ${opts.revise}`);
|
|
75
|
+
baseCommit = state.headSha;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const { stdout: head } = await execFileAsync("git", ["rev-parse", "HEAD"], { cwd });
|
|
79
|
+
baseCommit = head.trim();
|
|
80
|
+
}
|
|
81
|
+
const body = {
|
|
82
|
+
...(opts.proposalId && !opts.revise ? { proposalId: opts.proposalId } : {}),
|
|
83
|
+
baseCommit,
|
|
84
|
+
message: opts.message ?? `Update ${operations.length} file(s)`,
|
|
85
|
+
operations,
|
|
86
|
+
...(opts.mergeParent ? { mergeParent: opts.mergeParent } : {}),
|
|
87
|
+
};
|
|
88
|
+
const path = opts.revise
|
|
89
|
+
? `/v1/repos/${target.repo}/proposals/${opts.revise}/revisions`
|
|
90
|
+
: `/v1/repos/${target.repo}/proposals`;
|
|
91
|
+
const data = (await vcsApi(target.baseUrl, token, path, "POST", body));
|
|
92
|
+
console.log(`proposal ${data.proposalId} @ ${data.sha.slice(0, 8)} — review: mesh vcs show ${target.repo} ${data.proposalId} --url ${target.baseUrl}`);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=propose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propose.js","sourceRoot":"","sources":["../../../../src/commands/vcs/propose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type CommonOpts } from "./common.js";
|
|
2
|
+
export declare function proposalsCommand(repo: string, opts: CommonOpts): Promise<void>;
|
|
3
|
+
export declare function showCommand(repo: string, id: string, opts: CommonOpts): Promise<void>;
|
|
4
|
+
export declare function diffCommand(repo: string, id: string, opts: CommonOpts): Promise<void>;
|
|
5
|
+
export declare function approveCommand(repo: string, id: string, opts: CommonOpts & {
|
|
6
|
+
sha?: string;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
export declare function rejectCommand(repo: string, id: string, opts: CommonOpts & {
|
|
9
|
+
reason?: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function commentCommand(repo: string, id: string, text: string, opts: CommonOpts): Promise<void>;
|
|
12
|
+
export declare function requestChangesCommand(repo: string, id: string, opts: CommonOpts & {
|
|
13
|
+
note?: string;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/commands/vcs/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAcnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { resolveTarget, resolveToken, vcsApi } from "./common.js";
|
|
2
|
+
async function call(opts, repo, path, method = "GET", body) {
|
|
3
|
+
const target = await resolveTarget({ ...opts, repo });
|
|
4
|
+
const token = await resolveToken(opts);
|
|
5
|
+
return vcsApi(target.baseUrl, token, `/v1/repos/${repo}${path}`, method, body);
|
|
6
|
+
}
|
|
7
|
+
export async function proposalsCommand(repo, opts) {
|
|
8
|
+
console.log(JSON.stringify(await call(opts, repo, "/proposals"), null, 2));
|
|
9
|
+
}
|
|
10
|
+
export async function showCommand(repo, id, opts) {
|
|
11
|
+
console.log(JSON.stringify(await call(opts, repo, `/proposals/${id}`), null, 2));
|
|
12
|
+
}
|
|
13
|
+
export async function diffCommand(repo, id, opts) {
|
|
14
|
+
const d = (await call(opts, repo, `/proposals/${id}/diff`));
|
|
15
|
+
console.log(d.patch);
|
|
16
|
+
}
|
|
17
|
+
export async function approveCommand(repo, id, opts) {
|
|
18
|
+
const sha = opts.sha ??
|
|
19
|
+
(await call(opts, repo, `/proposals/${id}`)).headSha;
|
|
20
|
+
await call(opts, repo, `/proposals/${id}/approve`, "POST", { sha });
|
|
21
|
+
console.log(`approved ${id} @ ${sha.slice(0, 8)}`);
|
|
22
|
+
}
|
|
23
|
+
export async function rejectCommand(repo, id, opts) {
|
|
24
|
+
await call(opts, repo, `/proposals/${id}/reject`, "POST", { reason: opts.reason });
|
|
25
|
+
console.log(`rejected ${id}`);
|
|
26
|
+
}
|
|
27
|
+
export async function commentCommand(repo, id, text, opts) {
|
|
28
|
+
await call(opts, repo, `/proposals/${id}/comment`, "POST", { text });
|
|
29
|
+
console.log("comment added");
|
|
30
|
+
}
|
|
31
|
+
export async function requestChangesCommand(repo, id, opts) {
|
|
32
|
+
await call(opts, repo, `/proposals/${id}/request-changes`, "POST", { note: opts.note });
|
|
33
|
+
console.log(`changes requested on ${id}`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../../../src/commands/vcs/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the `enrichVcs` dep for `mesh conversations pull` by resolving a
|
|
3
|
+
* token + vcs URL for the target, then delegating to the shared
|
|
4
|
+
* `createVcsFolderReader` in `@mesh-tech/agent-targets` (same folder logic the
|
|
5
|
+
* MCP `agent_pull_conversation` tool uses).
|
|
6
|
+
*/
|
|
7
|
+
import { type VcsFolderReader } from "@mesh-tech/agent-targets";
|
|
8
|
+
import type { AgentApiTarget } from "./agent-api-client.js";
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a token + vcs base URL for `target`, returning a `VcsFolderReader`
|
|
11
|
+
* ({ enrichVcs, cleanup }) or `undefined` (with a warning) when no token or vcs
|
|
12
|
+
* URL can be derived — so the pull proceeds IR-only rather than failing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildVcsEnricher(target: AgentApiTarget): Promise<VcsFolderReader | undefined>;
|
|
15
|
+
//# sourceMappingURL=vcs-enrich.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcs-enrich.d.ts","sourceRoot":"","sources":["../../../src/commands/vcs-enrich.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAA2C,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAYnG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the `enrichVcs` dep for `mesh conversations pull` by resolving a
|
|
3
|
+
* token + vcs URL for the target, then delegating to the shared
|
|
4
|
+
* `createVcsFolderReader` in `@mesh-tech/agent-targets` (same folder logic the
|
|
5
|
+
* MCP `agent_pull_conversation` tool uses).
|
|
6
|
+
*/
|
|
7
|
+
import { createVcsFolderReader, deriveVcsBaseUrl } from "@mesh-tech/agent-targets";
|
|
8
|
+
import { getValidToken } from "./login.js";
|
|
9
|
+
import { logWarn } from "../utils/log.js";
|
|
10
|
+
/**
|
|
11
|
+
* Resolve a token + vcs base URL for `target`, returning a `VcsFolderReader`
|
|
12
|
+
* ({ enrichVcs, cleanup }) or `undefined` (with a warning) when no token or vcs
|
|
13
|
+
* URL can be derived — so the pull proceeds IR-only rather than failing.
|
|
14
|
+
*/
|
|
15
|
+
export async function buildVcsEnricher(target) {
|
|
16
|
+
const vcsBaseUrl = deriveVcsBaseUrl(target.apiBaseUrl);
|
|
17
|
+
if (!vcsBaseUrl) {
|
|
18
|
+
logWarn(`could not derive a vcs URL from ${target.apiBaseUrl}; skipping design-folder enrichment (--no-vcs to silence)`);
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
const token = target.token ?? (await getValidToken(target.loginContext ?? "mesh.dev"));
|
|
22
|
+
if (!token) {
|
|
23
|
+
logWarn(`no vcs token for context "${target.loginContext ?? "mesh.dev"}"; skipping design-folder enrichment`);
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return createVcsFolderReader({ vcsBaseUrl, token });
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=vcs-enrich.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcs-enrich.js","sourceRoot":"","sources":["../../../src/commands/vcs-enrich.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAwB,MAAM,0BAA0B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAsB;IAC3D,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,mCAAmC,MAAM,CAAC,UAAU,2DAA2D,CAAC,CAAC;QACzH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,6BAA6B,MAAM,CAAC,YAAY,IAAI,UAAU,sCAAsC,CAAC,CAAC;QAC9G,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,qBAAqB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mesh vpn — Headscale VPN management commands
|
|
3
|
+
*
|
|
4
|
+
* Commands:
|
|
5
|
+
* mesh vpn connect <context> Connect to VPN via Tailscale + OIDC
|
|
6
|
+
* mesh vpn disconnect Disconnect from VPN
|
|
7
|
+
* mesh vpn status Show VPN control plane status
|
|
8
|
+
* mesh vpn api-key Create a Headscale API key
|
|
9
|
+
* mesh vpn pre-auth-key Create a pre-authentication key for a user
|
|
10
|
+
* mesh vpn users List registered VPN users
|
|
11
|
+
*
|
|
12
|
+
* All commands shell out to kubectl. The user must have kubeconfig
|
|
13
|
+
* configured for the target cluster (e.g., via `aws eks update-kubeconfig`).
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from "commander";
|
|
16
|
+
/** Split a platform context ("mesh.dev") into its tenant + env. Pure. */
|
|
17
|
+
export declare function parseContextTenantEnv(context: string): {
|
|
18
|
+
tenant: string;
|
|
19
|
+
env: string;
|
|
20
|
+
};
|
|
21
|
+
/** Return Tailscale's BackendState, or null if tailscale is not running. */
|
|
22
|
+
export declare function tailscaleBackendState(): string | null;
|
|
23
|
+
export declare function registerVpnCommands(program: Command): void;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/vpn/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsVpC,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAGtF;AAkDD,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAqKD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE1D"}
|