ctxr-cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +25 -0
- package/dist/adapter.d.ts +18 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +4 -0
- package/dist/adapter.js.map +1 -0
- package/dist/adapters/builtin/index.d.ts +10 -0
- package/dist/adapters/builtin/index.d.ts.map +1 -0
- package/dist/adapters/builtin/index.js +11 -0
- package/dist/adapters/builtin/index.js.map +1 -0
- package/dist/adapters/forge/github.d.ts +9 -0
- package/dist/adapters/forge/github.d.ts.map +1 -0
- package/dist/adapters/forge/github.js +36 -0
- package/dist/adapters/forge/github.js.map +1 -0
- package/dist/adapters/forge/types.d.ts +23 -0
- package/dist/adapters/forge/types.d.ts.map +1 -0
- package/dist/adapters/forge/types.js +2 -0
- package/dist/adapters/forge/types.js.map +1 -0
- package/dist/adapters/harness/claude-code.d.ts +9 -0
- package/dist/adapters/harness/claude-code.d.ts.map +1 -0
- package/dist/adapters/harness/claude-code.js +42 -0
- package/dist/adapters/harness/claude-code.js.map +1 -0
- package/dist/adapters/identity/claude-code.d.ts +11 -0
- package/dist/adapters/identity/claude-code.d.ts.map +1 -0
- package/dist/adapters/identity/claude-code.js +18 -0
- package/dist/adapters/identity/claude-code.js.map +1 -0
- package/dist/adapters/registry.d.ts +16 -0
- package/dist/adapters/registry.d.ts.map +1 -0
- package/dist/adapters/registry.js +29 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/types.d.ts +65 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +12 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +6 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/adapters-generate.d.ts +23 -0
- package/dist/commands/adapters-generate.d.ts.map +1 -0
- package/dist/commands/adapters-generate.js +59 -0
- package/dist/commands/adapters-generate.js.map +1 -0
- package/dist/commands/archive.d.ts +28 -0
- package/dist/commands/archive.d.ts.map +1 -0
- package/dist/commands/archive.js +66 -0
- package/dist/commands/archive.js.map +1 -0
- package/dist/commands/catalog-build.d.ts +7 -0
- package/dist/commands/catalog-build.d.ts.map +1 -0
- package/dist/commands/catalog-build.js +15 -0
- package/dist/commands/catalog-build.js.map +1 -0
- package/dist/commands/catalog-check.d.ts +22 -0
- package/dist/commands/catalog-check.d.ts.map +1 -0
- package/dist/commands/catalog-check.js +49 -0
- package/dist/commands/catalog-check.js.map +1 -0
- package/dist/commands/catalog-show.d.ts +13 -0
- package/dist/commands/catalog-show.d.ts.map +1 -0
- package/dist/commands/catalog-show.js +19 -0
- package/dist/commands/catalog-show.js.map +1 -0
- package/dist/commands/check.d.ts +22 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +43 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/doctor.d.ts +27 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +53 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/graph-build.d.ts +24 -0
- package/dist/commands/graph-build.d.ts.map +1 -0
- package/dist/commands/graph-build.js +36 -0
- package/dist/commands/graph-build.js.map +1 -0
- package/dist/commands/graph-query.d.ts +41 -0
- package/dist/commands/graph-query.d.ts.map +1 -0
- package/dist/commands/graph-query.js +63 -0
- package/dist/commands/graph-query.js.map +1 -0
- package/dist/commands/ingest.d.ts +28 -0
- package/dist/commands/ingest.d.ts.map +1 -0
- package/dist/commands/ingest.js +60 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/init.d.ts +28 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +203 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/lint.d.ts +30 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +48 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/migrate.d.ts +30 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +56 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/note-resolve.d.ts +14 -0
- package/dist/commands/note-resolve.d.ts.map +1 -0
- package/dist/commands/note-resolve.js +24 -0
- package/dist/commands/note-resolve.js.map +1 -0
- package/dist/commands/rollup-gather.d.ts +21 -0
- package/dist/commands/rollup-gather.d.ts.map +1 -0
- package/dist/commands/rollup-gather.js +40 -0
- package/dist/commands/rollup-gather.js.map +1 -0
- package/dist/commands/rollup-write.d.ts +25 -0
- package/dist/commands/rollup-write.d.ts.map +1 -0
- package/dist/commands/rollup-write.js +43 -0
- package/dist/commands/rollup-write.js.map +1 -0
- package/dist/commands/session-abandon.d.ts +13 -0
- package/dist/commands/session-abandon.d.ts.map +1 -0
- package/dist/commands/session-abandon.js +22 -0
- package/dist/commands/session-abandon.js.map +1 -0
- package/dist/commands/session-list.d.ts +14 -0
- package/dist/commands/session-list.d.ts.map +1 -0
- package/dist/commands/session-list.js +19 -0
- package/dist/commands/session-list.js.map +1 -0
- package/dist/commands/session-reap.d.ts +22 -0
- package/dist/commands/session-reap.d.ts.map +1 -0
- package/dist/commands/session-reap.js +47 -0
- package/dist/commands/session-reap.js.map +1 -0
- package/dist/commands/session-start.d.ts +18 -0
- package/dist/commands/session-start.d.ts.map +1 -0
- package/dist/commands/session-start.js +36 -0
- package/dist/commands/session-start.js.map +1 -0
- package/dist/commands/session-submit.d.ts +27 -0
- package/dist/commands/session-submit.d.ts.map +1 -0
- package/dist/commands/session-submit.js +68 -0
- package/dist/commands/session-submit.js.map +1 -0
- package/dist/commands/source-check.d.ts +21 -0
- package/dist/commands/source-check.d.ts.map +1 -0
- package/dist/commands/source-check.js +54 -0
- package/dist/commands/source-check.js.map +1 -0
- package/dist/commands/source-hash.d.ts +14 -0
- package/dist/commands/source-hash.d.ts.map +1 -0
- package/dist/commands/source-hash.js +34 -0
- package/dist/commands/source-hash.js.map +1 -0
- package/dist/commands/update.d.ts +17 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +25 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/verify.d.ts +23 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +126 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/config/defaults.d.ts +69 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +71 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/load.d.ts +11 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +49 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/render.d.ts +9 -0
- package/dist/config/render.d.ts.map +1 -0
- package/dist/config/render.js +15 -0
- package/dist/config/render.js.map +1 -0
- package/dist/config/schema.d.ts +124 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +142 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/agents-doc.d.ts +80 -0
- package/dist/core/agents-doc.d.ts.map +1 -0
- package/dist/core/agents-doc.js +207 -0
- package/dist/core/agents-doc.js.map +1 -0
- package/dist/core/catalog/build.d.ts +49 -0
- package/dist/core/catalog/build.d.ts.map +1 -0
- package/dist/core/catalog/build.js +113 -0
- package/dist/core/catalog/build.js.map +1 -0
- package/dist/core/catalog/model.d.ts +33 -0
- package/dist/core/catalog/model.d.ts.map +1 -0
- package/dist/core/catalog/model.js +58 -0
- package/dist/core/catalog/model.js.map +1 -0
- package/dist/core/checks/catalog-checks.d.ts +4 -0
- package/dist/core/checks/catalog-checks.d.ts.map +1 -0
- package/dist/core/checks/catalog-checks.js +65 -0
- package/dist/core/checks/catalog-checks.js.map +1 -0
- package/dist/core/checks/identity-checks.d.ts +11 -0
- package/dist/core/checks/identity-checks.d.ts.map +1 -0
- package/dist/core/checks/identity-checks.js +39 -0
- package/dist/core/checks/identity-checks.js.map +1 -0
- package/dist/core/checks/integrity-checks.d.ts +23 -0
- package/dist/core/checks/integrity-checks.d.ts.map +1 -0
- package/dist/core/checks/integrity-checks.js +132 -0
- package/dist/core/checks/integrity-checks.js.map +1 -0
- package/dist/core/checks/manifest.d.ts +7 -0
- package/dist/core/checks/manifest.d.ts.map +1 -0
- package/dist/core/checks/manifest.js +20 -0
- package/dist/core/checks/manifest.js.map +1 -0
- package/dist/core/checks/organize-checks.d.ts +18 -0
- package/dist/core/checks/organize-checks.d.ts.map +1 -0
- package/dist/core/checks/organize-checks.js +97 -0
- package/dist/core/checks/organize-checks.js.map +1 -0
- package/dist/core/checks/registry.d.ts +24 -0
- package/dist/core/checks/registry.d.ts.map +1 -0
- package/dist/core/checks/registry.js +33 -0
- package/dist/core/checks/registry.js.map +1 -0
- package/dist/core/checks/types.d.ts +72 -0
- package/dist/core/checks/types.d.ts.map +1 -0
- package/dist/core/checks/types.js +4 -0
- package/dist/core/checks/types.js.map +1 -0
- package/dist/core/checks/write-lifecycle-checks.d.ts +24 -0
- package/dist/core/checks/write-lifecycle-checks.d.ts.map +1 -0
- package/dist/core/checks/write-lifecycle-checks.js +205 -0
- package/dist/core/checks/write-lifecycle-checks.js.map +1 -0
- package/dist/core/command.d.ts +23 -0
- package/dist/core/command.d.ts.map +1 -0
- package/dist/core/command.js +2 -0
- package/dist/core/command.js.map +1 -0
- package/dist/core/content/canonicalize.d.ts +14 -0
- package/dist/core/content/canonicalize.d.ts.map +1 -0
- package/dist/core/content/canonicalize.js +34 -0
- package/dist/core/content/canonicalize.js.map +1 -0
- package/dist/core/conventions.d.ts +21 -0
- package/dist/core/conventions.d.ts.map +1 -0
- package/dist/core/conventions.js +73 -0
- package/dist/core/conventions.js.map +1 -0
- package/dist/core/disclosure/model.d.ts +18 -0
- package/dist/core/disclosure/model.d.ts.map +1 -0
- package/dist/core/disclosure/model.js +45 -0
- package/dist/core/disclosure/model.js.map +1 -0
- package/dist/core/env.d.ts +40 -0
- package/dist/core/env.d.ts.map +1 -0
- package/dist/core/env.js +24 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/envelope.d.ts +46 -0
- package/dist/core/envelope.d.ts.map +1 -0
- package/dist/core/envelope.js +21 -0
- package/dist/core/envelope.js.map +1 -0
- package/dist/core/errors.d.ts +96 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +267 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/exit-codes.d.ts +32 -0
- package/dist/core/exit-codes.d.ts.map +1 -0
- package/dist/core/exit-codes.js +31 -0
- package/dist/core/exit-codes.js.map +1 -0
- package/dist/core/fs/atomic.d.ts +10 -0
- package/dist/core/fs/atomic.d.ts.map +1 -0
- package/dist/core/fs/atomic.js +31 -0
- package/dist/core/fs/atomic.js.map +1 -0
- package/dist/core/fs/fenced-region.d.ts +47 -0
- package/dist/core/fs/fenced-region.d.ts.map +1 -0
- package/dist/core/fs/fenced-region.js +122 -0
- package/dist/core/fs/fenced-region.js.map +1 -0
- package/dist/core/git/exec.d.ts +28 -0
- package/dist/core/git/exec.d.ts.map +1 -0
- package/dist/core/git/exec.js +21 -0
- package/dist/core/git/exec.js.map +1 -0
- package/dist/core/git/repo.d.ts +63 -0
- package/dist/core/git/repo.d.ts.map +1 -0
- package/dist/core/git/repo.js +91 -0
- package/dist/core/git/repo.js.map +1 -0
- package/dist/core/git/staged.d.ts +10 -0
- package/dist/core/git/staged.d.ts.map +1 -0
- package/dist/core/git/staged.js +49 -0
- package/dist/core/git/staged.js.map +1 -0
- package/dist/core/git/worktree.d.ts +29 -0
- package/dist/core/git/worktree.d.ts.map +1 -0
- package/dist/core/git/worktree.js +61 -0
- package/dist/core/git/worktree.js.map +1 -0
- package/dist/core/graph/model.d.ts +43 -0
- package/dist/core/graph/model.d.ts.map +1 -0
- package/dist/core/graph/model.js +60 -0
- package/dist/core/graph/model.js.map +1 -0
- package/dist/core/graph/persist.d.ts +7 -0
- package/dist/core/graph/persist.d.ts.map +1 -0
- package/dist/core/graph/persist.js +23 -0
- package/dist/core/graph/persist.js.map +1 -0
- package/dist/core/graph/query.d.ts +16 -0
- package/dist/core/graph/query.d.ts.map +1 -0
- package/dist/core/graph/query.js +91 -0
- package/dist/core/graph/query.js.map +1 -0
- package/dist/core/graph/visibility-filter.d.ts +13 -0
- package/dist/core/graph/visibility-filter.d.ts.map +1 -0
- package/dist/core/graph/visibility-filter.js +26 -0
- package/dist/core/graph/visibility-filter.js.map +1 -0
- package/dist/core/hooks.d.ts +34 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +89 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/identity.d.ts +14 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +36 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/ingest/identity.d.ts +15 -0
- package/dist/core/ingest/identity.d.ts.map +1 -0
- package/dist/core/ingest/identity.js +17 -0
- package/dist/core/ingest/identity.js.map +1 -0
- package/dist/core/ingest/model.d.ts +17 -0
- package/dist/core/ingest/model.d.ts.map +1 -0
- package/dist/core/ingest/model.js +24 -0
- package/dist/core/ingest/model.js.map +1 -0
- package/dist/core/json-config-merge.d.ts +13 -0
- package/dist/core/json-config-merge.d.ts.map +1 -0
- package/dist/core/json-config-merge.js +43 -0
- package/dist/core/json-config-merge.js.map +1 -0
- package/dist/core/markers.d.ts +17 -0
- package/dist/core/markers.d.ts.map +1 -0
- package/dist/core/markers.js +16 -0
- package/dist/core/markers.js.map +1 -0
- package/dist/core/migrations/registry.d.ts +6 -0
- package/dist/core/migrations/registry.d.ts.map +1 -0
- package/dist/core/migrations/registry.js +8 -0
- package/dist/core/migrations/registry.js.map +1 -0
- package/dist/core/migrations/rename-visibility-field.d.ts +3 -0
- package/dist/core/migrations/rename-visibility-field.d.ts.map +1 -0
- package/dist/core/migrations/rename-visibility-field.js +62 -0
- package/dist/core/migrations/rename-visibility-field.js.map +1 -0
- package/dist/core/migrations/types.d.ts +27 -0
- package/dist/core/migrations/types.d.ts.map +1 -0
- package/dist/core/migrations/types.js +2 -0
- package/dist/core/migrations/types.js.map +1 -0
- package/dist/core/notes/checks.d.ts +20 -0
- package/dist/core/notes/checks.d.ts.map +1 -0
- package/dist/core/notes/checks.js +58 -0
- package/dist/core/notes/checks.js.map +1 -0
- package/dist/core/notes/list.d.ts +26 -0
- package/dist/core/notes/list.d.ts.map +1 -0
- package/dist/core/notes/list.js +84 -0
- package/dist/core/notes/list.js.map +1 -0
- package/dist/core/notes/parse.d.ts +12 -0
- package/dist/core/notes/parse.d.ts.map +1 -0
- package/dist/core/notes/parse.js +36 -0
- package/dist/core/notes/parse.js.map +1 -0
- package/dist/core/notes/render.d.ts +7 -0
- package/dist/core/notes/render.d.ts.map +1 -0
- package/dist/core/notes/render.js +13 -0
- package/dist/core/notes/render.js.map +1 -0
- package/dist/core/notes/visibility.d.ts +26 -0
- package/dist/core/notes/visibility.d.ts.map +1 -0
- package/dist/core/notes/visibility.js +41 -0
- package/dist/core/notes/visibility.js.map +1 -0
- package/dist/core/procedures.d.ts +44 -0
- package/dist/core/procedures.d.ts.map +1 -0
- package/dist/core/procedures.js +154 -0
- package/dist/core/procedures.js.map +1 -0
- package/dist/core/queue.d.ts +16 -0
- package/dist/core/queue.d.ts.map +1 -0
- package/dist/core/queue.js +75 -0
- package/dist/core/queue.js.map +1 -0
- package/dist/core/reconcile.d.ts +18 -0
- package/dist/core/reconcile.d.ts.map +1 -0
- package/dist/core/reconcile.js +49 -0
- package/dist/core/reconcile.js.map +1 -0
- package/dist/core/records.d.ts +16 -0
- package/dist/core/records.d.ts.map +1 -0
- package/dist/core/records.js +36 -0
- package/dist/core/records.js.map +1 -0
- package/dist/core/reporter.d.ts +20 -0
- package/dist/core/reporter.d.ts.map +1 -0
- package/dist/core/reporter.js +25 -0
- package/dist/core/reporter.js.map +1 -0
- package/dist/core/root.d.ts +24 -0
- package/dist/core/root.d.ts.map +1 -0
- package/dist/core/root.js +51 -0
- package/dist/core/root.js.map +1 -0
- package/dist/core/security/secrets.d.ts +17 -0
- package/dist/core/security/secrets.d.ts.map +1 -0
- package/dist/core/security/secrets.js +21 -0
- package/dist/core/security/secrets.js.map +1 -0
- package/dist/core/session.d.ts +15 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +27 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/store.d.ts +15 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +19 -0
- package/dist/core/store.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/prompt/inquirer-prompter.d.ts +14 -0
- package/dist/prompt/inquirer-prompter.d.ts.map +1 -0
- package/dist/prompt/inquirer-prompter.js +27 -0
- package/dist/prompt/inquirer-prompter.js.map +1 -0
- package/dist/prompt/prompter.d.ts +24 -0
- package/dist/prompt/prompter.d.ts.map +1 -0
- package/dist/prompt/prompter.js +2 -0
- package/dist/prompt/prompter.js.map +1 -0
- package/dist/run.d.ts +16 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +464 -0
- package/dist/run.js.map +1 -0
- package/dist/taxonomy/profiles.d.ts +31 -0
- package/dist/taxonomy/profiles.d.ts.map +1 -0
- package/dist/taxonomy/profiles.js +45 -0
- package/dist/taxonomy/profiles.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +56 -0
- package/templates/.gitkeep +0 -0
- package/templates/hooks/pre-commit.sh +21 -0
- package/templates/hooks/pre-push.sh +24 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompter.d.ts","sourceRoot":"","sources":["../../src/prompt/prompter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompter.js","sourceRoot":"","sources":["../../src/prompt/prompter.ts"],"names":[],"mappings":""}
|
package/dist/run.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RunEnv } from './core/env.js';
|
|
2
|
+
import { ExitCode } from './core/exit-codes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Every registered top-level command name (excluding subcommand groups like
|
|
5
|
+
* `note`), for tests to iterate over — so a later phase's command
|
|
6
|
+
* automatically gets json-envelope-conformance coverage the moment it's
|
|
7
|
+
* added here.
|
|
8
|
+
*/
|
|
9
|
+
export declare const COMMAND_NAMES: readonly ['init', 'doctor'];
|
|
10
|
+
/**
|
|
11
|
+
* The one testable seam for the whole CLI: given argv and an injected
|
|
12
|
+
* RunEnv, returns the exit code it would have produced — no process-global
|
|
13
|
+
* mutation, no real subprocess required for a unit test.
|
|
14
|
+
*/
|
|
15
|
+
export declare function run(argv: readonly string[], env: RunEnv): Promise<ExitCode>;
|
|
16
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAOhD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YAAI,MAAM,EAAE,QAAQ,CAAU,CAAC;AAiFzD;;;;GAIG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkZjF"}
|
package/dist/run.js
ADDED
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as catalogBuildCommand from './commands/catalog-build.js';
|
|
3
|
+
import * as catalogCheckCommand from './commands/catalog-check.js';
|
|
4
|
+
import * as catalogShowCommand from './commands/catalog-show.js';
|
|
5
|
+
import * as checkCommand from './commands/check.js';
|
|
6
|
+
import * as adaptersGenerateCommand from './commands/adapters-generate.js';
|
|
7
|
+
import * as archiveCommand from './commands/archive.js';
|
|
8
|
+
import * as doctorCommand from './commands/doctor.js';
|
|
9
|
+
import * as ingestCommand from './commands/ingest.js';
|
|
10
|
+
import * as lintCommand from './commands/lint.js';
|
|
11
|
+
import * as migrateCommand from './commands/migrate.js';
|
|
12
|
+
import * as graphBuildCommand from './commands/graph-build.js';
|
|
13
|
+
import * as graphQueryCommand from './commands/graph-query.js';
|
|
14
|
+
import * as initCommand from './commands/init.js';
|
|
15
|
+
import * as noteResolveCommand from './commands/note-resolve.js';
|
|
16
|
+
import * as sessionAbandonCommand from './commands/session-abandon.js';
|
|
17
|
+
import * as sessionListCommand from './commands/session-list.js';
|
|
18
|
+
import * as sessionReapCommand from './commands/session-reap.js';
|
|
19
|
+
import * as sessionStartCommand from './commands/session-start.js';
|
|
20
|
+
import * as rollupGatherCommand from './commands/rollup-gather.js';
|
|
21
|
+
import * as rollupWriteCommand from './commands/rollup-write.js';
|
|
22
|
+
import * as sessionSubmitCommand from './commands/session-submit.js';
|
|
23
|
+
import * as sourceCheckCommand from './commands/source-check.js';
|
|
24
|
+
import * as sourceHashCommand from './commands/source-hash.js';
|
|
25
|
+
import { buildEnvelope } from './core/envelope.js';
|
|
26
|
+
import { ContextureError } from './core/errors.js';
|
|
27
|
+
import { ExitCode } from './core/exit-codes.js';
|
|
28
|
+
import { createReporter } from './core/reporter.js';
|
|
29
|
+
import { openStore } from './core/store.js';
|
|
30
|
+
import * as updateCommand from './commands/update.js';
|
|
31
|
+
import * as verifyCommand from './commands/verify.js';
|
|
32
|
+
import { CLI_VERSION } from './version.js';
|
|
33
|
+
/**
|
|
34
|
+
* Every registered top-level command name (excluding subcommand groups like
|
|
35
|
+
* `note`), for tests to iterate over — so a later phase's command
|
|
36
|
+
* automatically gets json-envelope-conformance coverage the moment it's
|
|
37
|
+
* added here.
|
|
38
|
+
*/
|
|
39
|
+
export const COMMAND_NAMES = ['init', 'doctor'];
|
|
40
|
+
function isCommanderError(err) {
|
|
41
|
+
return typeof err === 'object' && err !== null && 'code' in err && typeof err.code === 'string';
|
|
42
|
+
}
|
|
43
|
+
/** Merges parent-command globals (--root/--json/--no-input) with the current command's own RunEnv. */
|
|
44
|
+
function deriveRunEnv(env, cmd) {
|
|
45
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
46
|
+
const jsonMode = Boolean(globalOpts.json);
|
|
47
|
+
const runEnv = { ...env, noInput: env.noInput || globalOpts.input === false || jsonMode };
|
|
48
|
+
return { runEnv, jsonMode, root: globalOpts.root };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Every command's shared preamble and postamble: run `body`, map a thrown
|
|
52
|
+
* ContextureError (or, failing that, any unexpected error) to the right
|
|
53
|
+
* exit code, build the --json envelope, and emit through Reporter exactly
|
|
54
|
+
* once. This is the ONE place that mapping happens — no command implements
|
|
55
|
+
* its own error-to-envelope translation.
|
|
56
|
+
*/
|
|
57
|
+
async function runCommand(commandName, env, jsonMode, body) {
|
|
58
|
+
const reporter = createReporter(env.io, jsonMode);
|
|
59
|
+
try {
|
|
60
|
+
const outcome = await body();
|
|
61
|
+
const envelope = buildEnvelope({
|
|
62
|
+
cliVersion: CLI_VERSION,
|
|
63
|
+
command: commandName,
|
|
64
|
+
storeRoot: outcome.storeRoot,
|
|
65
|
+
schemaVersion: outcome.schemaVersion,
|
|
66
|
+
findings: outcome.findings,
|
|
67
|
+
data: outcome.data,
|
|
68
|
+
exitCode: outcome.exitCode,
|
|
69
|
+
});
|
|
70
|
+
reporter.emitResult(envelope, outcome.humanSummary);
|
|
71
|
+
return outcome.exitCode;
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
if (err instanceof ContextureError) {
|
|
75
|
+
const envelope = buildEnvelope({
|
|
76
|
+
cliVersion: CLI_VERSION,
|
|
77
|
+
command: commandName,
|
|
78
|
+
storeRoot: null,
|
|
79
|
+
schemaVersion: null,
|
|
80
|
+
findings: [err.finding],
|
|
81
|
+
data: null,
|
|
82
|
+
exitCode: err.exitCode,
|
|
83
|
+
});
|
|
84
|
+
reporter.emitResult(envelope, `error: ${err.finding.message}`);
|
|
85
|
+
return err.exitCode;
|
|
86
|
+
}
|
|
87
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
88
|
+
const finding = { code: 'internal_error', severity: 'error', message };
|
|
89
|
+
const envelope = buildEnvelope({
|
|
90
|
+
cliVersion: CLI_VERSION,
|
|
91
|
+
command: commandName,
|
|
92
|
+
storeRoot: null,
|
|
93
|
+
schemaVersion: null,
|
|
94
|
+
findings: [finding],
|
|
95
|
+
data: null,
|
|
96
|
+
exitCode: ExitCode.Internal,
|
|
97
|
+
});
|
|
98
|
+
reporter.emitResult(envelope, `error: ${message}`);
|
|
99
|
+
return ExitCode.Internal;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The one testable seam for the whole CLI: given argv and an injected
|
|
104
|
+
* RunEnv, returns the exit code it would have produced — no process-global
|
|
105
|
+
* mutation, no real subprocess required for a unit test.
|
|
106
|
+
*/
|
|
107
|
+
export async function run(argv, env) {
|
|
108
|
+
const program = new Command();
|
|
109
|
+
program
|
|
110
|
+
.name('ctxr')
|
|
111
|
+
.exitOverride()
|
|
112
|
+
.configureOutput({
|
|
113
|
+
writeOut: (str) => env.io.stderr.write(str),
|
|
114
|
+
writeErr: (str) => env.io.stderr.write(str),
|
|
115
|
+
})
|
|
116
|
+
.option('--root <path>', 'store root (overrides CONTEXTURE_ROOT)')
|
|
117
|
+
.option('--json', 'emit machine-readable output')
|
|
118
|
+
.option('--no-input', 'never prompt; fail loud instead of blocking');
|
|
119
|
+
let result = ExitCode.Ok;
|
|
120
|
+
program
|
|
121
|
+
.command('init')
|
|
122
|
+
.description('create a new context store, or reconcile an existing one')
|
|
123
|
+
.option('--profile <id>', 'shipped taxonomy profile id (para, zettelkasten, diataxis)')
|
|
124
|
+
.option('--taxonomy <path>', 'path to a custom taxonomy definition file')
|
|
125
|
+
.action(async (cmdOpts, cmd) => {
|
|
126
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
127
|
+
result = await runCommand('init', runEnv, jsonMode, () => initCommand.execute(runEnv, { root, profile: cmdOpts.profile, taxonomy: cmdOpts.taxonomy }));
|
|
128
|
+
});
|
|
129
|
+
program
|
|
130
|
+
.command('doctor')
|
|
131
|
+
.description('check the store for real invariant violations')
|
|
132
|
+
.option('--staged', 'check staged changes only (used by the pre-commit hook)')
|
|
133
|
+
.action(async (cmdOpts, cmd) => {
|
|
134
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
135
|
+
result = await runCommand('doctor', runEnv, jsonMode, async () => {
|
|
136
|
+
const store = await openStore(runEnv, { root });
|
|
137
|
+
return doctorCommand.execute(runEnv, store, { staged: cmdOpts.staged });
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
program
|
|
141
|
+
.command('check <path>')
|
|
142
|
+
.description('the disclosure-policy tri-state verdict (ALLOW/DENY/ASK) for a note and an audience')
|
|
143
|
+
.requiredOption('--audience <audience>', 'the audience the content would be disclosed to')
|
|
144
|
+
.action(async (notePath, cmdOpts, cmd) => {
|
|
145
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
146
|
+
result = await runCommand('check', runEnv, jsonMode, async () => {
|
|
147
|
+
const store = await openStore(runEnv, { root });
|
|
148
|
+
return checkCommand.execute(runEnv, store, { path: notePath, audience: cmdOpts.audience });
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
const noteCommand = program.command('note').description('inspect a single note');
|
|
152
|
+
noteCommand
|
|
153
|
+
.command('resolve <path>')
|
|
154
|
+
.description("resolve a note's visibility field and report why")
|
|
155
|
+
.action(async (notePath, _cmdOpts, cmd) => {
|
|
156
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
157
|
+
result = await runCommand('note.resolve', runEnv, jsonMode, async () => {
|
|
158
|
+
const store = await openStore(runEnv, { root });
|
|
159
|
+
return noteResolveCommand.execute(runEnv, store, { path: notePath });
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
const catalogCommand = program.command('catalog').description('the curated, coverage-guaranteed note catalog');
|
|
163
|
+
catalogCommand
|
|
164
|
+
.command('build')
|
|
165
|
+
.description('regenerate every catalog section, preserving authored glosses')
|
|
166
|
+
.action(async (_cmdOpts, cmd) => {
|
|
167
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
168
|
+
result = await runCommand('catalog.build', runEnv, jsonMode, async () => {
|
|
169
|
+
const store = await openStore(runEnv, { root });
|
|
170
|
+
return catalogBuildCommand.execute(store);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
catalogCommand
|
|
174
|
+
.command('check')
|
|
175
|
+
.description('verify catalog coverage (and, with --stale, flag entries needing gloss review)')
|
|
176
|
+
.option('--stale', 'also report entries whose note has changed since the gloss was confirmed')
|
|
177
|
+
.action(async (cmdOpts, cmd) => {
|
|
178
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
179
|
+
result = await runCommand('catalog.check', runEnv, jsonMode, async () => {
|
|
180
|
+
const store = await openStore(runEnv, { root });
|
|
181
|
+
return catalogCheckCommand.execute(store, { stale: cmdOpts.stale });
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
catalogCommand
|
|
185
|
+
.command('show')
|
|
186
|
+
.description('print one catalog section')
|
|
187
|
+
.requiredOption('--section <id>', 'the section id to print')
|
|
188
|
+
.option('--as <context>', 'filter by resolved visibility (wired in Phase 5)')
|
|
189
|
+
.action(async (cmdOpts, cmd) => {
|
|
190
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
191
|
+
result = await runCommand('catalog.show', runEnv, jsonMode, async () => {
|
|
192
|
+
const store = await openStore(runEnv, { root });
|
|
193
|
+
return catalogShowCommand.execute(store, { section: cmdOpts.section, as: cmdOpts.as });
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
const graphCommand = program.command('graph').description('the wikilink graph derived from the store');
|
|
197
|
+
graphCommand
|
|
198
|
+
.command('build')
|
|
199
|
+
.description('rebuild the graph artifact from every retrievable note')
|
|
200
|
+
.option('--emit-records', 'also emit a stable per-note record list {id, path, visibility, gloss, hash}')
|
|
201
|
+
.action(async (cmdOpts, cmd) => {
|
|
202
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
203
|
+
result = await runCommand('graph.build', runEnv, jsonMode, async () => {
|
|
204
|
+
const store = await openStore(runEnv, { root });
|
|
205
|
+
return graphBuildCommand.execute(store, { emitRecords: cmdOpts.emitRecords });
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
const graphQueryCommandGroup = graphCommand.command('query').description('query the built graph');
|
|
209
|
+
graphQueryCommandGroup
|
|
210
|
+
.command('neighbors <node>')
|
|
211
|
+
.description('list nodes reachable from <node> within --depth hops')
|
|
212
|
+
.option('--depth <n>', 'hop count', (v) => Number.parseInt(v, 10), 1)
|
|
213
|
+
.option('--direction <dir>', 'in, out, or both', 'both')
|
|
214
|
+
.option('--as <context>', 'filter to notes visible to this context before traversal')
|
|
215
|
+
.action(async (node, cmdOpts, cmd) => {
|
|
216
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
217
|
+
result = await runCommand('graph.query.neighbors', runEnv, jsonMode, async () => {
|
|
218
|
+
const store = await openStore(runEnv, { root });
|
|
219
|
+
return graphQueryCommand.executeNeighbors(store, {
|
|
220
|
+
node,
|
|
221
|
+
depth: cmdOpts.depth,
|
|
222
|
+
direction: cmdOpts.direction,
|
|
223
|
+
as: cmdOpts.as,
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
graphQueryCommandGroup
|
|
228
|
+
.command('path <from> <to>')
|
|
229
|
+
.description('shortest path between two nodes, if one exists')
|
|
230
|
+
.option('--as <context>', 'filter to notes visible to this context before traversal')
|
|
231
|
+
.action(async (from, to, cmdOpts, cmd) => {
|
|
232
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
233
|
+
result = await runCommand('graph.query.path', runEnv, jsonMode, async () => {
|
|
234
|
+
const store = await openStore(runEnv, { root });
|
|
235
|
+
return graphQueryCommand.executePath(store, { from, to, as: cmdOpts.as });
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
graphQueryCommandGroup
|
|
239
|
+
.command('subgraph <ids...>')
|
|
240
|
+
.description('the induced subgraph over the given node ids')
|
|
241
|
+
.option('--as <context>', 'filter to notes visible to this context before traversal')
|
|
242
|
+
.action(async (ids, cmdOpts, cmd) => {
|
|
243
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
244
|
+
result = await runCommand('graph.query.subgraph', runEnv, jsonMode, async () => {
|
|
245
|
+
const store = await openStore(runEnv, { root });
|
|
246
|
+
return graphQueryCommand.executeSubgraph(store, { ids, as: cmdOpts.as });
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
graphQueryCommandGroup
|
|
250
|
+
.command('hubs')
|
|
251
|
+
.description('nodes with the most backlinks')
|
|
252
|
+
.option('--top <n>', 'how many to list', (v) => Number.parseInt(v, 10), 10)
|
|
253
|
+
.option('--as <context>', 'filter to notes visible to this context before ranking')
|
|
254
|
+
.action(async (cmdOpts, cmd) => {
|
|
255
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
256
|
+
result = await runCommand('graph.query.hubs', runEnv, jsonMode, async () => {
|
|
257
|
+
const store = await openStore(runEnv, { root });
|
|
258
|
+
return graphQueryCommand.executeHubs(store, { top: cmdOpts.top, as: cmdOpts.as });
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
graphQueryCommandGroup
|
|
262
|
+
.command('orphans')
|
|
263
|
+
.description('nodes with no links in or out')
|
|
264
|
+
.option('--as <context>', 'filter to notes visible to this context first')
|
|
265
|
+
.action(async (cmdOpts, cmd) => {
|
|
266
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
267
|
+
result = await runCommand('graph.query.orphans', runEnv, jsonMode, async () => {
|
|
268
|
+
const store = await openStore(runEnv, { root });
|
|
269
|
+
return graphQueryCommand.executeOrphans(store, { as: cmdOpts.as });
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
program
|
|
273
|
+
.command('ingest <path>')
|
|
274
|
+
.description('stamp source-identity fields onto an inbox file, turning it into a note')
|
|
275
|
+
.requiredOption('--source-type <type>', 'the kind of source this material came from')
|
|
276
|
+
.requiredOption('--source-id <id>', 'a stable identifier for this specific source')
|
|
277
|
+
.action(async (notePath, cmdOpts, cmd) => {
|
|
278
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
279
|
+
result = await runCommand('ingest', runEnv, jsonMode, async () => {
|
|
280
|
+
const store = await openStore(runEnv, { root });
|
|
281
|
+
return ingestCommand.execute(runEnv, store, {
|
|
282
|
+
path: notePath,
|
|
283
|
+
sourceType: cmdOpts.sourceType,
|
|
284
|
+
sourceId: cmdOpts.sourceId,
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
const sourceCommand = program.command('source').description('source-identity dedupe, ahead of ingest');
|
|
289
|
+
sourceCommand
|
|
290
|
+
.command('hash <path>')
|
|
291
|
+
.description('the canonicalized-content hash of a file')
|
|
292
|
+
.action(async (notePath, _cmdOpts, cmd) => {
|
|
293
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
294
|
+
result = await runCommand('source.hash', runEnv, jsonMode, async () => {
|
|
295
|
+
const store = await openStore(runEnv, { root });
|
|
296
|
+
return sourceHashCommand.execute(runEnv, store, { path: notePath });
|
|
297
|
+
});
|
|
298
|
+
});
|
|
299
|
+
sourceCommand
|
|
300
|
+
.command('check <path>')
|
|
301
|
+
.description('two-stage dedupe verdict: already-ingested, alternate-source-match, multiple-matches, or new')
|
|
302
|
+
.requiredOption('--source-id <id>', "the candidate material's source identifier")
|
|
303
|
+
.action(async (notePath, cmdOpts, cmd) => {
|
|
304
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
305
|
+
result = await runCommand('source.check', runEnv, jsonMode, async () => {
|
|
306
|
+
const store = await openStore(runEnv, { root });
|
|
307
|
+
return sourceCheckCommand.execute(runEnv, store, { path: notePath, sourceId: cmdOpts.sourceId });
|
|
308
|
+
});
|
|
309
|
+
});
|
|
310
|
+
program
|
|
311
|
+
.command('lint')
|
|
312
|
+
.description('health observations that never fail the run: orphans, broken links, uningested inbox material, catalog gaps')
|
|
313
|
+
.action(async (_cmdOpts, cmd) => {
|
|
314
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
315
|
+
result = await runCommand('lint', runEnv, jsonMode, async () => {
|
|
316
|
+
const store = await openStore(runEnv, { root });
|
|
317
|
+
return lintCommand.execute(runEnv, store);
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
program
|
|
321
|
+
.command('archive <path>')
|
|
322
|
+
.description('retire a note via a single tracked rename, reporting every note that links to it')
|
|
323
|
+
.action(async (notePath, _cmdOpts, cmd) => {
|
|
324
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
325
|
+
result = await runCommand('archive', runEnv, jsonMode, async () => {
|
|
326
|
+
const store = await openStore(runEnv, { root });
|
|
327
|
+
return archiveCommand.execute(runEnv, store, { path: notePath });
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
const rollupCommand = program.command('rollup').description('agent-facing gather, then a deterministic fenced write');
|
|
331
|
+
rollupCommand
|
|
332
|
+
.command('gather <entity>')
|
|
333
|
+
.description('enumerate candidate source notes (notes linking to <entity>) for a rollup')
|
|
334
|
+
.action(async (entity, _cmdOpts, cmd) => {
|
|
335
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
336
|
+
result = await runCommand('rollup.gather', runEnv, jsonMode, async () => {
|
|
337
|
+
const store = await openStore(runEnv, { root });
|
|
338
|
+
return rollupGatherCommand.execute(runEnv, store, { entity });
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
rollupCommand
|
|
342
|
+
.command('write <entity>')
|
|
343
|
+
.description('write agent-authored rollup content into a fenced region on <entity>')
|
|
344
|
+
.requiredOption('--content-file <path>', 'a file containing the rollup text to write')
|
|
345
|
+
.action(async (entity, cmdOpts, cmd) => {
|
|
346
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
347
|
+
result = await runCommand('rollup.write', runEnv, jsonMode, async () => {
|
|
348
|
+
const store = await openStore(runEnv, { root });
|
|
349
|
+
return rollupWriteCommand.execute(runEnv, store, { entity, contentFile: cmdOpts.contentFile });
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
const adaptersCommand = program.command('adapters').description('harness-generation, identity-injection, and forge adapters');
|
|
353
|
+
adaptersCommand
|
|
354
|
+
.command('generate')
|
|
355
|
+
.description('(re)generate every configured harness-generation and identity-injection adapter\'s output')
|
|
356
|
+
.action(async (_cmdOpts, cmd) => {
|
|
357
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
358
|
+
result = await runCommand('adapters.generate', runEnv, jsonMode, async () => {
|
|
359
|
+
const store = await openStore(runEnv, { root });
|
|
360
|
+
return adaptersGenerateCommand.execute(store);
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
program
|
|
364
|
+
.command('update')
|
|
365
|
+
.description('bring every contexture-owned file in the store up to the installed version (docs, skills, hooks, adapter outputs)')
|
|
366
|
+
.action(async (_cmdOpts, cmd) => {
|
|
367
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
368
|
+
result = await runCommand('update', runEnv, jsonMode, async () => {
|
|
369
|
+
const store = await openStore(runEnv, { root });
|
|
370
|
+
return updateCommand.execute(runEnv, store);
|
|
371
|
+
});
|
|
372
|
+
});
|
|
373
|
+
program
|
|
374
|
+
.command('verify')
|
|
375
|
+
.description('exercise core store operations end to end, from an environment with no harness-specific state')
|
|
376
|
+
.option('--portable', 'the portability test: a retrieval query, a derived-artifact build, and following one procedure')
|
|
377
|
+
.action(async (cmdOpts, cmd) => {
|
|
378
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
379
|
+
result = await runCommand('verify', runEnv, jsonMode, async () => {
|
|
380
|
+
const store = await openStore(runEnv, { root });
|
|
381
|
+
return verifyCommand.execute(store, { portable: cmdOpts.portable });
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
program
|
|
385
|
+
.command('migrate')
|
|
386
|
+
.description('apply every pending schema migration, bringing the store up to the current schema_version')
|
|
387
|
+
.option('--dry-run', 'report the exact changes each pending migration would make, without applying them')
|
|
388
|
+
.action(async (cmdOpts, cmd) => {
|
|
389
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
390
|
+
result = await runCommand('migrate', runEnv, jsonMode, async () => {
|
|
391
|
+
const store = await openStore(runEnv, { root });
|
|
392
|
+
return migrateCommand.execute(store, { dryRun: cmdOpts.dryRun });
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
const sessionCommand = program.command('session').description('manage session worktrees');
|
|
396
|
+
sessionCommand
|
|
397
|
+
.command('start')
|
|
398
|
+
.description('create a new session worktree off a freshly fetched default branch')
|
|
399
|
+
.action(async (_cmdOpts, cmd) => {
|
|
400
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
401
|
+
result = await runCommand('session.start', runEnv, jsonMode, async () => {
|
|
402
|
+
const store = await openStore(runEnv, { root });
|
|
403
|
+
return sessionStartCommand.execute(runEnv, store);
|
|
404
|
+
});
|
|
405
|
+
});
|
|
406
|
+
sessionCommand
|
|
407
|
+
.command('submit')
|
|
408
|
+
.description('validate, commit, push, and open a pull request for the current session')
|
|
409
|
+
.option('--message <text>', 'commit message for any remaining staged changes')
|
|
410
|
+
.option('--title <text>', 'pull request title')
|
|
411
|
+
.option('--body <text>', 'pull request body')
|
|
412
|
+
.action(async (cmdOpts, cmd) => {
|
|
413
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
414
|
+
result = await runCommand('session.submit', runEnv, jsonMode, async () => {
|
|
415
|
+
const store = await openStore(runEnv, { root });
|
|
416
|
+
return sessionSubmitCommand.execute(runEnv, store, cmdOpts);
|
|
417
|
+
});
|
|
418
|
+
});
|
|
419
|
+
sessionCommand
|
|
420
|
+
.command('abandon <branch>')
|
|
421
|
+
.description('discard a session: remove its worktree and delete its branch')
|
|
422
|
+
.action(async (branch, _cmdOpts, cmd) => {
|
|
423
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
424
|
+
result = await runCommand('session.abandon', runEnv, jsonMode, async () => {
|
|
425
|
+
const store = await openStore(runEnv, { root });
|
|
426
|
+
return sessionAbandonCommand.execute(runEnv, store, { branch });
|
|
427
|
+
});
|
|
428
|
+
});
|
|
429
|
+
sessionCommand
|
|
430
|
+
.command('list')
|
|
431
|
+
.description('list active session worktrees')
|
|
432
|
+
.action(async (_cmdOpts, cmd) => {
|
|
433
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
434
|
+
result = await runCommand('session.list', runEnv, jsonMode, async () => {
|
|
435
|
+
const store = await openStore(runEnv, { root });
|
|
436
|
+
return sessionListCommand.execute(runEnv, store);
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
sessionCommand
|
|
440
|
+
.command('reap')
|
|
441
|
+
.description('reclaim merged, clean session worktrees')
|
|
442
|
+
.action(async (_cmdOpts, cmd) => {
|
|
443
|
+
const { runEnv, jsonMode, root } = deriveRunEnv(env, cmd);
|
|
444
|
+
result = await runCommand('session.reap', runEnv, jsonMode, async () => {
|
|
445
|
+
const store = await openStore(runEnv, { root });
|
|
446
|
+
return sessionReapCommand.execute(runEnv, store);
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
try {
|
|
450
|
+
await program.parseAsync(argv, { from: 'user' });
|
|
451
|
+
}
|
|
452
|
+
catch (err) {
|
|
453
|
+
if (isCommanderError(err)) {
|
|
454
|
+
if (err.code === 'commander.helpDisplayed' || err.code === 'commander.version') {
|
|
455
|
+
return ExitCode.Ok;
|
|
456
|
+
}
|
|
457
|
+
env.io.stderr.write(`${err instanceof Error ? err.message : String(err)}\n`);
|
|
458
|
+
return ExitCode.Usage;
|
|
459
|
+
}
|
|
460
|
+
throw err;
|
|
461
|
+
}
|
|
462
|
+
return result;
|
|
463
|
+
}
|
|
464
|
+
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* store-lifecycle spec: "contexture ships multiple named taxonomy profiles,
|
|
3
|
+
* with PARA as the default." This module is the ONLY place in the entire
|
|
4
|
+
* codebase where a shipped profile's layer names may appear — enforced by
|
|
5
|
+
* test/unit/single-source-literals.test.ts, which scans src/** for these
|
|
6
|
+
* literals outside this one file. Every other module treats the taxonomy as
|
|
7
|
+
* whatever contexture.yaml declares (store-lifecycle: "no component
|
|
8
|
+
* hardcodes a taxonomy or field name").
|
|
9
|
+
*
|
|
10
|
+
* The three profiles were chosen for structurally distinct shapes — layered
|
|
11
|
+
* and task-oriented (PARA), zero layers relying entirely on links
|
|
12
|
+
* (Zettelkasten), layered but documentation-shaped (Diátaxis) — not for
|
|
13
|
+
* popularity. That spread is what proves the taxonomy-from-config mechanism
|
|
14
|
+
* actually generalizes rather than merely asserting it does.
|
|
15
|
+
*/
|
|
16
|
+
export interface TaxonomyLayer {
|
|
17
|
+
name: string;
|
|
18
|
+
path: string;
|
|
19
|
+
description: string;
|
|
20
|
+
}
|
|
21
|
+
export interface TaxonomyProfile {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
layers: readonly TaxonomyLayer[];
|
|
26
|
+
}
|
|
27
|
+
export declare const SHIPPED_PROFILES: readonly TaxonomyProfile[];
|
|
28
|
+
export declare const DEFAULT_PROFILE_ID = "para";
|
|
29
|
+
export declare function profileById(id: string): TaxonomyProfile | undefined;
|
|
30
|
+
export declare function defaultProfile(): TaxonomyProfile;
|
|
31
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/taxonomy/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EAmCtD,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEnE;AAED,wBAAgB,cAAc,IAAI,eAAe,CAMhD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const SHIPPED_PROFILES = [
|
|
2
|
+
{
|
|
3
|
+
id: 'para',
|
|
4
|
+
name: 'PARA',
|
|
5
|
+
description: 'Layers Projects, Areas, Resources, Archives; suited to a personal or team ' +
|
|
6
|
+
'knowledge base organized around ongoing responsibilities and active work.',
|
|
7
|
+
layers: [
|
|
8
|
+
{ name: 'Projects', path: 'projects', description: 'Active work with a defined end state.' },
|
|
9
|
+
{ name: 'Areas', path: 'areas', description: 'Ongoing responsibilities with a standard to maintain.' },
|
|
10
|
+
{ name: 'Resources', path: 'resources', description: 'Topic libraries and reference material.' },
|
|
11
|
+
{ name: 'Archives', path: 'archives', description: 'Completed, abandoned, or inactive items.' },
|
|
12
|
+
],
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: 'zettelkasten',
|
|
16
|
+
name: 'Zettelkasten',
|
|
17
|
+
description: 'No top-level layers; suited to a store whose structure should emerge ' +
|
|
18
|
+
'entirely from links between notes rather than from folders.',
|
|
19
|
+
layers: [],
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'diataxis',
|
|
23
|
+
name: 'Diátaxis',
|
|
24
|
+
description: 'Layers Tutorials, How-to guides, Reference, Explanation; suited to a ' +
|
|
25
|
+
'store whose content is documentation.',
|
|
26
|
+
layers: [
|
|
27
|
+
{ name: 'Tutorials', path: 'tutorials', description: 'Learning-oriented lessons.' },
|
|
28
|
+
{ name: 'How-to guides', path: 'how-to-guides', description: 'Goal-oriented directions.' },
|
|
29
|
+
{ name: 'Reference', path: 'reference', description: 'Information-oriented technical description.' },
|
|
30
|
+
{ name: 'Explanation', path: 'explanation', description: 'Understanding-oriented discussion.' },
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
export const DEFAULT_PROFILE_ID = 'para';
|
|
35
|
+
export function profileById(id) {
|
|
36
|
+
return SHIPPED_PROFILES.find((p) => p.id === id);
|
|
37
|
+
}
|
|
38
|
+
export function defaultProfile() {
|
|
39
|
+
const profile = profileById(DEFAULT_PROFILE_ID);
|
|
40
|
+
if (!profile) {
|
|
41
|
+
throw new Error(`Internal error: DEFAULT_PROFILE_ID "${DEFAULT_PROFILE_ID}" matches no shipped profile.`);
|
|
42
|
+
}
|
|
43
|
+
return profile;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/taxonomy/profiles.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,WAAW,EACT,4EAA4E;YAC5E,2EAA2E;QAC7E,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,uCAAuC,EAAE;YAC5F,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uDAAuD,EAAE;YACtG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,yCAAyC,EAAE;YAChG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;SAChG;KACF;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,uEAAuE;YACvE,6DAA6D;QAC/D,MAAM,EAAE,EAAE;KACX;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,uEAAuE;YACvE,uCAAuC;QACzC,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACnF,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAC1F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,6CAA6C,EAAE;YACpG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,oCAAoC,EAAE;SAChG;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,kBAAkB,+BAA+B,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,eAAO,MAAM,WAAW,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
|