@entelligentsia/forgecli 1.0.10 → 1.0.14

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 (167) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/CHANGELOG-forge-plugin.md +150 -0
  3. package/dist/bin/forge.js +0 -0
  4. package/dist/extensions/forgecli/config-layer.d.ts +16 -0
  5. package/dist/extensions/forgecli/config-layer.js +5 -0
  6. package/dist/extensions/forgecli/config-layer.js.map +1 -1
  7. package/dist/extensions/forgecli/dashboard/component.d.ts +102 -0
  8. package/dist/extensions/forgecli/dashboard/component.js +882 -0
  9. package/dist/extensions/forgecli/dashboard/component.js.map +1 -0
  10. package/dist/extensions/forgecli/dashboard/register.d.ts +2 -0
  11. package/dist/extensions/forgecli/dashboard/register.js +45 -0
  12. package/dist/extensions/forgecli/dashboard/register.js.map +1 -0
  13. package/dist/extensions/forgecli/dashboard/view-model.d.ts +35 -0
  14. package/dist/extensions/forgecli/dashboard/view-model.js +54 -0
  15. package/dist/extensions/forgecli/dashboard/view-model.js.map +1 -0
  16. package/dist/extensions/forgecli/fix-bug.js +72 -7
  17. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  18. package/dist/extensions/forgecli/forge-cli-schema.json +4 -0
  19. package/dist/extensions/forgecli/forge-commands.js +1 -0
  20. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  21. package/dist/extensions/forgecli/forge-init/phase4-register.js +53 -0
  22. package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
  23. package/dist/extensions/forgecli/forge-subagent.js +6 -4
  24. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  25. package/dist/extensions/forgecli/index.js +5 -0
  26. package/dist/extensions/forgecli/index.js.map +1 -1
  27. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +54 -0
  28. package/dist/extensions/forgecli/lib/halt-advisor.js +90 -0
  29. package/dist/extensions/forgecli/lib/halt-advisor.js.map +1 -0
  30. package/dist/extensions/forgecli/migration-engine.js +25 -12
  31. package/dist/extensions/forgecli/migration-engine.js.map +1 -1
  32. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +25 -0
  33. package/dist/extensions/forgecli/orchestrator-status-bar.js +183 -0
  34. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +1 -0
  35. package/dist/extensions/forgecli/orchestrator-tree.d.ts +96 -0
  36. package/dist/extensions/forgecli/orchestrator-tree.js +390 -0
  37. package/dist/extensions/forgecli/orchestrator-tree.js.map +1 -0
  38. package/dist/extensions/forgecli/project-orientation.js +12 -8
  39. package/dist/extensions/forgecli/project-orientation.js.map +1 -1
  40. package/dist/extensions/forgecli/regenerate.d.ts +16 -0
  41. package/dist/extensions/forgecli/regenerate.js +110 -0
  42. package/dist/extensions/forgecli/regenerate.js.map +1 -1
  43. package/dist/extensions/forgecli/run-sprint.js +33 -3
  44. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  45. package/dist/extensions/forgecli/run-task.d.ts +32 -0
  46. package/dist/extensions/forgecli/run-task.js +185 -12
  47. package/dist/extensions/forgecli/run-task.js.map +1 -1
  48. package/dist/extensions/forgecli/thread-switcher.js +105 -764
  49. package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
  50. package/dist/extensions/forgecli/viewport-events.js +32 -0
  51. package/dist/extensions/forgecli/viewport-events.js.map +1 -1
  52. package/dist/forge-payload/.base-pack/commands/fix-bug.md +1 -1
  53. package/dist/forge-payload/.base-pack/commands/run-sprint.md +1 -1
  54. package/dist/forge-payload/.base-pack/commands/run-task.md +1 -1
  55. package/dist/forge-payload/.base-pack/personas/architect.md +1 -1
  56. package/dist/forge-payload/.base-pack/personas/bug-fixer.md +1 -1
  57. package/dist/forge-payload/.base-pack/personas/collator.md +3 -3
  58. package/dist/forge-payload/.base-pack/personas/engineer.md +1 -1
  59. package/dist/forge-payload/.base-pack/personas/librarian.md +1 -1
  60. package/dist/forge-payload/.base-pack/personas/orchestrator.md +1 -1
  61. package/dist/forge-payload/.base-pack/personas/product-manager.md +1 -1
  62. package/dist/forge-payload/.base-pack/personas/qa-engineer.md +1 -1
  63. package/dist/forge-payload/.base-pack/personas/supervisor.md +1 -1
  64. package/dist/forge-payload/.base-pack/workflows/_fragments/event-emission-schema.md +1 -1
  65. package/dist/forge-payload/.base-pack/workflows/_fragments/friction-emit.md +1 -1
  66. package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +1 -1
  67. package/dist/forge-payload/.base-pack/workflows/_fragments/progress-reporting.md +2 -2
  68. package/dist/forge-payload/.base-pack/workflows/_fragments/store-cli-verbs.md +11 -2
  69. package/dist/forge-payload/.base-pack/workflows/architect_approve.md +6 -7
  70. package/dist/forge-payload/.base-pack/workflows/architect_review_sprint_completion.md +2 -2
  71. package/dist/forge-payload/.base-pack/workflows/architect_sprint_intake.md +2 -2
  72. package/dist/forge-payload/.base-pack/workflows/architect_sprint_plan.md +5 -5
  73. package/dist/forge-payload/.base-pack/workflows/collator_agent.md +4 -6
  74. package/dist/forge-payload/.base-pack/workflows/commit_task.md +5 -6
  75. package/dist/forge-payload/.base-pack/workflows/enhance.md +5 -5
  76. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +6 -7
  77. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +12 -13
  78. package/dist/forge-payload/.base-pack/workflows/plan_task.md +5 -6
  79. package/dist/forge-payload/.base-pack/workflows/review_code.md +8 -8
  80. package/dist/forge-payload/.base-pack/workflows/review_plan.md +8 -8
  81. package/dist/forge-payload/.base-pack/workflows/sprint_retrospective.md +3 -3
  82. package/dist/forge-payload/.base-pack/workflows/triage.md +12 -9
  83. package/dist/forge-payload/.base-pack/workflows/update_implementation.md +2 -2
  84. package/dist/forge-payload/.base-pack/workflows/update_plan.md +2 -2
  85. package/dist/forge-payload/.base-pack/workflows/validate_task.md +5 -6
  86. package/dist/forge-payload/.base-pack/workflows-js/wfl-fix-bug.js +490 -0
  87. package/dist/forge-payload/.base-pack/workflows-js/wfl-run-sprint.js +416 -0
  88. package/dist/forge-payload/.base-pack/workflows-js/wfl-run-task.js +608 -0
  89. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  90. package/dist/forge-payload/.schemas/config.schema.json +2 -3
  91. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  92. package/dist/forge-payload/.schemas/event.schema.json +16 -0
  93. package/dist/forge-payload/.schemas/migrations.json +236 -0
  94. package/dist/forge-payload/commands/health.md +29 -0
  95. package/dist/forge-payload/commands/rebuild.md +143 -15
  96. package/dist/forge-payload/commands/update.md +28 -27
  97. package/dist/forge-payload/hooks/preflight-session.cjs +99 -0
  98. package/dist/forge-payload/init/phases/phase-3-materialize.md +18 -5
  99. package/dist/forge-payload/integrity.json +7 -6
  100. package/dist/forge-payload/meta/fragments/tool-discipline.md +1 -1
  101. package/dist/forge-payload/meta/personas/meta-architect.md +1 -1
  102. package/dist/forge-payload/meta/personas/meta-bug-fixer.md +1 -1
  103. package/dist/forge-payload/meta/personas/meta-collator.md +7 -7
  104. package/dist/forge-payload/meta/personas/meta-engineer.md +1 -1
  105. package/dist/forge-payload/meta/personas/meta-orchestrator.md +1 -1
  106. package/dist/forge-payload/meta/personas/meta-supervisor.md +1 -1
  107. package/dist/forge-payload/meta/tool-specs/store-cli.spec.md +1 -1
  108. package/dist/forge-payload/meta/workflows/_fragments/event-emission-schema.md +1 -1
  109. package/dist/forge-payload/meta/workflows/_fragments/friction-emit.md +1 -1
  110. package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +1 -1
  111. package/dist/forge-payload/meta/workflows/_fragments/progress-reporting.md +2 -2
  112. package/dist/forge-payload/meta/workflows/_fragments/store-cli-verbs.md +11 -2
  113. package/dist/forge-payload/meta/workflows/meta-approve.md +6 -7
  114. package/dist/forge-payload/meta/workflows/meta-bug-triage.md +12 -9
  115. package/dist/forge-payload/meta/workflows/meta-collate.md +5 -7
  116. package/dist/forge-payload/meta/workflows/meta-commit.md +5 -6
  117. package/dist/forge-payload/meta/workflows/meta-enhance.md +5 -5
  118. package/dist/forge-payload/meta/workflows/meta-fix-bug.md +35 -11
  119. package/dist/forge-payload/meta/workflows/meta-implement.md +15 -7
  120. package/dist/forge-payload/meta/workflows/meta-migrate.md +13 -14
  121. package/dist/forge-payload/meta/workflows/meta-new-sprint.md +3 -3
  122. package/dist/forge-payload/meta/workflows/meta-orchestrate.md +138 -39
  123. package/dist/forge-payload/meta/workflows/meta-plan-sprint.md +6 -6
  124. package/dist/forge-payload/meta/workflows/meta-plan-task.md +12 -6
  125. package/dist/forge-payload/meta/workflows/meta-retro.md +4 -4
  126. package/dist/forge-payload/meta/workflows/meta-retrospective.md +4 -4
  127. package/dist/forge-payload/meta/workflows/meta-review-implementation.md +8 -8
  128. package/dist/forge-payload/meta/workflows/meta-review-plan.md +8 -8
  129. package/dist/forge-payload/meta/workflows/meta-review-sprint-completion.md +3 -3
  130. package/dist/forge-payload/meta/workflows/meta-sprint-intake.md +3 -3
  131. package/dist/forge-payload/meta/workflows/meta-sprint-plan.md +6 -6
  132. package/dist/forge-payload/meta/workflows/meta-update-implementation.md +2 -2
  133. package/dist/forge-payload/meta/workflows/meta-update-plan.md +2 -2
  134. package/dist/forge-payload/meta/workflows/meta-validate.md +5 -6
  135. package/dist/forge-payload/schemas/config.schema.json +2 -3
  136. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  137. package/dist/forge-payload/schemas/event.schema.json +16 -0
  138. package/dist/forge-payload/schemas/structure-manifest.json +75 -73
  139. package/dist/forge-payload/skills/refresh-kb-links/SKILL.md +14 -7
  140. package/dist/forge-payload/tools/banners.cjs +29 -10
  141. package/dist/forge-payload/tools/check-structure.cjs +88 -7
  142. package/dist/forge-payload/tools/collate.cjs +16 -2
  143. package/dist/forge-payload/tools/manage-config.cjs +5 -7
  144. package/dist/forge-payload/tools/parse-gates.cjs +73 -1
  145. package/dist/forge-payload/tools/postflight-gate.cjs +252 -0
  146. package/dist/forge-payload/tools/preflight-gate.cjs +47 -0
  147. package/dist/forge-payload/tools/substitute-placeholders.cjs +5 -4
  148. package/dist/forge-payload/tools/verify-phase.cjs +17 -0
  149. package/package.json +1 -1
  150. package/dist/bin/forgecli.d.ts +0 -2
  151. package/dist/bin/forgecli.js +0 -6
  152. package/dist/bin/forgecli.js.map +0 -1
  153. package/dist/extensions/forgecli/config-tui/index.d.ts +0 -5
  154. package/dist/extensions/forgecli/config-tui/index.js +0 -5
  155. package/dist/extensions/forgecli/config-tui/index.js.map +0 -1
  156. package/dist/extensions/forgecli/loaders/persona-skill-loader.d.ts +0 -45
  157. package/dist/extensions/forgecli/loaders/persona-skill-loader.js +0 -227
  158. package/dist/extensions/forgecli/loaders/persona-skill-loader.js.map +0 -1
  159. package/dist/extensions/forgecli/loaders/template-render.d.ts +0 -20
  160. package/dist/extensions/forgecli/loaders/template-render.js +0 -85
  161. package/dist/extensions/forgecli/loaders/template-render.js.map +0 -1
  162. package/dist/extensions/forgecli/loaders/workflow-loader.d.ts +0 -41
  163. package/dist/extensions/forgecli/loaders/workflow-loader.js +0 -164
  164. package/dist/extensions/forgecli/loaders/workflow-loader.js.map +0 -1
  165. package/dist/forge-payload/.base-pack/workflows/fix_bug.md +0 -446
  166. package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +0 -928
  167. package/dist/forge-payload/.base-pack/workflows/run_sprint.md +0 -225
