@aperant/framework 0.8.0 → 0.8.4

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.
Files changed (271) hide show
  1. package/CHANGELOG.md +311 -1
  2. package/README.md +12 -0
  3. package/agents/apt-planner.md +5 -4
  4. package/dist/cli/commands/adr.mjs +1 -1
  5. package/dist/cli/commands/audit-branch-current.d.mts +25 -0
  6. package/dist/cli/commands/audit-branch-current.d.mts.map +1 -0
  7. package/dist/cli/commands/audit-branch-current.mjs +252 -0
  8. package/dist/cli/commands/audit-branch-current.mjs.map +1 -0
  9. package/dist/cli/commands/audit.d.mts.map +1 -1
  10. package/dist/cli/commands/audit.mjs +13 -2
  11. package/dist/cli/commands/audit.mjs.map +1 -1
  12. package/dist/cli/commands/check-version.d.mts.map +1 -1
  13. package/dist/cli/commands/check-version.mjs +19 -1
  14. package/dist/cli/commands/check-version.mjs.map +1 -1
  15. package/dist/cli/commands/context.mjs +3 -3
  16. package/dist/cli/commands/context.mjs.map +1 -1
  17. package/dist/cli/commands/detect-runtime.d.mts +6 -0
  18. package/dist/cli/commands/detect-runtime.d.mts.map +1 -0
  19. package/dist/cli/commands/detect-runtime.mjs +136 -0
  20. package/dist/cli/commands/detect-runtime.mjs.map +1 -0
  21. package/dist/cli/commands/driver-doctor.d.mts +29 -0
  22. package/dist/cli/commands/driver-doctor.d.mts.map +1 -0
  23. package/dist/cli/commands/driver-doctor.mjs +291 -0
  24. package/dist/cli/commands/driver-doctor.mjs.map +1 -0
  25. package/dist/cli/commands/gate.mjs +14 -0
  26. package/dist/cli/commands/gate.mjs.map +1 -1
  27. package/dist/cli/commands/init.d.mts.map +1 -1
  28. package/dist/cli/commands/init.mjs +76 -33
  29. package/dist/cli/commands/init.mjs.map +1 -1
  30. package/dist/cli/commands/install-from-source.d.mts +2 -0
  31. package/dist/cli/commands/install-from-source.d.mts.map +1 -0
  32. package/dist/cli/commands/install-from-source.mjs +2 -0
  33. package/dist/cli/commands/install-from-source.mjs.map +1 -0
  34. package/dist/cli/commands/modes.mjs +1 -1
  35. package/dist/cli/commands/route.d.mts.map +1 -1
  36. package/dist/cli/commands/route.mjs +38 -1
  37. package/dist/cli/commands/route.mjs.map +1 -1
  38. package/dist/cli/commands/triage.mjs +1 -1
  39. package/dist/cli/config/load.d.mts.map +1 -1
  40. package/dist/cli/config/load.mjs +9 -3
  41. package/dist/cli/config/load.mjs.map +1 -1
  42. package/dist/cli/coordination/auto-emit-artifact-ready.mjs +1 -1
  43. package/dist/cli/coordination/event-schema.d.mts.map +1 -1
  44. package/dist/cli/coordination/event-schema.mjs +18 -0
  45. package/dist/cli/coordination/event-schema.mjs.map +1 -1
  46. package/dist/cli/design/frontmatter-schema.d.mts +4 -4
  47. package/dist/cli/dispatch.d.mts.map +1 -1
  48. package/dist/cli/dispatch.mjs +18 -1
  49. package/dist/cli/dispatch.mjs.map +1 -1
  50. package/dist/cli/gate/context.d.mts +1 -0
  51. package/dist/cli/gate/context.d.mts.map +1 -1
  52. package/dist/cli/gate/context.mjs +14 -1
  53. package/dist/cli/gate/context.mjs.map +1 -1
  54. package/dist/cli/gate/gates/consistency-check.d.mts +1 -0
  55. package/dist/cli/gate/gates/consistency-check.d.mts.map +1 -1
  56. package/dist/cli/gate/gates/consistency-check.mjs +1 -0
  57. package/dist/cli/gate/gates/consistency-check.mjs.map +1 -1
  58. package/dist/cli/gate/gates/review-clean.d.mts +1 -0
  59. package/dist/cli/gate/gates/review-clean.d.mts.map +1 -1
  60. package/dist/cli/gate/gates/review-clean.mjs +1 -0
  61. package/dist/cli/gate/gates/review-clean.mjs.map +1 -1
  62. package/dist/cli/gate/gates/verify-approved.d.mts +1 -0
  63. package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -1
  64. package/dist/cli/gate/gates/verify-approved.mjs +1 -0
  65. package/dist/cli/gate/gates/verify-approved.mjs.map +1 -1
  66. package/dist/cli/gate/registry.d.mts.map +1 -1
  67. package/dist/cli/gate/registry.mjs +9 -1
  68. package/dist/cli/gate/registry.mjs.map +1 -1
  69. package/dist/cli/install/cli-to-install-root.d.mts.map +1 -1
  70. package/dist/cli/install/cli-to-install-root.mjs +0 -2
  71. package/dist/cli/install/cli-to-install-root.mjs.map +1 -1
  72. package/dist/cli/install/find-workspace-framework-version.d.mts +16 -0
  73. package/dist/cli/install/find-workspace-framework-version.d.mts.map +1 -0
  74. package/dist/cli/install/find-workspace-framework-version.mjs +85 -0
  75. package/dist/cli/install/find-workspace-framework-version.mjs.map +1 -0
  76. package/dist/cli/install/install-from-source.d.mts +10 -0
  77. package/dist/cli/install/install-from-source.d.mts.map +1 -0
  78. package/dist/cli/install/install-from-source.mjs +271 -0
  79. package/dist/cli/install/install-from-source.mjs.map +1 -0
  80. package/dist/cli/install/install-kernel.d.mts.map +1 -1
  81. package/dist/cli/install/install-kernel.mjs +24 -0
  82. package/dist/cli/install/install-kernel.mjs.map +1 -1
  83. package/dist/cli/install/legacy-paths.d.mts +33 -11
  84. package/dist/cli/install/legacy-paths.d.mts.map +1 -1
  85. package/dist/cli/install/legacy-paths.mjs +161 -39
  86. package/dist/cli/install/legacy-paths.mjs.map +1 -1
  87. package/dist/cli/install/runtime-detect.d.mts +2 -6
  88. package/dist/cli/install/runtime-detect.d.mts.map +1 -1
  89. package/dist/cli/install/runtime-detect.mjs +9 -4
  90. package/dist/cli/install/runtime-detect.mjs.map +1 -1
  91. package/dist/cli/install/runtime-migrate.d.mts +34 -14
  92. package/dist/cli/install/runtime-migrate.d.mts.map +1 -1
  93. package/dist/cli/install/runtime-migrate.mjs +63 -30
  94. package/dist/cli/install/runtime-migrate.mjs.map +1 -1
  95. package/dist/cli/install/transforms/codex.d.mts.map +1 -1
  96. package/dist/cli/install/transforms/codex.mjs +28 -17
  97. package/dist/cli/install/transforms/codex.mjs.map +1 -1
  98. package/dist/cli/install/transforms/pi.d.mts +6 -0
  99. package/dist/cli/install/transforms/pi.d.mts.map +1 -0
  100. package/dist/cli/install/transforms/pi.mjs +37 -0
  101. package/dist/cli/install/transforms/pi.mjs.map +1 -0
  102. package/dist/cli/personas/sidecar.d.mts +1 -1
  103. package/dist/cli/roadmap/lifecycle.d.mts +1 -1
  104. package/dist/cli/roadmap/rollup.d.mts +2 -2
  105. package/dist/cli/skill-author/contract.mjs +2 -2
  106. package/dist/cli/skill-author/contract.mjs.map +1 -1
  107. package/dist/cli/verify-proof/audit.d.mts +34 -0
  108. package/dist/cli/verify-proof/audit.d.mts.map +1 -0
  109. package/dist/cli/verify-proof/audit.mjs +53 -0
  110. package/dist/cli/verify-proof/audit.mjs.map +1 -0
  111. package/dist/cli/verify-proof/exec.d.mts +20 -0
  112. package/dist/cli/verify-proof/exec.d.mts.map +1 -0
  113. package/dist/cli/verify-proof/exec.mjs +74 -0
  114. package/dist/cli/verify-proof/exec.mjs.map +1 -0
  115. package/dist/cli/verify-proof/idl/index.d.mts +2 -0
  116. package/dist/cli/verify-proof/idl/index.d.mts.map +1 -0
  117. package/dist/cli/verify-proof/idl/index.mjs +14 -0
  118. package/dist/cli/verify-proof/idl/index.mjs.map +1 -0
  119. package/dist/cli/verify-proof/idl/types.d.ts +9 -0
  120. package/dist/cli/verify-proof/idl/types.d.ts.map +1 -0
  121. package/dist/cli/verify-proof/idl/types.js +9 -0
  122. package/dist/cli/verify-proof/idl/types.js.map +1 -0
  123. package/dist/cli/verify-proof/manifest-validator.d.mts +19 -0
  124. package/dist/cli/verify-proof/manifest-validator.d.mts.map +1 -0
  125. package/dist/cli/verify-proof/manifest-validator.mjs +182 -0
  126. package/dist/cli/verify-proof/manifest-validator.mjs.map +1 -0
  127. package/dist/cli/verify-proof/resolver.d.mts +43 -0
  128. package/dist/cli/verify-proof/resolver.d.mts.map +1 -0
  129. package/dist/cli/verify-proof/resolver.mjs +160 -0
  130. package/dist/cli/verify-proof/resolver.mjs.map +1 -0
  131. package/dist/cli/verify-proof/runtime-detect.d.mts +27 -0
  132. package/dist/cli/verify-proof/runtime-detect.d.mts.map +1 -0
  133. package/dist/cli/verify-proof/runtime-detect.mjs +116 -0
  134. package/dist/cli/verify-proof/runtime-detect.mjs.map +1 -0
  135. package/dist/cli/verify-proof/trust.d.mts +70 -0
  136. package/dist/cli/verify-proof/trust.d.mts.map +1 -0
  137. package/dist/cli/verify-proof/trust.mjs +174 -0
  138. package/dist/cli/verify-proof/trust.mjs.map +1 -0
  139. package/dist/plugin/.claude-plugin/plugin.json +4 -1
  140. package/dist/plugin/agents/apt-executor.md +12 -0
  141. package/dist/plugin/agents/apt-planner.md +5 -4
  142. package/dist/plugin/agents/apt-team-docs-narrator.md +11 -0
  143. package/dist/plugin/skills/apt/SKILL.md +78 -8
  144. package/dist/plugin/skills/apt-caveman/SKILL.md +64 -0
  145. package/dist/plugin/skills/apt-debug/SKILL.md +36 -4
  146. package/dist/plugin/skills/apt-debug/appendices/diagnose-discipline.md +2 -11
  147. package/dist/plugin/skills/apt-discuss/SKILL.md +4 -4
  148. package/dist/plugin/skills/apt-discuss/appendices/grill-discipline.md +2 -11
  149. package/dist/plugin/skills/apt-discuss/appendices/zoom-out-helper.md +0 -8
  150. package/dist/plugin/skills/apt-execute/SKILL.md +40 -4
  151. package/dist/plugin/skills/apt-execute/appendices/tdd-mode.md +2 -10
  152. package/dist/plugin/skills/apt-fan-out/SKILL.md +159 -0
  153. package/dist/plugin/skills/apt-handoff/SKILL.md +228 -0
  154. package/dist/plugin/skills/apt-improve/DEEPENING.md +0 -8
  155. package/dist/plugin/skills/apt-improve/INTERFACE-DESIGN.md +0 -8
  156. package/dist/plugin/skills/apt-improve/LANGUAGE.md +0 -8
  157. package/dist/plugin/skills/apt-improve/SKILL.md +4 -4
  158. package/dist/plugin/skills/apt-plan/SKILL.md +23 -5
  159. package/dist/plugin/skills/apt-plan/adapters/conductor.md +1 -1
  160. package/dist/plugin/skills/apt-pr-review/SKILL.md +8 -1
  161. package/dist/plugin/skills/apt-prototype/LOGIC.md +0 -8
  162. package/dist/plugin/skills/apt-prototype/SKILL.md +4 -4
  163. package/dist/plugin/skills/apt-prototype/UI.md +0 -8
  164. package/dist/plugin/skills/apt-quick/SKILL.md +31 -1
  165. package/dist/plugin/skills/apt-resume/SKILL.md +54 -31
  166. package/dist/plugin/skills/apt-review/SKILL.md +4 -0
  167. package/dist/plugin/skills/apt-run/SKILL.md +134 -21
  168. package/dist/plugin/skills/apt-setup/SKILL.md +97 -8
  169. package/dist/plugin/skills/apt-ship/SKILL.md +165 -9
  170. package/dist/plugin/skills/apt-spar/SKILL.md +77 -25
  171. package/dist/plugin/skills/apt-triage/AGENT-BRIEF.md +0 -8
  172. package/dist/plugin/skills/apt-triage/OUT-OF-SCOPE.md +0 -7
  173. package/dist/plugin/skills/apt-triage/SKILL.md +2 -2
  174. package/dist/plugin/skills/apt-update/SKILL.md +74 -17
  175. package/dist/plugin/skills/apt-verify/SKILL.md +11 -0
  176. package/dist/plugin/skills/apt-verify-proof/SKILL.md +48 -1
  177. package/dist/plugin/skills/apt-watch-ci/SKILL.md +2 -2
  178. package/dist/plugin/skills/apt-zoom-out/SKILL.md +3 -3
  179. package/dist/schemas/quick-task.d.ts +17 -17
  180. package/dist/schemas/quick-task.d.ts.map +1 -1
  181. package/dist/schemas/quick-task.js +2 -2
  182. package/dist/schemas/quick-task.js.map +1 -1
  183. package/dist/types/config.d.ts +33 -0
  184. package/dist/types/config.d.ts.map +1 -1
  185. package/dist/types/state.d.ts +1 -1
  186. package/dist/types/state.d.ts.map +1 -1
  187. package/dist/types/task-record.d.ts +1 -1
  188. package/dist/types/task-record.d.ts.map +1 -1
  189. package/package.json +134 -133
  190. package/prompts/planner.md +1 -1
  191. package/prompts/spec_writer.md +1 -1
  192. package/skills/apt/SKILL.md +78 -8
  193. package/skills/apt-caveman/SKILL.md +64 -0
  194. package/skills/apt-debug/SKILL.md +36 -4
  195. package/skills/apt-debug/appendices/diagnose-discipline.md +2 -11
  196. package/skills/apt-discuss/SKILL.md +4 -4
  197. package/skills/apt-discuss/appendices/grill-discipline.md +2 -11
  198. package/skills/apt-discuss/appendices/zoom-out-helper.md +0 -8
  199. package/skills/apt-execute/SKILL.md +27 -4
  200. package/skills/apt-execute/appendices/tdd-mode.md +2 -10
  201. package/skills/apt-fan-out/SKILL.md +36 -1
  202. package/skills/apt-handoff/SKILL.md +228 -0
  203. package/skills/apt-improve/DEEPENING.md +0 -8
  204. package/skills/apt-improve/INTERFACE-DESIGN.md +0 -8
  205. package/skills/apt-improve/LANGUAGE.md +0 -8
  206. package/skills/apt-improve/SKILL.md +4 -4
  207. package/skills/apt-plan/SKILL.md +23 -5
  208. package/skills/apt-plan/adapters/conductor.md +1 -1
  209. package/skills/apt-planner.md +1 -1
  210. package/skills/apt-prototype/LOGIC.md +0 -8
  211. package/skills/apt-prototype/SKILL.md +4 -4
  212. package/skills/apt-prototype/UI.md +0 -8
  213. package/skills/apt-quick/SKILL.md +31 -1
  214. package/skills/apt-resume/SKILL.md +54 -31
  215. package/skills/apt-run/SKILL.md +114 -16
  216. package/skills/apt-setup/SKILL.md +97 -8
  217. package/skills/apt-ship/SKILL.md +165 -9
  218. package/skills/apt-spar/SKILL.md +65 -16
  219. package/skills/apt-triage/AGENT-BRIEF.md +0 -8
  220. package/skills/apt-triage/OUT-OF-SCOPE.md +0 -7
  221. package/skills/apt-triage/SKILL.md +2 -2
  222. package/skills/apt-update/SKILL.md +74 -17
  223. package/skills/apt-verify-proof/SKILL.md +48 -1
  224. package/skills/apt-zoom-out/SKILL.md +3 -3
  225. package/src/cli/commands/adr.mjs +1 -1
  226. package/src/cli/commands/audit-branch-current.mjs +250 -0
  227. package/src/cli/commands/audit.mjs +13 -2
  228. package/src/cli/commands/check-version.mjs +20 -1
  229. package/src/cli/commands/context.mjs +3 -3
  230. package/src/cli/commands/detect-runtime.mjs +134 -0
  231. package/src/cli/commands/driver-doctor.mjs +294 -0
  232. package/src/cli/commands/gate.mjs +15 -0
  233. package/src/cli/commands/init.mjs +75 -33
  234. package/src/cli/commands/install-from-source.mjs +1 -0
  235. package/src/cli/commands/modes.mjs +1 -1
  236. package/src/cli/commands/route.mjs +42 -1
  237. package/src/cli/commands/triage.mjs +1 -1
  238. package/src/cli/config/load.mjs +9 -3
  239. package/src/cli/coordination/auto-emit-artifact-ready.mjs +1 -1
  240. package/src/cli/coordination/event-schema.mjs +19 -0
  241. package/src/cli/dispatch.mjs +17 -1
  242. package/src/cli/gate/context.mjs +20 -1
  243. package/src/cli/gate/gates/consistency-check.mjs +1 -0
  244. package/src/cli/gate/gates/review-clean.mjs +1 -0
  245. package/src/cli/gate/gates/verify-approved.mjs +1 -0
  246. package/src/cli/gate/registry.mjs +11 -1
  247. package/src/cli/install/cli-to-install-root.mjs +0 -2
  248. package/src/cli/install/find-workspace-framework-version.mjs +88 -0
  249. package/src/cli/install/install-from-source.mjs +276 -0
  250. package/src/cli/install/install-kernel.mjs +24 -0
  251. package/src/cli/install/legacy-paths.mjs +162 -39
  252. package/src/cli/install/runtime-detect.mjs +9 -4
  253. package/src/cli/install/runtime-migrate.mjs +63 -30
  254. package/src/cli/install/transforms/codex.mjs +26 -17
  255. package/src/cli/install/transforms/pi.mjs +37 -0
  256. package/src/cli/skill-author/contract.mjs +2 -2
  257. package/src/cli/verify-proof/.gitkeep +0 -0
  258. package/src/cli/verify-proof/audit.mjs +55 -0
  259. package/src/cli/verify-proof/exec.mjs +74 -0
  260. package/src/cli/verify-proof/idl/index.mjs +24 -0
  261. package/src/cli/verify-proof/idl/types.ts +41 -0
  262. package/src/cli/verify-proof/manifest-schema.json +211 -0
  263. package/src/cli/verify-proof/manifest-validator.mjs +184 -0
  264. package/src/cli/verify-proof/resolver.mjs +163 -0
  265. package/src/cli/verify-proof/runtime-detect.mjs +122 -0
  266. package/src/cli/verify-proof/trust.mjs +187 -0
  267. package/templates/adr-format.md +0 -8
  268. package/templates/aperant-claude-md-appendix.md +1 -1
  269. package/templates/context-format.md +1 -9
  270. package/templates/proof-verification.md +19 -5
  271. package/workflows/verify-proof.md +56 -14
