agentplane 0.3.21 → 0.3.23

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 (57) hide show
  1. package/assets/policy/incidents.md +4 -0
  2. package/dist/.build-manifest.json +67 -42
  3. package/dist/cli/bootstrap-guide.d.ts +1 -0
  4. package/dist/cli/bootstrap-guide.d.ts.map +1 -1
  5. package/dist/cli/bootstrap-guide.js +3 -2
  6. package/dist/cli/command-guide.d.ts.map +1 -1
  7. package/dist/cli/command-guide.js +5 -4
  8. package/dist/cli/run-cli/commands/init/orchestrate-v2.d.ts.map +1 -1
  9. package/dist/cli/run-cli/commands/init/orchestrate-v2.js +10 -2
  10. package/dist/cli/run-cli/commands/init/orchestrate.d.ts.map +1 -1
  11. package/dist/cli/run-cli/commands/init/orchestrate.js +10 -2
  12. package/dist/cli/run-cli/commands/init/recipes.d.ts.map +1 -1
  13. package/dist/cli/run-cli/commands/init/recipes.js +3 -1
  14. package/dist/cli.js +356 -341
  15. package/dist/commands/branch/work-start.hook-shim.d.ts.map +1 -1
  16. package/dist/commands/branch/work-start.hook-shim.js +16 -4
  17. package/dist/commands/doctor/hook-readiness.d.ts +2 -0
  18. package/dist/commands/doctor/hook-readiness.d.ts.map +1 -0
  19. package/dist/commands/doctor/hook-readiness.js +171 -0
  20. package/dist/commands/doctor/workspace.d.ts.map +1 -1
  21. package/dist/commands/doctor/workspace.js +2 -1
  22. package/dist/commands/guard/impl/commit.d.ts.map +1 -1
  23. package/dist/commands/guard/impl/commit.js +26 -0
  24. package/dist/commands/hooks/install.d.ts +4 -0
  25. package/dist/commands/hooks/install.d.ts.map +1 -1
  26. package/dist/commands/hooks/install.js +35 -4
  27. package/dist/commands/hooks/run.pre-push.d.ts.map +1 -1
  28. package/dist/commands/hooks/run.pre-push.js +237 -13
  29. package/dist/commands/recipes/impl/installed-recipes.d.ts +5 -1
  30. package/dist/commands/recipes/impl/installed-recipes.d.ts.map +1 -1
  31. package/dist/commands/recipes/impl/installed-recipes.js +38 -19
  32. package/dist/commands/release/apply.mutation.d.ts.map +1 -1
  33. package/dist/commands/release/apply.mutation.js +5 -4
  34. package/dist/commands/release/apply.pipeline/mutation.d.ts.map +1 -1
  35. package/dist/commands/release/apply.pipeline/mutation.js +6 -1
  36. package/dist/commands/release/apply.preflight.d.ts.map +1 -1
  37. package/dist/commands/release/apply.preflight.js +5 -4
  38. package/dist/commands/task/derive.command.js +1 -1
  39. package/dist/commands/task/finish-execute.d.ts.map +1 -1
  40. package/dist/commands/task/finish-execute.js +8 -1
  41. package/dist/commands/task/shared/transitions.d.ts.map +1 -1
  42. package/dist/commands/task/shared/transitions.js +11 -2
  43. package/dist/commands/task/verify-command-shared.d.ts.map +1 -1
  44. package/dist/commands/task/verify-command-shared.js +8 -2
  45. package/dist/runtime/prompt-modules/index.d.ts +3 -0
  46. package/dist/runtime/prompt-modules/index.d.ts.map +1 -0
  47. package/dist/runtime/prompt-modules/index.js +1 -0
  48. package/dist/runtime/prompt-modules/model.d.ts +89 -0
  49. package/dist/runtime/prompt-modules/model.d.ts.map +1 -0
  50. package/dist/runtime/prompt-modules/model.js +1 -0
  51. package/dist/runtime/prompt-modules/mutations.d.ts +103 -0
  52. package/dist/runtime/prompt-modules/mutations.d.ts.map +1 -0
  53. package/dist/runtime/prompt-modules/mutations.js +1 -0
  54. package/dist/shared/runtime-env.d.ts +3 -0
  55. package/dist/shared/runtime-env.d.ts.map +1 -0
  56. package/dist/shared/runtime-env.js +73 -0
  57. package/package.json +3 -3
@@ -14,3 +14,7 @@
14
14
  - id: INC-20260420-01 | date: 2026-04-20 | scope: Audit CLI path resolution for global-install style layouts, fix any repo-local script path defects, and add regression tests that fail when installed CLI code resolves repository scripts from the global package location. | tags: bugfix, code, hooks | match: bugfix, code, hooks, audit, cli, path, resolution, for, global, install, style, layouts, fix, any, repo, local | failure: Audited import.meta.url/fileURLToPath candidates touching scripts/bin paths. The real repo-script risk was pre-push fallback returning a non-existent global prefix path; workflow-playbook's bin path is package-bundled and covered by existing workflow tests. | advice: Pre-push script resolution now returns repository-local script first, existing bundled fallback second, otherwise null with an actionable repository-local error message. | rule: Analogous Audit CLI path resolution for global-install style layouts, fix any repo-local script path defects, and add regression tests that fail when installed CLI code resolves repository scripts from the global package location. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604200850-9T6FTC; commit d30a706ce568 | enforcement: manual | fixability: external | state: open