@@ -0,0 +1,54 @@
1
+ import type { PersonaModel } from "../config-layer.js";
2
+ export interface ModelRegistryLike {
3
+ getAvailable(): Array<{
4
+ provider: string;
5
+ model: string;
6
+ }>;
7
+ }
8
+ export interface UiLike {
9
+ notify(message: string, level?: string): void;
10
+ }
11
+ export interface CtxLike {
12
+ ui: UiLike;
13
+ modelRegistry?: ModelRegistryLike;
14
+ }
15
+ export interface GateFailure {
16
+ phase: string;
17
+ reasonCode: string;
18
+ detail: string;
19
+ remediation: string;
20
+ }
21
+ export interface RunHaltAdvisorOptions {
22
+ /** Structured failure parsed from preflight-gate.cjs stdout. */
23
+ gateFailure: GateFailure;
24
+ /** Resolved advisor model (from resolveAdvisorModel). If undefined, advisor is skipped. */
25
+ advisorModel: PersonaModel | undefined;
26
+ /** Task or bug id for context. */
27
+ taskId: string;
28
+ /** Working directory. */
29
+ cwd: string;
30
+ /** Extension command context (ui + modelRegistry). */
31
+ ctx: CtxLike;
32
+ /** Optional forge root path — forwarded to runForgeSubagent. */
33
+ forgeRoot?: string;
34
+ }
35
+ /**
36
+ * Resolve the advisor model for halt-recovery.
37
+ *
38
+ * Priority:
39
+ * 1. Explicit `advisorModel` config slot from forge-cli layered config.
40
+ * 2. `modelRegistry.getAvailable()[0]` — the first available model.
41
+ * 3. undefined — caller should skip the advisor.
42
+ *
43
+ * Note: model-registry.ts does NOT expose a capability rank, so the config
44
+ * slot is the canonical way to point at a "strongest" model. getAvailable()[0]
45
+ * is the safe no-config fallback. (Sub-decision resolved in PLAN.md.)
46
+ */
47
+ export declare function resolveAdvisorModel(configSlot: PersonaModel | undefined, modelRegistry: ModelRegistryLike | undefined): PersonaModel | undefined;
48
+ /**
49
+ * Spawn a read-only advisor subagent to explain the gate failure and guide recovery.
50
+ *
51
+ * Best-effort: errors are notified via ctx.ui but do NOT propagate. The
52
+ * primary halt status is the caller's responsibility to surface separately.
53
+ */
54
+ export declare function runHaltAdvisor(opts: RunHaltAdvisorOptions): Promise<void>;
@@ -0,0 +1,90 @@
1
+ // halt-advisor.ts — Halt-recovery advisor helper (FORGE-S26-T18).
2
+ //
3
+ // When preflight-gate.cjs exits 1 and emits a structured failure JSON,
4
+ // the CLI route (run-task / fix-bug) calls runHaltAdvisor to spawn a
5
+ // read-only one-shot subagent that explains the failure and guides recovery.
6
+ //
7
+ // Design constraints:
8
+ // - Advisor is READ-ONLY: no store writes, no artifact mutations.
9
+ // - Model selected by resolveAdvisorModel: advisorModel config slot (L1/L2)
10
+ // first; falls back to ctx.modelRegistry.getAvailable()[0]; if neither,
11
+ // skips the advisor silently (non-fatal).
12
+ // - runHaltAdvisor is best-effort: failures must not mask the primary halt.
13
+ import { runForgeSubagent, loadForgePersona } from "../forge-subagent.js";
14
+ /**
15
+ * Resolve the advisor model for halt-recovery.
16
+ *
17
+ * Priority:
18
+ * 1. Explicit `advisorModel` config slot from forge-cli layered config.
19
+ * 2. `modelRegistry.getAvailable()[0]` — the first available model.
20
+ * 3. undefined — caller should skip the advisor.
21
+ *
22
+ * Note: model-registry.ts does NOT expose a capability rank, so the config
23
+ * slot is the canonical way to point at a "strongest" model. getAvailable()[0]
24
+ * is the safe no-config fallback. (Sub-decision resolved in PLAN.md.)
25
+ */
26
+ export function resolveAdvisorModel(configSlot, modelRegistry) {
27
+ if (configSlot)
28
+ return configSlot;
29
+ const available = modelRegistry?.getAvailable?.() ?? [];
30
+ return available[0];
31
+ }
32
+ /**
33
+ * Spawn a read-only advisor subagent to explain the gate failure and guide recovery.
34
+ *
35
+ * Best-effort: errors are notified via ctx.ui but do NOT propagate. The
36
+ * primary halt status is the caller's responsibility to surface separately.
37
+ */
38
+ export async function runHaltAdvisor(opts) {
39
+ const { gateFailure, advisorModel, taskId, cwd, ctx, forgeRoot } = opts;
40
+ if (!advisorModel) {
41
+ // No model available — skip advisor silently.
42
+ return;
43
+ }
44
+ ctx.ui.notify(`ℹ forge: halt advisor running on ${advisorModel.provider}/${advisorModel.model} for ${taskId}`, "info");
45
+ const advisoryPrompt = [
46
+ `# Halt-Recovery Advisory for ${taskId}`,
47
+ ``,
48
+ `A preflight gate halted the pipeline for phase **${gateFailure.phase}**.`,
49
+ ``,
50
+ `## Failure Details`,
51
+ `- **Reason code:** \`${gateFailure.reasonCode}\``,
52
+ `- **Detail:** ${gateFailure.detail}`,
53
+ ``,
54
+ `## Recommended Remediation`,
55
+ gateFailure.remediation,
56
+ ``,
57
+ `## Your Role`,
58
+ `You are a read-only advisor. Explain the failure in plain language, confirm the`,
59
+ `remediation step, and provide any additional context the user needs to unblock.`,
60
+ `Do NOT modify any files, run any commands, or write to the store.`,
61
+ `Output your advisory as a brief structured summary (2–4 sentences).`,
62
+ ].join("\n");
63
+ try {
64
+ let persona;
65
+ try {
66
+ persona = loadForgePersona("engineer", cwd);
67
+ }
68
+ catch {
69
+ // Persona unavailable — use a minimal fallback rather than crashing.
70
+ persona = {
71
+ name: "advisor",
72
+ description: "Halt-recovery advisor",
73
+ systemPrompt: "You are a Forge engineering advisor. Be concise and helpful.",
74
+ filePath: "",
75
+ };
76
+ }
77
+ await runForgeSubagent({
78
+ persona,
79
+ task: advisoryPrompt,
80
+ cwd,
81
+ forgeRoot,
82
+ requestedModel: advisorModel,
83
+ });
84
+ }
85
+ catch (err) {
86
+ const e = err;
87
+ ctx.ui.notify(`⚠ forge: halt advisor failed (non-fatal): ${e.message ?? "unknown"}`, "warning");
88
+ }
89
+ }
90
+ //# sourceMappingURL=halt-advisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"halt-advisor.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/lib/halt-advisor.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,6EAA6E;AAC7E,EAAE;AACF,sBAAsB;AACtB,oEAAoE;AACpE,8EAA8E;AAC9E,4EAA4E;AAC5E,8CAA8C;AAC9C,8EAA8E;AAE9E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAqB,MAAM,sBAAsB,CAAC;AAyC7F;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAClC,UAAoC,EACpC,aAA4C;IAE5C,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,MAAM,SAAS,GAAG,aAAa,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC;IACxD,OAAO,SAAS,CAAC,CAAC,CAA6B,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAA2B;IAC/D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAExE,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,8CAA8C;QAC9C,OAAO;IACR,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,oCAAoC,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,KAAK,QAAQ,MAAM,EAAE,EAC/F,MAAM,CACN,CAAC;IAEF,MAAM,cAAc,GAAG;QACtB,gCAAgC,MAAM,EAAE;QACxC,EAAE;QACF,oDAAoD,WAAW,CAAC,KAAK,KAAK;QAC1E,EAAE;QACF,oBAAoB;QACpB,wBAAwB,WAAW,CAAC,UAAU,IAAI;QAClD,iBAAiB,WAAW,CAAC,MAAM,EAAE;QACrC,EAAE;QACF,4BAA4B;QAC5B,WAAW,CAAC,WAAW;QACvB,EAAE;QACF,cAAc;QACd,iFAAiF;QACjF,iFAAiF;QACjF,mEAAmE;QACnE,qEAAqE;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,CAAC;QACJ,IAAI,OAAqB,CAAC;QAC1B,IAAI,CAAC;YACJ,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACR,qEAAqE;YACrE,OAAO,GAAG;gBACT,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,uBAAuB;gBACpC,YAAY,EAAE,8DAA8D;gBAC5E,QAAQ,EAAE,EAAE;aACZ,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,CAAC;YACtB,OAAO;YACP,IAAI,EAAE,cAAc;YACpB,GAAG;YACH,SAAS;YACT,cAAc,EAAE,YAAY;SAC5B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,GAA2B,CAAC;QACtC,GAAG,CAAC,EAAE,CAAC,MAAM,CACZ,6CAA6C,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE,EACrE,SAAS,CACT,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -161,8 +161,28 @@ export function resolveCategory(category, bundleRoot, projectRoot, writes) {
161
161
  }
