@starci/hfs 4.7.31 → 4.7.33
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 +12 -0
- package/README.md +13 -6
- package/emit/contracts.mjs +4 -3
- package/emit/form-bounds-reader.ts.partial +58 -0
- package/emit/form-bounds.mjs +155 -0
- package/emit/graphql-input-bounds.mjs +97 -0
- package/emit/input-bounds.mjs +44 -0
- package/emit/operation-schemas.mjs +137 -0
- package/emit/operations-worker.mjs +2 -2
- package/emit/operations.mjs +52 -16
- package/emit/schema-worker.mjs +17 -4
- package/emit/type-schema.mjs +17 -5
- package/package.json +9 -2
- package/release/gate.mjs +18 -23
- package/release/index.mjs +1 -1
- package/release/push.mjs +4 -5
- package/runtime/engine/admission.mjs +331 -0
- package/runtime/engine/canonical-json.mjs +14 -0
- package/runtime/engine/db/blob.mjs +380 -0
- package/runtime/engine/db/event-compact.mjs +73 -0
- package/runtime/engine/db/ledger-open.mjs +38 -0
- package/runtime/engine/db/ledger-paths.mjs +87 -0
- package/runtime/engine/db/ledger.mjs +1068 -0
- package/runtime/engine/db/machine-connection.mjs +150 -0
- package/runtime/engine/db/machine-open.mjs +60 -0
- package/runtime/engine/db/machine-schema.mjs +105 -0
- package/runtime/engine/db/machine.mjs +1317 -0
- package/runtime/engine/db/provider-reservations.mjs +127 -0
- package/runtime/engine/db/provision-authority.mjs +76 -0
- package/runtime/engine/db/provision-lock.mjs +29 -0
- package/runtime/engine/db/provision-operations.mjs +146 -0
- package/runtime/engine/db/ref-value.mjs +67 -0
- package/runtime/engine/db/schema/machine.sql +920 -0
- package/runtime/engine/db/schema/runtime.sql +1113 -0
- package/runtime/engine/refuse.mjs +11 -0
- package/runtime/knowledge/hfs/canon-pins.yaml +65 -9
- package/runtime/knowledge/hfs/design-truths.yaml +149 -0
- package/runtime/knowledge/hfs/fe-stack.yaml +23 -5
- package/runtime/knowledge/hfs/rules.yaml +269 -48
- package/runtime/knowledge/hfs/slots.yaml +113 -53
- package/runtime/knowledge/patterns/be/api.yaml +46 -20
- package/runtime/knowledge/patterns/be/event-bus.yaml +19 -12
- package/runtime/knowledge/patterns/be/idempotency.yaml +265 -0
- package/runtime/knowledge/patterns/be/jobs.yaml +17 -12
- package/runtime/knowledge/patterns/be/projections.yaml +2 -2
- package/runtime/knowledge/patterns/be/queues.yaml +57 -22
- package/runtime/knowledge/patterns/be/reactors.yaml +1 -1
- package/runtime/knowledge/patterns/be/realtime.yaml +326 -27
- package/runtime/knowledge/patterns/be/saga.yaml +2 -2
- package/runtime/knowledge/sonar-gate.yaml +1 -1
- package/runtime/modules/kernel/command-policy.yaml +249 -0
- package/runtime/modules/kernel/failure-codes.yaml +211 -52
- package/runtime/modules/kernel/hook-input.yaml +6 -0
- package/runtime/modules/kernel/protected-zone.yaml +81 -0
- package/runtime/modules/kernel/removed-vocabulary.yaml +62 -0
- package/runtime/modules/kernel/roles.yaml +405 -0
- package/runtime/modules/models/registry.yaml +3 -1
- package/runtime/modules/models/runtimes.yaml +2 -0
- package/runtime/modules/schemas/application-stacks.schema.yaml +10 -2
- package/runtime/packages/cli/src/catalog.generated.mjs +46 -59
- package/runtime/packages/grammar/scripts/build-stamp.mjs +98 -0
- package/runtime/scripts/agent/codex-app-server.mjs +79 -0
- package/runtime/scripts/agent/codex-mirror-source.mjs +34 -0
- package/runtime/scripts/agent/host-agents.mjs +80 -0
- package/runtime/scripts/agent/launch-trust-policy.mjs +53 -0
- package/runtime/scripts/agent/trust-launch.mjs +191 -0
- package/runtime/scripts/agent/trust.mjs +523 -0
- package/runtime/scripts/api/fs/rename-over.mjs +21 -0
- package/runtime/scripts/api/fs/temp-path.mjs +8 -0
- package/runtime/scripts/api/fs/write-json-file.mjs +10 -0
- package/runtime/scripts/api/git/diff-names.mjs +8 -0
- package/runtime/scripts/api/git/head-time.mjs +10 -0
- package/runtime/scripts/api/git/index-lock.mjs +78 -0
- package/runtime/scripts/api/git/is-ancestor.mjs +5 -0
- package/runtime/scripts/api/git/log.mjs +5 -0
- package/runtime/scripts/api/git/merge-base-query.mjs +5 -0
- package/runtime/scripts/api/git/merge-tree.mjs +5 -0
- package/runtime/scripts/api/git/rev-list.mjs +5 -0
- package/runtime/scripts/api/git/rev-parse.mjs +13 -0
- package/runtime/scripts/api/git/status-query.mjs +5 -0
- package/runtime/scripts/api/git/worktree-list-query.mjs +5 -0
- package/runtime/scripts/api/node/spawn-node.mjs +6 -0
- package/runtime/scripts/api/npm/dist-tag.mjs +8 -0
- package/runtime/scripts/api/npm/lib.mjs +32 -0
- package/runtime/scripts/api/npm/pack-dry-run.mjs +9 -0
- package/runtime/scripts/api/npm/run-npm.mjs +6 -0
- package/runtime/scripts/api/npm/view.mjs +30 -0
- package/runtime/scripts/api/npm/whoami.mjs +8 -0
- package/runtime/scripts/api/process/hide-child-windows.mjs +31 -0
- package/runtime/scripts/api/process/kill-tree.mjs +22 -0
- package/runtime/scripts/api/process/lib.mjs +125 -0
- package/runtime/scripts/api/process/probe-guard-command.mjs +74 -0
- package/runtime/scripts/api/process/process-list.mjs +28 -0
- package/runtime/scripts/api/process/system-tool.mjs +37 -0
- package/runtime/scripts/gates/canon-digest.mjs +81 -0
- package/runtime/scripts/gates/canon-pins.mjs +16 -0
- package/runtime/scripts/gates/commit-proof.mjs +53 -0
- package/runtime/scripts/gates/gate-input.mjs +98 -0
- package/runtime/scripts/gates/gate.mjs +669 -0
- package/runtime/scripts/gates/grammar-dist.mjs +206 -0
- package/runtime/scripts/gates/runtime-package-selection.mjs +27 -0
- package/runtime/scripts/gates/test-world-run.mjs +254 -0
- package/runtime/scripts/gates/type-impact.mjs +277 -0
- package/runtime/scripts/gates/type-program.mjs +113 -0
- package/runtime/scripts/guards/assigned-command.mjs +12 -0
- package/runtime/scripts/guards/call-rights.mjs +47 -0
- package/runtime/scripts/guards/command-guard.mjs +468 -0
- package/runtime/scripts/guards/command-policy.mjs +342 -0
- package/runtime/scripts/guards/critic-reach.mjs +82 -0
- package/runtime/scripts/guards/deps-guard.mjs +150 -0
- package/runtime/scripts/guards/env-dump-verdict.mjs +89 -0
- package/runtime/scripts/guards/git-pathspec.mjs +225 -0
- package/runtime/scripts/guards/git-policy.mjs +355 -0
- package/runtime/scripts/guards/guards-root.mjs +27 -0
- package/runtime/scripts/guards/hook-install.mjs +343 -0
- package/runtime/scripts/guards/hook-io.mjs +76 -0
- package/runtime/scripts/guards/hook-verdict.mjs +12 -0
- package/runtime/scripts/guards/install-verdict.mjs +41 -0
- package/runtime/scripts/guards/kernel-seat.mjs +63 -0
- package/runtime/scripts/guards/launch-verdict.mjs +74 -0
- package/runtime/scripts/guards/op-starci.mjs +16 -0
- package/runtime/scripts/guards/op-write-scope.mjs +27 -0
- package/runtime/scripts/guards/orca-self-lifecycle.mjs +39 -0
- package/runtime/scripts/guards/process-kill-verdict.mjs +106 -0
- package/runtime/scripts/guards/protected-zone.mjs +56 -0
- package/runtime/scripts/guards/refusals.mjs +27 -0
- package/runtime/scripts/guards/release-definition.mjs +185 -0
- package/runtime/scripts/guards/release-push-gate.mjs +72 -0
- package/runtime/scripts/guards/release-record.mjs +58 -0
- package/runtime/scripts/guards/release-suite-mode.mjs +15 -0
- package/runtime/scripts/guards/rights.mjs +268 -0
- package/runtime/scripts/guards/seat-tools.mjs +47 -0
- package/runtime/scripts/guards/shell-commands.mjs +328 -0
- package/runtime/scripts/guards/supervisor-seat.mjs +80 -0
- package/runtime/scripts/guards/verdict-process.mjs +81 -0
- package/runtime/scripts/hfs/architecture/dead-exports.mjs +10 -10
- package/runtime/scripts/hfs/architecture/function-spec-providers.mjs +1 -1
- package/runtime/scripts/hfs/architecture/operation-contract-roots.mjs +53 -0
- package/runtime/scripts/hfs/architecture/reachability.mjs +1 -1
- package/runtime/scripts/hfs/architecture/sql-owner.mjs +17 -6
- package/runtime/scripts/hfs/architecture/sql-token-forms.mjs +105 -0
- package/runtime/scripts/hfs/architecture/sql-tokens.mjs +38 -52
- package/runtime/scripts/hfs/architecture/supabase-keys.mjs +261 -0
- package/runtime/scripts/hfs/architecture/transport-owner.mjs +49 -3
- package/runtime/scripts/hfs/architecture/typescript.mjs +1 -1
- package/runtime/scripts/hfs/check.mjs +6 -4
- package/runtime/scripts/hfs/coverage-scope.mjs +28 -1
- package/runtime/scripts/hfs/db-restamp-verb.mjs +54 -14
- package/runtime/scripts/hfs/declaration-shape.mjs +4 -4
- package/runtime/scripts/hfs/declaration-slots.mjs +14 -3
- package/runtime/scripts/hfs/manifest-shape.mjs +10 -6
- package/runtime/scripts/hfs/rule-params-shape.mjs +18 -6
- package/runtime/scripts/hfs/rules/a15-findings.mjs +4 -1
- package/runtime/scripts/hfs/rules/bypass-markers.mjs +22 -7
- package/runtime/scripts/hfs/rules/database-migrations.mjs +69 -14
- package/runtime/scripts/hfs/rules/database-queue-sources.mjs +9 -7
- package/runtime/scripts/hfs/rules/database-queues.mjs +68 -18
- package/runtime/scripts/hfs/rules/edition.mjs +56 -12
- package/runtime/scripts/hfs/rules/fe-contract-documents.mjs +1 -10
- package/runtime/scripts/hfs/rules/fe-stack.mjs +12 -7
- package/runtime/scripts/hfs/rules/lite-proof-lane.mjs +1 -1
- package/runtime/scripts/hfs/rules/stacks-lite-backing.mjs +75 -9
- package/runtime/scripts/hfs/rules/stacks-runtime.mjs +1 -1
- package/runtime/scripts/hfs/rules/stacks-swarm.mjs +15 -4
- package/runtime/scripts/hfs/rules/text-integrity.mjs +73 -0
- package/runtime/scripts/hfs/runtime-rules/hook-shape.mjs +74 -0
- package/runtime/scripts/hfs/runtime-rules/release-notes.mjs +44 -0
- package/runtime/scripts/hfs/sealed-members.mjs +3 -3
- package/runtime/scripts/hfs/slot-side-problems.mjs +3 -3
- package/runtime/scripts/hfs/slots.mjs +2 -1
- package/runtime/scripts/hfs/stack-deploy-config.mjs +22 -5
- package/runtime/scripts/hfs/stacks-gate.mjs +28 -7
- package/runtime/scripts/hfs/view.mjs +2 -1
- package/runtime/scripts/lib/app-data.mjs +11 -0
- package/runtime/scripts/lib/bypass-markers.mjs +272 -75
- package/runtime/scripts/lib/check-format.mjs +7 -0
- package/runtime/scripts/lib/cli-arg.mjs +120 -0
- package/runtime/scripts/lib/css-rules.mjs +220 -0
- package/runtime/scripts/lib/dom-tree.mjs +4 -0
- package/runtime/scripts/lib/escape.mjs +16 -0
- package/runtime/scripts/lib/event-items.mjs +22 -0
- package/runtime/scripts/lib/failure-code-template-errors.mjs +161 -0
- package/runtime/scripts/lib/git-dir.mjs +120 -0
- package/runtime/scripts/lib/grammar-vendor-parity.mjs +377 -0
- package/runtime/scripts/lib/guard-command.mjs +24 -0
- package/runtime/scripts/lib/hook-limits.mjs +5 -0
- package/runtime/scripts/lib/interrupt-cleanup.mjs +38 -0
- package/runtime/scripts/lib/js-lex.mjs +200 -0
- package/runtime/scripts/lib/json-formats.mjs +0 -1
- package/runtime/scripts/lib/language.mjs +94 -1
- package/runtime/scripts/lib/loosening-budgets.mjs +44 -0
- package/runtime/scripts/lib/loosening-config.mjs +361 -0
- package/runtime/scripts/lib/loosening-state.mjs +223 -0
- package/runtime/scripts/lib/menu-parts.mjs +11 -0
- package/runtime/scripts/lib/normalize.mjs +25 -0
- package/runtime/scripts/lib/op-gate.mjs +15 -0
- package/runtime/scripts/lib/redact.mjs +208 -0
- package/runtime/scripts/lib/runtime-location.mjs +21 -0
- package/runtime/scripts/lib/runtime-package-inventory.mjs +21 -0
- package/runtime/scripts/lib/runtime-package-manifests.mjs +84 -0
- package/runtime/scripts/lib/runtime-publication-tags.mjs +99 -0
- package/runtime/scripts/lib/seat-env.mjs +43 -0
- package/runtime/scripts/lib/secret-patterns.mjs +58 -9
- package/runtime/scripts/lib/shell-source.mjs +4 -0
- package/runtime/scripts/lib/source-phrases.mjs +34 -0
- package/runtime/scripts/lib/sqlite.mjs +21 -0
- package/runtime/scripts/lib/swarm-stack.mjs +2 -1
- package/runtime/scripts/lib/tar-files.mjs +39 -0
- package/runtime/scripts/lib/ts-analysis.mjs +10 -0
- package/runtime/scripts/lib/worktree-exclude.mjs +35 -0
- package/runtime/scripts/lib/worktree-record.mjs +14 -0
- package/runtime/scripts/machine/artifact-hold.mjs +52 -0
- package/runtime/scripts/machine/ask-receipts.mjs +113 -0
- package/runtime/scripts/machine/evidence-store.mjs +223 -0
- package/runtime/scripts/machine/home.mjs +216 -0
- package/runtime/scripts/machine/host-lock.mjs +184 -0
- package/runtime/scripts/machine/lock-recovery.mjs +55 -0
- package/runtime/scripts/machine/roles-contract.mjs +90 -0
- package/runtime/scripts/machine/runtime-change.mjs +20 -0
- package/runtime/scripts/machine/workflow-tree.mjs +122 -0
- package/runtime/scripts/reconciler/checklist-items.mjs +7 -0
- package/runtime/scripts/reconciler/guard-row.mjs +25 -0
- package/runtime/scripts/work/asset-slot.mjs +284 -0
- package/runtime/scripts/work/brand/brand-colour.mjs +125 -0
- package/runtime/scripts/work/brand/brand-tokens.mjs +167 -0
- package/runtime/scripts/work/brand/brand-value-source.mjs +106 -0
- package/runtime/scripts/work/brand/brand.mjs +892 -0
- package/runtime/scripts/work/draw/draw-dna-anatomy.mjs +60 -0
- package/runtime/scripts/work/draw/draw-dna-findings.mjs +256 -0
- package/runtime/scripts/work/draw/draw-dna-selector.mjs +38 -0
- package/runtime/scripts/work/draw/draw-dna.mjs +483 -0
- package/runtime/scripts/work/draw/draw-layer.mjs +305 -0
- package/runtime/scripts/work/draw/draw-rationale-page.mjs +237 -0
- package/runtime/scripts/work/draw/draw-rationale-ref.mjs +14 -0
- package/runtime/scripts/work/draw/draw-rationale.mjs +353 -0
- package/runtime/scripts/work/draw/draw-source.mjs +412 -0
- package/runtime/scripts/work/draw/draw-taste.mjs +278 -0
- package/runtime/scripts/work/draw/draw-typecheck.mjs +72 -0
- package/runtime/scripts/work/draw/rationale-findings.mjs +205 -0
- package/runtime/scripts/work/draw-grammar.mjs +175 -0
- package/runtime/scripts/work/draw-render-page.mjs +188 -0
- package/runtime/scripts/work/draw-render.mjs +626 -0
- package/runtime/scripts/work/grammar-proposal.mjs +279 -0
- package/runtime/scripts/work/png.mjs +237 -0
- package/runtime/scripts/work/render-tools.mjs +64 -0
- package/runtime/scripts/work/work-io.mjs +119 -0
- package/scaffold/add-inbox-lite.mjs +2 -2
- package/scaffold/add-plan.mjs +40 -13
- package/scaffold/add-queue-lite.mjs +372 -0
- package/scaffold/add.mjs +5 -2
- package/scaffold/app.mjs +1 -2
- package/scaffold/edition-gate.mjs +11 -7
- package/scaffold/lite-exports.mjs +10 -0
- package/scaffold/pattern-file-slots.mjs +33 -0
- package/scaffold/test-world.mjs +1 -1
- package/scaffold/yaml-block-edit.mjs +117 -0
- package/src/main.mjs +5 -4
- package/stack/deploy.mjs +7 -3
- package/stack/post-deploy.mjs +48 -0
- package/sync/index.mjs +10 -0
- package/templates/app/ci-workflows/github/workflows/stack-deploy.yml +1 -1
- package/templates/app/ci-workflows-lite/github/workflows/stack-deploy.yml +1 -1
- package/templates/app/codegen-graphql.mjs.partial +59 -12
- package/templates/app/hooks/husky/pre-commit +2 -2
- package/templates/app/hooks/husky/pre-push +10 -3
- package/templates/app/package-scripts/redis-dev.json +3 -0
- package/templates/app/package-scripts-lite/package.json +1 -0
- package/templates/app/skeleton/.starcistacks/application-stacks.yaml +36 -8
- package/templates/app/skeleton/.starcistacks/dev/README.md +1 -1
- package/templates/app/skeleton/.starcistacks/production/README.md +10 -9
- package/templates/app/skeleton/.starcistacks/production/infra/swarm/postgres-init.sh +21 -0
- package/templates/app/skeleton/.starcistacks/production/infra/swarm/recovery/restore-proof.md +1 -1
- package/templates/app/skeleton/.starcistacks/production/infra/swarm/releases/images.lock.yaml +1 -0
- package/templates/app/skeleton/.starcistacks/production/infra/swarm/stack.yaml +47 -5
- package/templates/app/skeleton/.starcistacks/production/runtime/env/KEYS.md +5 -3
- package/templates/app/skeleton/README.md +2 -0
- package/templates/app/skeleton-lite/.starcistacks/application-stacks.yaml +5 -0
- package/templates/app/skeleton-lite/.starcistacks/dev/README.md +2 -2
- package/templates/app/skeleton-lite/.starcistacks/production/README.md +1 -1
- package/templates/app/skeleton-lite/README.md +1 -1
- package/templates/be/inbox/platform/client-operation-outcomes.sql.tpl +18 -0
- package/templates/be/inbox/platform/event-bus/errors/event-bus.error.ts.tpl +16 -0
- package/templates/be/inbox/platform/event-bus/event-bus.contracts.ts.tpl +10 -0
- package/templates/be/inbox/platform/event-bus/event-bus.port.ts.tpl +1 -1
- package/templates/be/inbox/platform/event-bus/event-bus.service.spec.ts.tpl +15 -3
- package/templates/be/inbox/platform/event-bus/event-bus.service.ts.tpl +11 -3
- package/templates/be/inbox/platform/event-bus/index.ts.tpl +2 -0
- package/templates/be/inbox/platform/event-bus/messages/event-bus.messages.ts.tpl +7 -0
- package/templates/be/inbox/platform/event-bus/persistence/event-bus.sql.ts.tpl +2 -2
- package/templates/be/inbox/platform/idempotency/errors/idempotency.error.ts.tpl +19 -0
- package/templates/be/inbox/platform/idempotency/index.ts.tpl +2 -0
- package/templates/be/inbox/platform/idempotency/messages/idempotency.messages.ts.tpl +13 -0
- package/templates/be/inbox/platform/inbox/client-operation.policy.spec.ts.tpl +32 -0
- package/templates/be/inbox/platform/inbox/client-operation.policy.ts.tpl +17 -0
- package/templates/be/inbox/platform/inbox/errors/inbox.error.ts.tpl +22 -0
- package/templates/be/inbox/platform/inbox/inbox.port.ts.tpl +21 -0
- package/templates/be/inbox/platform/inbox/inbox.service.spec.ts.tpl +334 -11
- package/templates/be/inbox/platform/inbox/inbox.service.ts.tpl +55 -4
- package/templates/be/inbox/platform/inbox/index.ts.tpl +2 -0
- package/templates/be/inbox/platform/inbox/messages/inbox.messages.ts.tpl +15 -0
- package/templates/be/inbox/platform/inbox/persistence/inbox.rows.ts.tpl +33 -0
- package/templates/be/inbox/platform/inbox/persistence/inbox.sql.ts.tpl +26 -0
- package/templates/be/inbox/platform/inbox/request-fingerprint.policy.spec.ts.tpl +76 -0
- package/templates/be/inbox/platform/inbox/request-fingerprint.policy.ts.tpl +36 -0
- package/templates/be/inbox/platform/migration.sql.tpl +1 -0
- package/templates/be/inbox/service.spec.ts.tpl +4 -4
- package/templates/be/inbox/service.ts.tpl +3 -1
- package/templates/be/inbox/webhook-door.spec.ts.tpl +3 -2
- package/templates/be/inbox/webhook-door.ts.tpl +3 -2
- package/templates/be/patterns/event-bus/platform/errors/event-bus.error.ts.tpl +3 -0
- package/templates/be/patterns/event-bus/platform/event-bus.contracts.ts.tpl +10 -0
- package/templates/be/patterns/event-bus/platform/event-bus.port.ts.tpl +2 -2
- package/templates/be/patterns/event-bus/platform/event-bus.service.spec.ts.tpl +16 -3
- package/templates/be/patterns/event-bus/platform/event-bus.service.ts.tpl +11 -3
- package/templates/be/patterns/event-bus/platform/event-envelope.policy.spec.ts.tpl +139 -50
- package/templates/be/patterns/event-bus/platform/event-envelope.policy.ts.tpl +25 -2
- package/templates/be/patterns/event-bus/platform/event-relay.service.spec.ts.tpl +139 -78
- package/templates/be/patterns/event-bus/platform/event-relay.service.ts.tpl +10 -6
- package/templates/be/patterns/event-bus/platform/event-runner.service.spec.ts.tpl +262 -159
- package/templates/be/patterns/event-bus/platform/event-runner.service.ts.tpl +32 -5
- package/templates/be/patterns/event-bus/platform/messages/event-bus.messages.ts.tpl +2 -0
- package/templates/be/patterns/event-bus/platform/persistence/entities/event-outbox.entity.ts.tpl +5 -1
- package/templates/be/patterns/event-bus/platform/persistence/event-bus.rows.ts.tpl +2 -0
- package/templates/be/patterns/event-bus/platform/persistence/event-bus.sql.ts.tpl +4 -4
- package/templates/be/patterns/event-bus/platform/persistence/migrations/1789800009000-create-event-outbox.ts.tpl +1 -0
- package/templates/be/patterns/idempotency/platform/idempotency/errors/idempotency.error.ts.tpl +19 -0
- package/templates/be/patterns/idempotency/platform/idempotency/index.ts.tpl +2 -0
- package/templates/be/patterns/idempotency/platform/idempotency/messages/idempotency.messages.ts.tpl +13 -0
- package/templates/be/patterns/idempotency/platform/inbox/client-operation.policy.spec.ts.tpl +32 -0
- package/templates/be/patterns/idempotency/platform/inbox/client-operation.policy.ts.tpl +17 -0
- package/templates/be/patterns/idempotency/platform/inbox/client-outcome-backfill.client.spec.ts.tpl +66 -0
- package/templates/be/patterns/idempotency/platform/inbox/client-outcome-backfill.client.ts.tpl +24 -0
- package/templates/be/patterns/idempotency/platform/inbox/delivery-claim-backfill.client.spec.ts.tpl +60 -0
- package/templates/be/patterns/idempotency/platform/inbox/delivery-claim-backfill.client.ts.tpl +12 -0
- package/templates/be/patterns/idempotency/platform/inbox/delivery-claim-release.client.spec.ts.tpl +49 -0
- package/templates/be/patterns/idempotency/platform/inbox/delivery-claim-release.client.ts.tpl +12 -0
- package/templates/be/patterns/idempotency/platform/inbox/effectful.decorators.ts.tpl +7 -0
- package/templates/be/patterns/idempotency/platform/inbox/errors/inbox.error.ts.tpl +22 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.decorators.ts.tpl +17 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.module-definition.ts.tpl +7 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.module.ts.tpl +28 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.options.ts.tpl +7 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.port.ts.tpl +44 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.service.spec.ts.tpl +388 -0
- package/templates/be/patterns/idempotency/platform/inbox/inbox.service.ts.tpl +77 -0
- package/templates/be/patterns/idempotency/platform/inbox/index.ts.tpl +10 -0
- package/templates/be/patterns/idempotency/platform/inbox/messages/inbox.messages.ts.tpl +15 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/connection.ts.tpl +9 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/entities/inbox-claim.entity.ts.tpl +25 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/inbox.rows.ts.tpl +33 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/inbox.sql.ts.tpl +39 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/migrations/1789800005000-create-inbox-claims.ts.tpl +21 -0
- package/templates/be/patterns/idempotency/platform/inbox/persistence/migrations/1792800000000-client-operation-outcomes.ts.tpl +21 -0
- package/templates/be/patterns/idempotency/platform/inbox/request-fingerprint.policy.spec.ts.tpl +76 -0
- package/templates/be/patterns/idempotency/platform/inbox/request-fingerprint.policy.ts.tpl +36 -0
- package/templates/be/patterns/jobs/platform/fenced.processor.spec.ts.tpl +1 -0
- package/templates/be/patterns/jobs/platform/job-claim.service.spec.ts.tpl +4 -3
- package/templates/be/patterns/jobs/platform/job-claim.service.ts.tpl +2 -0
- package/templates/be/patterns/jobs/platform/job-runner.service.spec.ts.tpl +20 -2
- package/templates/be/patterns/jobs/platform/job-runner.service.ts.tpl +1 -0
- package/templates/be/patterns/jobs/platform/jobs.contracts.ts.tpl +4 -0
- package/templates/be/patterns/jobs/platform-lite/jobs.index.ts.tpl +10 -0
- package/templates/be/patterns/jobs/platform-lite/jobs.sql.tpl +44 -0
- package/templates/be/patterns/jobs/platform-lite/persistence.jobs.sql.ts.tpl +33 -0
- package/templates/be/patterns/queues/platform/bullmq-queue-transport.client.spec.ts.tpl +203 -18
- package/templates/be/patterns/queues/platform/bullmq-queue-transport.client.ts.tpl +78 -22
- package/templates/be/patterns/queues/platform/errors/queue.error.ts.tpl +19 -0
- package/templates/be/patterns/queues/platform/messages/queue.messages.ts.tpl +13 -0
- package/templates/be/patterns/queues/platform/persistence.migration.ts.tpl +1 -0
- package/templates/be/patterns/queues/platform/persistence.queue-outbox.entity.ts.tpl +4 -0
- package/templates/be/patterns/queues/platform/persistence.queue.rows.ts.tpl +2 -0
- package/templates/be/patterns/queues/platform/persistence.queue.sql.ts.tpl +4 -4
- package/templates/be/patterns/queues/platform/queue-outbox.service.spec.ts.tpl +14 -2
- package/templates/be/patterns/queues/platform/queue-outbox.service.ts.tpl +5 -2
- package/templates/be/patterns/queues/platform/queue-relay.service.spec.ts.tpl +72 -74
- package/templates/be/patterns/queues/platform/queue-relay.service.ts.tpl +1 -1
- package/templates/be/patterns/queues/platform/queue-transport.port.ts.tpl +23 -8
- package/templates/be/patterns/queues/platform/queue-worker.service.spec.ts.tpl +29 -8
- package/templates/be/patterns/queues/platform/queue-worker.service.ts.tpl +7 -3
- package/templates/be/patterns/queues/platform/queue.contracts.ts.tpl +5 -0
- package/templates/be/patterns/queues/platform/queue.index.ts.tpl +2 -0
- package/templates/be/patterns/queues/platform/queue.log-events.ts.tpl +4 -0
- package/templates/be/patterns/queues/platform/queue.module.ts.tpl +2 -1
- package/templates/be/patterns/queues/platform/queue.port.ts.tpl +1 -1
- package/templates/be/patterns/queues/platform-lite/bullmq-queue-transport.client.spec.ts.tpl +417 -0
- package/templates/be/patterns/queues/platform-lite/bullmq-queue-transport.client.ts.tpl +172 -0
- package/templates/be/patterns/queues/platform-lite/persistence.queue.sql.ts.tpl +12 -0
- package/templates/be/patterns/queues/platform-lite/queue-outbox.sql.tpl +32 -0
- package/templates/be/patterns/queues/platform-lite/queue-relay.service.spec.ts.tpl +148 -0
- package/templates/be/patterns/queues/platform-lite/queue-relay.service.ts.tpl +51 -0
- package/templates/be/patterns/queues/platform-lite/queue-transport.port.ts.tpl +163 -0
- package/templates/be/patterns/queues/platform-lite/queue.config.ts.tpl +17 -0
- package/templates/be/patterns/queues/platform-lite/queue.error.ts.tpl +25 -0
- package/templates/be/patterns/queues/platform-lite/queue.index.ts.tpl +8 -0
- package/templates/be/patterns/queues/platform-lite/queue.messages.ts.tpl +21 -0
- package/templates/be/patterns/queues/platform-lite/queue.module.ts.tpl +74 -0
- package/templates/be/patterns/queues/platform-lite/queue.options.ts.tpl +38 -0
- package/templates/be/patterns/queues/queue.queue.ts.tpl +2 -2
- package/templates/be/patterns/reactors/application.contracts.ts.tpl +2 -0
- package/templates/be/patterns/reactors/consumer.ts.tpl +5 -1
- package/templates/be/platform/graphql/graphql.contracts.ts +2 -1
- package/templates/be/platform/graphql/localize-errors.mapper.spec.ts +1 -1
- package/templates/be/skeleton/apps/__app__/src/compose/platform.ts +6 -1
- package/templates/be/skeleton/apps/__app__/src/main.ts +7 -4
- package/templates/be/skeleton/apps/cli/src/compose/platform.ts +4 -0
- package/templates/be/skeleton/apps/cli/src/main.ts +7 -4
- package/templates/be/skeleton/src/modules/platform/database/index.ts +1 -1
- package/templates/be/skeleton/src/modules/platform/http/errors/http.error.ts +22 -0
- package/templates/be/skeleton/src/modules/platform/http/fetch-http-client.client.spec.ts +235 -0
- package/templates/be/skeleton/src/modules/platform/http/fetch-http-client.client.ts +85 -0
- package/templates/be/skeleton/src/modules/platform/http/graphql-call.mapper.spec.ts +92 -0
- package/templates/be/skeleton/src/modules/platform/http/graphql-call.mapper.ts +52 -0
- package/templates/be/skeleton/src/modules/platform/http/http.decorators.ts +9 -0
- package/templates/be/skeleton/src/modules/platform/http/http.module-definition.ts +7 -0
- package/templates/be/skeleton/src/modules/platform/http/http.module.ts +19 -0
- package/templates/be/skeleton/src/modules/platform/http/http.options.ts +2 -0
- package/templates/be/skeleton/src/modules/platform/http/http.port.ts +40 -0
- package/templates/be/skeleton/src/modules/platform/http/index.ts +7 -0
- package/templates/be/skeleton/src/modules/platform/http/messages/http.messages.ts +15 -0
- package/templates/be/skeleton/src/modules/platform/ids/ids.decorators.ts +9 -0
- package/templates/be/skeleton/src/modules/platform/ids/ids.module-definition.ts +7 -0
- package/templates/be/skeleton/src/modules/platform/ids/ids.module.ts +19 -0
- package/templates/be/skeleton/src/modules/platform/ids/ids.options.ts +2 -0
- package/templates/be/skeleton/src/modules/platform/ids/ids.port.ts +5 -0
- package/templates/be/skeleton/src/modules/platform/ids/index.ts +4 -0
- package/templates/be/skeleton/src/modules/platform/ids/system-ids.service.spec.ts +15 -0
- package/templates/be/skeleton/src/modules/platform/ids/system-ids.service.ts +10 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation-request.policy.spec.ts +59 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation-request.policy.ts +21 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.contracts.ts +16 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.policy.spec.ts +150 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.policy.ts +42 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.port.ts +15 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.service.spec.ts +23 -0
- package/templates/be/skeleton/src/modules/platform/logging/correlation.service.ts +28 -0
- package/templates/be/skeleton/src/modules/platform/logging/index.ts +14 -1
- package/templates/be/skeleton/src/modules/platform/logging/json-logger.service.spec.ts +39 -6
- package/templates/be/skeleton/src/modules/platform/logging/json-logger.service.ts +15 -3
- package/templates/be/skeleton/src/modules/platform/logging/logging.decorators.ts +17 -2
- package/templates/be/skeleton/src/modules/platform/logging/logging.log-events.ts +13 -1
- package/templates/be/skeleton/src/modules/platform/logging/logging.module.ts +13 -3
- package/templates/be/skeleton/src/modules/platform/logging/nest-logger.service.spec.ts +69 -0
- package/templates/be/skeleton/src/modules/platform/logging/nest-logger.service.ts +48 -0
- package/templates/be/skeleton/src/modules/platform/primitives/index.ts +1 -0
- package/templates/be/skeleton/src/modules/platform/primitives/record.policy.spec.ts +12 -0
- package/templates/be/skeleton/src/modules/platform/primitives/record.policy.ts +3 -0
- package/templates/be/skeleton-lite/apps/api/src/compose/platform.ts +6 -1
- package/templates/be/skeleton-lite/apps/cli/src/compose/platform.ts +4 -0
- package/templates/be/skeleton-lite/src/modules/platform/database/index.ts +1 -0
- package/templates/be/skeleton-lite/src/modules/platform/logging/index.ts +14 -1
- package/templates/be/skeleton-lite/src/modules/platform/logging/logging.log-events.ts +12 -0
- package/templates/be/skeleton-lite/src/modules/platform/primitives/index.ts +2 -0
- package/templates/be/test-world/world/test-apps.options.ts.tpl +2 -0
- package/templates/be/test-world/world/test-world.config.ts.tpl +1 -0
- package/upgrade/check.mjs +12 -135
- package/upgrade/file-state.mjs +1 -16
- package/upgrade/index.mjs +34 -361
- package/runtime/scripts/lib/check-code-loosening.mjs +0 -128
- package/runtime/scripts/lib/gate-loosening.mjs +0 -292
- package/templates/app/upgrade-full/.starcistacks/application-stacks.yaml +0 -89
- package/templates/app/upgrade-full/.starcistacks/dev/README.md +0 -16
- package/templates/app/upgrade-full/.starcistacks/dev/infra/compose/api.yaml +0 -13
- package/templates/app/upgrade-full/.starcistacks/dev/infra/compose/compose.yaml +0 -3
- package/templates/app/upgrade-full/.starcistacks/dev/infra/compose/postgres.yaml +0 -12
- package/templates/app/upgrade-full/.starcistacks/dev/infra/metadata.json +0 -7
- package/templates/be/skeleton-lite/apps/api/src/main.ts +0 -26
- package/templates/be/upgrade-full/apps/cli/src/app.module.ts +0 -12
- package/templates/be/upgrade-full/apps/cli/src/cli.env.ts +0 -7
- package/templates/be/upgrade-full/apps/cli/src/compose/cli.ts +0 -5
- package/templates/be/upgrade-full/apps/cli/src/compose/platform.ts +0 -9
- package/templates/be/upgrade-full/apps/cli/src/main.ts +0 -29
- package/templates/be/upgrade-full/src/features/cli/cli.module.ts +0 -7
- package/templates/be/upgrade-full/src/features/cli/migrate/subs/run.cli.ts +0 -23
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# command-policy.yaml - the ONE rule table of what an agent may run on the host (rule R223 RIGHTS_ROLE_DENIED).
|
|
2
|
+
# Two entry points read this table and nothing else: the PreToolUse command guard (scripts/guards/command-guard.mjs: Claude
|
|
3
|
+
# and Devin) and the PATH shim wrappers an Orca worker terminal puts first on PATH (scripts/guards/command-policy.mjs
|
|
4
|
+
# shimDecision: every agent kind, Codex and Cursor included). A rule is data here; the few matchers that need a real parse
|
|
5
|
+
# (a push refspec, a tag read form, a whole-suite glob, a test file list) are named in `match` and live in rights.mjs.
|
|
6
|
+
#
|
|
7
|
+
# Side effects go through `starci <group> <verb>`: an agent is allowed the read-only commands below, the runtime's own verbs
|
|
8
|
+
# and the file edits of its worktree (file rights, R224); every other raw tool is refused with the starci verb to use.
|
|
9
|
+
# The owner (no role) and the release role are never refused. Unknown programs are refused (default deny).
|
|
10
|
+
#
|
|
11
|
+
# `use` names the allowed path (a verb of the CLI catalog, modules/cli/commands); the CLI lane edits the verbs, this file stays
|
|
12
|
+
# the single place.
|
|
13
|
+
roles:
|
|
14
|
+
bound: [op, lead, supervisor, coordinator, critic]
|
|
15
|
+
# roles that may run a targeted `node --test <explicit spec files>` (a package spec or the scaffold e2e); an op uses its gate
|
|
16
|
+
node-test: [lead, supervisor, coordinator]
|
|
17
|
+
# ops that may run a whole suite (the full unit / full e2e of an app)
|
|
18
|
+
suite-ops: [unit.verify, e2e.verify]
|
|
19
|
+
# the only refs a coordinator or the supervisor may push (backup namespace, explicit refspecs)
|
|
20
|
+
backup-roles: [coordinator, supervisor]
|
|
21
|
+
backup-ref: '^refs/backup/\S+$'
|
|
22
|
+
# The Critic (rights role `critic`, a terminal bound to a critic job guard) reaches nothing but its own directory: scripts/guards/critic-reach.mjs.
|
|
23
|
+
# `read` are the programs it may run on paths inside that directory; `write` the programs that may write the verdict file and nothing else.
|
|
24
|
+
# The Orca self-lifecycle verbs (worker_done, escalation) below stay open to it; the rest of this table does not apply to it.
|
|
25
|
+
critic:
|
|
26
|
+
read: [ls, dir, cat, type, head, tail, wc, file, stat, sha256sum, sha1sum, md5sum, cksum, od, xxd, hexdump, rg, grep, egrep, fgrep, jq, yq, nl, column, pwd, echo, printf, true, false,
|
|
27
|
+
get-content, gc, get-childitem, gci, get-item, gi, select-string, sls, test-path, resolve-path, get-location, write-output, write-host, measure-object, get-filehash]
|
|
28
|
+
write: [set-content, sc, out-file, add-content, ac]
|
|
29
|
+
# The runtime's own verbs: the surface every other path is steered to.
|
|
30
|
+
runtime: [starci]
|
|
31
|
+
# Verbs that spend a provider model headlessly (a call tier of modules/models/tiers.yaml calls): a bound role runs one only as an op named
|
|
32
|
+
# here, and a headless agent CLI by hand stays refused (AGENT_HEADLESS_LAUNCH).
|
|
33
|
+
calls:
|
|
34
|
+
imagegen:
|
|
35
|
+
verb: [work, imagegen]
|
|
36
|
+
ops: [interface.draw, interface.asset, brand.decide]
|
|
37
|
+
use: starci work imagegen --prompt <file> --out <dir in the worktree> (interface.draw, interface.asset and brand.decide only)
|
|
38
|
+
# Capability verbs the runtime performs for an op (a served app and a browser): a bound role runs one only as an op named here. The app is
|
|
39
|
+
# served by the verb, on the host name the app's own proxy uses; a server an op starts by hand is refused (raw-tools.next, the node and npm rows).
|
|
40
|
+
renders:
|
|
41
|
+
layoutRender:
|
|
42
|
+
verb: [work, layout-render]
|
|
43
|
+
ops: [brand.decide, interface.draw]
|
|
44
|
+
use: starci work layout-render --work .starciwork --node <layout node id> --breakpoint <bp> --theme <theme> --write (brand.decide and interface.draw only)
|
|
45
|
+
# The Supervisor seat (a bound caller of role supervisor). The Supervisor judges and answers: it reads, it answers the items of its menu
|
|
46
|
+
# with `starci supervisor decide`, it records a runtime defect for Debug and it runs the collectors it owns. It changes no runtime code
|
|
47
|
+
# (RUNTIME_CHANGE_OWNED_BY_DEBUG) and runs no other mutating verb: a refusal names the status and decision verbs
|
|
48
|
+
# (SUPERVISOR_USE_DECIDE). Every program but starci, the pure reads and the read forms of git and npm is refused (SUPERVISOR_STARCI_ONLY).
|
|
49
|
+
supervisor:
|
|
50
|
+
# starci <group> <verb> words the Supervisor seat may run
|
|
51
|
+
verbs:
|
|
52
|
+
supervisor: [status, decide, poll, actions, channel, workers, gc, revision-ack]
|
|
53
|
+
machine: [decisions]
|
|
54
|
+
kernel: [status, logs, questions, messages, survey, hierarchy, artifacts, coverage, usage, observe, peers, foundations, extensions, decisions, inbox, log]
|
|
55
|
+
workflow: [status]
|
|
56
|
+
gate: [read]
|
|
57
|
+
# a verb of several actions allows only these
|
|
58
|
+
actions:
|
|
59
|
+
actions: [list, digest, record]
|
|
60
|
+
channel: [register, inbox, reply]
|
|
61
|
+
workers: [list, show, cap]
|
|
62
|
+
# read verbs that also have mutating flags: refused when one of these flags is present
|
|
63
|
+
read-flags:
|
|
64
|
+
decisions: [open, claim, resolve, escalate, ring]
|
|
65
|
+
inbox: [ack]
|
|
66
|
+
# `supervisor actions record` is the defect queue: allowed for these --item values only
|
|
67
|
+
record-items: '^runtime-defect:[^ ]+$'
|
|
68
|
+
# programs whose read forms the general policy judges (git status, npm view); every write form of them is refused there
|
|
69
|
+
defer: [orca, git, npm, pnpm, yarn, bun]
|
|
70
|
+
# pure reads that the Supervisor does not get
|
|
71
|
+
deny-programs: [sleep, node]
|
|
72
|
+
use: "answer an item of the menu: starci supervisor status prints it, starci supervisor decide --item <id> --choice <choice> --reason <why> [--text <input>] answers it; a defect of the runtime is recorded with starci supervisor actions record --item runtime-defect:<cause> --action recorded --reason <why>"
|
|
73
|
+
# The Op (a bound guard of role op). Its starci calls are its work: the capability verbs (starci app stack and the runtime-slot verbs for servers,
|
|
74
|
+
# starci work draw-render for renders, starci work imagegen for images, starci gate unit for tests, the checks) and its
|
|
75
|
+
# report to its Kernel (starci kernel report). These groups are the control plane: the controllers, the Kernel and the Supervisor run them.
|
|
76
|
+
op:
|
|
77
|
+
deny-groups: [supervisor, reconciler, workflow, route, debug]
|
|
78
|
+
use: "an Op runs the capability verbs of its work (starci app stack for servers, starci work draw-render for renders, starci work imagegen for images, starci gate unit for tests) and reports to its Kernel with starci kernel report"
|
|
79
|
+
# Release path: refused to every bound role.
|
|
80
|
+
release:
|
|
81
|
+
verbs: [cut, publish]
|
|
82
|
+
scripts: [release:cut, release:publish]
|
|
83
|
+
use: starci release cut is owner-approved and moves main plus its tag; starci release publish publishes packages from that release; starci release notes prints or writes a tag CHANGELOG section and is not owner-gated
|
|
84
|
+
# Programs that cannot change state, with any arguments.
|
|
85
|
+
read: [ls, dir, cat, type, head, tail, wc, uniq, cut, tr, diff, cmp, comm, rg, grep, egrep, fgrep, echo, printf, pwd, cd, pushd, popd, which, where, whoami, hostname,
|
|
86
|
+
stat, file, realpath, readlink, dirname, basename, date, true, false, test, '[', expr, sleep, seq, basename, md5sum, sha1sum, sha256sum, shasum, cksum, od, xxd, hexdump,
|
|
87
|
+
jq, yq, column, nl, rev, tac, fold, fmt, join, paste, split-none, env-none, get-content, gc, get-childitem, gci, get-item, gi, select-string, sls, test-path, resolve-path,
|
|
88
|
+
get-location, set-location, sl, write-output, write-host, measure-object, sort-object, where-object, select-object, format-table, ft, convert-to-json, convertfrom-json,
|
|
89
|
+
get-date, get-command, gcm, get-process-none, out-string, out-null, tee-object-none]
|
|
90
|
+
# Read-only unless one of the options makes them write.
|
|
91
|
+
guarded-read:
|
|
92
|
+
find: [-delete, -exec, -execdir, -ok, -okdir, -fprint, -fprint0, -fprintf, -fls]
|
|
93
|
+
sed: [] # sed -i is an in-place file edit inside the worktree: the file rights (R224) judge its target, like cp and mv
|
|
94
|
+
sort: [-o, --output]
|
|
95
|
+
awk: [-i, inplace]
|
|
96
|
+
gawk: [-i, inplace]
|
|
97
|
+
xargs: []
|
|
98
|
+
# static analysis: read-only when it does not write back or emit
|
|
99
|
+
eslint: [--fix, --fix-type]
|
|
100
|
+
prettier: [--write, -w]
|
|
101
|
+
stylelint: [--fix]
|
|
102
|
+
tsc: []
|
|
103
|
+
node: []
|
|
104
|
+
# tsc and prettier are read-only only in their checking forms.
|
|
105
|
+
require-flag:
|
|
106
|
+
tsc: ['--noEmit', '-noEmit']
|
|
107
|
+
prettier: ['--check', '-c', '--list-different', '-l']
|
|
108
|
+
# File mutations inside the worktree: allowed here; the file rights (R224 protected zone, op never writes the runtime checkout)
|
|
109
|
+
# judge the targets.
|
|
110
|
+
scoped-write: [mkdir, cp, mv, rm, rmdir, touch, tee, install, truncate, copy, move, del, erase, ren, rename, new-item, ni, set-content, sc, add-content, ac, out-file, remove-item, ri,
|
|
111
|
+
copy-item, cpi, move-item, mi, clear-content, clc, rename-item, rni, mklink-none,
|
|
112
|
+
# process control: a kill by PID of a process the agent started passes here; the older guard rules (PROCESS_KILL_BY_NAME, process-query kills) refuse the rest
|
|
113
|
+
kill, taskkill, stop-process, spps, tasklist, ps, get-process, gps, printenv]
|
|
114
|
+
git:
|
|
115
|
+
# read-only subcommands
|
|
116
|
+
read: [status, log, diff, show, rev-parse, ls-files, ls-tree, cat-file, blame, grep, describe, shortlog, rev-list, merge-base, for-each-ref, name-rev, ls-remote, show-ref,
|
|
117
|
+
check-ignore, diff-tree, diff-index, diff-files, count-objects, whatchanged, version, help, var, verify-commit, verify-tag, range-diff, cherry, show-branch, instaweb-none]
|
|
118
|
+
# subcommands whose read forms pass (match names the parse in rights.mjs)
|
|
119
|
+
list-forms: [branch, tag, stash, worktree, remote, config, reflog, notes]
|
|
120
|
+
# denied subcommands: code, and the starci verb to use
|
|
121
|
+
deny:
|
|
122
|
+
commit: {code: RIGHTS_GIT_COMMIT, use: starci git commit}
|
|
123
|
+
add: {code: RIGHTS_GIT_COMMIT, use: starci git commit}
|
|
124
|
+
rm: {code: RIGHTS_GIT_COMMIT, use: starci git commit}
|
|
125
|
+
mv: {code: RIGHTS_GIT_COMMIT, use: starci git commit}
|
|
126
|
+
push: {code: RIGHTS_GIT_PUSH, use: 'starci git backup (refs/backup/* only); main and its tag move only through starci release cut'}
|
|
127
|
+
tag: {code: RIGHTS_GIT_TAG, use: starci release cut (the only tag maker; housekeeping marks are refs/backup/* or refs/salvage/*, never tags)}
|
|
128
|
+
merge: {code: RIGHTS_GIT_SYNC, use: starci git sync (merge main into the lane) or starci git land (coordinator)}
|
|
129
|
+
rebase: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
130
|
+
pull: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
131
|
+
fetch: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
132
|
+
checkout: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
133
|
+
switch: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
134
|
+
reset: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
135
|
+
restore: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
136
|
+
clean: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
137
|
+
cherry-pick: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
138
|
+
revert: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
139
|
+
am: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
140
|
+
apply: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
141
|
+
stash: {code: RIGHTS_GIT_SYNC, use: starci git sync}
|
|
142
|
+
worktree: {code: RIGHTS_GIT_SYNC, use: starci worker start creates a dispatched worktree; starci machine worktrees-clean removes landed worktrees}
|
|
143
|
+
branch: {code: RIGHTS_GIT_SYNC, use: starci worker start creates the lane branch and its dispatched worktree}
|
|
144
|
+
update-ref: {code: RIGHTS_GIT_SYNC, use: starci git sync is the only lane ref integration; other ref edits are owner-only}
|
|
145
|
+
gc: {code: RIGHTS_GIT_SYNC, use: starci machine worktrees-clean performs the runtime-owned safe cleanup; repository GC is owner-only}
|
|
146
|
+
reflog: {code: RIGHTS_GIT_SYNC, use: starci git sync is the only lane ref integration; reflog mutation is owner-only}
|
|
147
|
+
config: {code: RIGHTS_GIT_SYNC, use: starci git sync carries the lane synchronization convention; configuration writes are owner-only}
|
|
148
|
+
remote: {code: RIGHTS_GIT_SYNC, use: starci git sync uses the configured repository; remote mutation is owner-only}
|
|
149
|
+
notes: {code: RIGHTS_GIT_SYNC, use: starci git sync is the lane integration path; notes mutation is owner-only}
|
|
150
|
+
submodule: {code: RIGHTS_GIT_SYNC, use: starci git sync is the lane integration path; submodule mutation is owner-only}
|
|
151
|
+
init: {code: RIGHTS_GIT_SYNC, use: starci worker start creates the runtime-owned checkout; repository creation is owner-only}
|
|
152
|
+
clone: {code: RIGHTS_GIT_SYNC, use: starci worker start creates the runtime-owned checkout; cloning is owner-only}
|
|
153
|
+
npm:
|
|
154
|
+
programs: [npm, pnpm, yarn, bun]
|
|
155
|
+
read: [view, v, info, show, ls, list, la, ll, outdated, explain, why, root, prefix, bin, help, search, whoami, ping, '-v', '--version', 'config get', 'config list', pack-dry]
|
|
156
|
+
deny:
|
|
157
|
+
publish: {code: RIGHTS_NPM_PUBLISH, use: starci release cut authorizes the release; starci release publish publishes its packages once}
|
|
158
|
+
unpublish: {code: RIGHTS_NPM_PUBLISH, use: starci release publish is the only package-publication path; unpublishing is owner-only}
|
|
159
|
+
deprecate: {code: RIGHTS_NPM_PUBLISH, use: starci release publish is the only package-publication path; deprecation is owner-only}
|
|
160
|
+
dist-tag: {code: RIGHTS_NPM_PUBLISH, use: starci release publish is the only package-publication path; dist-tag mutation is owner-only}
|
|
161
|
+
pack: {code: RIGHTS_RAW_TOOL, use: starci release cut creates release artifacts; ad hoc package archives are owner-only}
|
|
162
|
+
ci: {code: RIGHTS_NPM_CI_UNLOCKED, use: starci npm ci installs dependencies under the host lock in the caller's own worktree}
|
|
163
|
+
install: {code: RIGHTS_RAW_TOOL, use: starci npm install adds exact-pinned dependencies and is limited to lead or owner}
|
|
164
|
+
i: {code: RIGHTS_RAW_TOOL, use: starci npm install adds exact-pinned dependencies and is limited to lead or owner}
|
|
165
|
+
add: {code: RIGHTS_RAW_TOOL, use: starci npm install adds exact-pinned dependencies and is limited to lead or owner}
|
|
166
|
+
update: {code: RIGHTS_RAW_TOOL, use: starci npm install is the owner-controlled dependency-change path using canon pins}
|
|
167
|
+
uninstall: {code: RIGHTS_RAW_TOOL, use: starci npm install is the owner-controlled dependency-change path using canon pins}
|
|
168
|
+
test: {code: RIGHTS_RAW_TOOL, use: starci runtime verify in the runtime (the check, package clean-test and scaffold e2e; the full proof is the release cut) or starci gate unit --root <app> in an app}
|
|
169
|
+
t: {code: RIGHTS_RAW_TOOL, use: starci runtime verify in the runtime (the check, package clean-test and scaffold e2e; the full proof is the release cut) or starci gate unit --root <app> in an app}
|
|
170
|
+
run: {code: RIGHTS_RAW_TOOL, use: 'starci runtime verify proves a runtime change; starci work layout-render serves the app for a layout capture; use starci release sync-runtime for package runtime copies and grammar preparation, or starci check run, starci lint run, starci typecheck run, starci app stack, or starci gate run for other scripts'}
|
|
171
|
+
run-script: {code: RIGHTS_RAW_TOOL, use: 'starci runtime verify proves a runtime change; use starci check run, starci lint run, starci typecheck run, starci app stack, or starci gate run for other scripts'}
|
|
172
|
+
start: {code: RIGHTS_RAW_TOOL, use: 'starci app stack'}
|
|
173
|
+
exec: {code: RIGHTS_RAW_TOOL, use: 'starci check run, starci lint run, starci typecheck run, or starci gate run for that tool'}
|
|
174
|
+
link: {code: RIGHTS_RAW_TOOL, use: starci npm install is the dependency path; an agent never makes a package link}
|
|
175
|
+
rebuild: {code: RIGHTS_RAW_TOOL, use: starci npm ci rebuilds the exact lockfile install under the host lock}
|
|
176
|
+
prune: {code: RIGHTS_RAW_TOOL, use: starci npm install is the owner-controlled dependency-change path; agents do not prune packages}
|
|
177
|
+
dedupe: {code: RIGHTS_RAW_TOOL, use: starci npm install is the owner-controlled dependency-change path; agents do not dedupe packages}
|
|
178
|
+
# Side-effecting tools with no read form: refused whole, each with the starci verb to use.
|
|
179
|
+
raw-tools:
|
|
180
|
+
docker: {use: 'starci docker up, starci docker down, starci docker build, or starci docker ps; a release image proof is starci release images'}
|
|
181
|
+
docker-compose: {use: 'starci docker up, starci docker down, starci docker build, or starci docker ps'}
|
|
182
|
+
podman: {use: 'starci docker up, starci docker down, starci docker build, or starci docker ps'}
|
|
183
|
+
kubectl: {use: 'starci app stack'}
|
|
184
|
+
k3d: {use: 'starci app stack'}
|
|
185
|
+
supabase: {use: "starci supabase start, starci supabase stop, or starci supabase status for the app's own stack"}
|
|
186
|
+
gh: {use: 'starci release cut (the GitHub release is created from the CHANGELOG section of the tag); anything else is the owner''s'}
|
|
187
|
+
schtasks: {use: 'starci task register, starci task show, or starci task list for runtime scheduled tasks'}
|
|
188
|
+
shutdown: {use: 'ask the owner: a worker never shuts the host down'}
|
|
189
|
+
reboot: {use: 'ask the owner: a worker never reboots the host'}
|
|
190
|
+
next: {use: 'starci work layout-render serves the product app on localhost and captures a layout (brand.decide and interface.draw); a dev server started by hand renders nothing the runtime can use'}
|
|
191
|
+
jest: {use: starci gate unit --root <app> in an app, or starci runtime verify in the runtime}
|
|
192
|
+
vitest: {use: starci gate unit --root <app> in an app, or starci runtime verify in the runtime}
|
|
193
|
+
mocha: {use: starci gate unit --root <app> in an app, or starci runtime verify in the runtime}
|
|
194
|
+
playwright: {use: starci gate run --root <app> for the app's e2e proof, or starci runtime verify in the runtime}
|
|
195
|
+
cypress: {use: starci gate run --root <app> for the app's e2e proof, or starci runtime verify in the runtime}
|
|
196
|
+
pytest: {use: starci gate unit --root <app> in an app, or starci runtime verify in the runtime}
|
|
197
|
+
turbo: {use: 'starci gate run --root <app>'}
|
|
198
|
+
nest: {use: 'starci gate run --root <app>'}
|
|
199
|
+
curl: {use: 'ask the owner or use the service catalog command; a worker does not call the network by hand'}
|
|
200
|
+
wget: {use: 'ask the owner or use the service catalog command'}
|
|
201
|
+
ssh: {use: 'ask the owner'}
|
|
202
|
+
scp: {use: 'ask the owner'}
|
|
203
|
+
# Orca: reads pass; only the caller's own worker protocol bypasses the runtime mutation verbs.
|
|
204
|
+
orca:
|
|
205
|
+
read: [check, worker-show, worker-list, worker-read, inbox, run-show, run-list, task-show, task-list, status, list, read, show, tail, get, wait-none]
|
|
206
|
+
groups-read: [terminal, worktree, repo, orchestration]
|
|
207
|
+
# Kernel guards resolve to lead. Supervisor workers resolve to supervisor; app workers resolve to op.
|
|
208
|
+
# The Kernel mailbox refusal (install-verdict.mjs KERNEL_ORCA_CHECK) still precedes admission.
|
|
209
|
+
self-lifecycle:
|
|
210
|
+
group: orchestration
|
|
211
|
+
roles: [op, lead, supervisor, coordinator, critic]
|
|
212
|
+
verbs:
|
|
213
|
+
send:
|
|
214
|
+
identity: --from
|
|
215
|
+
types: [heartbeat, worker_done, escalation]
|
|
216
|
+
typesByRole: {critic: [worker_done, escalation]}
|
|
217
|
+
values: [--from, --type, --subject, --body, --to, --run, --priority, --thread-id, --payload, --task-id, --dispatch-id,
|
|
218
|
+
--outcome, --files-modified, --report-path, --phase, --dispatch-capability, --retry-request]
|
|
219
|
+
flags: [--json, --help]
|
|
220
|
+
# an Op reports to its own Kernel's Run and addresses no one else (modules/kernel/roles.yaml chain.opMayNotAddress)
|
|
221
|
+
refuse-for: {op: [--to, --run]}
|
|
222
|
+
ask:
|
|
223
|
+
roles: [op, lead, supervisor, coordinator]
|
|
224
|
+
identity: --from
|
|
225
|
+
values: [--from, --question, --resume, --to, --run, --options, --timeout-ms, --dispatch-capability, --retry-request]
|
|
226
|
+
flags: [--json, --help]
|
|
227
|
+
refuse-for: {op: [--to, --run]}
|
|
228
|
+
check:
|
|
229
|
+
identity: --terminal
|
|
230
|
+
values: [--terminal, --run, --ack, --types, --timeout-ms, --retry-request]
|
|
231
|
+
flags: [--json, --help, --unread, --peek, --all, --format, --wait]
|
|
232
|
+
use: starci worker start, starci worker show, starci worker read, starci worker list, starci worker stop, starci worker release, or starci worker close
|
|
233
|
+
# The Kernel seat (a bound guard of role kernel). A Kernel judges and answers: it reads, it answers the items of its menu with
|
|
234
|
+
# `starci kernel decide`, and it attests the runtime revision. Every other `starci kernel <verb>` is the runtime's own (the
|
|
235
|
+
# controllers run it) or the lead's and owner's; a refusal names the status and decision verbs (KERNEL_USE_DECIDE). Every program
|
|
236
|
+
# but the pure reads below is refused (KERNEL_STARCI_ONLY): the Kernel's shell is starci.
|
|
237
|
+
kernel:
|
|
238
|
+
# starci <group> <verb> words the Kernel seat may run
|
|
239
|
+
verbs:
|
|
240
|
+
kernel: [status, logs, questions, messages, survey, hierarchy, artifacts, coverage, usage, observe, peers, foundations, extensions, decisions, inbox, log, decide, kernel-ack-rev, revision-ack]
|
|
241
|
+
workflow: [status]
|
|
242
|
+
gate: [read]
|
|
243
|
+
# read verbs that also have mutating flags: refused when one of these flags is present
|
|
244
|
+
read-flags:
|
|
245
|
+
decisions: [open, claim, resolve, escalate]
|
|
246
|
+
inbox: [ack]
|
|
247
|
+
# pure reads of `read` that the Kernel does not get
|
|
248
|
+
deny-programs: [sleep]
|
|
249
|
+
use: "answer an item of the menu: starci kernel status prints it, starci kernel decide --workflow <workflow> --item <id> --choice <choice> --reason <why> answers it"
|