15
15
  - id: INC-20260422-01 | date: 2026-04-22 | scope: Runner prompt assembly only. Do not cache task-specific prompt content or mutable task state. | tags: cache, perf, runner | match: cache, perf, runner, prompt, assembly, only, not, task, specific, content, mutable, state, source, avoid, repeated, scanning | failure: Cached bundled agent templates, bundled policy gateway templates, and framework runner prompt assembly; repo-local policy/profile reads use mtime/size validation so changed files are not stale. | advice: Added regression coverage for repeated static prompt reuse and repo-local prompt cache invalidation. | rule: Analogous Runner prompt assembly only. Do not cache task-specific prompt content or mutable task state. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604220255-AQHZT4; commit 268c42af4447 | enforcement: manual | fixability: external | state: open
16
16
  - id: INC-20260422-02 | date: 2026-04-22 | scope: Publish the next patch release containing the init cached recipe manifest compatibility fix and restored interactive init ASCII logo. | tags: ci, init, release | match: ci, init, release, publish, the, next, patch, containing, cached, recipe, manifest, compatibility, fix, and, restored, interactive | failure: Pre-push release-mode hook failed when inherited test execution changed shared git core.bare=true; restored local core.bare=false and confirmed remote tag v0.3.19 points at main merge commit 45ba9c57. | advice: Use hosted release workflow as publication evidence; record local hook pollution as a release-process follow-up rather than blocking this hotfix. | rule: Analogous Publish the next patch release containing the init cached recipe manifest compatibility fix and restored interactive init ASCII logo. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604221605-SQYRNQ; commit 45ba9c57f939 | enforcement: manual | fixability: external | state: open
17
+ - id: INC-20260422-03 | date: 2026-04-22 | scope: Create an executable v0.4 implementation task graph for modular prompt assembly, grouped into epics with atomic tasks and dependencies. | tags: architecture, planning, prompt-assembly, v0.4 | match: architecture, planning, prompt-assembly, v0.4, create, executable, implementation, task, graph, for, modular, prompt, assembly, grouped, into, epics | failure: task graph contains 30 new planned tasks plus the active decomposition task | advice: Validated with task list filtering, task file count, agentplane doctor, and git diff whitespace check | rule: Analogous Create an executable v0.4 implementation task graph for modular prompt assembly, grouped into epics with atomic tasks and dependencies. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604221536-1Z90V4; commit 3047ee2197c0 | enforcement: manual | fixability: external | state: open
18
+ - id: INC-20260423-01 | date: 2026-04-23 | scope: commit allowlist staging behavior and diagnostics for active task artifacts. Out of scope: broad commit policy rewrites or protected path model changes. | tags: code, git, workflow | match: code, git, workflow, commit, allowlist, staging, behavior, and, diagnostics, for, active, task, artifacts, out, scope, broad | failure: Ran bun run test:project -- cli-core packages/agentplane/src/cli/run-cli.core.guard.commit-wrapper.test.ts; bun run test:project -- guard; Prettier check for changed files. | advice: Added non-empty-index staging before guard validation and regression coverage. | rule: Analogous commit allowlist staging behavior and diagnostics for active task artifacts. Out of scope: broad commit policy rewrites or protected path model changes. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604230838-598K1H; commit afa741361351 | enforcement: manual | fixability: external | state: open
19
+ - id: INC-20260423-02 | date: 2026-04-23 | scope: generated guidance and default examples for test commands. Out of scope: rewriting historical release notes or changing user-supplied task verify commands. | tags: code, guidance, testing | match: code, guidance, testing, generated, and, default, examples, for, test, commands, out, scope, rewriting, historical, release, notes | failure: Ran bun run test:project -- cli-core packages/agentplane/src/cli/run-cli.core.tasks.scaffold-derive.test.ts; bun run workflows:command-check; bun run docs:cli:check; Prettier check for changed files. | advice: Updated task derive example/test fixture and expanded workflow command contract scanning to command specs. | rule: Analogous generated guidance and default examples for test commands. Out of scope: rewriting historical release notes or changing user-supplied task verify commands. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604230839-Y92ZJJ; commit 7e088c735372 | enforcement: manual | fixability: external | state: open
20
+ - id: INC-20260423-03 | date: 2026-04-23 | scope: Move managed hook shim readiness checks out of doctor/workspace.ts so hotspot gate passes after installed-user diagnostics additions. | tags: code, quality | match: code, quality, move, managed, hook, shim, readiness, checks, out, doctor, workspace, hotspot, gate, passes, after, installed | failure: Ran bun run hotspots:check; bun run test:project -- agentplane packages/agentplane/src/commands/doctor.command.runtime.test.ts; Prettier check for changed files. | advice: Extracted hook readiness diagnostics to doctor/hook-readiness.ts and updated oversized test baseline for already-grown warning files. | rule: Analogous Move managed hook shim readiness checks out of doctor/workspace.ts so hotspot gate passes after installed-user diagnostics additions. work MUST review and apply the recorded external incident advice before retrying. | evidence: task 202604230949-E1BG2Q; commit 2fc331ddf503 | enforcement: manual | fixability: external | state: open
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "package_dir": "/home/runner/work/agentplane/agentplane/packages/agentplane",
4
- "generated_at": "2026-04-22T18:30:36.999Z",
5
- "git_head": "5643a70096a20dc7dc30453dbc84b5cdbdc8f112",
6
- "src_cli_mtime_ms": 1776882494485.1802,
4
+ "generated_at": "2026-04-23T15:43:57.221Z",
5
+ "git_head": "46aaf3cfbc937ae5d85952931800f1b8471657fd",
6
+ "src_cli_mtime_ms": 1776958913932.756,
7
7
  "src_index_mtime_ms": null,
