@entelligentsia/forgecli 0.11.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +324 -0
  2. package/README.md +2 -1
  3. package/dist/CHANGELOG-forge-plugin.md +210 -0
  4. package/dist/bin/forge.js +20 -1
  5. package/dist/bin/forge.js.map +1 -1
  6. package/dist/extensions/forgecli/ask-user-tool.js +32 -20
  7. package/dist/extensions/forgecli/ask-user-tool.js.map +1 -1
  8. package/dist/extensions/forgecli/config-layer.d.ts +15 -0
  9. package/dist/extensions/forgecli/config-layer.js +4 -1
  10. package/dist/extensions/forgecli/config-layer.js.map +1 -1
  11. package/dist/extensions/forgecli/config-writer.js +4 -1
  12. package/dist/extensions/forgecli/config-writer.js.map +1 -1
  13. package/dist/extensions/forgecli/enhance.js +1 -1
  14. package/dist/extensions/forgecli/enhance.js.map +1 -1
  15. package/dist/extensions/forgecli/fix-bug.js +31 -1
  16. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  17. package/dist/extensions/forgecli/forge-cli-schema.json +19 -0
  18. package/dist/extensions/forgecli/forge-tools.js +80 -0
  19. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  20. package/dist/extensions/forgecli/forge-update-command.js +24 -18
  21. package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
  22. package/dist/extensions/forgecli/friction-emit.d.ts +97 -0
  23. package/dist/extensions/forgecli/friction-emit.js +246 -0
  24. package/dist/extensions/forgecli/friction-emit.js.map +1 -0
  25. package/dist/extensions/forgecli/health-check.d.ts +10 -0
  26. package/dist/extensions/forgecli/health-check.js +160 -8
  27. package/dist/extensions/forgecli/health-check.js.map +1 -1
  28. package/dist/extensions/forgecli/hook-dispatcher.js +24 -2
  29. package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
  30. package/dist/extensions/forgecli/hooks/write-guard.js +5 -1
  31. package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -1
  32. package/dist/extensions/forgecli/index.js +29 -5
  33. package/dist/extensions/forgecli/index.js.map +1 -1
  34. package/dist/extensions/forgecli/lib/store-error-remediation.d.ts +65 -0
  35. package/dist/extensions/forgecli/lib/store-error-remediation.js +298 -0
  36. package/dist/extensions/forgecli/lib/store-error-remediation.js.map +1 -0
  37. package/dist/extensions/forgecli/regenerate.d.ts +22 -0
  38. package/dist/extensions/forgecli/regenerate.js +133 -3
  39. package/dist/extensions/forgecli/regenerate.js.map +1 -1
  40. package/dist/extensions/forgecli/run-sprint.js +16 -1
  41. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  42. package/dist/extensions/forgecli/run-task.js +30 -8
  43. package/dist/extensions/forgecli/run-task.js.map +1 -1
  44. package/dist/extensions/forgecli/skill-curation-flag.d.ts +21 -0
  45. package/dist/extensions/forgecli/skill-curation-flag.js +71 -0
  46. package/dist/extensions/forgecli/skill-curation-flag.js.map +1 -0
  47. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +101 -0
  48. package/dist/extensions/forgecli/skill-curator-subagent.js +342 -0
  49. package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -0
  50. package/dist/extensions/forgecli/skill-retriever.d.ts +84 -0
  51. package/dist/extensions/forgecli/skill-retriever.js +246 -0
  52. package/dist/extensions/forgecli/skill-retriever.js.map +1 -0
  53. package/dist/extensions/forgecli/skill-usage-tracker.d.ts +91 -0
  54. package/dist/extensions/forgecli/skill-usage-tracker.js +224 -0
  55. package/dist/extensions/forgecli/skill-usage-tracker.js.map +1 -0
  56. package/dist/extensions/forgecli/store-resolver.d.ts +18 -0
  57. package/dist/extensions/forgecli/store-resolver.js +44 -4
  58. package/dist/extensions/forgecli/store-resolver.js.map +1 -1
  59. package/dist/extensions/forgecli/store-validator.d.ts +3 -0
  60. package/dist/extensions/forgecli/store-validator.js +4 -2
  61. package/dist/extensions/forgecli/store-validator.js.map +1 -1
  62. package/dist/forge-payload/.base-pack/personas/supervisor.md +9 -0
  63. package/dist/forge-payload/.base-pack/workflows/enhance.md +344 -18
  64. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  65. package/dist/forge-payload/.schemas/event.schema.json +20 -2
  66. package/dist/forge-payload/.schemas/migrations.json +112 -0
  67. package/dist/forge-payload/.schemas/proposal.schema.json +40 -0
  68. package/dist/forge-payload/agents/store-query-validator.md +103 -0
  69. package/dist/forge-payload/agents/tomoshibi.md +185 -0
  70. package/dist/forge-payload/commands/regenerate.md +109 -20
  71. package/dist/forge-payload/hooks/check-update.js +378 -0
  72. package/dist/forge-payload/hooks/forge-permissions.js +158 -0
  73. package/dist/forge-payload/hooks/triage-error.js +71 -0
  74. package/dist/forge-payload/hooks/validate-write.js +236 -0
  75. package/dist/forge-payload/integrity.json +32 -0
  76. package/dist/forge-payload/meta/workflows/meta-enhance.md +344 -18
  77. package/dist/forge-payload/schemas/structure-manifest.json +511 -0
  78. package/dist/forge-payload/tools/build-persona-pack.cjs +120 -11
  79. package/dist/forge-payload/tools/compression-gate.cjs +192 -0
  80. package/dist/forge-payload/tools/delete-candidate-detector.cjs +114 -0
  81. package/dist/forge-payload/tools/judge-proposal.cjs +177 -0
  82. package/dist/forge-payload/tools/manage-versions.cjs +132 -4
  83. package/dist/forge-payload/tools/queue-drain.cjs +152 -0
  84. package/dist/forge-payload/tools/replay-scoring.cjs +117 -0
  85. package/node_modules/@mariozechner/clipboard/package.json +2 -1
  86. package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +3 -0
  87. package/node_modules/@mariozechner/clipboard-linux-x64-musl/clipboard.linux-x64-musl.node +0 -0
  88. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  89. package/package.json +4 -2