@@ -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. Bump the local kernel from npm when newer is available
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 even when npm has a newer release. Bump the kernel BEFORE invoking init.
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
- First, resolve `latest_version` when the envelope had `null` (stale cache).
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.6. Self-host case — bump from local workspace (FRAMEWORK-BUG-017)
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
- When the user invokes `/apt:update --from-source` 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. Step 1.5's `npm view` would fetch the published version (still the OLD one), so we must skip it.
132
+ ### What `install-from-source` does under the hood
96
133
 
97
- The reliable bump mechanism mirrors what `runKernelInstall` does today`pnpm pack` produces a versioned tarball, then `npm install --prefix` consumes it. Symlinking is fragile across re-installs and `pnpm install --filter` doesn't relocate the published artifact into `.aperant/deps`.
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
- Walk up from the project root looking for a sibling `packages/framework/package.json`. When found AND its `name === "@aperant/framework"`:
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
- # 1. Pack the workspace source into a versioned tarball.
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
- Replace `<version>` with the workspace `package.json:version` you just read. The tarball name follows npm's `pack` convention (`@aperant/framework@X.Y.Z` `aperant-framework-X.Y.Z.tgz`).
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. Step 1.5 was a no-op; step 3 still needs `--force-runtimes` to re-stamp.
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:
@@ -302,6 +302,17 @@ The `status` field is derived from the minimum dimension score:
302
302
  node packages/framework/bin/apt-tools.mjs commit "qa: verification {status}" --files qa_signoff.json