162
162
  // ── tools:* short-circuit (excluding tools:lib:*) ──────────────────────
163
163
  if (category === "tools" || (category.startsWith("tools:") && !category.startsWith("tools:lib"))) {
164
- // paths.forgeRoot is updated by substitute-placeholders, not by this engine directly.
165
- // No file operations for tools:* categories.
164
+ // FORGE-S29-T05: copy all .cjs and .js files from bundle tools/ to .forge/tools/.
165
+ // The tools/ directory is at bundleRoot/tools/ (same level as .schemas/, .base-pack/).
166
+ const toolsSrc = path.join(bundleRoot, "tools");
167
+ let entries;
168
+ try {
169
+ entries = fs.readdirSync(toolsSrc, { withFileTypes: true });
170
+ }
171
+ catch (err) {
172
+ if (err.code === "ENOENT")
173
+ return;
174
+ throw err;
175
+ }
176
+ for (const entry of entries) {
177
+ if (!entry.isFile())
178
+ continue;
179
+ if (!entry.name.endsWith(".cjs") && !entry.name.endsWith(".js"))
180
+ continue;
181
+ writes.push({
182
+ src: path.join(toolsSrc, entry.name),
183
+ dest: safeDest(path.join("tools", entry.name)),
184
+ });
185
+ }
166
186
  return;
167
187
  }
