@aperant/framework 0.8.1 → 0.8.6
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 +443 -1
- package/agents/apt-planner.md +39 -7
- package/dist/cli/commands/adr.mjs +1 -1
- package/dist/cli/commands/audit-branch-current.d.mts +25 -0
- package/dist/cli/commands/audit-branch-current.d.mts.map +1 -0
- package/dist/cli/commands/audit-branch-current.mjs +252 -0
- package/dist/cli/commands/audit-branch-current.mjs.map +1 -0
- package/dist/cli/commands/audit.d.mts.map +1 -1
- package/dist/cli/commands/audit.mjs +13 -2
- package/dist/cli/commands/audit.mjs.map +1 -1
- package/dist/cli/commands/check-version.d.mts.map +1 -1
- package/dist/cli/commands/check-version.mjs +19 -1
- package/dist/cli/commands/check-version.mjs.map +1 -1
- package/dist/cli/commands/context.mjs +3 -3
- package/dist/cli/commands/context.mjs.map +1 -1
- package/dist/cli/commands/coverage-check.d.mts.map +1 -1
- package/dist/cli/commands/coverage-check.mjs +74 -7
- package/dist/cli/commands/coverage-check.mjs.map +1 -1
- package/dist/cli/commands/detect-runtime.d.mts +6 -0
- package/dist/cli/commands/detect-runtime.d.mts.map +1 -0
- package/dist/cli/commands/detect-runtime.mjs +142 -0
- package/dist/cli/commands/detect-runtime.mjs.map +1 -0
- package/dist/cli/commands/driver-doctor.d.mts +29 -0
- package/dist/cli/commands/driver-doctor.d.mts.map +1 -0
- package/dist/cli/commands/driver-doctor.mjs +291 -0
- package/dist/cli/commands/driver-doctor.mjs.map +1 -0
- package/dist/cli/commands/gate.mjs +14 -0
- package/dist/cli/commands/gate.mjs.map +1 -1
- package/dist/cli/commands/init.d.mts.map +1 -1
- package/dist/cli/commands/init.mjs +9 -6
- package/dist/cli/commands/init.mjs.map +1 -1
- package/dist/cli/commands/install-from-source.d.mts +2 -0
- package/dist/cli/commands/install-from-source.d.mts.map +1 -0
- package/dist/cli/commands/install-from-source.mjs +2 -0
- package/dist/cli/commands/install-from-source.mjs.map +1 -0
- package/dist/cli/commands/modes.mjs +1 -1
- package/dist/cli/commands/route.d.mts.map +1 -1
- package/dist/cli/commands/route.mjs +38 -1
- package/dist/cli/commands/route.mjs.map +1 -1
- package/dist/cli/commands/triage.mjs +1 -1
- package/dist/cli/config/load.d.mts.map +1 -1
- package/dist/cli/config/load.mjs +9 -3
- package/dist/cli/config/load.mjs.map +1 -1
- package/dist/cli/coordination/auto-emit-artifact-ready.mjs +1 -1
- package/dist/cli/coordination/event-schema.d.mts.map +1 -1
- package/dist/cli/coordination/event-schema.mjs +18 -0
- package/dist/cli/coordination/event-schema.mjs.map +1 -1
- package/dist/cli/coverage-check/user-outcomes.d.mts +84 -0
- package/dist/cli/coverage-check/user-outcomes.d.mts.map +1 -0
- package/dist/cli/coverage-check/user-outcomes.mjs +265 -0
- package/dist/cli/coverage-check/user-outcomes.mjs.map +1 -0
- package/dist/cli/dispatch.d.mts.map +1 -1
- package/dist/cli/dispatch.mjs +18 -1
- package/dist/cli/dispatch.mjs.map +1 -1
- package/dist/cli/gate/context.d.mts +1 -0
- package/dist/cli/gate/context.d.mts.map +1 -1
- package/dist/cli/gate/context.mjs +14 -1
- package/dist/cli/gate/context.mjs.map +1 -1
- package/dist/cli/gate/gates/consistency-check.d.mts +1 -0
- package/dist/cli/gate/gates/consistency-check.d.mts.map +1 -1
- package/dist/cli/gate/gates/consistency-check.mjs +1 -0
- package/dist/cli/gate/gates/consistency-check.mjs.map +1 -1
- package/dist/cli/gate/gates/review-clean.d.mts +1 -0
- package/dist/cli/gate/gates/review-clean.d.mts.map +1 -1
- package/dist/cli/gate/gates/review-clean.mjs +1 -0
- package/dist/cli/gate/gates/review-clean.mjs.map +1 -1
- package/dist/cli/gate/gates/verify-approved.d.mts +1 -0
- package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -1
- package/dist/cli/gate/gates/verify-approved.mjs +1 -0
- package/dist/cli/gate/gates/verify-approved.mjs.map +1 -1
- package/dist/cli/gate/registry.d.mts.map +1 -1
- package/dist/cli/gate/registry.mjs +9 -1
- package/dist/cli/gate/registry.mjs.map +1 -1
- package/dist/cli/host/detect.mjs +1 -1
- package/dist/cli/host/detect.mjs.map +1 -1
- package/dist/cli/install/find-workspace-framework-version.d.mts +16 -0
- package/dist/cli/install/find-workspace-framework-version.d.mts.map +1 -0
- package/dist/cli/install/find-workspace-framework-version.mjs +85 -0
- package/dist/cli/install/find-workspace-framework-version.mjs.map +1 -0
- package/dist/cli/install/install-from-source.d.mts +10 -0
- package/dist/cli/install/install-from-source.d.mts.map +1 -0
- package/dist/cli/install/install-from-source.mjs +271 -0
- package/dist/cli/install/install-from-source.mjs.map +1 -0
- package/dist/cli/install/install-kernel.d.mts.map +1 -1
- package/dist/cli/install/install-kernel.mjs +24 -0
- package/dist/cli/install/install-kernel.mjs.map +1 -1
- package/dist/cli/install/legacy-paths.d.mts +33 -11
- package/dist/cli/install/legacy-paths.d.mts.map +1 -1
- package/dist/cli/install/legacy-paths.mjs +163 -39
- package/dist/cli/install/legacy-paths.mjs.map +1 -1
- package/dist/cli/install/runtime-detect.mjs +1 -1
- package/dist/cli/install/runtime-detect.mjs.map +1 -1
- package/dist/cli/install/runtime-migrate.d.mts +34 -14
- package/dist/cli/install/runtime-migrate.d.mts.map +1 -1
- package/dist/cli/install/runtime-migrate.mjs +63 -30
- package/dist/cli/install/runtime-migrate.mjs.map +1 -1
- package/dist/cli/install/transforms/codex.d.mts.map +1 -1
- package/dist/cli/install/transforms/codex.mjs +28 -17
- package/dist/cli/install/transforms/codex.mjs.map +1 -1
- package/dist/cli/skill-author/contract.mjs +2 -2
- package/dist/cli/skill-author/contract.mjs.map +1 -1
- package/dist/cli/verify-proof/audit.d.mts +34 -0
- package/dist/cli/verify-proof/audit.d.mts.map +1 -0
- package/dist/cli/verify-proof/audit.mjs +53 -0
- package/dist/cli/verify-proof/audit.mjs.map +1 -0
- package/dist/cli/verify-proof/exec.d.mts +20 -0
- package/dist/cli/verify-proof/exec.d.mts.map +1 -0
- package/dist/cli/verify-proof/exec.mjs +74 -0
- package/dist/cli/verify-proof/exec.mjs.map +1 -0
- package/dist/cli/verify-proof/idl/index.d.mts +2 -0
- package/dist/cli/verify-proof/idl/index.d.mts.map +1 -0
- package/dist/cli/verify-proof/idl/index.mjs +13 -0
- package/dist/cli/verify-proof/idl/index.mjs.map +1 -0
- package/dist/cli/verify-proof/idl/types.d.ts +10 -0
- package/dist/cli/verify-proof/idl/types.d.ts.map +1 -0
- package/dist/cli/verify-proof/idl/types.js +10 -0
- package/dist/cli/verify-proof/idl/types.js.map +1 -0
- package/dist/cli/verify-proof/manifest-validator.d.mts +19 -0
- package/dist/cli/verify-proof/manifest-validator.d.mts.map +1 -0
- package/dist/cli/verify-proof/manifest-validator.mjs +182 -0
- package/dist/cli/verify-proof/manifest-validator.mjs.map +1 -0
- package/dist/cli/verify-proof/resolver.d.mts +105 -0
- package/dist/cli/verify-proof/resolver.d.mts.map +1 -0
- package/dist/cli/verify-proof/resolver.mjs +320 -0
- package/dist/cli/verify-proof/resolver.mjs.map +1 -0
- package/dist/cli/verify-proof/runtime-detect.d.mts +30 -0
- package/dist/cli/verify-proof/runtime-detect.d.mts.map +1 -0
- package/dist/cli/verify-proof/runtime-detect.mjs +209 -0
- package/dist/cli/verify-proof/runtime-detect.mjs.map +1 -0
- package/dist/cli/verify-proof/trust.d.mts +70 -0
- package/dist/cli/verify-proof/trust.d.mts.map +1 -0
- package/dist/cli/verify-proof/trust.mjs +174 -0
- package/dist/cli/verify-proof/trust.mjs.map +1 -0
- package/dist/driver-sdk/conformance.d.ts +41 -0
- package/dist/driver-sdk/conformance.d.ts.map +1 -0
- package/dist/driver-sdk/conformance.js +123 -0
- package/dist/driver-sdk/conformance.js.map +1 -0
- package/dist/driver-sdk/errors.d.ts +75 -0
- package/dist/driver-sdk/errors.d.ts.map +1 -0
- package/dist/driver-sdk/errors.js +80 -0
- package/dist/driver-sdk/errors.js.map +1 -0
- package/dist/driver-sdk/idl.d.ts +221 -0
- package/dist/driver-sdk/idl.d.ts.map +1 -0
- package/dist/driver-sdk/idl.js +140 -0
- package/dist/driver-sdk/idl.js.map +1 -0
- package/dist/driver-sdk/index.d.ts +28 -0
- package/dist/driver-sdk/index.d.ts.map +1 -0
- package/dist/driver-sdk/index.js +28 -0
- package/dist/driver-sdk/index.js.map +1 -0
- package/dist/driver-sdk/manifest.d.ts +93 -0
- package/dist/driver-sdk/manifest.d.ts.map +1 -0
- package/dist/driver-sdk/manifest.js +12 -0
- package/dist/driver-sdk/manifest.js.map +1 -0
- package/dist/driver-sdk/retry.d.ts +33 -0
- package/dist/driver-sdk/retry.d.ts.map +1 -0
- package/dist/driver-sdk/retry.js +50 -0
- package/dist/driver-sdk/retry.js.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +4 -1
- package/dist/plugin/agents/apt-planner.md +39 -7
- package/dist/plugin/skills/apt/SKILL.md +75 -6
- package/dist/plugin/skills/apt-caveman/SKILL.md +64 -0
- package/dist/plugin/skills/apt-debug/SKILL.md +36 -4
- package/dist/plugin/skills/apt-debug/appendices/diagnose-discipline.md +2 -11
- package/dist/plugin/skills/apt-discuss/SKILL.md +4 -4
- package/dist/plugin/skills/apt-discuss/appendices/grill-discipline.md +2 -11
- package/dist/plugin/skills/apt-discuss/appendices/zoom-out-helper.md +0 -8
- package/dist/plugin/skills/apt-execute/SKILL.md +27 -4
- package/dist/plugin/skills/apt-execute/appendices/tdd-mode.md +2 -10
- package/dist/plugin/skills/apt-fan-out/SKILL.md +36 -1
- package/dist/plugin/skills/apt-handoff/SKILL.md +228 -0
- package/dist/plugin/skills/apt-improve/DEEPENING.md +0 -8
- package/dist/plugin/skills/apt-improve/INTERFACE-DESIGN.md +0 -8
- package/dist/plugin/skills/apt-improve/LANGUAGE.md +0 -8
- package/dist/plugin/skills/apt-improve/SKILL.md +4 -4
- package/dist/plugin/skills/apt-plan/SKILL.md +73 -5
- package/dist/plugin/skills/apt-plan/adapters/conductor.md +1 -1
- package/dist/plugin/skills/apt-pr-review/SKILL.md +1 -1
- package/dist/plugin/skills/apt-prototype/LOGIC.md +0 -8
- package/dist/plugin/skills/apt-prototype/SKILL.md +4 -4
- package/dist/plugin/skills/apt-prototype/UI.md +0 -8
- package/dist/plugin/skills/apt-quick/SKILL.md +31 -1
- package/dist/plugin/skills/apt-research/SKILL.md +526 -0
- package/dist/plugin/skills/apt-research/appendices/budget-loop.md +397 -0
- package/dist/plugin/skills/apt-research/appendices/claim-graph-schema.md +206 -0
- package/dist/plugin/skills/apt-research/appendices/domain-tools.md +236 -0
- package/dist/plugin/skills/apt-resume/SKILL.md +54 -31
- package/dist/plugin/skills/apt-run/SKILL.md +114 -16
- package/dist/plugin/skills/apt-setup/SKILL.md +97 -8
- package/dist/plugin/skills/apt-ship/SKILL.md +165 -9
- package/dist/plugin/skills/apt-spar/SKILL.md +84 -23
- package/dist/plugin/skills/apt-triage/AGENT-BRIEF.md +0 -8
- package/dist/plugin/skills/apt-triage/OUT-OF-SCOPE.md +0 -7
- package/dist/plugin/skills/apt-triage/SKILL.md +2 -2
- package/dist/plugin/skills/apt-update/SKILL.md +74 -17
- package/dist/plugin/skills/apt-verify-proof/SKILL.md +87 -1
- package/dist/plugin/skills/apt-zoom-out/SKILL.md +3 -3
- package/dist/schemas/quick-task.d.ts +17 -17
- package/dist/schemas/quick-task.d.ts.map +1 -1
- package/dist/schemas/quick-task.js +2 -2
- package/dist/schemas/quick-task.js.map +1 -1
- package/dist/types/config.d.ts +33 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/state.d.ts +1 -1
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/task-record.d.ts +1 -1
- package/dist/types/task-record.d.ts.map +1 -1
- package/drivers/.gitkeep +0 -0
- package/drivers/api/README.md +40 -0
- package/drivers/api/driver.mjs +59 -0
- package/drivers/api/manifest.json +26 -0
- package/drivers/browser/README.md +105 -0
- package/drivers/browser/driver.mjs +134 -0
- package/drivers/browser/manifest.json +35 -0
- package/drivers/cli/README.md +44 -0
- package/drivers/cli/driver.mjs +62 -0
- package/drivers/cli/manifest.json +28 -0
- package/drivers/electron/README.md +64 -0
- package/drivers/electron/driver.mjs +87 -0
- package/drivers/electron/manifest.json +37 -0
- package/package.json +138 -133
- package/prompts/planner.md +1 -1
- package/prompts/spec_writer.md +1 -1
- package/skills/apt/SKILL.md +75 -6
- package/skills/apt-caveman/SKILL.md +64 -0
- package/skills/apt-debug/SKILL.md +36 -4
- package/skills/apt-debug/appendices/diagnose-discipline.md +2 -11
- package/skills/apt-discuss/SKILL.md +4 -4
- package/skills/apt-discuss/appendices/grill-discipline.md +2 -11
- package/skills/apt-discuss/appendices/zoom-out-helper.md +0 -8
- package/skills/apt-execute/SKILL.md +27 -4
- package/skills/apt-execute/appendices/tdd-mode.md +2 -10
- package/skills/apt-fan-out/SKILL.md +36 -1
- package/skills/apt-handoff/SKILL.md +228 -0
- package/skills/apt-improve/DEEPENING.md +0 -8
- package/skills/apt-improve/INTERFACE-DESIGN.md +0 -8
- package/skills/apt-improve/LANGUAGE.md +0 -8
- package/skills/apt-improve/SKILL.md +4 -4
- package/skills/apt-plan/SKILL.md +73 -5
- package/skills/apt-plan/adapters/conductor.md +1 -1
- package/skills/apt-planner.md +17 -1
- package/skills/apt-pr-review/SKILL.md +1 -1
- package/skills/apt-prototype/LOGIC.md +0 -8
- package/skills/apt-prototype/SKILL.md +4 -4
- package/skills/apt-prototype/UI.md +0 -8
- package/skills/apt-quick/SKILL.md +31 -1
- package/skills/apt-research/SKILL.md +526 -0
- package/skills/apt-research/appendices/budget-loop.md +397 -0
- package/skills/apt-research/appendices/claim-graph-schema.md +206 -0
- package/skills/apt-research/appendices/domain-tools.md +236 -0
- package/skills/apt-resume/SKILL.md +54 -31
- package/skills/apt-run/SKILL.md +114 -16
- package/skills/apt-setup/SKILL.md +97 -8
- package/skills/apt-ship/SKILL.md +165 -9
- package/skills/apt-spar/SKILL.md +84 -23
- package/skills/apt-triage/AGENT-BRIEF.md +0 -8
- package/skills/apt-triage/OUT-OF-SCOPE.md +0 -7
- package/skills/apt-triage/SKILL.md +2 -2
- package/skills/apt-update/SKILL.md +74 -17
- package/skills/apt-verify-proof/SKILL.md +87 -1
- package/skills/apt-zoom-out/SKILL.md +3 -3
- package/src/cli/commands/adr.mjs +1 -1
- package/src/cli/commands/audit-branch-current.mjs +250 -0
- package/src/cli/commands/audit.mjs +13 -2
- package/src/cli/commands/check-version.mjs +20 -1
- package/src/cli/commands/context.mjs +3 -3
- package/src/cli/commands/coverage-check.mjs +126 -44
- package/src/cli/commands/detect-runtime.mjs +143 -0
- package/src/cli/commands/driver-doctor.mjs +294 -0
- package/src/cli/commands/gate.mjs +15 -0
- package/src/cli/commands/init.mjs +9 -6
- package/src/cli/commands/install-from-source.mjs +1 -0
- package/src/cli/commands/modes.mjs +1 -1
- package/src/cli/commands/route.mjs +42 -1
- package/src/cli/commands/triage.mjs +1 -1
- package/src/cli/config/load.mjs +9 -3
- package/src/cli/coordination/auto-emit-artifact-ready.mjs +1 -1
- package/src/cli/coordination/event-schema.mjs +19 -0
- package/src/cli/coverage-check/user-outcomes.mjs +273 -0
- package/src/cli/dispatch.mjs +17 -1
- package/src/cli/gate/context.mjs +20 -1
- package/src/cli/gate/gates/consistency-check.mjs +1 -0
- package/src/cli/gate/gates/review-clean.mjs +1 -0
- package/src/cli/gate/gates/verify-approved.mjs +1 -0
- package/src/cli/gate/registry.mjs +11 -1
- package/src/cli/host/detect.mjs +1 -1
- package/src/cli/install/find-workspace-framework-version.mjs +88 -0
- package/src/cli/install/install-from-source.mjs +276 -0
- package/src/cli/install/install-kernel.mjs +24 -0
- package/src/cli/install/legacy-paths.mjs +164 -39
- package/src/cli/install/runtime-detect.mjs +1 -1
- package/src/cli/install/runtime-migrate.mjs +63 -30
- package/src/cli/install/transforms/codex.mjs +26 -17
- package/src/cli/skill-author/contract.mjs +2 -2
- package/src/cli/verify-proof/.gitkeep +0 -0
- package/src/cli/verify-proof/audit.mjs +55 -0
- package/src/cli/verify-proof/exec.mjs +74 -0
- package/src/cli/verify-proof/idl/index.mjs +23 -0
- package/src/cli/verify-proof/idl/types.ts +42 -0
- package/src/cli/verify-proof/manifest-schema.json +212 -0
- package/src/cli/verify-proof/manifest-validator.mjs +184 -0
- package/src/cli/verify-proof/resolver.mjs +330 -0
- package/src/cli/verify-proof/runtime-detect.mjs +211 -0
- package/src/cli/verify-proof/trust.mjs +187 -0
- package/templates/adr-format.md +0 -8
- package/templates/aperant-claude-md-appendix.md +1 -1
- package/templates/context-format.md +1 -9
- package/templates/proof-verification.md +51 -8
- package/workflows/verify-proof.md +130 -19
|
@@ -31,8 +31,8 @@ This skill moves a task through a 5-state machine. The state machine
|
|
|
31
31
|
runs identically regardless of backend (local-only / github-issues /
|
|
32
32
|
app-inbox); only the mirror destination changes.
|
|
33
33
|
|
|
34
|
-
**
|
|
35
|
-
OUT-OF-SCOPE.md sub-files ported from
|
|
34
|
+
**Aperant adoption attribution.** State machine + AGENT-BRIEF.md +
|
|
35
|
+
OUT-OF-SCOPE.md sub-files ported from
|
|
36
36
|
`triage` skill. Aperant-specific extensions:
|
|
37
37
|
|
|
38
38
|
- Backend abstraction (configured at `apt:setup` Batch 8 — task_tracking.backend)
|
|
@@ -49,13 +49,14 @@ The cache file is at `~/.cache/aperant/apt-update-check.json`. It contains `runt
|
|
|
49
49
|
node .aperant/deps/node_modules/@aperant/framework/bin/apt-tools.mjs check-version . --json
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
Parse the JSON. From 0.6.7 the envelope merges the SessionStart worker's cache (when fresh — written within the last hour to `~/.cache/aperant/apt-update-check.json`). Capture:
|
|
52
|
+
Parse the JSON. From 0.6.7 the envelope merges the SessionStart worker's cache (when fresh — written within the last hour to `~/.cache/aperant/apt-update-check.json`). From 0.8.3 it also carries the workspace-aware `framework.workspace_version` field (Bundle A). Capture:
|
|
53
53
|
|
|
54
54
|
- `framework.installed_version` — what's currently on disk
|
|
55
55
|
- `framework.latest_version` — what npm reports as the latest published version (MAY BE `null` when the worker cache is stale / missing / wrong schema)
|
|
56
|
+
- `framework.workspace_version` — set when a workspace `packages/framework/package.json` (with `name === "@aperant/framework"`) is found above the project root; null otherwise. When non-null AND ahead of `installed_version`, the workspace is the source of truth for self-host contributors (auto-detect, no `--from-source` required).
|
|
56
57
|
- `runtimes[]` — list of installed runtime ids + per-runtime `stale_files` count
|
|
57
58
|
- `stale_files_total` — drift tally across runtimes
|
|
58
|
-
- `update_available` — true when worker cache is fresh AND `installed_version < latest_version`
|
|
59
|
+
- `update_available` — true when worker cache is fresh AND `installed_version < latest_version`, OR when `workspace_version > installed_version` (Bundle A — fires regardless of npm cache state)
|
|
59
60
|
- `dev_install_ahead` — true when local kernel is ahead of published (typical local dev)
|
|
60
61
|
- `not_published` — true when npm returned 404 (package not yet on registry)
|
|
61
62
|
- `lookup_error` — non-null when npm view failed for any non-404 reason (timeout, ENETDOWN, etc.)
|
|
@@ -64,11 +65,20 @@ The envelope is **single-shape** — every field above is always present. When t
|
|
|
64
65
|
|
|
65
66
|
If `runtimes[]` is empty, tell the user they haven't installed Aperant into any runtime yet and suggest `apt-tools init . --claude` (or their preferred runtime). Stop.
|
|
66
67
|
|
|
67
|
-
## 1.5.
|
|
68
|
+
## 1.5. Workspace-aware bump — auto-detect dev-host self-host (Bundle A)
|
|
68
69
|
|
|
69
|
-
The Aperant kernel lives at `.aperant/deps/node_modules/@aperant/framework/`. `apt-tools init` re-installs runtime files at THE LOCAL KERNEL'S VERSION — so a stale kernel means `/apt:update` re-stamps manifests at the OLD version
|
|
70
|
+
The Aperant kernel lives at `.aperant/deps/node_modules/@aperant/framework/`. `apt-tools init` re-installs runtime files at THE LOCAL KERNEL'S VERSION — so a stale kernel means `/apt:update` re-stamps manifests at the OLD version. Bump the kernel BEFORE invoking init.
|
|
70
71
|
|
|
71
|
-
|
|
72
|
+
**FIRST**, branch on `framework.workspace_version` from step 1's envelope (Bundle A — automatic on every `/apt:update` run, no flag required):
|
|
73
|
+
|
|
74
|
+
- When `workspace_version` is non-null AND ahead of `installed_version` — the user is an Aperant contributor self-hosting the framework, and a same-PR change bumped `packages/framework/package.json:version`. The workspace is the source of truth (NOT npm). Proceed to §1.7's workspace-pack mechanism. Skip §1.6 (npm view).
|
|
75
|
+
- When `workspace_version` is null OR equal to `installed_version` — no workspace package, OR workspace + kernel already match. Fall through to §1.6 (npm bump path).
|
|
76
|
+
|
|
77
|
+
This auto-detection replaces the previous "user must remember `--from-source`" footgun. The `--from-source` flag is still honored as an explicit override (§1.7) for: (a) testing pre-publish bumps even when auto-detect didn't fire, (b) forcing the workspace path when a stale `latest_version > workspace_version`.
|
|
78
|
+
|
|
79
|
+
## 1.6. Bump the local kernel from npm when newer is available
|
|
80
|
+
|
|
81
|
+
When §1.5 fell through (no workspace-ahead signal), resolve `latest_version` from npm. First, resolve `latest_version` when the envelope had `null` (stale cache).
|
|
72
82
|
|
|
73
83
|
**Timeout enforcement (ID-04):** The `npm view` call must complete within 10 s — never block the user longer than the SessionStart worker would. Use npm's `--fetch-timeout` flag as the primary mechanism (universally portable across all npm versions); it sets the HTTP fetch timeout in milliseconds:
|
|
74
84
|
|
|
@@ -90,17 +100,47 @@ npm install --prefix .aperant/deps @aperant/framework@<latest_version> --no-save
|
|
|
90
100
|
|
|
91
101
|
On `npm 404` (`E404` in stderr) treat it as `not_published` and skip the kernel bump (proceed to step 3). On any other npm failure, surface the npm stderr verbatim and STOP — do NOT proceed to init with a half-installed kernel.
|
|
92
102
|
|
|
93
|
-
## 1.
|
|
103
|
+
## 1.7. Self-host case — bump from local workspace (FRAMEWORK-BUG-017)
|
|
104
|
+
|
|
105
|
+
Fires when EITHER §1.5's workspace-ahead auto-detect signaled it, OR the user invoked `/apt:update --from-source` as an explicit override, OR the route envelope's `update_check.reason` mentions `workspace source ahead of installed kernel`. The source of truth is the local `packages/framework/` workspace — NOT npm. This is the Aperant-contributor self-host case: a same-PR framework fix bumps the workspace `packages/framework/package.json:version` but the kernel under `.aperant/deps/node_modules/@aperant/framework/` still reflects the previous version. §1.6's `npm view` would fetch the published version (still the OLD one), so we skip it.
|
|
106
|
+
|
|
107
|
+
The reliable bump mechanism is the `apt-tools install-from-source` subcommand (Bundle D), which packs the framework AND every `workspace:*` dep (transitively) into a single `npm install --prefix` invocation. Handles the same-PR unpublished-pair case (e.g. `framework@0.8.3` + `driver-sdk@0.2.0` both at `workspace:*`, both unpublished) without `EUNSUPPORTEDPROTOCOL`.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
node .aperant/deps/node_modules/@aperant/framework/bin/apt-tools.mjs install-from-source . --json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Parse the returned envelope:
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"status": "ok",
|
|
118
|
+
"command": "install-from-source",
|
|
119
|
+
"tarballs": ["/tmp/aperant-driver-sdk-0.2.0.tgz", "/tmp/aperant-framework-0.8.3.tgz"],
|
|
120
|
+
"kernel_path": "/path/to/project/.aperant/deps/node_modules/@aperant/framework/bin/apt-tools.mjs"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Capture `tarballs[]` count and `kernel_path` for the Scenario A summary line (the kernel-version slot reads from `kernel_path`'s parent `package.json` rather than a static `{latest_version}` format string when this branch fired).
|
|
125
|
+
|
|
126
|
+
On `status: 'error'`, the envelope carries an `error` field with the underlying failure (e.g. `pnpm pack ... exited with N`, `no @aperant/framework workspace found`, etc.). Surface it verbatim and STOP — do NOT proceed to init with a half-installed kernel.
|
|
127
|
+
|
|
128
|
+
If `--from-source` was passed but `install-from-source` returns `no @aperant/framework workspace found`, surface a one-line error (`⚠ --from-source: no workspace package.json found — falling back to npm`) and proceed with the standard §1.6 npm path.
|
|
129
|
+
|
|
130
|
+
Then proceed to step 3 to re-install the runtime files at the new kernel version. Skip step 4 (cache clear) — the cache is keyed on `latest_version` from npm, and a `--from-source` bump never wrote to it, so there's nothing to invalidate.
|
|
94
131
|
|
|
95
|
-
|
|
132
|
+
### What `install-from-source` does under the hood
|
|
96
133
|
|
|
97
|
-
The
|
|
134
|
+
The `apt-tools install-from-source` helper materializes the workspace chain end-to-end. This is the equivalent manual recipe — useful for debugging or for users who want to understand the mechanism. **Prefer the one-line invocation above** unless you have a reason to do it by hand:
|
|
98
135
|
|
|
99
|
-
|
|
136
|
+
⚠ Do NOT substitute `npm pack` — it leaves `workspace:*` literal in the tarball's package.json and breaks `npm install --prefix` with `EUNSUPPORTEDPROTOCOL`. Only `pnpm pack` resolves workspace protocols.
|
|
100
137
|
|
|
101
138
|
```bash
|
|
102
|
-
#
|
|
139
|
+
# 0. Ensure the dep closure is materialized — the `...` suffix installs transitive workspace deps.
|
|
103
140
|
cd <workspace-root>
|
|
141
|
+
pnpm install --filter @aperant/framework... --frozen-lockfile=false
|
|
142
|
+
|
|
143
|
+
# 1. Pack the workspace source into a versioned tarball.
|
|
104
144
|
pnpm --filter @aperant/framework pack --pack-destination /tmp
|
|
105
145
|
|
|
106
146
|
# 2. Install the tarball into the project's kernel root.
|
|
@@ -108,19 +148,16 @@ cd <project-root>
|
|
|
108
148
|
npm install --prefix .aperant/deps /tmp/aperant-framework-<version>.tgz --no-save --no-package-lock --no-audit --no-fund
|
|
109
149
|
```
|
|
110
150
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
If `--from-source` was passed but no `packages/framework/package.json` is found anywhere above the project root, surface a one-line error (`⚠ --from-source: no workspace package.json found — falling back to npm`) and proceed with the standard step 1.5 npm path.
|
|
114
|
-
|
|
115
|
-
Then proceed to step 3 to re-install the runtime files at the new kernel version. Skip step 4 (cache clear) — the cache is keyed on `latest_version` from npm, and a `--from-source` bump never wrote to it, so there's nothing to invalidate.
|
|
151
|
+
The manual recipe DOES NOT handle workspace:* deps transitively — for a same-PR pair (framework + driver-sdk both at `workspace:*`), you would need to pnpm-pack each dep separately and pass every tarball to the single `npm install --prefix` call. The `apt-tools install-from-source` subcommand walks `dependencies` + `peerDependencies` automatically.
|
|
116
152
|
|
|
117
153
|
## 2. Classify the update scenario
|
|
118
154
|
|
|
119
155
|
Pick ONE of three scenarios based on what you parsed in step 1:
|
|
120
156
|
|
|
121
|
-
- **A. Version bump available** — `installed_version !== latest_version` (regardless of drift). Users see this most often. Step 1.5 bumped the kernel; step 3 re-stamps manifests at the new version.
|
|
122
|
-
- **B. Drift only** — `installed_version === latest_version` but `stale_files_total > 0`. User hand-edited an installed file or something was partially overwritten.
|
|
157
|
+
- **A. Version bump available** — `latest_version != null && installed_version !== latest_version` (regardless of drift). Users see this most often. Step 1.5 (workspace) or 1.6 (npm) bumped the kernel; step 3 re-stamps manifests at the new version. **Important:** the `latest_version != null` guard prevents this scenario from firing when npm-latest is unknown (cache stale, package not published, network down — see Scenario E for that case).
|
|
158
|
+
- **B. Drift only** — `installed_version === latest_version` but `stale_files_total > 0`. User hand-edited an installed file or something was partially overwritten. Steps 1.5 / 1.6 were no-ops; step 3 still needs `--force-runtimes` to re-stamp.
|
|
123
159
|
- **C. Nothing to do** — `installed_version === latest_version` AND `stale_files_total === 0`. Still re-run init with `--force-runtimes` to refresh manifests + cache, but tell the user plainly that no version change happened.
|
|
160
|
+
- **E. No version info available** — `latest_version === null` (cache stale OR package not published OR network down) AND `stale_files_total === 0`. Step 1.5 was a no-op (no workspace-ahead signal), step 1.6 found no usable npm version. Step 3 still re-stamps runtime files for safety, but the skill does NOT claim a version bump happened.
|
|
124
161
|
|
|
125
162
|
## 3. Re-install the currently-installed runtimes
|
|
126
163
|
|
|
@@ -169,6 +206,7 @@ Use the format in `<output_format>` below, tailored to the scenario from step 2.
|
|
|
169
206
|
{install_root_basename} {file_count} files refreshed
|
|
170
207
|
{install_root_basename} {file_count} files refreshed
|
|
171
208
|
.aperant/deps/ kernel v{latest_version}
|
|
209
|
+
Migrated: legacy .codex/agents/* swept ({removed_count} files removed)
|
|
172
210
|
|
|
173
211
|
Next: restart Claude Code / Codex to activate the refreshed skills.
|
|
174
212
|
```
|
|
@@ -194,6 +232,7 @@ Example:
|
|
|
194
232
|
|
|
195
233
|
{install_root_basename} {file_count} files ({stale_count} refreshed)
|
|
196
234
|
{install_root_basename} {file_count} files
|
|
235
|
+
Migrated: legacy .codex/agents/* swept ({removed_count} files removed)
|
|
197
236
|
|
|
198
237
|
Statusline chip cleared.
|
|
199
238
|
```
|
|
@@ -205,10 +244,28 @@ Example:
|
|
|
205
244
|
|
|
206
245
|
{install_root_basename} {file_count} files
|
|
207
246
|
{install_root_basename} {file_count} files
|
|
247
|
+
Migrated: legacy .codex/agents/* swept ({removed_count} files removed)
|
|
208
248
|
|
|
209
249
|
No changes applied. Statusline cache cleared.
|
|
210
250
|
```
|
|
211
251
|
|
|
252
|
+
## Scenario E — no version info available
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
⚠ Aperant version info unavailable — refreshed runtime files only
|
|
256
|
+
|
|
257
|
+
Reason: {lookup_error || 'cache stale / not published'}
|
|
258
|
+
{install_root_basename} {file_count} files
|
|
259
|
+
{install_root_basename} {file_count} files
|
|
260
|
+
Migrated: legacy .codex/agents/* swept ({removed_count} files removed)
|
|
261
|
+
|
|
262
|
+
Run /apt:update again later to bump the kernel when npm view becomes reachable.
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Scenario E fires when `latest_version === null` AND `stale_files_total === 0`. Step 1.5 (workspace-aware) was a no-op (no workspace-ahead signal); step 1.6 (npm view) returned null (cache stale, not published, or network down). The runtime refresh in step 3 still happens — the skill just does NOT claim a bump occurred.
|
|
266
|
+
|
|
267
|
+
**`Migrated:` slot — conditional render.** The `Migrated:` line in Scenarios A / B / C / E fires ONLY when `init.legacy_cleanup?.ran === true && init.legacy_cleanup.rmdirs.some(p => p.includes('.codex'))`. When no migration happened, OMIT the line entirely (do NOT render an empty placeholder). The label reports the legacy Codex topology sweep (v0.7/v0.8 `.codex/agents/` + `.codex/commands/` misdirect → v0.8.2+ canonical `.agents/skills/<folder>/SKILL.md`) so users understand what changed under `.codex/` on disk.
|
|
268
|
+
|
|
212
269
|
## Scenario D — kernel install failed
|
|
213
270
|
|
|
214
271
|
If init's `kernel.status !== "installed"`, append a warning ABOVE the summary:
|
|
@@ -40,9 +40,95 @@ an action, evidence, and a verdict. No hallucinated passes.
|
|
|
40
40
|
- For code review — use `/apt:review`
|
|
41
41
|
- If no UI/visual changes were made — `/apt:verify` is faster
|
|
42
42
|
|
|
43
|
+
## Driver Architecture
|
|
44
|
+
|
|
45
|
+
`/apt:verify-proof` is **runtime-agnostic** — the workflow refers to IDL
|
|
46
|
+
verbs (`driver.click`, `driver.screenshot`, `driver.navigate`, ...) and
|
|
47
|
+
NEVER to concrete MCP tool names (per ID-01). The driver layer at
|
|
48
|
+
`packages/framework/drivers/<id>/` maps verbs to transports.
|
|
49
|
+
|
|
50
|
+
### Auto-detect
|
|
51
|
+
|
|
52
|
+
The resolver auto-selects the highest-scoring driver per ID-02
|
|
53
|
+
(capability_coverage > compatibility > stability > priority > locality).
|
|
54
|
+
Preview the selection before running verify-proof:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
apt-tools detect-runtime .
|
|
58
|
+
# → { runtime: {is_electron, is_nextjs, ...}, selected_driver_id: "..." }
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
v0.8.6 — the runtime detector now walks `apps/*/package.json` by
|
|
62
|
+
default and OR-merges each child's capabilities into the root. The
|
|
63
|
+
canonical Aperant monorepo (Electron at `apps/desktop`, Next.js at
|
|
64
|
+
`apps/web`) now reports `is_electron: true` AND `is_nextjs: true`
|
|
65
|
+
without any config override.
|
|
66
|
+
|
|
67
|
+
### Per-outcome dispatch (v0.8.6+)
|
|
68
|
+
|
|
69
|
+
When the spec ships `## User Outcomes` (the verify-proof input
|
|
70
|
+
contract — see CLAUDE.md), the workflow runner imports
|
|
71
|
+
`resolveDriversForOutcomes()` from the resolver module and picks a
|
|
72
|
+
driver PER OUTCOME SURFACE instead of a single per-run driver pick.
|
|
73
|
+
|
|
74
|
+
```js
|
|
75
|
+
import { resolveDriversForOutcomes } from '.aperant/deps/node_modules/@aperant/framework/src/cli/verify-proof/resolver.mjs'
|
|
76
|
+
|
|
77
|
+
const entries = resolveDriversForOutcomes({
|
|
78
|
+
drivers, runtime,
|
|
79
|
+
outcomes: parsed.outcomes, // from parseUserOutcomes(spec)
|
|
80
|
+
})
|
|
81
|
+
// → [{outcome_id: "O1", surface: "electron", driver: {...}}, ...]
|
|
82
|
+
// For [electron+web] outcomes, two entries share the same outcome_id.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The legacy `apt-tools detect-runtime` still answers the per-run
|
|
86
|
+
"which driver would be picked?" question for the override preview.
|
|
87
|
+
For the per-outcome dispatch (the new contract), import
|
|
88
|
+
`resolveDriversForOutcomes` directly.
|
|
89
|
+
|
|
90
|
+
### Override
|
|
91
|
+
|
|
92
|
+
Force a specific driver chain in `.aperant/config.json`:
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
{ "verification": { "runtimes": ["electron", "cli"] } }
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
v0.8.6 — `verification.monorepo_globs` is the new opt-out for the
|
|
99
|
+
monorepo walk. The walk now runs by default — adopters whose
|
|
100
|
+
monorepo lives at a non-canonical prefix
|
|
101
|
+
(`packages/apps/*`, `services/*`) override via
|
|
102
|
+
`verification.monorepo_globs: ["packages/apps/*"]`; set to `[]` to
|
|
103
|
+
disable the walk entirely (root-only behaviour, backwards compat).
|
|
104
|
+
The `verification.runtimes[]` override stays the final escape hatch
|
|
105
|
+
and is now usually unnecessary because the walk runs by default.
|
|
106
|
+
|
|
107
|
+
### Bundled drivers (4)
|
|
108
|
+
|
|
109
|
+
- **browser** (priority=100, ga) — Next.js / vanilla web frontends.
|
|
110
|
+
- **electron** (priority=90, ga) — Electron desktop apps.
|
|
111
|
+
- **cli** (priority=60, ga) — headless CI, output-shape assertions.
|
|
112
|
+
- **api** (priority=50, ga) — HTTP / JSON-API regression tests.
|
|
113
|
+
|
|
114
|
+
### Driver authors
|
|
115
|
+
|
|
116
|
+
Third-party driver authors should run `apt-tools driver doctor .` before
|
|
117
|
+
publishing to validate manifest schema + IDL conformance:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
apt-tools driver doctor .
|
|
121
|
+
# → { drivers: [{driverId, manifest_valid, idl_conformant, ...}], summary: {...} }
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
IDL types, error taxonomy, and conformance kit live inside the framework
|
|
125
|
+
itself under `packages/framework/src/driver-sdk/` — see that directory's
|
|
126
|
+
public-api-lock test for the surface contract.
|
|
127
|
+
|
|
43
128
|
## Execution
|
|
44
129
|
|
|
45
|
-
Execute the verify-proof workflow end-to-end
|
|
130
|
+
Execute the verify-proof workflow end-to-end using IDL verbs (the driver
|
|
131
|
+
maps verbs to its transport — MCP server, local command, HTTP):
|
|
46
132
|
|
|
47
133
|
<execution_context>
|
|
48
134
|
@packages/framework/workflows/verify-proof.md
|
|
@@ -26,8 +26,8 @@ Tiny skill. High signal. The user named an area; you produce a one-page
|
|
|
26
26
|
orientation so they (or a future agent) can plan or edit without
|
|
27
27
|
re-learning the codebase from scratch.
|
|
28
28
|
|
|
29
|
-
**
|
|
30
|
-
discipline. Aperant's router is dynamic and LLM-driven, so unlike
|
|
29
|
+
**Aperant adoption note.** This skill descends from 's `zoom-out`
|
|
30
|
+
discipline. Aperant's router is dynamic and LLM-driven, so unlike 's
|
|
31
31
|
upstream this skill is **router-invocable** (no `disable-model-invocation:
|
|
32
32
|
true` flag). The work-intent — "give me a broader picture of X" — is
|
|
33
33
|
genuine and the router resolves natural-language triggers without forcing
|
|
@@ -37,7 +37,7 @@ the user to remember the verb name.
|
|
|
37
37
|
|
|
38
38
|
- Dropped into a new module / package / area of the monorepo
|
|
39
39
|
- About to plan a feature that crosses an unfamiliar boundary
|
|
40
|
-
- The codebase has CONTEXT.md (
|
|
40
|
+
- The codebase has CONTEXT.md (Aperant glossary) and you want to load it
|
|
41
41
|
alongside the structural map
|
|
42
42
|
|
|
43
43
|
## When Not to Use
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
declare const VerificationStatusEnum: z.ZodEnum<{
|
|
3
3
|
skip: "skip";
|
|
4
|
-
fail: "fail";
|
|
5
4
|
pass: "pass";
|
|
5
|
+
fail: "fail";
|
|
6
6
|
}>;
|
|
7
7
|
declare const FileChangeSchema: z.ZodObject<{
|
|
8
8
|
path: z.ZodString;
|
|
@@ -11,23 +11,23 @@ declare const FileChangeSchema: z.ZodObject<{
|
|
|
11
11
|
declare const VerificationSchema: z.ZodObject<{
|
|
12
12
|
typecheck: z.ZodEnum<{
|
|
13
13
|
skip: "skip";
|
|
14
|
-
fail: "fail";
|
|
15
14
|
pass: "pass";
|
|
15
|
+
fail: "fail";
|
|
16
16
|
}>;
|
|
17
17
|
lint: z.ZodEnum<{
|
|
18
18
|
skip: "skip";
|
|
19
|
-
fail: "fail";
|
|
20
19
|
pass: "pass";
|
|
20
|
+
fail: "fail";
|
|
21
21
|
}>;
|
|
22
22
|
visual: z.ZodEnum<{
|
|
23
23
|
skip: "skip";
|
|
24
|
-
fail: "fail";
|
|
25
24
|
pass: "pass";
|
|
25
|
+
fail: "fail";
|
|
26
26
|
}>;
|
|
27
27
|
test: z.ZodEnum<{
|
|
28
28
|
skip: "skip";
|
|
29
|
-
fail: "fail";
|
|
30
29
|
pass: "pass";
|
|
30
|
+
fail: "fail";
|
|
31
31
|
}>;
|
|
32
32
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
33
33
|
}, z.core.$strip>;
|
|
@@ -50,23 +50,23 @@ export declare const QuickTaskSchema: z.ZodObject<{
|
|
|
50
50
|
verification: z.ZodObject<{
|
|
51
51
|
typecheck: z.ZodEnum<{
|
|
52
52
|
skip: "skip";
|
|
53
|
-
fail: "fail";
|
|
54
53
|
pass: "pass";
|
|
54
|
+
fail: "fail";
|
|
55
55
|
}>;
|
|
56
56
|
lint: z.ZodEnum<{
|
|
57
57
|
skip: "skip";
|
|
58
|
-
fail: "fail";
|
|
59
58
|
pass: "pass";
|
|
59
|
+
fail: "fail";
|
|
60
60
|
}>;
|
|
61
61
|
visual: z.ZodEnum<{
|
|
62
62
|
skip: "skip";
|
|
63
|
-
fail: "fail";
|
|
64
63
|
pass: "pass";
|
|
64
|
+
fail: "fail";
|
|
65
65
|
}>;
|
|
66
66
|
test: z.ZodEnum<{
|
|
67
67
|
skip: "skip";
|
|
68
|
-
fail: "fail";
|
|
69
68
|
pass: "pass";
|
|
69
|
+
fail: "fail";
|
|
70
70
|
}>;
|
|
71
71
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
72
72
|
}, z.core.$strip>;
|
|
@@ -96,10 +96,10 @@ export declare function validateQuickTask(data: unknown): z.ZodSafeParseResult<{
|
|
|
96
96
|
change: string;
|
|
97
97
|
}[];
|
|
98
98
|
verification: {
|
|
99
|
-
typecheck: "skip" | "
|
|
100
|
-
lint: "skip" | "
|
|
101
|
-
visual: "skip" | "
|
|
102
|
-
test: "skip" | "
|
|
99
|
+
typecheck: "skip" | "pass" | "fail";
|
|
100
|
+
lint: "skip" | "pass" | "fail";
|
|
101
|
+
visual: "skip" | "pass" | "fail";
|
|
102
|
+
test: "skip" | "pass" | "fail";
|
|
103
103
|
evidence_path?: string | undefined;
|
|
104
104
|
};
|
|
105
105
|
commit: {
|
|
@@ -124,23 +124,23 @@ export declare const quickTaskJsonSchema: z.core.ZodStandardJSONSchemaPayload<z.
|
|
|
124
124
|
verification: z.ZodObject<{
|
|
125
125
|
typecheck: z.ZodEnum<{
|
|
126
126
|
skip: "skip";
|
|
127
|
-
fail: "fail";
|
|
128
127
|
pass: "pass";
|
|
128
|
+
fail: "fail";
|
|
129
129
|
}>;
|
|
130
130
|
lint: z.ZodEnum<{
|
|
131
131
|
skip: "skip";
|
|
132
|
-
fail: "fail";
|
|
133
132
|
pass: "pass";
|
|
133
|
+
fail: "fail";
|
|
134
134
|
}>;
|
|
135
135
|
visual: z.ZodEnum<{
|
|
136
136
|
skip: "skip";
|
|
137
|
-
fail: "fail";
|
|
138
137
|
pass: "pass";
|
|
138
|
+
fail: "fail";
|
|
139
139
|
}>;
|
|
140
140
|
test: z.ZodEnum<{
|
|
141
141
|
skip: "skip";
|
|
142
|
-
fail: "fail";
|
|
143
142
|
pass: "pass";
|
|
143
|
+
fail: "fail";
|
|
144
144
|
}>;
|
|
145
145
|
evidence_path: z.ZodOptional<z.ZodString>;
|
|
146
146
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-task.d.ts","sourceRoot":"","sources":["../../src/schemas/quick-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,QAAA,MAAM,sBAAsB;;;;EAAmC,CAAA;AAE/D,QAAA,MAAM,gBAAgB;;;iBAGpB,CAAA;AAEF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;iBAMtB,CAAA;AAIF,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AAEF,QAAA,MAAM,YAAY;;;iBAGhB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"quick-task.d.ts","sourceRoot":"","sources":["../../src/schemas/quick-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,QAAA,MAAM,sBAAsB;;;;EAAmC,CAAA;AAE/D,QAAA,MAAM,gBAAgB;;;iBAGpB,CAAA;AAEF,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;iBAMtB,CAAA;AAIF,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AAEF,QAAA,MAAM,YAAY;;;iBAGhB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc1B,CAAA;AAGF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACvE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAGvD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;GAE9C;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAkC,CAAA"}
|
|
@@ -26,8 +26,8 @@ const CommitSchema = z.object({
|
|
|
26
26
|
message: z.string().min(1),
|
|
27
27
|
});
|
|
28
28
|
export const QuickTaskSchema = z.object({
|
|
29
|
-
id: z.string().regex(/^quick-\d{8}
|
|
30
|
-
message: 'id must
|
|
29
|
+
id: z.string().regex(/^(quick-\d{8}-[A-Za-z0-9_-]+|[A-Za-z0-9_-]+_\d{2}-\d{2}-\d{2})$/, {
|
|
30
|
+
message: 'id must be quick-YYYYMMDD-{slug} or canonical {slug}_YY-MM-DD (slug: alphanumeric, hyphens, underscores only)',
|
|
31
31
|
}),
|
|
32
32
|
description: z.string().min(1),
|
|
33
33
|
files_changed: z.array(FileChangeSchema).default([]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-task.js","sourceRoot":"","sources":["../../src/schemas/quick-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,uEAAuE;AACvE,gFAAgF;AAChF,+EAA+E;AAE/E,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,sBAAsB;IACjC,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;CACpF,CAAC,CAAA;AAEF,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,sCAAsC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,6BAA6B;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"quick-task.js","sourceRoot":"","sources":["../../src/schemas/quick-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,uEAAuE;AACvE,gFAAgF;AAChF,+EAA+E;AAE/E,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,sBAAsB;IACjC,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,sBAAsB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;CACpF,CAAC,CAAA;AAEF,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,sCAAsC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,6BAA6B;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,cAAc;CAClD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iEAAiE,EAAE;QACvF,OAAO,EACN,+GAA+G;KAChH,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,YAAY,EAAE,kBAAkB;IAChC,MAAM,EAAE,YAAY;IACpB,cAAc,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gCAAgC,EAAE;QAC7D,OAAO,EAAE,mDAAmD;KAC5D,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAA;AAUF,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC9C,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -176,6 +176,8 @@ export interface AperantConfig {
|
|
|
176
176
|
tdd?: TddConfig;
|
|
177
177
|
/** Diagram skill defaults (apt:diagram) — render mode + MCP consent */
|
|
178
178
|
diagram?: DiagramConfig;
|
|
179
|
+
/** Sparring auto-fire — install-time consent (FRAMEWORK-RFC-001) */
|
|
180
|
+
spar?: SparConfig;
|
|
179
181
|
}
|
|
180
182
|
/**
|
|
181
183
|
* TDD Iron Law configuration (C3).
|
|
@@ -243,6 +245,37 @@ export interface RouterLLMConfig {
|
|
|
243
245
|
export interface RouterConfig {
|
|
244
246
|
llm?: RouterLLMConfig;
|
|
245
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Sparring auto-fire configuration (FRAMEWORK-RFC-001).
|
|
250
|
+
*
|
|
251
|
+
* Per-device opt-in for pipeline-integrated `/apt:spar`. The three fields
|
|
252
|
+
* land in `.aperant/config.local.json` (NOT shared `config.json`) — same
|
|
253
|
+
* AUDIT-001 routing as `diagram.mcpConsent`. Reads MUST go through
|
|
254
|
+
* `loadMergedProjectConfig(targetDir)`; writes MUST go through
|
|
255
|
+
* `writeLocalConfigField(targetDir, dotPath, value)`.
|
|
256
|
+
*
|
|
257
|
+
* `enabled` is the master switch. When `true`, `/apt:run` auto-fires
|
|
258
|
+
* `/apt:spar` per track: STANDARD = after plan, DEEP = after plan AND
|
|
259
|
+
* execute. QUICK is hard-exempt (CLAUDE.md Fast Path Guarantee).
|
|
260
|
+
*
|
|
261
|
+
* `partner` records the user's chosen sparring partner CLI from the
|
|
262
|
+
* install-time prompt, sourced from `apt-tools host-detect`'s
|
|
263
|
+
* `host.partner_transports.<id>` availability map. Stored even when
|
|
264
|
+
* `enabled: false` so a future opt-in preserves the choice.
|
|
265
|
+
*
|
|
266
|
+
* `hint` is the consent-OFF nudge surface. When `true`, framework prints
|
|
267
|
+
* a one-line printed nudge at each pipeline stage success-end:
|
|
268
|
+
* `[apt] {stage} complete. /apt:spar available before next stage. (skill, not auto-fire)`
|
|
269
|
+
* Default `false` (silent — opt-in to surface the reminder).
|
|
270
|
+
*/
|
|
271
|
+
export interface SparConfig {
|
|
272
|
+
/** Master switch — true if user opted in at install (per-device, AUDIT-001) */
|
|
273
|
+
enabled: boolean;
|
|
274
|
+
/** Chosen partner CLI ID. Null until the user makes a first decision. */
|
|
275
|
+
partner: 'codex' | 'claude' | 'gemini' | null;
|
|
276
|
+
/** Optional printed-nudge surface when enabled is false. Default false. */
|
|
277
|
+
hint?: boolean;
|
|
278
|
+
}
|
|
246
279
|
/** PR-review authorship mode — decides whether to auto-fix or just comment */
|
|
247
280
|
export type PrReviewAuthorshipMode = 'auto' | 'owned' | 'external';
|
|
248
281
|
/** Per-PR review configuration (R4 + R5) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/state.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* See: docs/frameworks/aperant-framework-spec.md Section 6.2
|
|
7
7
|
*/
|
|
8
8
|
/** Complexity track determines the workflow pipeline */
|
|
9
|
-
export type TaskTrack = 'QUICK' | 'STANDARD' | 'DEEP';
|
|
9
|
+
export type TaskTrack = 'QUICK' | 'STANDARD' | 'DEEP' | 'DEBUG';
|
|
10
10
|
/** Phase within a task's lifecycle */
|
|
11
11
|
export type TaskPhase = 'discussing' | 'planning' | 'executing' | 'verifying' | 'reviewing' | 'completed' | 'failed';
|
|
12
12
|
/** Progress within the current task phase */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D,sCAAsC;AACtC,MAAM,MAAM,SAAS,GAClB,YAAY,GACZ,UAAU,GACV,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,QAAQ,CAAA;AAEX,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,YAAY,CAAA;CACtB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,qBAAqB,GAAG,UAAU,CAAA;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,UAAU,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,aAAa,EAAE,CAAA;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE;QACZ,MAAM,EAAE,OAAO,CAAA;QACf,wBAAwB,EAAE,MAAM,CAAA;QAChC,YAAY,EAAE,MAAM,CAAA;KACpB,CAAA;CACD"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { LifecyclePhase } from './lifecycle';
|
|
10
10
|
import type { Scope } from './scope';
|
|
11
|
-
export type TaskTrack = 'QUICK' | 'STANDARD' | 'DEEP';
|
|
11
|
+
export type TaskTrack = 'QUICK' | 'STANDARD' | 'DEEP' | 'DEBUG';
|
|
12
12
|
/** One transition entry on a task's history log. `reason` is required
|
|
13
13
|
* for cross-scope moves, cascade-nulls, and force operations. */
|
|
14
14
|
export interface TaskHistoryEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-record.d.ts","sourceRoot":"","sources":["../../src/types/task-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"task-record.d.ts","sourceRoot":"","sources":["../../src/types/task-record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D;iEACiE;AACjE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE;QACL,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE;QACH,KAAK,EAAE,KAAK,CAAA;QACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;qEACiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,eAAe,EAAE,cAAc,CAAA;IAC/B,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,QAAQ,EAAE,YAAY,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,GAAG,qBAAqB,GAAG,UAAU,GAAG,WAAW,CAAA;IACzE,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,CAAC,EAAE,cAAc,CAAA;CAChC"}
|
package/drivers/.gitkeep
ADDED
|
File without changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# API Driver
|
|
2
|
+
|
|
3
|
+
Bundled HTTP-shape verify-proof driver for JSON-API regression tests.
|
|
4
|
+
Uses Node 18+ built-in `fetch` — no external dependencies.
|
|
5
|
+
|
|
6
|
+
## When Aperant picks this driver
|
|
7
|
+
|
|
8
|
+
`/apt:verify-proof` auto-selects `api` when:
|
|
9
|
+
|
|
10
|
+
- The project exposes HTTP endpoints (Express/Fastify/Hono/Next-API).
|
|
11
|
+
- The required IDL capabilities are: `execute_js`, `assert_network`,
|
|
12
|
+
`assert_output`, `assert_text`, `capture_logs`.
|
|
13
|
+
|
|
14
|
+
## Capabilities
|
|
15
|
+
|
|
16
|
+
| IDL verb | Behavior |
|
|
17
|
+
|----------|----------|
|
|
18
|
+
| `execute_js` | Evaluate a request-builder snippet (e.g. compute headers) |
|
|
19
|
+
| `assert_network` | Assert HTTP endpoint returns expected status/body |
|
|
20
|
+
| `assert_output` | Match pattern against captured response body |
|
|
21
|
+
| `assert_text` | Match pattern against any captured text artifact |
|
|
22
|
+
| `capture_logs` | Append request/response pairs to evidence file |
|
|
23
|
+
|
|
24
|
+
## Manifest
|
|
25
|
+
|
|
26
|
+
- **Priority:** 50 (below cli=60 — API tests are more specific).
|
|
27
|
+
- **Stability:** `ga`.
|
|
28
|
+
- **Trust:** `first_party_signed`.
|
|
29
|
+
- **Network posture:** `allowlist`. The allowlist is enforced at the
|
|
30
|
+
workflow-runner layer (fetch wrapper consults
|
|
31
|
+
`.aperant/config.json:verification.api.allowlist[]`).
|
|
32
|
+
- **Sandbox profile:** `read_only` — the driver doesn't write to the
|
|
33
|
+
workspace; only emits evidence files under `proof_dir/`.
|
|
34
|
+
- **Transport:** `{ builtin: true }`.
|
|
35
|
+
|
|
36
|
+
## V1 scope — adapter is thin
|
|
37
|
+
|
|
38
|
+
`driver.mjs` is a v1 manifest-conformant adapter shim — each verb
|
|
39
|
+
validates its args and returns a VerbResult stub. Direct-dispatch via
|
|
40
|
+
`fetch` lands in `verify-proof-driver-transport-wiring-v2` (follow-up).
|