@entelligentsia/forgecli 1.0.21 → 1.0.25

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 (232) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/CHANGELOG-forge-plugin.md +118 -0
  3. package/dist/extensions/forgecli/forge-tools.d.ts +1 -0
  4. package/dist/extensions/forgecli/forge-tools.js +73 -0
  5. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  6. package/dist/extensions/forgecli/lib/forge-root.d.ts +5 -0
  7. package/dist/extensions/forgecli/lib/forge-root.js +14 -1
  8. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
  9. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +1 -0
  10. package/dist/extensions/forgecli/orchestrators/fix-bug.js +26 -0
  11. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -1
  12. package/dist/extensions/forgecli/orchestrators/run-sprint.js +49 -0
  13. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -1
  14. package/dist/forge-payload/.base-pack/workflows/_fragments/event-emission-schema.md +4 -0
  15. package/dist/forge-payload/.base-pack/workflows/_fragments/event-vocabulary.md +88 -0
  16. package/dist/forge-payload/.base-pack/workflows/commit_task.md +41 -38
  17. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +3 -3
  18. package/dist/forge-payload/.base-pack/workflows-js/wfl-fix-bug.js +42 -6
  19. package/dist/forge-payload/.base-pack/workflows-js/wfl-run-task.js +32 -1
  20. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  21. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  22. package/dist/forge-payload/.schemas/event.schema.json +8 -3
  23. package/dist/forge-payload/.schemas/migrations.json +56 -0
  24. package/dist/forge-payload/integrity.json +3 -3
  25. package/dist/forge-payload/meta/store-schema/event.schema.md +7 -0
  26. package/dist/forge-payload/meta/workflows/_fragments/event-emission-schema.md +4 -0
  27. package/dist/forge-payload/meta/workflows/_fragments/event-vocabulary.md +88 -0
  28. package/dist/forge-payload/meta/workflows/meta-commit.md +46 -43
  29. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +7 -2
  30. package/dist/forge-payload/meta/workflows/meta-implement.md +3 -3
  31. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +4 -1
  32. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  33. package/dist/forge-payload/schemas/event.schema.json +8 -3
  34. package/dist/forge-payload/schemas/structure-manifest.json +4 -2
  35. package/dist/forge-payload/tools/commit-task.cjs +218 -0
  36. package/dist/forge-payload/tools/store-cli.cjs +6 -1
  37. package/node_modules/@mariozechner/clipboard/package.json +2 -1
  38. package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +3 -0
  39. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  40. package/package.json +2 -2
  41. package/dist/extensions/forgecli/add-pipeline.d.ts +0 -19
  42. package/dist/extensions/forgecli/add-pipeline.js +0 -143
  43. package/dist/extensions/forgecli/add-pipeline.js.map +0 -1
  44. package/dist/extensions/forgecli/add-task.d.ts +0 -20
  45. package/dist/extensions/forgecli/add-task.js +0 -154
  46. package/dist/extensions/forgecli/add-task.js.map +0 -1
  47. package/dist/extensions/forgecli/approve.d.ts +0 -22
  48. package/dist/extensions/forgecli/approve.js +0 -152
  49. package/dist/extensions/forgecli/approve.js.map +0 -1
  50. package/dist/extensions/forgecli/banner.d.ts +0 -10
  51. package/dist/extensions/forgecli/banner.js +0 -36
  52. package/dist/extensions/forgecli/banner.js.map +0 -1
  53. package/dist/extensions/forgecli/calibrate.d.ts +0 -64
  54. package/dist/extensions/forgecli/calibrate.js +0 -481
  55. package/dist/extensions/forgecli/calibrate.js.map +0 -1
  56. package/dist/extensions/forgecli/collate.d.ts +0 -22
  57. package/dist/extensions/forgecli/collate.js +0 -134
  58. package/dist/extensions/forgecli/collate.js.map +0 -1
  59. package/dist/extensions/forgecli/commit.d.ts +0 -22
  60. package/dist/extensions/forgecli/commit.js +0 -152
  61. package/dist/extensions/forgecli/commit.js.map +0 -1
  62. package/dist/extensions/forgecli/config-command.d.ts +0 -8
  63. package/dist/extensions/forgecli/config-command.js +0 -67
  64. package/dist/extensions/forgecli/config-command.js.map +0 -1
  65. package/dist/extensions/forgecli/config-layer.d.ts +0 -53
  66. package/dist/extensions/forgecli/config-layer.js +0 -72
  67. package/dist/extensions/forgecli/config-layer.js.map +0 -1
  68. package/dist/extensions/forgecli/config-writer.d.ts +0 -16
  69. package/dist/extensions/forgecli/config-writer.js +0 -69
  70. package/dist/extensions/forgecli/config-writer.js.map +0 -1
  71. package/dist/extensions/forgecli/enhance.d.ts +0 -27
  72. package/dist/extensions/forgecli/enhance.js +0 -199
  73. package/dist/extensions/forgecli/enhance.js.map +0 -1
  74. package/dist/extensions/forgecli/fix-bug.d.ts +0 -85
  75. package/dist/extensions/forgecli/fix-bug.js +0 -1580
  76. package/dist/extensions/forgecli/fix-bug.js.map +0 -1
  77. package/dist/extensions/forgecli/forge-header.d.ts +0 -12
  78. package/dist/extensions/forgecli/forge-header.js +0 -114
  79. package/dist/extensions/forgecli/forge-header.js.map +0 -1
  80. package/dist/extensions/forgecli/forge-init.d.ts +0 -26
  81. package/dist/extensions/forgecli/forge-init.js +0 -514
  82. package/dist/extensions/forgecli/forge-init.js.map +0 -1
  83. package/dist/extensions/forgecli/forge-root.d.ts +0 -10
  84. package/dist/extensions/forgecli/forge-root.js +0 -62
  85. package/dist/extensions/forgecli/forge-root.js.map +0 -1
  86. package/dist/extensions/forgecli/forge-update-command.d.ts +0 -100
  87. package/dist/extensions/forgecli/forge-update-command.js +0 -435
  88. package/dist/extensions/forgecli/forge-update-command.js.map +0 -1
  89. package/dist/extensions/forgecli/friction-emit.d.ts +0 -99
  90. package/dist/extensions/forgecli/friction-emit.js +0 -245
  91. package/dist/extensions/forgecli/friction-emit.js.map +0 -1
  92. package/dist/extensions/forgecli/implement.d.ts +0 -22
  93. package/dist/extensions/forgecli/implement.js +0 -170
  94. package/dist/extensions/forgecli/implement.js.map +0 -1
  95. package/dist/extensions/forgecli/init-context.d.ts +0 -99
  96. package/dist/extensions/forgecli/init-context.js +0 -178
  97. package/dist/extensions/forgecli/init-context.js.map +0 -1
  98. package/dist/extensions/forgecli/init-progress.d.ts +0 -39
  99. package/dist/extensions/forgecli/init-progress.js +0 -117
  100. package/dist/extensions/forgecli/init-progress.js.map +0 -1
  101. package/dist/extensions/forgecli/input-router.d.ts +0 -33
  102. package/dist/extensions/forgecli/input-router.js +0 -136
  103. package/dist/extensions/forgecli/input-router.js.map +0 -1
  104. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +0 -59
  105. package/dist/extensions/forgecli/lib/halt-advisor.js +0 -113
  106. package/dist/extensions/forgecli/lib/halt-advisor.js.map +0 -1
  107. package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +0 -46
  108. package/dist/extensions/forgecli/lib/orchestrator-preflight.js +0 -64
  109. package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +0 -1
  110. package/dist/extensions/forgecli/materialize.d.ts +0 -16
  111. package/dist/extensions/forgecli/materialize.js +0 -195
  112. package/dist/extensions/forgecli/materialize.js.map +0 -1
  113. package/dist/extensions/forgecli/migrate.d.ts +0 -22
  114. package/dist/extensions/forgecli/migrate.js +0 -260
  115. package/dist/extensions/forgecli/migrate.js.map +0 -1
  116. package/dist/extensions/forgecli/migration-engine.d.ts +0 -117
  117. package/dist/extensions/forgecli/migration-engine.js +0 -563
  118. package/dist/extensions/forgecli/migration-engine.js.map +0 -1
  119. package/dist/extensions/forgecli/model-registry.d.ts +0 -61
  120. package/dist/extensions/forgecli/model-registry.js +0 -127
  121. package/dist/extensions/forgecli/model-registry.js.map +0 -1
  122. package/dist/extensions/forgecli/model-resolver.d.ts +0 -32
  123. package/dist/extensions/forgecli/model-resolver.js +0 -65
  124. package/dist/extensions/forgecli/model-resolver.js.map +0 -1
  125. package/dist/extensions/forgecli/model-validator.d.ts +0 -29
  126. package/dist/extensions/forgecli/model-validator.js +0 -107
  127. package/dist/extensions/forgecli/model-validator.js.map +0 -1
  128. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +0 -26
  129. package/dist/extensions/forgecli/orchestrator-status-bar.js +0 -213
  130. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +0 -1
  131. package/dist/extensions/forgecli/plan.d.ts +0 -22
  132. package/dist/extensions/forgecli/plan.js +0 -167
  133. package/dist/extensions/forgecli/plan.js.map +0 -1
  134. package/dist/extensions/forgecli/quiz-agent.d.ts +0 -17
  135. package/dist/extensions/forgecli/quiz-agent.js +0 -98
  136. package/dist/extensions/forgecli/quiz-agent.js.map +0 -1
  137. package/dist/extensions/forgecli/read-command.d.ts +0 -2
  138. package/dist/extensions/forgecli/read-command.js +0 -100
  139. package/dist/extensions/forgecli/read-command.js.map +0 -1
  140. package/dist/extensions/forgecli/regenerate.d.ts +0 -40
  141. package/dist/extensions/forgecli/regenerate.js +0 -438
  142. package/dist/extensions/forgecli/regenerate.js.map +0 -1
  143. package/dist/extensions/forgecli/remove-command.d.ts +0 -17
  144. package/dist/extensions/forgecli/remove-command.js +0 -124
  145. package/dist/extensions/forgecli/remove-command.js.map +0 -1
  146. package/dist/extensions/forgecli/report-bug.d.ts +0 -25
  147. package/dist/extensions/forgecli/report-bug.js +0 -159
  148. package/dist/extensions/forgecli/report-bug.js.map +0 -1
  149. package/dist/extensions/forgecli/retrospective.d.ts +0 -20
  150. package/dist/extensions/forgecli/retrospective.js +0 -126
  151. package/dist/extensions/forgecli/retrospective.js.map +0 -1
  152. package/dist/extensions/forgecli/review-code.d.ts +0 -35
  153. package/dist/extensions/forgecli/review-code.js +0 -196
  154. package/dist/extensions/forgecli/review-code.js.map +0 -1
  155. package/dist/extensions/forgecli/review-plan.d.ts +0 -35
  156. package/dist/extensions/forgecli/review-plan.js +0 -200
  157. package/dist/extensions/forgecli/review-plan.js.map +0 -1
  158. package/dist/extensions/forgecli/run-sprint.d.ts +0 -27
  159. package/dist/extensions/forgecli/run-sprint.js +0 -716
  160. package/dist/extensions/forgecli/run-sprint.js.map +0 -1
  161. package/dist/extensions/forgecli/run-task.d.ts +0 -204
  162. package/dist/extensions/forgecli/run-task.js +0 -1403
  163. package/dist/extensions/forgecli/run-task.js.map +0 -1
  164. package/dist/extensions/forgecli/skill-curation-flag.d.ts +0 -21
  165. package/dist/extensions/forgecli/skill-curation-flag.js +0 -71
  166. package/dist/extensions/forgecli/skill-curation-flag.js.map +0 -1
  167. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +0 -102
  168. package/dist/extensions/forgecli/skill-curator-subagent.js +0 -339
  169. package/dist/extensions/forgecli/skill-curator-subagent.js.map +0 -1
  170. package/dist/extensions/forgecli/skill-retriever.d.ts +0 -84
  171. package/dist/extensions/forgecli/skill-retriever.js +0 -246
  172. package/dist/extensions/forgecli/skill-retriever.js.map +0 -1
  173. package/dist/extensions/forgecli/skill-usage-tracker.d.ts +0 -91
  174. package/dist/extensions/forgecli/skill-usage-tracker.js +0 -224
  175. package/dist/extensions/forgecli/skill-usage-tracker.js.map +0 -1
  176. package/dist/extensions/forgecli/sprint-intake.d.ts +0 -10
  177. package/dist/extensions/forgecli/sprint-intake.js +0 -91
  178. package/dist/extensions/forgecli/sprint-intake.js.map +0 -1
  179. package/dist/extensions/forgecli/sprint-plan.d.ts +0 -14
  180. package/dist/extensions/forgecli/sprint-plan.js +0 -122
  181. package/dist/extensions/forgecli/sprint-plan.js.map +0 -1
  182. package/dist/extensions/forgecli/status-command.d.ts +0 -19
  183. package/dist/extensions/forgecli/status-command.js +0 -140
  184. package/dist/extensions/forgecli/status-command.js.map +0 -1
  185. package/dist/extensions/forgecli/store-error-remediation.d.ts +0 -65
  186. package/dist/extensions/forgecli/store-error-remediation.js +0 -307
  187. package/dist/extensions/forgecli/store-error-remediation.js.map +0 -1
  188. package/dist/extensions/forgecli/store-query.d.ts +0 -22
  189. package/dist/extensions/forgecli/store-query.js +0 -107
  190. package/dist/extensions/forgecli/store-query.js.map +0 -1
  191. package/dist/extensions/forgecli/store-repair.d.ts +0 -17
  192. package/dist/extensions/forgecli/store-repair.js +0 -123
  193. package/dist/extensions/forgecli/store-repair.js.map +0 -1
  194. package/dist/extensions/forgecli/store-resolver.d.ts +0 -56
  195. package/dist/extensions/forgecli/store-resolver.js +0 -263
  196. package/dist/extensions/forgecli/store-resolver.js.map +0 -1
  197. package/dist/extensions/forgecli/store-validator.d.ts +0 -16
  198. package/dist/extensions/forgecli/store-validator.js +0 -32
  199. package/dist/extensions/forgecli/store-validator.js.map +0 -1
  200. package/dist/extensions/forgecli/test-orchestrate.d.ts +0 -2
  201. package/dist/extensions/forgecli/test-orchestrate.js +0 -182
  202. package/dist/extensions/forgecli/test-orchestrate.js.map +0 -1
  203. package/dist/extensions/forgecli/thread-switcher.d.ts +0 -5
  204. package/dist/extensions/forgecli/thread-switcher.js +0 -189
  205. package/dist/extensions/forgecli/thread-switcher.js.map +0 -1
  206. package/dist/extensions/forgecli/transition-guard.d.ts +0 -20
  207. package/dist/extensions/forgecli/transition-guard.js +0 -89
  208. package/dist/extensions/forgecli/transition-guard.js.map +0 -1
  209. package/dist/extensions/forgecli/update-check.d.ts +0 -37
  210. package/dist/extensions/forgecli/update-check.js +0 -185
  211. package/dist/extensions/forgecli/update-check.js.map +0 -1
  212. package/dist/extensions/forgecli/update-tools.d.ts +0 -23
  213. package/dist/extensions/forgecli/update-tools.js +0 -135
  214. package/dist/extensions/forgecli/update-tools.js.map +0 -1
  215. package/dist/extensions/forgecli/validate.d.ts +0 -22
  216. package/dist/extensions/forgecli/validate.js +0 -152
  217. package/dist/extensions/forgecli/validate.js.map +0 -1
  218. package/dist/extensions/forgecli/viewport-events.d.ts +0 -78
  219. package/dist/extensions/forgecli/viewport-events.js +0 -243
  220. package/dist/extensions/forgecli/viewport-events.js.map +0 -1
  221. package/dist/extensions/forgecli/viewport-renderer.d.ts +0 -83
  222. package/dist/extensions/forgecli/viewport-renderer.js +0 -233
  223. package/dist/extensions/forgecli/viewport-renderer.js.map +0 -1
  224. package/dist/extensions/forgecli/viewport-theme.d.ts +0 -11
  225. package/dist/extensions/forgecli/viewport-theme.js +0 -128
  226. package/dist/extensions/forgecli/viewport-theme.js.map +0 -1
  227. package/dist/extensions/forgecli/whats-new-widget.d.ts +0 -26
  228. package/dist/extensions/forgecli/whats-new-widget.js +0 -376
  229. package/dist/extensions/forgecli/whats-new-widget.js.map +0 -1
  230. package/dist/extensions/forgecli/whats-new.d.ts +0 -120
  231. package/dist/extensions/forgecli/whats-new.js +0 -470
  232. package/dist/extensions/forgecli/whats-new.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-curator-subagent.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/skill-curator-subagent.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- import lunr from "lunr";