303
303
  ```
304
304
 
305
+ ### Mark lifecycle phase as `reviewing` (approved path only)
306
+
307
+ If `status` is `approved` or `approved-with-notes`, flip the task's lifecycle
308
+ phase so the next stage (`/apt:review`, or `/apt:ship` if review is skipped)
309
+ finds the task in the correct from-state. Skip this transition entirely on
310
+ `rejected` — the task stays in `verifying` until the user re-runs after fixes.
311
+
312
+ ```bash
313
+ node packages/framework/bin/apt-tools.mjs task update . --id {task-id} --lifecycle-phase reviewing
314
+ ```
315
+
305
316
  ## 8. Report
306
317
 
307
318
  Output:
@@ -40,9 +40,56 @@ 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
+ ### Override
62
+
63
+ Force a specific driver chain in `.aperant/config.json`:
64
+
65
+ ```json
66
+ { "verification": { "runtimes": ["electron", "cli"] } }
67
+ ```
68
+
69
+ ### Bundled drivers (4)
70
+
71
+ - **browser** (priority=100, ga) — Next.js / vanilla web frontends.
72
+ - **electron** (priority=90, ga) — Electron desktop apps.
73
+ - **cli** (priority=60, ga) — headless CI, output-shape assertions.
74
+ - **api** (priority=50, ga) — HTTP / JSON-API regression tests.
75
+
76
+ ### Driver authors
77
+
78
+ Third-party driver authors should run `apt-tools driver doctor .` before
79
+ publishing to validate manifest schema + IDL conformance:
80
+
81
+ ```bash
82
+ apt-tools driver doctor .
83
+ # → { drivers: [{driverId, manifest_valid, idl_conformant, ...}], summary: {...} }
84
+ ```
85
+
86
+ See `@aperant/driver-sdk` for the IDL types, error taxonomy, and
87
+ conformance kit.
88
+
43
89
  ## Execution
44
90
 
45
- Execute the verify-proof workflow end-to-end:
91
+ Execute the verify-proof workflow end-to-end using IDL verbs (the driver
92
+ maps verbs to its transport — MCP server, local command, HTTP):
46
93
 
47
94
  <execution_context>
48
95
  @packages/framework/workflows/verify-proof.md
@@ -69,7 +69,7 @@ Watcher already running for PR {N} (held by sessionId={x}, pid={y}); exiting.
69
69
 
70
70
  For the `--tick` mode, execute exactly the following sequence — once — inside this single skill invocation:
71
71
 
72
- 1. **Poll.** Call `gh pr checks <N> --json name,bucket,state,conclusion,detailsUrl` and `gh pr view <N> --json state,reviewDecision`. Combine both JSON outputs into a single file shaped `{checks: <pr-checks-json>, prMetadata: <pr-view-json>}` (for example with `jq -s '{checks: .[0], prMetadata: .[1]}'`) and save it as `{captured.json}` (any path under the worktree is fine). On any `gh` failure, omit the file and let the cmd's `tick` route to `infra-backoff` (it surfaces the same action when no payload is available).
72
+ 1. **Poll.** Call `gh pr checks <N> --json name,bucket,state,link,workflow,completedAt` and `gh pr view <N> --json state,reviewDecision`. Combine both JSON outputs into a single file shaped `{checks: <pr-checks-json>, prMetadata: <pr-view-json>}` (for example with `jq -s '{checks: .[0], prMetadata: .[1]}'`) and save it as `{captured.json}` (any path under the worktree is fine). On any `gh` failure, omit the file and let the cmd's `tick` route to `infra-backoff` (it surfaces the same action when no payload is available). <!-- FRAMEWORK-BUG-016 (spec.md §D3): gh 2.65+'s `pr checks --json` schema dropped two legacy fields that the watcher previously requested; per-check status now lives in `state` (uppercase: SUCCESS / FAILURE / SKIPPED / IN_PROGRESS / …) and the failed-run URL lives in `link`. Do NOT re-introduce the legacy field names — gh exits non-zero ("Unknown JSON field") and the watcher falls into infra-backoff forever. -->
73
73
  2. **Classify + state update.** Call `apt-tools ci-watch tick {worktree} --pr {N} --payload-file {captured.json}`. The cmd reads `{captured.json}` from disk and runs the classifier — it does NOT shell out to `gh` itself (that boundary stays with the orchestrator skill; see commands/ci-watch.mjs:15). The cmd internally:
74
74
  - acquires the per-PR lock (BUSY → exit 2 → step §2);
75
75
  - reads the per-PR state file;
@@ -111,7 +111,7 @@ In all terminal cases:
111
111
 
112
112
  When `action === 'fix'` (or `diverged-rebased`/`diverged-bailed`):
113
113
 
114
- 1. **Fetch the failed-check log.** From the gh payload, find the failed check's `detailsUrl` and call `gh run view {runId} --log` to capture the log into a temp file.
114
+ 1. **Fetch the failed-check log.** From the gh payload, find the failed check's `link` field (see FRAMEWORK-BUG-016 / §D3 for the gh 2.65+ field migration) and call `gh run view {runId} --log` to capture the log into a temp file.
115
115
  2. **Shell out to the host CLI** to fix it. The watcher does NOT inline a custom fix prompt; it hands the worktree + failed-log to the same CLI binary that's running this skill (detected by `apt-tools host-detect`). Pseudocode:
116
116
 
117
117
  ```bash