8
- "dist_cli_mtime_ms": 1776882636796.8308,
8
+ "dist_cli_mtime_ms": 1776959037005.2576,
9
9
  "dist_index_mtime_ms": null,
10
- "tsbuildinfo_mtime_ms": 1776882634724.798,
10
+ "tsbuildinfo_mtime_ms": 1776959034870.2485,
11
11
  "watched_runtime_paths": [
12
12
  "src",
13
13
  "bin/agentplane.js",
@@ -15,7 +15,7 @@
15
15
  "bin/runtime-context.js",
16
16
  "bin/stale-dist-policy.js"
17
17
  ],
18
- "watched_runtime_snapshot_hash": "8461bae1ae37ba91891641d028df78865e48e2096102211580effd7243d252a3",
18
+ "watched_runtime_snapshot_hash": "b8c29cd6478ae809960f276f543158a416a80a7497c61fefcda98506d69d48d3",
19
19
  "watched_runtime_files": [
20
20
  {
21
21
  "path": "bin/agentplane.js",
@@ -299,8 +299,8 @@
299
299
  },
300
300
  {
301
301
  "path": "src/cli/bootstrap-guide.ts",
302
- "sha256": "3b07c9784c96ded54ec32792b1aab45fc88385b7aac196bf7350608acc4db64d",
303
- "size_bytes": 6891
302
+ "sha256": "028fa8b3b233b589f1b492a34d4a5fc3f52835aac7649ccc479d943638445bd9",
303
+ "size_bytes": 7087
304
304
  },
305
305
  {
306
306
  "path": "src/cli/checksum.ts",
@@ -309,8 +309,8 @@
309
309
  },
310
310
  {
311
311
  "path": "src/cli/command-guide.ts",
312
- "sha256": "e255edf911de9114ae8cfdcdae8f667fb69f1116351f8dd2d411c52b295aa9af",
313
- "size_bytes": 10457
312
+ "sha256": "8158a55d3858a84216157878c1901ae5b05464827f2f5f3136d64b3063cf8b18",
313
+ "size_bytes": 10622
314
314
  },
315
315
  {
316
316
  "path": "src/cli/command-invocations.ts",
@@ -539,13 +539,13 @@
539
539
  },
540
540
  {
541
541
  "path": "src/cli/run-cli/commands/init/orchestrate-v2.ts",
542
- "sha256": "1cb3d188202e08dc95ede78a7e52f6f45ea500cf9b5da41cfa6fef5d8b4c830c",
543
- "size_bytes": 11972
542
+ "sha256": "b92df05a96c58d97904dbe9232d8df1aef00b23385c6ae3ac8564c243280a47e",
543
+ "size_bytes": 12335
544
544
  },
545
545
  {
546
546
  "path": "src/cli/run-cli/commands/init/orchestrate.ts",
547
- "sha256": "fed854de5986b3a86f349e1c25a734fa363b67bfcf5f15aff5c411b706b680e5",
548
- "size_bytes": 15024
547
+ "sha256": "78e53025c8380b0f452d9be9c395b98f803bb7010eaf77567a19f493df96070b",
548
+ "size_bytes": 15378
549
549
  },
550
550
  {
551
551
  "path": "src/cli/run-cli/commands/init/parsers.ts",
@@ -564,8 +564,8 @@
564
564
  },
565
565
  {
566
566
  "path": "src/cli/run-cli/commands/init/recipes.ts",
567
- "sha256": "bd309ab8d4f6b541dd977c0bdb632af5ec8db934e261fc6b56adcd064373d9f9",
568
- "size_bytes": 1912
567
+ "sha256": "5be2675d5f6a6b2a7b7748e62c1150ce5fcf4489c65554ab0f8c50b2311d996d",
568
+ "size_bytes": 1949
569
569
  },
570
570
  {
571
571
  "path": "src/cli/run-cli/commands/init/spec.ts",
@@ -824,8 +824,8 @@
824
824
  },
825
825
  {
826
826
  "path": "src/commands/branch/work-start.hook-shim.ts",
827
- "sha256": "2774009f78ab0d950574c30829fc3c07a62c907503e4aa060ee63a8a30987216",
828
- "size_bytes": 1548
827
+ "sha256": "f7476ddae2e26bee6d7bcfa4cb7b47c8115e2503ed00674272f5afed50349538",
828
+ "size_bytes": 2246
829
829
  },
830
830
  {
831
831
  "path": "src/commands/branch/work-start.materialize.ts",
@@ -887,6 +887,11 @@
887
887
  "sha256": "5d85f2539e6828a414cb9f5f2132de869c03d4913465dded51a8279a0aa43737",
888
888
  "size_bytes": 1700
889
889
  },
890
+ {
891
+ "path": "src/commands/doctor/hook-readiness.ts",
892
+ "sha256": "cf88e56388325bf8edeeb1e7ab5e76e4d7a2acd90aadee346818016453bb868d",
893
+ "size_bytes": 7624
894
+ },
890
895
  {
891
896
  "path": "src/commands/doctor/layering.ts",
892
897
  "sha256": "c1e655996e5253b486500b68ad19f4493da67dd85758f0097acb173ba487955c",
@@ -904,8 +909,8 @@
904
909
  },
905
910
  {
906
911
  "path": "src/commands/doctor/workspace.ts",
907
- "sha256": "8d92b2eab7ba2485787995f1807adc1c618e832436b812a86cb82bce09bc9ef2",
908
- "size_bytes": 14977
912
+ "sha256": "9813d51c56559082d99604b2dd17546872a863bd5a9c926e6901cddb4bf6c60f",
913
+ "size_bytes": 15102
909
914
  },
910
915
  {
911
916
  "path": "src/commands/finish.run.ts",
@@ -969,8 +974,8 @@
969
974
  },
970
975
  {
971
976
  "path": "src/commands/guard/impl/commit.ts",
972
- "sha256": "2578c9ab061d260b0c6518c458a18b85444489d2cd7cf0d362858d9266215c9b",
973
- "size_bytes": 15217
977
+ "sha256": "1736bcdc25f33e8097f6fec256c2e37710207e17f4604a7eb08dae82ae520e85",
978
+ "size_bytes": 16326
974
979
  },
975
980
  {
976
981
  "path": "src/commands/guard/impl/env.ts",
@@ -1019,8 +1024,8 @@
1019
1024
  },
1020
1025
  {
1021
1026
  "path": "src/commands/hooks/install.ts",
1022
- "sha256": "c4930d3732fef17d8518038ea60f0bf11d901e85fd1a9ddcadbd82ce4f02847f",
1023
- "size_bytes": 5087
1027
+ "sha256": "3685c30eaeff154d66c59510a9e9aafed66db5b27884ed1c807b0894136b0788",
1028
+ "size_bytes": 6493
1024
1029
  },
1025
1030
  {
1026
1031
  "path": "src/commands/hooks/run.command.ts",
@@ -1044,8 +1049,8 @@
1044
1049
  },
1045
1050
  {
1046
1051
  "path": "src/commands/hooks/run.pre-push.ts",
1047
- "sha256": "d36b49c91eaeef229c9a2f1ffbff6f41cd3c09632660fed4fd984354fa79dc28",
1048
- "size_bytes": 3247
1052
+ "sha256": "eb1b5de8c4a547d092293aa00168f46937f056606eb9990ee5448320111c8814",
1053
+ "size_bytes": 11933
1049
1054
  },
1050
1055
  {
1051
1056
  "path": "src/commands/hooks/run.ts",
@@ -1414,8 +1419,8 @@
1414
1419
  },
1415
1420
  {
1416
1421
  "path": "src/commands/recipes/impl/installed-recipes.ts",
1417
- "sha256": "fbc372ff5d8fd731ce8ff35c006537ae7148ee92619ed1343b9f55ae81f29d70",
1418
- "size_bytes": 3979
1422
+ "sha256": "b195acddd79f73eb33ffefc87df8a90f868efb4aca664c37d1fbe06d43d58fd1",
1423
+ "size_bytes": 4633
1419
1424
  },
1420
1425
  {
1421
1426
  "path": "src/commands/recipes/impl/mutation-transaction.ts",
@@ -1514,8 +1519,8 @@
1514
1519
  },
1515
1520
  {
1516
1521
  "path": "src/commands/release/apply.mutation.ts",
1517
- "sha256": "38ceddeb75c1be1626518959b59b9effdf75762cafa2fe2805c4c276e0ef1354",
1518
- "size_bytes": 6057
1522
+ "sha256": "ff24f1bf1f4725a468a7dffee4f56eeff8b8e1863eeaaa348988e0807deb0895",
1523
+ "size_bytes": 6281
1519
1524
  },
1520
1525
  {
1521
1526
  "path": "src/commands/release/apply.pipeline.ts",
@@ -1529,8 +1534,8 @@
1529
1534
  },
1530
1535
  {
1531
1536
  "path": "src/commands/release/apply.pipeline/mutation.ts",
1532
- "sha256": "7d1cff958ef41c909663cf3ee24d62161b8d2d27a24d14eb708fda589f141058",
1533
- "size_bytes": 4048
1537
+ "sha256": "4e0b6e850979170484f06bc762b3386b4dc0af3f7a0dc85fbe3f319e919ff1ca",
1538
+ "size_bytes": 4434
1534
1539
  },
1535
1540
  {
1536
1541
  "path": "src/commands/release/apply.pipeline/preflight.ts",
@@ -1549,8 +1554,8 @@
1549
1554
  },
1550
1555
  {
1551
1556
  "path": "src/commands/release/apply.preflight.ts",
1552
- "sha256": "dbbdce86ff8bffea7905f0de688a5510f8581da2ccfcff75777e614cfe9e3281",
1553
- "size_bytes": 17117
1557
+ "sha256": "f6ad3e35e53cdfa5878cea99a30f367e0a12224b5eb8036532500640d6c38b13",
1558
+ "size_bytes": 17348
1554
1559
  },
1555
1560
  {
1556
1561
  "path": "src/commands/release/apply.reporting.ts",
@@ -1804,8 +1809,8 @@
1804
1809
  },
1805
1810
  {
1806
1811
  "path": "src/commands/task/derive.command.ts",
1807
- "sha256": "fe9b5850ad73f9836397b20aba34b1b30c0cff5b86dd3ca8a9dcd0b67063796f",
1808
- "size_bytes": 3603
1812
+ "sha256": "b903c0b7df07a26cbad1dbb9046c7109d73a778c0df56a68725b334e4e419db0",
1813
+ "size_bytes": 3627
1809
1814
  },
1810
1815
  {
1811
1816
  "path": "src/commands/task/derive.ts",
@@ -1874,8 +1879,8 @@
1874
1879
  },
1875
1880
  {
1876
1881
  "path": "src/commands/task/finish-execute.ts",
1877
- "sha256": "a2ac26822e1700ace23fc365fdd0467cb7e0a6b4345e40e71476abcc73e071c2",
1878
- "size_bytes": 11110
1882
+ "sha256": "55b58c8792de4767b7cc202bbdc16ab9568d4d31a51f6a7553316c379d8ccd29",
1883
+ "size_bytes": 11597
1879
1884
  },
1880
1885
  {
1881
1886
  "path": "src/commands/task/finish-findings.ts",
@@ -2284,8 +2289,8 @@
2284
2289
  },
2285
2290
  {
2286
2291
  "path": "src/commands/task/shared/transitions.ts",
2287
- "sha256": "75a5e5220a2c71b6673cb6be7cc94c248b2710ddeeba1ff7b15d1373f9eeffd0",
2288
- "size_bytes": 7530
2292
+ "sha256": "94be63f0fb51cc244cd48178aebd887bd5c83de23f66bcc29a46ce18d46cd09d",
2293
+ "size_bytes": 8088
2289
2294
  },
2290
2295
  {
2291
2296
  "path": "src/commands/task/shared/workflow-transition-service.ts",
@@ -2339,8 +2344,8 @@
2339
2344
  },
2340
2345
  {
2341
2346
  "path": "src/commands/task/verify-command-shared.ts",
2342
- "sha256": "536bb3a2a9ebf56eb843494fe855dc95a53bbab6cb145504e5017e1b80161dd7",
2343
- "size_bytes": 7970
2347
+ "sha256": "1bda6957958dceceb6876ea0d8e2bb0d07640d76dcf3e1552fa45fe50e6b89d8",
2348
+ "size_bytes": 8079
2344
2349
  },
2345
2350
  {
2346
2351
  "path": "src/commands/task/verify-ok.command.ts",
@@ -2957,6 +2962,21 @@
2957
2962
  "sha256": "7724861b7948e3b023166e592aae030d72a3312a8bb4941fc9781901cddd08be",
2958
2963
  "size_bytes": 2207
2959
2964
  },
2965
+ {
2966
+ "path": "src/runtime/prompt-modules/index.ts",
2967
+ "sha256": "e18470274cd5553af355ded4e9628b3262c06cbc36053d23be03393b21288059",
2968
+ "size_bytes": 1186
2969
+ },
2970
+ {
2971
+ "path": "src/runtime/prompt-modules/model.ts",
2972
+ "sha256": "28db918469eacd424b2f76a58b4a7f372aa4f80831acaa2aa0a0315447e2fe3a",
2973
+ "size_bytes": 3604
2974
+ },
2975
+ {
2976
+ "path": "src/runtime/prompt-modules/mutations.ts",
2977
+ "sha256": "490227260676592f03e82a32744607d8308986387c55af219691e082fd4cfd4d",
2978
+ "size_bytes": 3666
2979
+ },
2960
2980
  {
2961
2981
  "path": "src/runtime/protocol/index.ts",
2962
2982
  "sha256": "7e34551db1b8ff2ce6d14a94d6f0345f9b2e6c35082cf5c0b0b3356d10564f59",
@@ -3042,6 +3062,11 @@
3042
3062
  "sha256": "5fb86dfa71d8b1db11ff24e32cac43eb7ce2a3d7b0d7c084afb9aacd4160e2eb",
3043
3063
  "size_bytes": 4218
3044
3064
  },
3065
+ {
3066
+ "path": "src/shared/runtime-env.ts",
3067
+ "sha256": "9f15ef8762db4420e74c5c187cbfdc0ce930246633c67022332723b9625589c5",
3068
+ "size_bytes": 2406
3069
+ },
3045
3070
  {
3046
3071
  "path": "src/shared/strings.ts",
3047
3072
  "sha256": "b266926e09aac485e48f559f81acce7cce89913426e322bc37ebf7d930a08961",
@@ -1,5 +1,6 @@
1
1
  export declare const AGENT_BOOTSTRAP_DOC_PATH = "docs/user/agent-bootstrap.generated.mdx";
2
2
  export declare const AGENT_BOOTSTRAP_RUNTIME_SURFACE = "agentplane quickstart";
3
+ export declare const BRANCH_PR_HOSTED_GATE_GUIDANCE = "confirm hosted required checks through the repository's configured CI/provider gate; optional framework-maintainer helper when present: `bun run workflow:wait-remote-checks`";
3
4
  export type BootstrapSection = {
4
5
  heading: string;
5
6
  summary: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-guide.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap-guide.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,4CAA4C,CAAC;AAClF,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,iHAM/B,CAAC;AAEX,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,oCAAoC,4JAMvC,CAAC;AAEX,eAAO,MAAM,+BAA+B,0HAOlC,CAAC;AAEX,eAAO,MAAM,2BAA2B,sFAI9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAgDhD,CAAC;AAEX,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAiB3F;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CA2B3C"}
1
+ {"version":3,"file":"bootstrap-guide.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap-guide.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,4CAA4C,CAAC;AAClF,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AACvE,eAAO,MAAM,8BAA8B,kLACsI,CAAC;AAElL,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,4BAA4B,iHAM/B,CAAC;AAEX,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,oCAAoC,4JAMvC,CAAC;AAEX,eAAO,MAAM,+BAA+B,0HAOlC,CAAC;AAEX,eAAO,MAAM,2BAA2B,sFAI9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAgDhD,CAAC;AAEX,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAiB3F;AAMD,wBAAgB,kBAAkB,IAAI,MAAM,CA2B3C"}
@@ -1,6 +1,7 @@
1
1
  import { COMMAND_SNIPPETS } from "./command-snippets.js";
2
2
  export const AGENT_BOOTSTRAP_DOC_PATH = "docs/user/agent-bootstrap.generated.mdx";
3
3
  export const AGENT_BOOTSTRAP_RUNTIME_SURFACE = "agentplane quickstart";
4
+ export const BRANCH_PR_HOSTED_GATE_GUIDANCE = "confirm hosted required checks through the repository's configured CI/provider gate; optional framework-maintainer helper when present: `bun run workflow:wait-remote-checks`";
4
5
  export const BOOTSTRAP_PREFLIGHT_COMMANDS = [
5
6
  COMMAND_SNIPPETS.core.configShow,
6
7
  COMMAND_SNIPPETS.core.quickstart,
@@ -118,13 +119,13 @@ export function renderBootstrapDoc() {
118
119
  "",
119
120
  ...renderCommandBlock(BOOTSTRAP_PREFLIGHT_COMMANDS),
120
121
  "",
121
- "After preflight, follow the configured workflow mode. In repositories configured for `branch_pr`, start with `agentplane help work start`, keep local PR artifacts current with `agentplane pr ...`, wait for hosted required checks with `bun run workflow:wait-remote-checks`, and only then integrate on base; use the direct-mode route below only when `workflow_mode=direct` is intentional.",
122
+ `After preflight, follow the configured workflow mode. In repositories configured for \`branch_pr\`, start with \`agentplane help work start\`, keep local PR artifacts current with \`agentplane pr ...\`, ${BRANCH_PR_HOSTED_GATE_GUIDANCE}, and only then integrate on base; use the direct-mode route below only when \`workflow_mode=direct\` is intentional.`,
122
123
  "",
123
124
  ...renderBootstrapSectionLines(BOOTSTRAP_SECTIONS),
124
125
  "",
125
126
  "## Non-default paths",
126
127
  "",
127
- "- `branch_pr`: in repositories configured this way, start a task branch/worktree, maintain PR artifacts, wait for hosted required checks, and let INTEGRATOR close on base only after the remote gate is green.",
128
+ `- \`branch_pr\`: in repositories configured this way, start a task branch/worktree, maintain PR artifacts, ${BRANCH_PR_HOSTED_GATE_GUIDANCE}, and let INTEGRATOR close on base only after the remote gate is green.`,
128
129
  "- `direct`: use `task new/plan approve/start-ready -> task verify-show -> verify -> finish` only when `workflow_mode=direct` is intentional.",
129
130
  "- Use manual close flags only when a specific policy or recovery situation requires them.",
130
131
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAqGF,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAMvE;AAMD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAO,GAC/C,MAAM,GAAG,IAAI,CA6Bf;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAqCzC"}
1
+ {"version":3,"file":"command-guide.d.ts","sourceRoot":"","sources":["../../src/cli/command-guide.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAqGF,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAMvE;AAMD,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAO,GAC/C,MAAM,GAAG,IAAI,CA6Bf;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAsCzC"}
@@ -1,5 +1,5 @@
1
1
  import { COMMAND_SNIPPETS } from "./command-snippets.js";
2
- import { BOOTSTRAP_PREFLIGHT_COMMANDS, BOOTSTRAP_TASK_PREP_COMMANDS } from "./bootstrap-guide.js";
2
+ import { BOOTSTRAP_PREFLIGHT_COMMANDS, BOOTSTRAP_TASK_PREP_COMMANDS, BRANCH_PR_HOSTED_GATE_GUIDANCE, } from "./bootstrap-guide.js";
3
3
  const SHARED_STARTUP_NOTE = `- Shared startup path: \`${COMMAND_SNIPPETS.core.quickstart}\` is the canonical installed bootstrap; use \`${COMMAND_SNIPPETS.core.role}\` to activate the current role before role-scoped planning or execution.`;
4
4
  function renderQuickstartCommandBlock(commands) {
5
5
  return ["```bash", ...commands, "```"];
@@ -66,7 +66,7 @@ const ROLE_GUIDES = [
66
66
  role: "INTEGRATOR",
67
67
  lines: [
68
68
  SHARED_STARTUP_NOTE,
69
- '- branch_pr: require a green hosted PR gate first (`bun run workflow:wait-remote-checks` on the task branch or PR), then run `agentplane pr check <task-id>` -> `agentplane integrate <task-id> --branch task/<task-id>/<slug> --merge-strategy squash --run-verify` -> `agentplane finish <task-id> --commit <git-rev> --author INTEGRATOR --body "Verified: ..." --result "..." --close-commit` on the base branch.',
69
+ `- branch_pr: require a green hosted PR gate first (${BRANCH_PR_HOSTED_GATE_GUIDANCE}), then run \`agentplane pr check <task-id>\` -> \`agentplane integrate <task-id> --branch task/<task-id>/<slug> --merge-strategy squash --run-verify\` -> \`agentplane finish <task-id> --commit <git-rev> --author INTEGRATOR --body "Verified: ..." --result "..." --close-commit\` on the base branch.`,
70
70
  "- branch_pr hosted shortcut: if GitHub merges the task PR directly, `Task Hosted Close` pushes the deterministic closure branch automatically and opens the follow-up closure PR when organization policy allows Actions PR creation; otherwise it leaves a manual PR link on the merged task PR. Pull the updated base branch after that closure PR merges instead of creating a local finish-only tail commit.",
71
71
  `- direct: the task owner normally closes with \`${COMMAND_SNIPPETS.core.finishTask}\` plus \`--result "..." \`.`,
72
72
  "- For branch-level flags and branch/base diagnostics, use `agentplane help work start`, `agentplane help integrate`, and `agentplane help branch base`.",
@@ -159,7 +159,7 @@ export function renderQuickstart() {
159
159
  "",
160
160
  "Configured workflow route:",
161
161
  "",
162
- "- `branch_pr`: start from `agentplane help work start`, keep local PR artifacts current with `agentplane pr ...`, wait for hosted required checks with `bun run workflow:wait-remote-checks`, then integrate on base.",
162
+ `- \`branch_pr\`: start from \`agentplane help work start\`, keep local PR artifacts current with \`agentplane pr ...\`, ${BRANCH_PR_HOSTED_GATE_GUIDANCE}, then integrate on base.`,
163
163
  `- \`direct\`: task setup is \`${BOOTSTRAP_TASK_PREP_COMMANDS[0]}\` -> \`${BOOTSTRAP_TASK_PREP_COMMANDS[1]}\` -> \`${BOOTSTRAP_TASK_PREP_COMMANDS[2]}\`.`,
164
164
  `- \`direct\`: execution is \`${COMMAND_SNIPPETS.core.startTask}\` -> \`${COMMAND_SNIPPETS.core.taskVerifyShow}\` -> \`${COMMAND_SNIPPETS.core.verifyTask}\` -> \`${COMMAND_SNIPPETS.core.finishTask}\` with \`--result "..." \`.`,
165
165
  "- In `direct`, `finish` creates the deterministic close commit by default; do not assume that route is the repository default when `workflow_mode=branch_pr`.",
@@ -173,7 +173,8 @@ export function renderQuickstart() {
173
173
  "",
174
174
  "## Non-default",
175
175
  "",
176
- "- `branch_pr`: use `agentplane help work start`, `agentplane help pr`, `bun run workflow:wait-remote-checks`, and `agentplane help integrate` when the repository is configured that way.",
176
+ "- `branch_pr`: use `agentplane help work start`, `agentplane help pr`, `agentplane pr check <task-id>`, and `agentplane help integrate` when the repository is configured that way.",
177
+ "- Framework maintainers may use repo-local helper scripts such as `bun run workflow:wait-remote-checks` when those scripts exist; installed user repositories must not depend on them.",
177
178
  "- Recovery/mixed state: use `agentplane doctor`, `agentplane upgrade`, and `agentplane runtime explain`.",
178
179
  "- Manual close or allowlist details belong in command-specific help, not on this first screen.",
179
180
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate-v2.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/orchestrate-v2.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2D7C,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsOlB"}
1
+ {"version":3,"file":"orchestrate-v2.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/orchestrate-v2.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2D7C,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CA6OlB"}
@@ -1,6 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { buildExecutionProfile } from "@agentplaneorg/core/config";
3
3
  import { setPinnedBaseBranch } from "@agentplaneorg/core/git";
4
+ import { collectHooksInstallConflicts } from "../../../../commands/hooks/install.js";
4
5
  import { cmdHooksInstall, ensureInitCommit } from "../../../../commands/workflow.js";
5
6
  import { getVersion } from "../../../../meta/version.js";
6
7
  import { CliError } from "../../../../shared/errors.js";
@@ -108,10 +109,10 @@ export async function cmdInitV2(opts) {
108
109
  path.join(resolved.agentplaneDir, "backends", backend.backend),
109
110
  ];
110
111
  const initFiles = [configPath, backendPath];
111
- const conflicts = await collectInitConflicts({ initDirs, initFiles });
112
+ const initConflicts = await collectInitConflicts({ initDirs, initFiles });
112
113
  const gatewayPath = path.join(resolved.gitRoot, policyGatewayFileName(policy.policyGateway));
113
114
  const agentsMissing = !(await fileExists(gatewayPath));
114
- if (conflicts.length > 0 && agentsMissing) {
115
+ if (initConflicts.length > 0 && agentsMissing) {
115
116
  await ensureAgentplaneDirs(resolved.agentplaneDir, backend.backend);
116
117
  await ensureAgentsFiles({
117
118
  gitRoot: resolved.gitRoot,
@@ -122,6 +123,13 @@ export async function cmdInitV2(opts) {
122
123
  backendPathAbs: backendPath,
123
124
  });
124
125
  }
126
+ const hookConflicts = advanced.hooks
127
+ ? await collectHooksInstallConflicts({
128
+ gitRoot: resolved.gitRoot,
129
+ agentplaneDir: resolved.agentplaneDir,
130
+ })
131
+ : [];
132
+ const conflicts = [...new Set([...initConflicts, ...hookConflicts])];
125
133
  const conflictChoice = opts.flags.force || opts.flags.backup
126
134
  ? null
127
135
  : await promptConflictResolverStep({
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/orchestrate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAazD,OAAO,KAAK,EAAsB,UAAU,EAAsB,MAAM,YAAY,CAAC;AAsCrF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CA+TlB"}
1
+ {"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/orchestrate.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAazD,OAAO,KAAK,EAAsB,UAAU,EAAsB,MAAM,YAAY,CAAC;AAsCrF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAsUlB"}
@@ -2,6 +2,7 @@ import path from "node:path";
2
2
  import { buildExecutionProfile } from "@agentplaneorg/core/config";
3
3
  import { setPinnedBaseBranch } from "@agentplaneorg/core/git";
4
4
  import { cmdHooksInstall, ensureInitCommit } from "../../../../commands/workflow.js";
5
+ import { collectHooksInstallConflicts } from "../../../../commands/hooks/install.js";
5
6
  import { getVersion } from "../../../../meta/version.js";
6
7
  import { CliError } from "../../../../shared/errors.js";
7
8
  import { policyGatewayFileName } from "../../../../shared/policy-gateway.js";
@@ -209,10 +210,10 @@ export async function cmdInit(opts) {
209
210
  path.join(resolved.agentplaneDir, "backends", backend),
210
211
  ];
211
212
  const initFiles = [configPath, backendPath];
212
- const conflicts = await collectInitConflicts({ initDirs, initFiles });
213
+ const initConflicts = await collectInitConflicts({ initDirs, initFiles });
213
214
  const gatewayPath = path.join(resolved.gitRoot, policyGatewayFileName(policyGateway));
214
215
  const agentsMissing = !(await fileExists(gatewayPath));
215
- if (conflicts.length > 0 && agentsMissing) {
216
+ if (initConflicts.length > 0 && agentsMissing) {
216
217
  await ensureAgentplaneDirs(resolved.agentplaneDir, backend);
217
218
  await ensureAgentsFiles({
218
219
  gitRoot: resolved.gitRoot,
@@ -223,6 +224,13 @@ export async function cmdInit(opts) {
223
224
  backendPathAbs: backendPath,
224
225
  });
225
226
  }
227
+ const hookConflicts = hooks
228
+ ? await collectHooksInstallConflicts({
229
+ gitRoot: resolved.gitRoot,
230
+ agentplaneDir: resolved.agentplaneDir,
231
+ })
232
+ : [];
233
+ const conflicts = [...new Set([...initConflicts, ...hookConflicts])];
226
234
  await handleInitConflicts({
227
235
  gitRoot: resolved.gitRoot,
228
236
  conflicts,
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/recipes.ts"],"names":[],"mappings":"AAKA,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAK3E;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../../src/cli/run-cli/commands/init/recipes.ts"],"names":[],"mappings":"AAKA,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CASrE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAK3E;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrF;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
@@ -3,7 +3,9 @@ import { readAndMigrateInstalledRecipesFile } from "../../../../commands/recipes
3
3
  import { resolveInstalledRecipesPath } from "../../../../commands/recipes/impl/paths.js";
4
4
  import { CliError } from "../../../../shared/errors.js";
5
5
  export async function listCachedRecipes() {
6
- const cached = await readAndMigrateInstalledRecipesFile(resolveInstalledRecipesPath());
6
+ const cached = await readAndMigrateInstalledRecipesFile(resolveInstalledRecipesPath(), {
7
+ dropInvalidEntries: true,
8
+ });
7
9
  return cached.recipes.map((recipe) => ({
8
10
  id: recipe.id,
9
11
  summary: recipe.manifest.summary,