@@ -104,6 +104,7 @@ export function registerForgeTools(pi, forgeRoot, projectRoot) {
104
104
  registerForgeStoreDescribe(pi, toolDir, projectRoot);
105
105
  registerForgeStoreTemplate(pi, toolDir, projectRoot);
106
106
  registerForgeStoreQuery(pi, toolDir, projectRoot);
107
+ registerForgeVerifyApply(pi, toolDir, projectRoot);
107
108
  registerForgeToolDiscipline(pi);
108
109
  }
109
110
  /**
@@ -414,4 +415,83 @@ function registerForgeStoreQuery(pi, toolDir, projectRoot) {
414
415
  },
415
416
  });
416
417
  }
418
+ // ── forge_verify_apply (forge-cli#31) ────────────────────────────────────────
419
+ //
420
+ // Detects hallucinated Edit calls — when the agent claims to have modified a
421
+ // file but the actual on-disk content is unchanged. Background: hello testbench
422
+ // 17:48 session showed the agent's "Files Modified" UI report claimed 5 edits
423
+ // applied; the snap-4 archive captured by add-snapshot afterwards showed only
424
+ // 1 of 5 files actually changed on disk. The other 4 were silent Edit-tool
425
+ // failures (typically old_string whitespace mismatches) the agent didn't notice.
426
+ //
427
+ // Contract: agent calls this tool AFTER applying edits, BEFORE calling
428
+ // manage-versions add-snapshot. Tool runs generation-manifest check on each
429
+ // claimed file and returns structured results. Agent uses the output to detect
430
+ // its own failures, re-apply hallucinated edits, then re-verify.
431
+ //
432
+ // Output schema (JSON string):
433
+ // {
434
+ // "modified": ["<path>", ...], // verified — content differs from manifest baseline (exit 1)
435
+ // "unchanged": ["<path>", ...], // pristine — agent claim was wrong (exit 0)
436
+ // "untracked": ["<path>", ...], // no manifest entry — ambiguous
437
+ // "missing": ["<path>", ...] // file doesn't exist
438
+ // }
439
+ //
440
+ // Exit semantics from generation-manifest.cjs check:
441
+ // 0 = pristine → file matches recorded hash, NO change → "unchanged"
442
+ // 1 = modified → file differs from recorded hash → "modified" (verified ✓)
443
+ // 2 = untracked → no manifest entry → "untracked"
444
+ // 3 = file missing → "missing"
445
+ function registerForgeVerifyApply(pi, toolDir, projectRoot) {
446
+ pi.registerTool({
447
+ name: "forge_verify_apply",
448
+ label: "Forge Verify Apply",
449
+ description: "Verify file modifications actually landed on disk. Call AFTER applying enhancement edits, " +
450
+ "BEFORE invoking manage-versions add-snapshot. Detects hallucinated Edit-tool calls (e.g. when " +
451
+ "old_string didn't match exactly and the Edit silently no-op'd). Returns structured results: " +
452
+ "`modified` (verified — change is on disk), `unchanged` (agent claim was wrong — re-apply needed), " +
453
+ "`untracked` (no manifest entry — ambiguous, treat as potentially modified), `missing` (file gone). " +
454
+ "If `unchanged.length > 0`, RE-APPLY those edits via Edit/Write and call this tool again until empty.",
455
+ promptSnippet: "After Phase 2 apply, call forge_verify_apply with the list of claimed file paths. " +
456
+ "If `unchanged` is non-empty, re-apply those edits before snapshot.",
457
+ parameters: Type.Object({
458
+ claimed_paths: Type.Array(Type.String(), {
459
+ description: "Project-root-relative paths of files you claim to have modified (e.g. " +
460
+ "['.forge/personas/architect.md', '.forge/skills/engineer-skills.md']). Paths " +
461
+ "outside .forge/{personas,skills,workflows,templates}/ are accepted but classified " +
462
+ "according to manifest state regardless.",
463
+ }),
464
+ }),
465
+ async execute(_toolCallId, params, signal) {
466
+ void signal;
467
+ const manifestTool = path.join(toolDir, "generation-manifest.cjs");
468
+ if (!fs.existsSync(manifestTool)) {
469
+ return errResult(`forge_verify_apply failed: generation-manifest.cjs not found at ${manifestTool}`);
470
+ }
471
+ const result = { modified: [], unchanged: [], untracked: [], missing: [] };
472
+ const { spawnSync } = await import("node:child_process");
473
+ for (const claimedPath of params.claimed_paths) {
474
+ const r = spawnSync("node", [manifestTool, "check", claimedPath], { cwd: projectRoot, encoding: "utf8", timeout: 5_000 });
475
+ switch (r.status) {
476
+ case 0:
477
+ result.unchanged.push(claimedPath);
478
+ break;
479
+ case 1:
480
+ result.modified.push(claimedPath);
481
+ break;
482
+ case 2:
483
+ result.untracked.push(claimedPath);
484
+ break;
485
+ case 3:
486
+ result.missing.push(claimedPath);
487
+ break;
488
+ default:
489
+ // Tool error — surface as missing for safety; the agent should investigate
490
+ result.missing.push(claimedPath);
491
+ }
492
+ }
493
+ return okResult(JSON.stringify(result, null, 2));
494
+ },
495
+ });
496
+ }
417
497
  //# sourceMappingURL=forge-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forge-tools.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-tools.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,gFAAgF;AAChF,mDAAmD;AACnD,qDAAqD;AACrD,0DAA0D;AAC1D,yDAAyD;AACzD,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,SAAiB;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC;QACJ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,MAAM,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,2CAA2C;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,MAAM,CACpB,QAAgB,EAChB,IAAc,EACd,MAA+B,EAC/B,SAAiB,EACjB,WAAmB;IAEnB,MAAM,IAAI,GAAwC;QACjD,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,SAAS;KAClB,CAAC;IACF,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,8DAA8D;QAC7D,IAAY,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,OAAO;QACN,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1F,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC1F,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,QAAQ,CAAC,IAAY;IAC7B,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QACxD,OAAO,EAAE,EAAa;KACtB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC9B,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,EAAa;QACtB,OAAO,EAAE,IAAa;KACtB,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAgB,EAAE,SAAiB,EAAE,WAAmB;IAC1F,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/C,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,0BAA0B,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,mBAAmB,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9C,0BAA0B,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,0BAA0B,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAClD,2BAA2B,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,2BAA2B,CAAC,EAAgB;IACpD,sEAAsE;IACtE,wEAAwE;IACxE,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO;IACxC,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;CAoBpB,CAAC;QACA,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,YAAY,EAAE,QAAQ,GAAG,UAAU,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,oBAAoB,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACnF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,4FAA4F;QACzG,aAAa,EAAE,8DAA8D;QAC7E,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC;gBACX,WAAW,EAAE,oEAAoE;aACjF,CAAC,CACF;YACD,WAAW,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,yDAAyD;aACtE,CAAC,CACF;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,wCAAwC;aACrD,CAAC,CACF;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,WAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,yBAAyB,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC3E,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,kBAAkB,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACjF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,WAAW,EACV,sFAAsF;YACtF,0FAA0F;YAC1F,wEAAwE;YACxE,wHAAwH;YACxH,mEAAmE;YACnE,2EAA2E;YAC3E,iEAAiE;YACjE,2DAA2D;YAC3D,gHAAgH;YAChH,iFAAiF;YACjF,+HAA+H;YAC/H,gDAAgD;YAChD,wEAAwE;YACxE,oCAAoC;YACpC,4EAA4E;YAC5E,6HAA6H;YAC7H,qHAAqH;QACtH,aAAa,EACZ,uEAAuE;YACvE,uFAAuF;YACvF,wDAAwD;QACzD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;gBACpB,WAAW,EACV,8MAA8M;aAC/M,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;gBAC/B,WAAW,EACV,yDAAyD;oBACzD,0EAA0E;oBAC1E,8CAA8C;oBAC9C,mEAAmE;aACpE,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,iDAAiD;aAC9D,CAAC,CACF;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACrD,MAAM,IAAI,GAAa,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,uBAAuB,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YACzE,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,0BAA0B,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACzF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACV,yEAAyE;YACzE,mGAAmG;YACnG,4DAA4D;QAC7D,aAAa,EAAE,yEAAyE;QACxF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,GAAG,EAAE,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,yCAAyC;aACtD,CAAC,CACF;YACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,yBAAyB;aACtC,CAAC,CACF;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,OAAO,CAAC;gBACZ,WAAW,EAAE,2BAA2B;aACxC,CAAC,CACF;SACD,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,MAAM,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAKT,CAAC;gBACF,yDAAyD;gBACzD,2DAA2D;gBAC3D,6DAA6D;gBAC7D,kEAAkE;gBAClE,gDAAgD;gBAChD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAChD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/D,OAAO,QAAQ,CAAC,MAAM,IAAI,0BAA0B,CAAC,CAAC;gBACvD,CAAC;gBACD,+CAA+C;gBAC/C,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,mBAAmB,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IAClF,sEAAsE;IACtE,4DAA4D;IAC5D,2EAA2E;IAC3E,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;QACrB,WAAW,EACV,uEAAuE;YACvE,gFAAgF;QACjF,aAAa,EAAE,iEAAiE;QAChF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,IAAI,CAAC,KAAK,CACrB;gBACC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;aAClC,EACD,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAC5C;YACD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;gBAC/B,WAAW,EACV,qGAAqG;aACtG,CAAC;SACF,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YACzD,MAAM,IAAI,GAAa,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3D,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC5E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,wBAAwB,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAChC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EACnH,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAC3C,CAAC;AAEF,SAAS,0BAA0B,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACzF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACV,gGAAgG;YAChG,yGAAyG;QAC1G,aAAa,EACZ,mHAAmH;QACpH,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,MAAM,EAAE,cAAc;SACtB,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACnG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,0BAA0B,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACzF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACV,gGAAgG;YAChG,0GAA0G;YAC1G,yGAAyG;QAC1G,aAAa,EACZ,8HAA8H;QAC/H,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,MAAM,EAAE,cAAc;SACtB,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACnG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,uBAAuB,CAAC,EAAgB,EAAE,OAAe,EAAE,WAAmB;IACtF,EAAE,CAAC,YAAY,CAAC;QACf,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACV,+GAA+G;YAC/G,oFAAoF;YACpF,0GAA0G;YAC1G,gIAAgI;YAChI,0GAA0G;QAC3G,aAAa,EACZ,gGAAgG;YAChG,6FAA6F;QAC9F,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACzF,WAAW,EACV,qHAAqH;aACtH,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;gBAC/B,WAAW,EACV,sDAAsD;oBACtD,4CAA4C;oBAC5C,+FAA+F;oBAC/F,4BAA4B;aAC7B,CAAC;SACF,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACrD,MAAM,IAAI,GAAa,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC;gBACJ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;gBACtC,OAAO,SAAS,CAAC,6BAA6B,CAAC,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;YAC/E,CAAC;QACF,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"forge-tools.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-tools.ts"],"names":[],"mappings":"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"}
@@ -231,29 +231,35 @@ export function registerForgeUpdateCommand(pi, opts) {
231
231
  `Check your network and retry, or upgrade manually: npm i -g ${PKG_NAME}@latest`, "error");
232
232
  return;
233
233
  }
234
+ // CLI npm-package upgrade and project↔bundle migration are orthogonal:
235
+ // the bundle can drift even when the CLI is already at npm's latest
236
+ // (locally-built CLI ahead of npm, fresh machine, cleared drift cache).
237
+ // Run each gate independently — both fall through to the migration
238
+ // block, only confirm-decline / npm-failure short-circuit. (#32 follow-up)
234
239
  const current = opts.currentCliVersion;
235
240
  if (!isUpgrade(current, release.version)) {
236
241
  ctx.ui.notify(`forge:update — already at the latest version (${current}; latest published: ${release.version}).`, "info");
237
- return;
238
- }
239
- // 3. Show changelog + confirm (AC#3)
240
- const summary = composeChangelogSummary(current, release.version, release.body);
241
- const proceed = await ctx.ui.confirm(`Upgrade forgecli ${current} → ${release.version}?`, summary);
242
- if (!proceed) {
243
- ctx.ui.notify("forge:update — cancelled.", "info");
244
- return;
245
242
  }
246
- // 4. Spawn npm i -g (AC#4 — execFile, no shell)
247
- ctx.ui.setStatus("forge:update", `Upgrading to ${release.version}…`);
248
- const result = await upgrade(`${PKG_NAME}@${release.version}`);
249
- ctx.ui.setStatus("forge:update", undefined);
250
- if (!result.ok) {
251
- ctx.ui.notify(`forge:update — npm i -g failed: ${truncate(result.stderr, 400)}. ` +
252
- "Check the error above; you may need elevated permissions to install globally.", "error");
253
- return;
243
+ else {
244
+ // 3. Show changelog + confirm (AC#3)
245
+ const summary = composeChangelogSummary(current, release.version, release.body);
246
+ const proceed = await ctx.ui.confirm(`Upgrade forgecli ${current} → ${release.version}?`, summary);
247
+ if (!proceed) {
248
+ ctx.ui.notify("forge:update — cancelled.", "info");
249
+ return;
250
+ }
251
+ // 4. Spawn npm i -g (AC#4 — execFile, no shell)
252
+ ctx.ui.setStatus("forge:update", `Upgrading to ${release.version}…`);
253
+ const result = await upgrade(`${PKG_NAME}@${release.version}`);
254
+ ctx.ui.setStatus("forge:update", undefined);
255
+ if (!result.ok) {
256
+ ctx.ui.notify(`forge:update — npm i -g failed: ${truncate(result.stderr, 400)}. ` +
257
+ "Check the error above; you may need elevated permissions to install globally.", "error");
258
+ return;
259
+ }
260
+ ctx.ui.notify(`forge:update — installed ${PKG_NAME}@${release.version}. ` +
261
+ "Restart your forge session for the new version to take effect.", "info");
254
262
  }
255
- ctx.ui.notify(`forge:update — installed ${PKG_NAME}@${release.version}. ` +
256
- "Restart your forge session for the new version to take effect.", "info");
257
263
  // 5. Migration prompt — offer to apply project migrations (§2A, §2D)
258
264
  // Only runs when the caller has opted into migration support by providing
259
265
  // migrationRunner or currentBundledForgeVersion. Without those the command
@@ -1 +1 @@
1
- {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge-update-command.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-update-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import { type Static, Type } from "typebox";
2
+ /**
3
+ * One retrieved-and-classified skill for the closed task. `retrieved`
4
+ * comes from T08 (skill-retriever); `used` from T09 (skill-usage-tracker).
5
+ * `retrievalScore` is the T08 score (informational — surfaces in evidence).
6
+ */
7
+ export declare const RetrievedSkillSignalSchema: Type.TObject<{
8
+ skillId: Type.TString;
9
+ retrieved: Type.TBoolean;
10
+ used: Type.TBoolean;
11
+ retrievalScore: Type.TNumber;
12
+ }>;
13
+ export type RetrievedSkillSignal = Static<typeof RetrievedSkillSignalSchema>;
14
+ /** Per-skill historical signal — supplied by caller from sprint history. */
15
+ export declare const SkillHistorySchema: Type.TObject<{
16
+ consecutiveUnusedSprints: Type.TInteger;
17
+ }>;
18
+ export type SkillHistory = Static<typeof SkillHistorySchema>;
19
+ /** One pairwise retrieval-overlap measurement for the closed task. */
20
+ export declare const PairwiseOverlapSchema: Type.TObject<{
21
+ skillA: Type.TString;
22
+ skillB: Type.TString;
23
+ overlap: Type.TNumber;
24
+ }>;
25
+ export type PairwiseOverlap = Static<typeof PairwiseOverlapSchema>;
26
+ export declare const FrictionInputsSchema: Type.TObject<{
27
+ retrievedSkills: Type.TArray<Type.TObject<{
28
+ skillId: Type.TString;
29
+ retrieved: Type.TBoolean;
30
+ used: Type.TBoolean;
31
+ retrievalScore: Type.TNumber;
32
+ }>>;
33
+ taskSuccess: Type.TBoolean;
34
+ toolErrorCount: Type.TInteger;
35
+ history: Type.TRecord<"^.*$", Type.TObject<{
36
+ consecutiveUnusedSprints: Type.TInteger;
37
+ }>>;
38
+ pairwiseRetrievalOverlap: Type.TOptional<Type.TArray<Type.TObject<{
39
+ skillA: Type.TString;
40
+ skillB: Type.TString;
41
+ overlap: Type.TNumber;
42
+ }>>>;
43
+ }>;
44
+ export type FrictionInputs = Static<typeof FrictionInputsSchema>;
45
+ export declare const FRICTION_SUBKINDS: readonly ["skill_unused", "skill_failed", "skill_missing", "skill_stale", "skill_redundant"];
46
+ export type FrictionSubkind = (typeof FRICTION_SUBKINDS)[number];
47
+ /**
48
+ * One classifier output. `skillId` is `undefined` for `skill_missing`
49
+ * (no skill to attribute) but always set for the other four subkinds.
50
+ */
51
+ export interface FrictionSignal {
52
+ subkind: FrictionSubkind;
53
+ skillId: string | undefined;
54
+ evidence: Record<string, unknown>;
55
+ }
56
+ /** Runtime attribution supplied by the orchestrator (IL10). */
57
+ export declare const FrictionEmitRuntimeSchema: Type.TObject<{
58
+ storeCli: Type.TString;
59
+ cwd: Type.TString;
60
+ sprintId: Type.TString;
61
+ taskId: Type.TString;
62
+ role: Type.TString;
63
+ action: Type.TString;
64
+ workflow: Type.TString;
65
+ persona: Type.TString;
66
+ phase: Type.TOptional<Type.TString>;
67
+ iteration: Type.TOptional<Type.TInteger>;
68
+ startTimestamp: Type.TString;
69
+ endTimestamp: Type.TString;
70
+ durationMinutes: Type.TNumber;
71
+ model: Type.TString;
72
+ provider: Type.TString;
73
+ }>;
74
+ export type FrictionEmitRuntime = Static<typeof FrictionEmitRuntimeSchema>;
75
+ export interface FrictionEmitResult {
76
+ emitted: number;
77
+ failed: number;
78
+ stderrs: string[];
79
+ }
80
+ /**
81
+ * Apply the five gating rules and return one signal per matching emit.
82
+ * Pure: no IO, no subprocess. Caller decides whether/when to emit.
83
+ *
84
+ * The `skill_unused` and `skill_failed` gates are mutually exclusive by
85
+ * design — on a failed task we emit `skill_failed` (when used) rather
86
+ * than `skill_unused`, so the two signals never double-count the same
87
+ * outcome.
88
+ */
89
+ export declare function computeFrictionSignals(inputs: FrictionInputs): FrictionSignal[];
90
+ /**
91
+ * Emit one `friction` event per signal via
92
+ * `node <storeCli> emit <sprintId> <json>`. Runtime attribution
93
+ * (model/provider/timestamps/eventId) is supplied by the caller — never
94
+ * fabricated. Failures surface in the result counter; nothing is thrown
95
+ * for subprocess failure.
96
+ */
97
+ export declare function emitFrictionEvents(signals: readonly FrictionSignal[], runtime: FrictionEmitRuntime): FrictionEmitResult;
@@ -0,0 +1,246 @@
1
+ // Auto-emit friction events with 5 skill subkinds — FORGE-S24-T11.
2
+ //
3
+ // At task close, the orchestrator hands a snapshot of {retrieved skills,
4
+ // usage verdicts (T09), task outcome, observed tool errors, per-skill
5
+ // historical "unused" counts, pairwise retrieval overlaps} to this module.
6
+ // `computeFrictionSignals` is a pure classifier; `emitFrictionEvents` writes
7
+ // one `friction` event per signal via `node <storeCli> emit <sprintId> …`.
8
+ //
9
+ // Gating logic (acceptance criteria FORGE-S24-T11):
10
+ // - skill_unused : retrieved && !used && task.success
11
+ // - skill_failed : retrieved && used && !task.success
12
+ // - skill_missing : !retrieved && task.success && tool_errors ≥ 2
13
+ // - skill_stale : retrieved && !used across 3 consecutive sprints
14
+ // - skill_redundant : two skills' retrieval overlap > 0.8 in this task
15
+ //
16
+ // Each event carries `{type: "friction", workflow, persona, issue, subkind,
17
+ // skillId, evidence, …runtime attribution}`. The required-trio
18
+ // `{workflow, persona, issue}` is what the event schema (plugin v0.45.x)
19
+ // enforces for `type === "friction"`.
20
+ //
21
+ // Telemetry-actor split (IL10):
22
+ // - Orchestrator owns emission. Subagents never call this module directly.
23
+ // - Runtime attribution (model/provider/timestamps/durationMinutes) is
24
+ // SUPPLIED by the orchestrator — never fabricated here.
25
+ //
26
+ // Iron Laws (forge-cli-engineer):
27
+ // IL1 — code only under forge-cli/src/extensions/forgecli/
28
+ // IL2 — TypeScript + TypeBox. Runtime inputs validated via Value.Parse.
29
+ // IL6 — argv-array spawn. No shell-string interpolation.
30
+ // IL7 — failures surface in the returned counter and stderrs[]; nothing
31
+ // is silently swallowed.
32
+ // IL10 — orchestrator-side emission only; subagent never invokes.
33
+ //
34
+ // Scope boundary: this module classifies and emits. It does NOT crawl
35
+ // the trajectory, decide what counts as a "tool error", or compute
36
+ // retrieval overlaps. The caller (orchestrator handler in run-task.ts /
37
+ // fix-bug.ts, gated by FORGE-S24-T12 flag) does that and passes the
38
+ // shaped inputs in.
39
+ import { spawnSync } from "node:child_process";
40
+ import { isSkillCurationEnabled } from "./skill-curation-flag.js";
41
+ import { Type } from "typebox";
42
+ import { Value } from "typebox/value";
43
+ // ── Public schemas ──────────────────────────────────────────────────────────
44
+ /**
45
+ * One retrieved-and-classified skill for the closed task. `retrieved`
46
+ * comes from T08 (skill-retriever); `used` from T09 (skill-usage-tracker).
47
+ * `retrievalScore` is the T08 score (informational — surfaces in evidence).
48
+ */
49
+ export const RetrievedSkillSignalSchema = Type.Object({
50
+ skillId: Type.String({ minLength: 1 }),
51
+ retrieved: Type.Boolean(),
52
+ used: Type.Boolean(),
53
+ retrievalScore: Type.Number({ minimum: 0, maximum: 1 }),
54
+ });
55
+ /** Per-skill historical signal — supplied by caller from sprint history. */
56
+ export const SkillHistorySchema = Type.Object({
57
+ consecutiveUnusedSprints: Type.Integer({ minimum: 0 }),
58
+ });
59
+ /** One pairwise retrieval-overlap measurement for the closed task. */
60
+ export const PairwiseOverlapSchema = Type.Object({
61
+ skillA: Type.String({ minLength: 1 }),
62
+ skillB: Type.String({ minLength: 1 }),
63
+ overlap: Type.Number({ minimum: 0, maximum: 1 }),
64
+ });
65
+ export const FrictionInputsSchema = Type.Object({
66
+ retrievedSkills: Type.Array(RetrievedSkillSignalSchema),
67
+ taskSuccess: Type.Boolean(),
68
+ toolErrorCount: Type.Integer({ minimum: 0 }),
69
+ history: Type.Record(Type.String(), SkillHistorySchema),
70
+ pairwiseRetrievalOverlap: Type.Optional(Type.Array(PairwiseOverlapSchema)),
71
+ });
72
+ export const FRICTION_SUBKINDS = [
73
+ "skill_unused",
74
+ "skill_failed",
75
+ "skill_missing",
76
+ "skill_stale",
77
+ "skill_redundant",
78
+ ];
79
+ /** Runtime attribution supplied by the orchestrator (IL10). */
80
+ export const FrictionEmitRuntimeSchema = Type.Object({
81
+ storeCli: Type.String({ minLength: 1 }),
82
+ cwd: Type.String({ minLength: 1 }),
83
+ sprintId: Type.String({ minLength: 1 }),
84
+ taskId: Type.String({ minLength: 1 }),
85
+ role: Type.String({ minLength: 1 }),
86
+ action: Type.String({ minLength: 1 }),
87
+ workflow: Type.String({ minLength: 1 }),
88
+ persona: Type.String({ minLength: 1 }),
89
+ phase: Type.Optional(Type.String()),
90
+ iteration: Type.Optional(Type.Integer({ minimum: 1 })),
91
+ startTimestamp: Type.String({ format: "date-time" }),
92
+ endTimestamp: Type.String({ format: "date-time" }),
93
+ durationMinutes: Type.Number({ minimum: 0 }),
94
+ model: Type.String({ minLength: 1 }),
95
+ provider: Type.String({ minLength: 1 }),
96
+ });
97
+ // ── Classification ──────────────────────────────────────────────────────────
98
+ const STALE_THRESHOLD_SPRINTS = 3;
99
+ const REDUNDANCY_OVERLAP_FLOOR = 0.8;
100
+ const MISSING_TOOL_ERROR_FLOOR = 2;
101
+ /**
102
+ * Apply the five gating rules and return one signal per matching emit.
103
+ * Pure: no IO, no subprocess. Caller decides whether/when to emit.
104
+ *
105
+ * The `skill_unused` and `skill_failed` gates are mutually exclusive by
106
+ * design — on a failed task we emit `skill_failed` (when used) rather
107
+ * than `skill_unused`, so the two signals never double-count the same
108
+ * outcome.
109
+ */
110
+ export function computeFrictionSignals(inputs) {
111
+ Value.Parse(FrictionInputsSchema, inputs);
112
+ const signals = [];
113
+ for (const s of inputs.retrievedSkills) {
114
+ // skill_unused — retrieved, not used, task succeeded.
115
+ if (s.retrieved && !s.used && inputs.taskSuccess) {
116
+ signals.push({
117
+ subkind: "skill_unused",
118
+ skillId: s.skillId,
119
+ evidence: {
120
+ retrievalScore: s.retrievalScore,
121
+ taskSuccess: true,
122
+ },
123
+ });
124
+ }
125
+ // skill_failed — retrieved, used, task failed.
126
+ if (s.retrieved && s.used && !inputs.taskSuccess) {
127
+ signals.push({
128
+ subkind: "skill_failed",
129
+ skillId: s.skillId,
130
+ evidence: {
131
+ retrievalScore: s.retrievalScore,
132
+ toolErrorCount: inputs.toolErrorCount,
133
+ },
134
+ });
135
+ }
136
+ // skill_stale — retrieved, not used, and the same {retrieved && !used}
137
+ // pattern has held across STALE_THRESHOLD_SPRINTS consecutive sprints.
138
+ if (s.retrieved && !s.used) {
139
+ const hist = inputs.history[s.skillId];
140
+ if (hist && hist.consecutiveUnusedSprints >= STALE_THRESHOLD_SPRINTS) {
141
+ signals.push({
142
+ subkind: "skill_stale",
143
+ skillId: s.skillId,
144
+ evidence: {
145
+ consecutiveUnusedSprints: hist.consecutiveUnusedSprints,
146
+ },
147
+ });
148
+ }
149
+ }
150
+ }
151
+ // skill_missing — no skill retrieved AND task succeeded AND ≥2 tool errors.
152
+ // Emitted once per task (no skillId — there's nothing to attribute).
153
+ if (inputs.retrievedSkills.length === 0 &&
154
+ inputs.taskSuccess &&
155
+ inputs.toolErrorCount >= MISSING_TOOL_ERROR_FLOOR) {
156
+ signals.push({
157
+ subkind: "skill_missing",
158
+ skillId: undefined,
159
+ evidence: {
160
+ toolErrorCount: inputs.toolErrorCount,
161
+ },
162
+ });
163
+ }
164
+ // skill_redundant — pairwise retrieval overlap strictly > 0.8. Emit one
165
+ // signal per pair, attributed to the FIRST skill in the pair (skillA).
166
+ for (const p of inputs.pairwiseRetrievalOverlap ?? []) {
167
+ if (p.overlap > REDUNDANCY_OVERLAP_FLOOR) {
168
+ signals.push({
169
+ subkind: "skill_redundant",
170
+ skillId: p.skillA,
171
+ evidence: {
172
+ pairedWith: p.skillB,
173
+ overlap: p.overlap,
174
+ },
175
+ });
176
+ }
177
+ }
178
+ return signals;
179
+ }
180
+ // ── Emission ────────────────────────────────────────────────────────────────
181
+ /** ISO-compact timestamp segment for eventId composition. */
182
+ function isoCompact(iso) {
183
+ return iso.replace(/[-:.]/g, "").replace(/Z$/, "Z");
184
+ }
185
+ /**
186
+ * Emit one `friction` event per signal via
187
+ * `node <storeCli> emit <sprintId> <json>`. Runtime attribution
188
+ * (model/provider/timestamps/eventId) is supplied by the caller — never
189
+ * fabricated. Failures surface in the result counter; nothing is thrown
190
+ * for subprocess failure.
191
+ */
192
+ export function emitFrictionEvents(signals, runtime) {
193
+ // FORGE-S24-T12 — gated rollout. Default off ⇒ no friction events
194
+ // for the five SKILL-CURATION subkinds (skill_unused, skill_failed,
195
+ // skill_missing, skill_stale, skill_redundant). Note: this gate
196
+ // applies to the auto-emit module landed in FORGE-S24-T11. The
197
+ // existing orchestrator friction channel (non-skill subkinds) goes
198
+ // through `forge/tools/friction-emit.cjs` and is not gated here.
199
+ if (!isSkillCurationEnabled(runtime.cwd)) {
200
+ return { emitted: 0, failed: 0, stderrs: [] };
201
+ }
202
+ Value.Parse(FrictionEmitRuntimeSchema, runtime);
203
+ let emitted = 0;
204
+ let failed = 0;
205
+ const stderrs = [];
206
+ for (let i = 0; i < signals.length; i++) {
207
+ const sig = signals[i];
208
+ const idTail = sig.skillId ?? "none";
209
+ const eventId = `${isoCompact(runtime.startTimestamp)}_${runtime.taskId}_friction_${sig.subkind}_${i}_${idTail}`;
210
+ const event = {
211
+ eventId,
212
+ sprintId: runtime.sprintId,
213
+ taskId: runtime.taskId,
214
+ role: runtime.role,
215
+ action: runtime.action,
216
+ startTimestamp: runtime.startTimestamp,
217
+ endTimestamp: runtime.endTimestamp,
218
+ durationMinutes: runtime.durationMinutes,
219
+ model: runtime.model,
220
+ provider: runtime.provider,
221
+ type: "friction",
222
+ workflow: runtime.workflow,
223
+ persona: runtime.persona,
224
+ issue: sig.subkind,
225
+ subkind: sig.subkind,
226
+ evidence: sig.evidence,
227
+ };
228
+ if (sig.skillId !== undefined)
229
+ event.skillId = sig.skillId;
230
+ if (runtime.phase !== undefined)
231
+ event.phase = runtime.phase;
232
+ if (runtime.iteration !== undefined)
233
+ event.iteration = runtime.iteration;
234
+ const result = spawnSync("node", [runtime.storeCli, "emit", runtime.sprintId, JSON.stringify(event)], { cwd: runtime.cwd, encoding: "utf8" });
235
+ if (result.status === 0) {
236
+ emitted++;
237
+ }
238
+ else {
239
+ failed++;
240
+ const stderr = typeof result.stderr === "string" ? result.stderr : "";
241
+ stderrs.push(stderr);
242
+ }
243
+ }
244
+ return { emitted, failed, stderrs };
245
+ }
246
+ //# sourceMappingURL=friction-emit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"friction-emit.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/friction-emit.ts"],"names":[],"mappings":"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"}
@@ -37,3 +37,13 @@ export declare function checkModifiedGeneratedFiles(cwd: string, bundleRoot: str
37
37
  * Silently returns [] if forgeRoot is not provided or integrity.json is missing.
38
38
  */
39
39
  export declare function checkPluginIntegrity(forgeRoot: string): HealthGap[];
40
+ /**
41
+ * Run check-structure.cjs to verify expected generated files exist.
42
+ * Returns one HealthGap per missing/extra file, or silently [] if absent.
43
+ */
44
+ export declare function checkStructure(cwd: string, bundleRoot: string): HealthGap[];
45
+ /**
46
+ * Run verify-integrity.cjs to detect plugin file tampering.
47
+ * Returns one HealthGap per modified file, or silently [] if absent.
48
+ */
49
+ export declare function checkVerifyIntegrity(forgeRoot: string): HealthGap[];