@@ -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
- **Pocock adoption note.** This skill descends from Matt Pocock's `zoom-out`
30
- discipline. Aperant's router is dynamic and LLM-driven, so unlike Pocock's
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 (Pocock glossary) and you want to load it
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
- pass: "pass";
5
4
  fail: "fail";
5
+ pass: "pass";
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
- pass: "pass";
15
14
  fail: "fail";
15
+ pass: "pass";
16
16
  }>;
17
17
  lint: z.ZodEnum<{
18
18
  skip: "skip";
19
- pass: "pass";
20
19
  fail: "fail";
20
+ pass: "pass";
21
21
  }>;
22
22
  visual: z.ZodEnum<{
23
23
  skip: "skip";
24
- pass: "pass";
25
24
  fail: "fail";
25
+ pass: "pass";
26
26
  }>;
27
27
  test: z.ZodEnum<{
28
28
  skip: "skip";
29
- pass: "pass";
30
29
  fail: "fail";
30
+ pass: "pass";
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
- pass: "pass";
54
53
  fail: "fail";
54
+ pass: "pass";
55
55
  }>;
56
56
  lint: z.ZodEnum<{
57
57
  skip: "skip";
58
- pass: "pass";
59
58
  fail: "fail";
59
+ pass: "pass";
60
60
  }>;