2
- import { type Static, Type } from "typebox";
3
- /**
4
- * One skill in the retrieval corpus. `frontmatter` is the parsed YAML head
5
- * of the SKILL.md file (matches `loaders/persona-skill-loader.ts` Skill shape
6
- * for `frontmatter` field). Only `description` plus selected frontmatter
7
- * fields are indexed — the body is intentionally excluded to keep the index
8
- * small and keyword-focused.
9
- */
10
- export declare const RetrievableSkillSchema: Type.TObject<{
11
- skillId: Type.TString;
12
- name: Type.TString;
13
- description: Type.TString;
14
- frontmatter: Type.TRecord<"^.*$", Type.TUnknown>;
15
- }>;
16
- export type RetrievableSkill = Static<typeof RetrievableSkillSchema>;
17
- export declare const RetrievalHitSchema: Type.TObject<{
18
- skillId: Type.TString;
19
- score: Type.TNumber;
20
- }>;
21
- export type RetrievalHit = Static<typeof RetrievalHitSchema>;
22
- /**
23
- * Runtime attribution supplied by the caller (orchestrator).
24
- * These are NEVER fabricated inside the retriever (IL10).
25
- */
26
- export declare const EmitRuntimeSchema: Type.TObject<{
27
- storeCli: Type.TString;
28
- cwd: Type.TString;
29
- sprintId: Type.TString;
30
- taskId: Type.TString;
31
- role: Type.TString;
32
- action: Type.TString;
33
- phase: Type.TOptional<Type.TString>;
34
- iteration: Type.TOptional<Type.TInteger>;
35
- startTimestamp: Type.TString;
36
- endTimestamp: Type.TString;
37
- durationMinutes: Type.TNumber;
38
- model: Type.TString;
39
- provider: Type.TString;
40
- }>;
41
- export type EmitRuntime = Static<typeof EmitRuntimeSchema>;
42
- export interface EmitResult {
43
- emitted: number;
44
- failed: number;
45
- stderrs: string[];
46
- }
47
- /**
48
- * Opaque handle returned by `buildSkillIndex`. Internally pairs the lunr
49
- * index with the corpus so `retrieveTopK` can return the original skillIds.
50
- */
51
- export interface SkillIndex {
52
- readonly _index: lunr.Index;
53
- readonly _byRef: Map<string, RetrievableSkill>;
54
- }
55
- /**
56
- * Build a BM25 index over the supplied corpus. Indexed fields:
57
- * - `name` (boost 4) — the skill identifier itself
58
- * - `description` (boost 2) — primary intent text
59
- * - `frontmatter` (boost 1) — tags / aliases
60
- *
61
- * lunr's default scoring is Okapi BM25.
62
- */
63
- export declare function buildSkillIndex(corpus: readonly RetrievableSkill[]): SkillIndex;
64
- /**
65
- * Return the top-k skills by BM25 score for the given query. Deterministic
66
- * for fixed (corpus, query) pairs. Returns `[]` when no token in the query
67
- * is present in any indexed field.
68
- */
69
- export declare function retrieveTopK(index: SkillIndex, query: string, k: number): RetrievalHit[];
70
- /**
71
- * Clamp a raw BM25 score into the [0,1] window required by the event
72
- * schema (`retrieval_score`). BM25 scores are unbounded above; we apply
73
- * `s / (1 + s)` so the relative ordering is preserved while the absolute
74
- * value is monotonically squashed into (0,1). Negative scores (lunr never
75
- * produces these in practice) clamp to 0.
76
- */
77
- export declare function clampRetrievalScore(rawScore: number): number;
78
- /**
79
- * Emit one `skill_usage` event per supplied hit via
80
- * `node <storeCli> emit <sprintId> <json>`. Returns the (emitted, failed)
81
- * counts. Never throws on subprocess failure — the failure is surfaced via
82
- * the returned counter and stderr text (IL7 — explicit, not silent).
83
- */
84
- export declare function emitSkillUsageEvents(hits: readonly RetrievalHit[], runtime: EmitRuntime): EmitResult;
@@ -1,246 +0,0 @@
1
- // Skill retriever — FORGE-S24-T08.
2
- //
3
- // BM25-ranked retrieval over the project's skill corpus using `lunr.js`
4
- // (exact-pinned in package.json). Each retrieval emits one `skill_usage`
5
- // event per top-k hit with `retrieved: true` and a populated, [0,1]-clamped
6
- // `retrieval_score`. Conforms to the canonical event schema variant landed
7
- // in FORGE-S24-T01 (plugin v0.45.0).
8
- //
9
- // Iron Laws (forge-cli-engineer):
10
- // IL2 — TypeScript + TypeBox. Schemas defined here; runtime input is
11
- // validated by `Value.Parse(...)` at the public entry points.
12
- // IL6 — No raw shell-string interpolation. `emitSkillUsageEvents` calls
13
- // `spawnSync("node", [storeCli, "emit", sprintId, JSON.stringify(event)])`
14
- // — argv array, no shell.
15
- // IL7 — No silent continuation past failures. A non-zero `store-cli emit`
16
- // exit increments the `failed` counter and the stderr text is
17
- // forwarded to the caller in the returned result; nothing is
18
- // swallowed.
19
- // IL10 — This module is a primitive consumed by orchestrator code. The
20
- // orchestrator/caller supplies the runtime attribution
21
- // (model/provider/timestamps/durationMinutes) — never fabricated
22
- // here.
23
- //
24
- // Scope boundary: this module owns ranking + emission. It does NOT crawl
25
- // the filesystem for skills; corpus construction (reading SKILL.md
26
- // frontmatter via `loaders/persona-skill-loader.ts`) is the caller's
27
- // responsibility. Keeping IO out of the retriever keeps the module
28
- // deterministic and trivially unit-testable.
29
- import lunr from "lunr";
30
- import { Type } from "typebox";
31
- import { Value } from "typebox/value";
32
- import { spawnStoreCliEmit } from "./lib/spawn-store-cli.js";
33
- import { isSkillCurationEnabled } from "./skill-curation-flag.js";
34
- // ── Public schemas ───────────────────────────────────────────────────────
35
- /**
36
- * One skill in the retrieval corpus. `frontmatter` is the parsed YAML head
37
- * of the SKILL.md file (matches `loaders/persona-skill-loader.ts` Skill shape
38
- * for `frontmatter` field). Only `description` plus selected frontmatter
39
- * fields are indexed — the body is intentionally excluded to keep the index
40
- * small and keyword-focused.
41
- */
42
- export const RetrievableSkillSchema = Type.Object({
43
- skillId: Type.String({ minLength: 1 }),
44
- name: Type.String({ minLength: 1 }),
45
- description: Type.String(),
46
- frontmatter: Type.Record(Type.String(), Type.Unknown()),
47
- });
48
- export const RetrievalHitSchema = Type.Object({
49
- skillId: Type.String({ minLength: 1 }),
50
- score: Type.Number(),
51
- });
52
- /**
53
- * Runtime attribution supplied by the caller (orchestrator).
54
- * These are NEVER fabricated inside the retriever (IL10).
55
- */
56
- export const EmitRuntimeSchema = Type.Object({
57
- storeCli: Type.String({ minLength: 1 }),
58
- cwd: Type.String({ minLength: 1 }),
59
- sprintId: Type.String({ minLength: 1 }),
60
- taskId: Type.String({ minLength: 1 }),
61
- role: Type.String({ minLength: 1 }),
62
- action: Type.String({ minLength: 1 }),
63
- phase: Type.Optional(Type.String()),
64
- iteration: Type.Optional(Type.Integer({ minimum: 1 })),
65
- startTimestamp: Type.String({ format: "date-time" }),
66
- endTimestamp: Type.String({ format: "date-time" }),
67
- durationMinutes: Type.Number({ minimum: 0 }),
68
- model: Type.String({ minLength: 1 }),
69
- provider: Type.String({ minLength: 1 }),
70
- });
71
- /** Join indexable frontmatter fields (tags + name) into a single string. */
72
- function frontmatterText(fm) {
73
- const parts = [];
74
- if (typeof fm.name === "string")
75
- parts.push(fm.name);
76
- const tags = fm.tags;
77
- if (Array.isArray(tags)) {
78
- for (const t of tags)
79
- if (typeof t === "string")
80
- parts.push(t);
81
- }
82
- const aliases = fm.aliases;
83
- if (Array.isArray(aliases)) {
84
- for (const a of aliases)
85
- if (typeof a === "string")
86
- parts.push(a);
87
- }
88
- return parts.join(" ");
89
- }
90
- /**
91
- * Build a BM25 index over the supplied corpus. Indexed fields:
92
- * - `name` (boost 4) — the skill identifier itself
93
- * - `description` (boost 2) — primary intent text
94
- * - `frontmatter` (boost 1) — tags / aliases
95
- *
96
- * lunr's default scoring is Okapi BM25.
97
- */
98
- export function buildSkillIndex(corpus) {
99
- for (const s of corpus)
100
- Value.Parse(RetrievableSkillSchema, s);
101
- const byRef = new Map();
102
- for (const s of corpus)
103
- byRef.set(s.skillId, s);
104
- const index = lunr(function () {
105
- this.ref("skillId");
106
- this.field("name", { boost: 4 });
107
- this.field("description", { boost: 2 });
108
- this.field("frontmatter", { boost: 1 });
109
- // Determinism: lunr's pipeline is deterministic by construction; we do
110
- // not register custom plugins or randomised tokenisers.
111
- for (const s of corpus) {
112
- this.add({
113
- skillId: s.skillId,
114
- name: s.name,
115
- description: s.description,
116
- frontmatter: frontmatterText(s.frontmatter),
117
- });
118
- }
119
- });
120
- return { _index: index, _byRef: byRef };
121
- }
122
- // ── Retrieval ────────────────────────────────────────────────────────────
123
- /**
124
- * Tokenise the query for lunr. We lower-case, strip non-alphanumerics, and
125
- * drop empties. Avoids lunr's query-language operators (`:`, `^`, `~`,
126
- * `+`, `-`, `*`) leaking from natural-language task descriptions.
127
- */
128
- function safeQueryTokens(query) {
129
- return query
130
- .toLowerCase()
131
- .replace(/[^a-z0-9\s]+/g, " ")
132
- .split(/\s+/)
133
- .filter((t) => t.length > 0);
134
- }
135
- /**
136
- * Return the top-k skills by BM25 score for the given query. Deterministic
137
- * for fixed (corpus, query) pairs. Returns `[]` when no token in the query
138
- * is present in any indexed field.
139
- */
140
- export function retrieveTopK(index, query, k) {
141
- if (!Number.isInteger(k) || k <= 0) {
142
- throw new Error(`retrieveTopK: k must be a positive integer, got ${k}`);
143
- }
144
- const tokens = safeQueryTokens(query);
145
- if (tokens.length === 0)
146
- return [];
147
- let results;
148
- try {
149
- results = index._index.query((q) => {
150
- for (const t of tokens) {
151
- q.term(t, { usePipeline: true, boost: 1 });
152
- }
153
- });
154
- }
155
- catch {
156
- // lunr throws on a small set of malformed inputs; treat as no hits
157
- // rather than propagating an opaque error into the orchestrator.
158
- return [];
159
- }
160
- const hits = [];
161
- for (const r of results) {
162
- if (hits.length >= k)
163
- break;
164
- if (!index._byRef.has(r.ref))
165
- continue;
166
- hits.push({ skillId: r.ref, score: r.score });
167
- }
168
- return hits;
169
- }
170
- // ── Emission ─────────────────────────────────────────────────────────────
171
- /**
172
- * Clamp a raw BM25 score into the [0,1] window required by the event
173
- * schema (`retrieval_score`). BM25 scores are unbounded above; we apply
174
- * `s / (1 + s)` so the relative ordering is preserved while the absolute
175
- * value is monotonically squashed into (0,1). Negative scores (lunr never
176
- * produces these in practice) clamp to 0.
177
- */
178
- export function clampRetrievalScore(rawScore) {
179
- if (!Number.isFinite(rawScore) || rawScore <= 0)
180
- return 0;
181
- const squashed = rawScore / (1 + rawScore);
182
- if (squashed >= 1)
183
- return 1;
184
- return squashed;
185
- }
186
- /** Compose an ISO-compact timestamp segment for the eventId. */
187
- function isoCompact(iso) {
188
- return iso.replace(/[-:.]/g, "").replace(/Z$/, "Z");
189
- }
190
- /**
191
- * Emit one `skill_usage` event per supplied hit via
192
- * `node <storeCli> emit <sprintId> <json>`. Returns the (emitted, failed)
193
- * counts. Never throws on subprocess failure — the failure is surfaced via
194
- * the returned counter and stderr text (IL7 — explicit, not silent).
195
- */
196
- export function emitSkillUsageEvents(hits, runtime) {
197
- // FORGE-S24-T12 — gated rollout. Default off ⇒ zero events, zero
198
- // subprocess calls, byte-identical to pre-FORGE-S24 behaviour.
199
- if (!isSkillCurationEnabled(runtime.cwd)) {
200
- return { emitted: 0, failed: 0, stderrs: [] };
201
- }
202
- Value.Parse(EmitRuntimeSchema, runtime);
203
- let emitted = 0;
204
- let failed = 0;
205
- const stderrs = [];
206
- for (let i = 0; i < hits.length; i++) {
207
- const hit = hits[i];
208
- const eventId = `${isoCompact(runtime.startTimestamp)}_${runtime.taskId}_skill-retriever_skill_usage_${i}_${hit.skillId}`;
209
- const event = {
210
- eventId,
211
- sprintId: runtime.sprintId,
212
- taskId: runtime.taskId,
213
- role: runtime.role,
214
- action: runtime.action,
215
- startTimestamp: runtime.startTimestamp,
216
- endTimestamp: runtime.endTimestamp,
217
- durationMinutes: runtime.durationMinutes,
218
- model: runtime.model,
219
- provider: runtime.provider,
220
- type: "skill_usage",
221
- skillId: hit.skillId,
222
- retrieved: true,
223
- used: false,
224
- // No tool calls have happened yet at retrieval time. T09 (usage
225
- // tracker) will later emit a follow-up event with the observed
226
- // success rate.
227
- tool_call_success_rate: 0,
228
- retrieval_score: clampRetrievalScore(hit.score),
229
- };
230
- if (runtime.phase !== undefined)
231
- event.phase = runtime.phase;
232
- if (runtime.iteration !== undefined)
233
- event.iteration = runtime.iteration;
234
- // FORGE-S25-T17: adopt spawnStoreCliEmit; adds missing 10 s timeout (N-C-A).
235
- const emitResult = spawnStoreCliEmit(runtime.storeCli, runtime.sprintId, event, runtime.cwd);
236
- if (emitResult.ok) {
237
- emitted++;
238
- }
239
- else {
240
- failed++;
241
- stderrs.push(emitResult.stderr);
242
- }
243
- }
244
- return { emitted, failed, stderrs };
245
- }
246
- //# sourceMappingURL=skill-retriever.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-retriever.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/skill-retriever.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- import { type Static, Type } from "typebox";
2
- /**
3
- * One skill that was previously retrieved (T08) and is now being evaluated
4
- * for actual usage. `workflowSteps` is the list of declared step / tool /
5
- * action names the skill's SKILL.md (or workflow doc) advertises — these
6
- * are what we diff the trajectory against.
7
- *
8
- * Step matching is case-insensitive substring: a tool call's `name` matches
9
- * a workflow step if the step (after lowercasing + whitespace collapse)
10
- * appears anywhere in the tool call's name. This is intentionally permissive
11
- * — declared steps are human-authored phrases ("store-cli query"), and tool
12
- * call names may be qualified (`mcp__store__store-cli-query`). Misses bias
13
- * toward `used: false`, which is the safer of the two error modes for a
14
- * curation signal.
15
- */
16
- export declare const RetrievedSkillForTrackingSchema: Type.TObject<{
17
- skillId: Type.TString;
18
- name: Type.TString;
19
- workflowSteps: Type.TArray<Type.TString>;
20
- }>;
21
- export type RetrievedSkillForTracking = Static<typeof RetrievedSkillForTrackingSchema>;
22
- /** One observed tool invocation in the task's trajectory. */
23
- export declare const ToolCallObservationSchema: Type.TObject<{
24
- name: Type.TString;
25
- }>;
26
- export type ToolCallObservation = Static<typeof ToolCallObservationSchema>;
27
- /**
28
- * The observable trajectory of a closed task: the sequence of tool calls
29
- * the agent made, plus the concatenated reasoning / assistant text the
30
- * orchestrator captured. Both inputs are supplied by the caller — this
31
- * module does not read transcripts itself.
32
- */
33
- export declare const TaskTrajectorySchema: Type.TObject<{
34
- toolCalls: Type.TArray<Type.TObject<{
35
- name: Type.TString;
36
- }>>;
37
- reasoningText: Type.TString;
38
- }>;
39
- export type TaskTrajectory = Static<typeof TaskTrajectorySchema>;
40
- /**
41
- * Runtime attribution supplied by the caller (orchestrator).
42
- * These are NEVER fabricated inside the tracker (IL10).
43
- */
44
- export declare const EmitRuntimeSchema: Type.TObject<{
45
- storeCli: Type.TString;
46
- cwd: Type.TString;
47
- sprintId: Type.TString;
48
- taskId: Type.TString;
49
- role: Type.TString;
50
- action: Type.TString;
51
- phase: Type.TOptional<Type.TString>;
52
- iteration: Type.TOptional<Type.TInteger>;
53
- startTimestamp: Type.TString;
54
- endTimestamp: Type.TString;
55
- durationMinutes: Type.TNumber;
56
- model: Type.TString;
57
- provider: Type.TString;
58
- }>;
59
- export type EmitRuntime = Static<typeof EmitRuntimeSchema>;
60
- export interface EmitResult {
61
- emitted: number;
62
- failed: number;
63
- stderrs: string[];
64
- }
65
- /** Why the classifier ruled `used: true`, or `"none"` when it ruled false. */
66
- export type UsageSignal = "overlap" | "reasoning" | "none";
67
- export interface UsageVerdict {
68
- used: boolean;
69
- signal: UsageSignal;
70
- tool_call_success_rate: number;
71
- }
72
- /**
73
- * Apply the FORGE-S24-T09 heuristic to a single retrieved skill against
74
- * the observed task trajectory. Pure function — no IO, no allocation
75
- * beyond return value.
76
- */
77
- export declare function classifySkillUsage(skill: RetrievedSkillForTracking, trajectory: TaskTrajectory): UsageVerdict;
78
- /**
79
- * Emit one `skill_usage` tracking event per retrieved skill via
80
- * `node <storeCli> emit <sprintId> <json>`. Each event carries the
81
- * classifier's `used` verdict and the observed `tool_call_success_rate`.
82
- *
83
- * `retrieval_score` is set to 0 — at tracking time, the score has already
84
- * been emitted in the T08 retrieval event; this follow-up captures the
85
- * usage signal only. (The schema requires the field to be present; it does
86
- * not require it to be re-derived per emission.)
87
- *
88
- * Never throws on subprocess failure — the failure is surfaced via the
89
- * returned counter and stderr text (IL7, explicit not silent).
90
- */
91
- export declare function emitSkillUsageTrackingEvents(retrieved: readonly RetrievedSkillForTracking[], trajectory: TaskTrajectory, runtime: EmitRuntime): EmitResult;