168
188
  // ── tools:lib/<name> and tools:lib:<name> ──────────────────────────────
@@ -171,24 +191,17 @@ export function resolveCategory(category, bundleRoot, projectRoot, writes) {
171
191
  // Normalize separator: tools:lib/forge-root or tools:lib:validate → name
172
192
  const name = rest.startsWith("/") ? rest.slice(1) : rest.startsWith(":") ? rest.slice(1) : rest;
173
193
  const libSrc = path.join(bundleRoot, "tools", "lib");
174
- // tools:lib files are forge-cli internal tools (bundled in dist/forge-payload/tools/lib/).
175
- // They serve the forge-cli extension itself, not the user's .forge/ project tree.
176
- // This engine can only write to projectRoot/.forge/ — it cannot update the installed
177
- // forge-cli tools. The migration engine records which source files exist (for tracking),
178
- // but cannot write them to a meaningful location within .forge/.
179
- //
194
+ // FORGE-S29-T05: copy lib files to .forge/tools/lib/ (previously wrote a
195
+ // marker stub to .forge/schemas/; now writes the real file to .forge/tools/lib/).
180
196
  // Probe .cjs first, then .js (matching LIB_ALLOWLIST entry patterns).
181
- // For default-payload installs: forge-root.cjs, paths.cjs, validate.js ARE present.
182
197
  // ENOENT on both: graceful skip (no throw).
183
198
  const srcCjs = path.join(libSrc, `${name}.cjs`);
184
199
  const srcJs = path.join(libSrc, `${name}.js`);
185
200
  const resolvedSrc = fs.existsSync(srcCjs) ? srcCjs : fs.existsSync(srcJs) ? srcJs : null;
186
201
  if (resolvedSrc) {
187
- // Record as informational write to a .forge/schemas/ tracking file.
188
- // This is a best-effort record — the actual lib file update requires npm reinstall.
189
202
  writes.push({
190
203
  src: resolvedSrc,
191
- dest: safeDest(path.join("schemas", `.tools-lib-${name}.marker`)),
204
+ dest: safeDest(path.join("tools", "lib", `${name}${resolvedSrc.endsWith(".cjs") ? ".cjs" : ".js"}`)),
192
205
  });
193
206
  }
194
207
  // ENOENT on both: graceful skip
@@ -1 +1 @@
1
- {"version":3,"file":"migration-engine.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/migration-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-engine.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/migration-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Theme } from "@earendil-works/pi-coding-agent";
2
+ import type { Component } from "@earendil-works/pi-tui";
3
+ import type { OrchestratorTree } from "./orchestrator-tree.js";
4
+ export declare class OrchestratorStatusBar implements Component {
5
+ private tree;
6
+ private theme;
7
+ private active;
8
+ private invalidationCb?;
9
+ private spinnerTimer?;
10
+ private spinnerIdx;
11
+ private onAction?;
12
+ private disposeFns;
13
+ constructor(tree: OrchestratorTree, theme: Theme);
14
+ setInvalidationCallback(cb: () => void): void;
15
+ setOnAction(cb: () => void): void;
16
+ setActive(active: boolean): void;
17
+ isActive(): boolean;
18
+ private ensureSpinnerTimer;
19
+ render(width: number): string[];
20
+ invalidate(): void;
21
+ handleInput(data: string): void;
22
+ dispose: () => void;
23
+ /** Walk depth-first to find the deepest running/cancelling leaf. */
24
+ private findDeepestRunningLeaf;
25
+ }
@@ -0,0 +1,183 @@
1
+ // orchestrator-status-bar.ts — One-line status bar for running orchestrations.
2
+ //
3
+ // Two render modes:
4
+ //
5
+ // INACTIVE (default):
6
+ // [HELLO-S01-T01 ● plan ⠋] "preview…" ↓ dashboard
7
+ //
8
+ // Shows a compact summary with status, spinner, and a ↓ hint.
9
+ // Press ↓ to focus the status bar.
10
+ //
11
+ // ACTIVE (user pressed ↓):
12
+ // ▸ [HELLO-S01-T01 ● plan ⠋] "preview…" ⏎ open · esc back
13
+ //
14
+ // Cursor glyph highlights the bar. Enter opens the dashboard overlay.
15
+ // Esc returns focus to the editor.
16
+ //
17
+ // The dashboard overlay (/forge:dashboard) remains the detailed view.
18
+ import { truncateToWidth } from "@earendil-works/pi-tui";
19
+ import { matchesKey, Key } from "@earendil-works/pi-tui";
20
+ import { fmtTokenMeter } from "./viewport-renderer.js";
21
+ // ── Braille spinner ────────────────────────────────────────────────────────
22
+ const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
23
+ const SPINNER_INTERVAL_MS = 100;
24
+ // ── Status glyph for a node ────────────────────────────────────────────────
25
+ function nodeGlyph(status, theme) {
26
+ switch (status) {
27
+ case "completed":
28
+ return theme.fg("success", "✓");
29
+ case "running":
30
+ return theme.fg("accent", "●");
31
+ case "cancelling":
32
+ return theme.fg("warning", "⏳");
33
+ case "cancelled":
34
+ return theme.fg("muted", "⊘");
35
+ case "failed":
36
+ return theme.fg("error", "✗");
37
+ case "escalated":
38
+ return theme.fg("error", "▲");
39
+ case "pending":
40
+ default:
41
+ return theme.fg("dim", "○");
42
+ }
43
+ }
44
+ // ── OrchestratorStatusBar ──────────────────────────────────────────────────
45
+ export class OrchestratorStatusBar {
46
+ tree;
47
+ theme;
48
+ active = false;
49
+ invalidationCb;
50
+ spinnerTimer;
51
+ spinnerIdx = 0;
52
+ onAction; // callback to open dashboard
53
+ disposeFns = [];
54
+ constructor(tree, theme) {
55
+ this.tree = tree;
56
+ this.theme = theme;
57
+ const onChange = () => this.invalidationCb?.();
58
+ this.tree.on("change", onChange);
59
+ this.tree.on("tree", onChange);
60
+ this.tree.on("tail", onChange);
61
+ this.tree.on("preview", onChange);
62
+ this.disposeFns.push(() => { this.tree.off("change", onChange); this.tree.off("tree", onChange); this.tree.off("tail", onChange); this.tree.off("preview", onChange); });
63
+ }
64
+ setInvalidationCallback(cb) {
65
+ this.invalidationCb = cb;
66
+ this.ensureSpinnerTimer();
67
+ }
68
+ setOnAction(cb) {
69
+ this.onAction = cb;
70
+ }
71
+ setActive(active) {
72
+ this.active = active;
73
+ this.invalidationCb?.();
74
+ }
75
+ isActive() {
76
+ return this.active;
77
+ }
78
+ ensureSpinnerTimer() {
79
+ if (this.spinnerTimer)
80
+ return;
81
+ this.spinnerTimer = setInterval(() => {
82
+ const anyActive = this.tree.getActiveRoots().some((r) => r.status === "running" || r.status === "cancelling");
83
+ if (!anyActive) {
84
+ // One last render to settle spinner, then stop.
85
+ this.invalidationCb?.();
86
+ if (this.spinnerTimer)
87
+ clearInterval(this.spinnerTimer);
88
+ this.spinnerTimer = undefined;
89
+ return;
90
+ }
91
+ this.spinnerIdx = (this.spinnerIdx + 1) % SPINNER_FRAMES.length;
92
+ this.invalidationCb?.();
93
+ }, SPINNER_INTERVAL_MS);
94
+ }
95
+ render(width) {
96
+ const roots = this.tree.getActiveRoots();
97
+ if (roots.length === 0)
98
+ return []; // Hidden when nothing is running.
99
+ const dim = (s) => this.theme.fg("dim", s);
100
+ const accent = (s) => this.theme.fg("accent", s);
101
+ const bold = (s) => this.theme.bold(this.theme.fg("accent", s));
102
+ // Build a segment for each active root.
103
+ const segments = [];
104
+ for (const root of roots) {
105
+ // Find the deepest running leaf or the root itself.
106
+ const leaf = this.findDeepestRunningLeaf(root.id);
107
+ const displayNode = leaf ?? root;
108
+ const glyph = nodeGlyph(displayNode.status, this.theme);
109
+ // Label: root label, with current phase as suffix if different.
110
+ let label = root.label;
111
+ if (leaf && leaf.id !== root.id) {
112
+ const shortRole = leaf.id.includes(":") ? leaf.id.split(":").slice(1).join(":") : leaf.label;
113
+ label = `${root.label} · ${shortRole}`;
114
+ }
115
+ // Usage footer (right-aligned within segment).
116
+ const usage = this.tree.getSubtreeUsage(root.id);
117
+ const meter = fmtTokenMeter(usage);
118
+ const meterPart = meter ? dim(` ${meter}`) : "";
119
+ // Spinner for running nodes.
120
+ const spin = (displayNode.status === "running" || displayNode.status === "cancelling")
121
+ ? ` ${SPINNER_FRAMES[this.spinnerIdx]}`
122
+ : "";
123
+ // Turn preview (truncated).
124
+ const preview = displayNode.lastTurnPreview
125
+ ? dim(` "${truncateToWidth(displayNode.lastTurnPreview, 60)}"`)
126
+ : "";
127
+ const segment = `${glyph} ${bold(`[${label}]`)}${spin}${preview}${meterPart}`;
128
+ segments.push(segment);
129
+ }
130
+ // Right-side hint depends on active state.
131
+ const hint = this.active
132
+ ? dim(" ⏎ open · esc back")
133
+ : dim(" ↓ dashboard");
134
+ // Compose: join segments with separator, append hint.
135
+ const prefix = this.active ? accent("▸") + " " : "";
136
+ const joined = segments.join(dim(" │ "));
137
+ const line = `${prefix}${joined}${hint}`;
138
+ return [truncateToWidth(line, width)];
139
+ }
140
+ invalidate() {
141
+ // Re-render driven by external invalidationCb → tui.requestRender().
142
+ }
143
+ handleInput(data) {
144
+ if (!this.active)
145
+ return;
146
+ if (matchesKey(data, Key.enter)) {
147
+ this.active = false;
148
+ this.onAction?.(); // open dashboard
149
+ }
150
+ else if (matchesKey(data, Key.escape) || matchesKey(data, Key.up)) {
151
+ this.active = false; // deactivate, return to editor
152
+ }
153
+ this.invalidationCb?.();
154
+ }
155
+ dispose = () => {
156
+ if (this.spinnerTimer) {
157
+ clearInterval(this.spinnerTimer);
158
+ this.spinnerTimer = undefined;
159
+ }
160
+ for (const fn of this.disposeFns)
161
+ fn();
162
+ this.disposeFns = [];
163
+ };
164
+ /** Walk depth-first to find the deepest running/cancelling leaf. */
165
+ findDeepestRunningLeaf(id) {
166
+ const node = this.tree.getNode(id);
167
+ if (!node)
168
+ return undefined;
169
+ if (node.kind === "leaf" && (node.status === "running" || node.status === "cancelling")) {
170
+ return node;
171
+ }
172
+ for (const childId of node.children) {
173
+ const found = this.findDeepestRunningLeaf(childId);
174
+ if (found)
175
+ return found;
176
+ }
177
+ // If no running leaf, return the root if it's running.
178
+ if (node.status === "running" || node.status === "cancelling")
179
+ return node;
180
+ return undefined;
181
+ }
182
+ }
183
+ //# sourceMappingURL=orchestrator-status-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator-status-bar.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/orchestrator-status-bar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { EventEmitter } from "node:events";
2
+ export type NodeKind = "orchestrator" | "leaf";
3
+ export type NodeStatus = "pending" | "running" | "cancelling" | "cancelled" | "completed" | "failed" | "escalated";
4
+ export interface UsageSnapshot {
5
+ input: number;
6
+ output: number;
7
+ cacheRead: number;
8
+ }
9
+ export interface NodeMetrics {
10
+ turn: number;
11
+ toolCount: number;
12
+ errCount: number;
13
+ }
14
+ export interface OrchestratorNode {
15
+ id: string;
16
+ label: string;
17
+ kind: NodeKind;
18
+ parentId: string | null;
19
+ children: string[];
20
+ status: NodeStatus;
21
+ startedAt: number;
22
+ endedAt?: number;
23
+ usage: UsageSnapshot;
24
+ model?: string;
25
+ provider?: string;
26
+ compression?: {
27
+ calls: number;
28
+ tokensSaved: number;
29
+ };
30
+ metrics: NodeMetrics;
31
+ iteration?: number;
32
+ tailBuffer: string[];
33
+ unreadWarnings: number;
34
+ firstTurnPreview?: string;
35
+ lastTurnPreview?: string;
36
+ promptPreview?: string;
37
+ outcomePreview?: string;
38
+ abortController?: AbortController;
39
+ }
40
+ export interface StartNodeOptions {
41
+ parentId?: string;
42
+ label?: string;
43
+ kind?: NodeKind;
44
+ promptPreview?: string;
45
+ }
46
+ export declare class OrchestratorTree extends EventEmitter {
47
+ private nodes;
48
+ private roots;
49
+ startNode(id: string, opts?: StartNodeOptions): OrchestratorNode;
50
+ completeNode(id: string, status: NodeStatus): void;
51
+ setNodeUsage(id: string, usage: UsageSnapshot): void;
52
+ setNodeModel(id: string, model: string, provider: string): void;
53
+ setNodeCompression(id: string, compression: {
54
+ calls: number;
55
+ tokensSaved: number;
56
+ }): void;
57
+ bumpNodeTurn(id: string): void;
58
+ incrementNodeToolCount(id: string, delta?: number): void;
59
+ incrementNodeErrCount(id: string, delta?: number): void;
60
+ setNodeIteration(id: string, iteration: number): void;
61
+ setNodeOutcome(id: string, preview: string): void;
62
+ appendTail(id: string, line: string, opts?: {
63
+ warning?: boolean;
64
+ }): void;
65
+ markTailRead(id: string): void;
66
+ setTurnPreview(id: string, preview: string): void;
67
+ requestCancel(id: string): boolean;
68
+ getAbortSignal(id: string): AbortSignal | undefined;
69
+ getNode(id: string): OrchestratorNode | undefined;
70
+ getChildren(id: string): OrchestratorNode[];
71
+ getAncestors(id: string): OrchestratorNode[];
72
+ getRoots(): OrchestratorNode[];
73
+ /** Active roots: all roots if any are running/cancelling, otherwise
74
+ * only non-terminal roots. Prunes stale terminal roots that have no
75
+ * running descendants — the dashboard should not show completed sprints
76
+ * from prior invocations alongside the current one. */
77
+ getActiveRoots(): OrchestratorNode[];
78
+ /** Returns true if every node in the subtree rooted at `id` has reached a
79
+ * terminal state (completed, failed, cancelled, or escalated). */
80
+ private isSubtreeTerminal;
81
+ /** Re-parent a node from its current position to a new parent (or to root
82
+ * if newParentId is null). Removes from old parent's children and/or
83
+ * roots, adds to new parent's children and/or roots, and updates the
84
+ * node's parentId field. */
85
+ private reparentNode;
86
+ getSubtreeUsage(id: string): UsageSnapshot;
87
+ getSubtreeProgress(id: string): {
88
+ completed: number;
89
+ total: number;
90
+ };
91
+ /** Depth of a node (root = 0). Useful for tree indentation. */
92
+ getDepth(id: string): number;
93
+ private evictIfNeeded;
94
+ private removeSubtree;
95
+ }
96
+ export declare function getOrchestratorTree(): OrchestratorTree;