61
61
  visual: z.ZodEnum<{
62
62
  skip: "skip";
63
- pass: "pass";
64
63
  fail: "fail";
64
+ pass: "pass";
65
65
  }>;
66
66
  test: z.ZodEnum<{
67
67
  skip: "skip";
68
- pass: "pass";
69
68
  fail: "fail";
69
+ pass: "pass";
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" | "pass" | "fail";
100
- lint: "skip" | "pass" | "fail";
101
- visual: "skip" | "pass" | "fail";
102
- test: "skip" | "pass" | "fail";
99
+ typecheck: "skip" | "fail" | "pass";
100
+ lint: "skip" | "fail" | "pass";
101
+ visual: "skip" | "fail" | "pass";
102
+ test: "skip" | "fail" | "pass";
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
- pass: "pass";
128
127
  fail: "fail";
128
+ pass: "pass";
129
129
  }>;
130
130
  lint: z.ZodEnum<{
131
131
  skip: "skip";
132
- pass: "pass";
133
132
  fail: "fail";
133
+ pass: "pass";
134
134
  }>;
135
135
  visual: z.ZodEnum<{
136
136
  skip: "skip";
137
- pass: "pass";
138
137
  fail: "fail";
138
+ pass: "pass";
139
139
  }>;
140
140
  test: z.ZodEnum<{
141
141
  skip: "skip";
142
- pass: "pass";
143
142
  fail: "fail";
143
+ pass: "pass";
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa1B,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"}
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 follow the pattern quick-YYYYMMDD-{slug}',
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,kBAAkB,EAAE;QACxC,OAAO,EAAE,kDAAkD;KAC3D,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"}
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"}
@@ -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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"}
@@ -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;AAErD,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"}
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;AAErD;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"}
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"}