@davidorex/pi-workflows 0.14.6 → 0.28.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 (102) hide show
  1. package/CHANGELOG.md +199 -0
  2. package/README.md +12 -9
  3. package/agents/handoff-writer.agent.yaml +1 -1
  4. package/agents/requirements-gatherer.agent.yaml +1 -1
  5. package/dist/agent-spec.d.ts.map +1 -1
  6. package/dist/agent-spec.js +4 -3
  7. package/dist/agent-spec.js.map +1 -1
  8. package/dist/auth-required.d.ts +10 -0
  9. package/dist/auth-required.d.ts.map +1 -0
  10. package/dist/auth-required.js +10 -0
  11. package/dist/auth-required.js.map +1 -0
  12. package/dist/bundled-dirs.d.ts +2 -0
  13. package/dist/bundled-dirs.d.ts.map +1 -0
  14. package/dist/bundled-dirs.js +26 -0
  15. package/dist/bundled-dirs.js.map +1 -0
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +146 -14
  19. package/dist/index.js.map +1 -1
  20. package/dist/render-by-id.d.ts +62 -0
  21. package/dist/render-by-id.d.ts.map +1 -0
  22. package/dist/render-by-id.js +105 -0
  23. package/dist/render-by-id.js.map +1 -0
  24. package/dist/step-agent.js +1 -1
  25. package/dist/step-block.d.ts +5 -1
  26. package/dist/step-block.d.ts.map +1 -1
  27. package/dist/step-block.js +88 -40
  28. package/dist/step-block.js.map +1 -1
  29. package/dist/step-monitor.d.ts +1 -1
  30. package/dist/step-monitor.d.ts.map +1 -1
  31. package/dist/step-monitor.js +1 -1
  32. package/dist/step-monitor.js.map +1 -1
  33. package/dist/step-shared.d.ts +1 -1
  34. package/dist/step-shared.d.ts.map +1 -1
  35. package/dist/step-shared.js +16 -10
  36. package/dist/step-shared.js.map +1 -1
  37. package/dist/template-validation.d.ts.map +1 -1
  38. package/dist/template-validation.js +6 -6
  39. package/dist/template-validation.js.map +1 -1
  40. package/dist/template.d.ts.map +1 -1
  41. package/dist/template.js +2 -1
  42. package/dist/template.js.map +1 -1
  43. package/dist/test-helpers.d.ts +91 -0
  44. package/dist/test-helpers.d.ts.map +1 -1
  45. package/dist/test-helpers.js +185 -1
  46. package/dist/test-helpers.js.map +1 -1
  47. package/dist/tui.d.ts +3 -3
  48. package/dist/tui.d.ts.map +1 -1
  49. package/dist/tui.js +1 -1
  50. package/dist/types.d.ts +36 -1
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/workflow-discovery.d.ts.map +1 -1
  53. package/dist/workflow-discovery.js +2 -1
  54. package/dist/workflow-discovery.js.map +1 -1
  55. package/dist/workflow-executor.d.ts.map +1 -1
  56. package/dist/workflow-executor.js +23 -9
  57. package/dist/workflow-executor.js.map +1 -1
  58. package/dist/workflow-sdk.d.ts.map +1 -1
  59. package/dist/workflow-sdk.js +18 -11
  60. package/dist/workflow-sdk.js.map +1 -1
  61. package/dist/workflow-spec.js +99 -2
  62. package/dist/workflow-spec.js.map +1 -1
  63. package/package.json +17 -7
  64. package/skill-narrative.md +5 -3
  65. package/skills/pi-workflows/SKILL.md +46 -9
  66. package/skills/pi-workflows/references/bundled-resources.md +0 -36
  67. package/workflows/analyze-existing-project.workflow.yaml +1 -1
  68. package/workflows/init-new-project.workflow.yaml +1 -1
  69. package/workflows/plan-from-requirements.workflow.yaml +2 -2
  70. package/templates/analyzers/base-analyzer.md +0 -9
  71. package/templates/analyzers/patterns-task.md +0 -11
  72. package/templates/analyzers/patterns.md +0 -15
  73. package/templates/analyzers/quality-task.md +0 -11
  74. package/templates/analyzers/quality.md +0 -15
  75. package/templates/analyzers/structure-task.md +0 -17
  76. package/templates/analyzers/structure.md +0 -15
  77. package/templates/architecture-designer/task.md +0 -117
  78. package/templates/architecture-inferrer/task.md +0 -61
  79. package/templates/audit-finding-verifier/task.md +0 -59
  80. package/templates/audit-fixer/task.md +0 -67
  81. package/templates/audit-results-router/task.md +0 -37
  82. package/templates/decomposer/task.md +0 -56
  83. package/templates/explorer/system.md +0 -3
  84. package/templates/explorer/task.md +0 -9
  85. package/templates/gap-identifier/task.md +0 -103
  86. package/templates/gap-resolution-assessor/task.md +0 -48
  87. package/templates/handoff-writer/task.md +0 -101
  88. package/templates/investigator/task.md +0 -30
  89. package/templates/phase-author/task.md +0 -82
  90. package/templates/plan-creator/task.md +0 -143
  91. package/templates/plan-decomposer/task.md +0 -46
  92. package/templates/project-definer/task.md +0 -67
  93. package/templates/project-inferrer/task.md +0 -56
  94. package/templates/requirements-gatherer/task.md +0 -90
  95. package/templates/researcher/task.md +0 -26
  96. package/templates/shared/macros.md +0 -152
  97. package/templates/spec-implementer/task.md +0 -53
  98. package/templates/synthesizer/system.md +0 -3
  99. package/templates/synthesizer/task.md +0 -38
  100. package/templates/task-verifier/task.md +0 -44
  101. package/templates/task-worker/task.md +0 -52
  102. package/templates/verifier/task.md +0 -57
package/dist/index.js CHANGED
@@ -4,11 +4,14 @@
4
4
  */
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
- import { Type } from "@mariozechner/pi-ai";
8
- import { truncateHead } from "@mariozechner/pi-coding-agent";
9
- import { Key } from "@mariozechner/pi-tui";
7
+ import { schemaPath } from "@davidorex/pi-context/context-dir";
8
+ import { serializeForRead } from "@davidorex/pi-context/read-element";
9
+ import { enforceBudget } from "@davidorex/pi-jit-agents";
10
+ import { Type } from "@earendil-works/pi-ai";
11
+ import { Key } from "@earendil-works/pi-tui";
10
12
  import { createAgentLoader } from "./agent-spec.js";
11
13
  import { findIncompleteRun, formatIncompleteRun, validateResumeCompatibility } from "./checkpoint.js";
14
+ import { renderItemById } from "./render-by-id.js";
12
15
  import { discoverWorkflows, findWorkflow } from "./workflow-discovery.js";
13
16
  import { executeWorkflow, requestPause } from "./workflow-executor.js";
14
17
  import { availableAgents, availableSchemas, availableTemplates, filterNames, stepTypes, validateWorkflow, validationChecks, } from "./workflow-sdk.js";
@@ -426,12 +429,12 @@ function handleWorkflowInit(ctx) {
426
429
  }
427
430
  // ── Extension factory ───────────────────────────────────────────────────────
428
431
  const extension = (pi) => {
429
- // ── Tool: workflow ──────────────────────────────────────────────────────
432
+ // ── Tool: workflow-execute ──────────────────────────────────────────────
430
433
  pi.registerTool({
431
- name: "workflow",
432
- label: "Workflow",
433
- description: "Run a named workflow with typed input. Discovers workflows from .workflows/ and ~/.pi/agent/workflows/.",
434
- promptSnippet: "Run a multi-step workflow with typed data flow between agents",
434
+ name: "workflow-execute",
435
+ label: "Workflow Execute",
436
+ description: "Execute a named workflow with typed input. Discovers workflows from .workflows/ and ~/.pi/agent/workflows/. Auto-resumes the most recent compatible incomplete run unless fresh='true'. Use workflow-resume for explicit-only resume by runId.",
437
+ promptSnippet: "Execute a multi-step workflow with typed data flow (auto-resumes compatible incomplete runs)",
435
438
  parameters: Type.Object({
436
439
  workflow: Type.String({ description: "Name of the workflow to run" }),
437
440
  input: Type.Optional(Type.Unknown({ description: "Input data for the workflow (validated against workflow's input schema)" })),
@@ -489,6 +492,65 @@ const extension = (pi) => {
489
492
  };
490
493
  },
491
494
  });
495
+ // ── Tool: workflow-resume ───────────────────────────────────────────────
496
+ pi.registerTool({
497
+ name: "workflow-resume",
498
+ label: "Workflow Resume",
499
+ description: "Explicitly resume an incomplete workflow run by name + runId. Rejects when no incomplete run exists for the workflow OR when runId does not match the most recent incomplete run. Use workflow-execute for default auto-resume; this surface is for explicit-only scenarios where the caller wants to fail loudly if the run is gone or has been superseded.",
500
+ promptSnippet: "Explicitly resume an incomplete workflow run by name + runId (rejects on no-match)",
501
+ parameters: Type.Object({
502
+ workflow: Type.String({ description: "Workflow name" }),
503
+ runId: Type.String({ description: "Incomplete run ID — required, no auto-detect" }),
504
+ input: Type.Optional(Type.Unknown({ description: "Optional input override; defaults to the original run's input" })),
505
+ }),
506
+ async execute(_toolCallId, params, signal, _onUpdate, ctx) {
507
+ const spec = findWorkflow(params.workflow, ctx.cwd);
508
+ if (!spec) {
509
+ throw new Error(`Workflow '${params.workflow}' not found. Available workflows: ${listWorkflowNames(ctx.cwd)}`);
510
+ }
511
+ const incomplete = findIncompleteRun(ctx.cwd, spec.name);
512
+ if (!incomplete) {
513
+ throw new Error(`No incomplete runs found for workflow '${spec.name}'.`);
514
+ }
515
+ if (incomplete.runId !== params.runId) {
516
+ throw new Error(`runId mismatch: requested '${params.runId}' but most recent incomplete run is '${incomplete.runId}'.`);
517
+ }
518
+ const compat = validateResumeCompatibility(incomplete.state, spec);
519
+ if (compat) {
520
+ throw new Error(`Cannot resume runId '${params.runId}': ${compat}`);
521
+ }
522
+ // Default to original run input when override absent.
523
+ let input = params.input ?? incomplete.state.input;
524
+ if (typeof input === "string") {
525
+ try {
526
+ input = JSON.parse(input);
527
+ }
528
+ catch {
529
+ // leave as string; downstream validation handles shape
530
+ }
531
+ }
532
+ const result = await executeWorkflow(spec, input, {
533
+ ctx,
534
+ pi,
535
+ signal,
536
+ loadAgent: createAgentLoader(ctx.cwd),
537
+ resume: {
538
+ runId: incomplete.runId,
539
+ runDir: incomplete.runDir,
540
+ state: incomplete.state,
541
+ },
542
+ });
543
+ return {
544
+ content: [
545
+ {
546
+ type: "text",
547
+ text: `${formatToolResult(result)}\n[resumed from runId ${incomplete.runId}]`,
548
+ },
549
+ ],
550
+ details: { ...result, resumed: true, runId: incomplete.runId },
551
+ };
552
+ },
553
+ });
492
554
  // ── Tool: workflow-list ─────────────────────────────────────────────────
493
555
  pi.registerTool({
494
556
  name: "workflow-list",
@@ -503,9 +565,13 @@ const extension = (pi) => {
503
565
  description: w.description,
504
566
  source: w.source,
505
567
  }));
568
+ // FGAP-089: route through the shared serializer (no parallel truncation
569
+ // path). Edge surface — no finer addressing tool → head-leading marked
570
+ // partial on over-cap.
571
+ const envelope = serializeForRead(items, { label: "workflows" });
506
572
  return {
507
573
  details: undefined,
508
- content: [{ type: "text", text: truncateHead(JSON.stringify(items, null, 2)).content }],
574
+ content: [{ type: "text", text: envelope.content }],
509
575
  };
510
576
  },
511
577
  });
@@ -525,9 +591,13 @@ const extension = (pi) => {
525
591
  if (!agent) {
526
592
  throw new Error(`Agent '${params.name}' not found. Available: ${agents.map((a) => a.name).join(", ")}`);
527
593
  }
594
+ // FGAP-089: a single agent spec is already the addressed element —
595
+ // whole (don't page intrinsic arrays); over-cap on one agent has no
596
+ // finer addressing → head-leading marked partial.
597
+ const envOne = serializeForRead(agent, { whole: true, label: `agent ${params.name}` });
528
598
  return {
529
599
  details: undefined,
530
- content: [{ type: "text", text: truncateHead(JSON.stringify(agent, null, 2)).content }],
600
+ content: [{ type: "text", text: envOne.content }],
531
601
  };
532
602
  }
533
603
  const items = agents.map((a) => ({
@@ -543,9 +613,14 @@ const extension = (pi) => {
543
613
  promptTemplate: a.promptTemplate,
544
614
  taskTemplate: a.taskTemplate,
545
615
  }));
616
+ // FGAP-089: the agent list narrows to one agent via name=<agent>.
617
+ const envelope = serializeForRead(items, {
618
+ label: "agents",
619
+ overCapDirective: { tool: "workflow-agents", hint: "name=<agent>" },
620
+ });
546
621
  return {
547
622
  details: undefined,
548
- content: [{ type: "text", text: truncateHead(JSON.stringify(items, null, 2)).content }],
623
+ content: [{ type: "text", text: envelope.content }],
549
624
  };
550
625
  },
551
626
  });
@@ -563,9 +638,12 @@ const extension = (pi) => {
563
638
  if (params.name && !found) {
564
639
  throw new Error(`Workflow '${params.name}' not found. Available workflows: ${listWorkflowNames(ctx.cwd)}`);
565
640
  }
641
+ // FGAP-089: validation results — edge surface (no finer addressing) →
642
+ // head-leading marked partial on over-cap.
643
+ const envelope = serializeForRead(results, { label: "validation results" });
566
644
  return {
567
645
  details: undefined,
568
- content: [{ type: "text", text: truncateHead(JSON.stringify(results, null, 2)).content }],
646
+ content: [{ type: "text", text: envelope.content }],
569
647
  };
570
648
  },
571
649
  });
@@ -578,9 +656,12 @@ const extension = (pi) => {
578
656
  parameters: Type.Object({}),
579
657
  async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
580
658
  const status = gatherWorkflowStatus(ctx.cwd);
659
+ // FGAP-089: a structured vocabulary object — edge surface (no finer
660
+ // addressing) → head-leading marked partial on over-cap.
661
+ const envelope = serializeForRead(status, { whole: true, label: "workflow status" });
581
662
  return {
582
663
  details: undefined,
583
- content: [{ type: "text", text: truncateHead(JSON.stringify(status, null, 2)).content }],
664
+ content: [{ type: "text", text: envelope.content }],
584
665
  };
585
666
  },
586
667
  });
@@ -593,9 +674,60 @@ const extension = (pi) => {
593
674
  parameters: Type.Object({}),
594
675
  async execute(_toolCallId, _params, _signal, _onUpdate, ctx) {
595
676
  const result = initWorkflowDirs(ctx.cwd);
677
+ // FGAP-089: init result — edge surface (no finer addressing) →
678
+ // head-leading marked partial on over-cap.
679
+ const envelope = serializeForRead(result, { whole: true, label: "workflow init" });
680
+ return {
681
+ details: undefined,
682
+ content: [{ type: "text", text: envelope.content }],
683
+ };
684
+ },
685
+ });
686
+ // ── Tool: render-item-by-id ─────────────────────────────────────────────
687
+ pi.registerTool({
688
+ name: "render-item-by-id",
689
+ label: "Render Item By Id",
690
+ description: "Render a project block item by ID through its registered per-item macro. Resolves the item via the cross-block resolver, looks up the macro via the renderer registry, and renders with the supplied depth and depth-aware cross-reference recursion. Returns `[not-found: <id>]` on resolver miss and `[unrendered: <kind>/<id>]` on registry miss — same fallback markers `render_recursive` emits inside agent prompts.",
691
+ promptSnippet: "Render a project block item as prompt text via its per-item macro (with depth-controlled cross-ref recursion)",
692
+ parameters: Type.Object({
693
+ id: Type.String({ description: "Kind-prefixed ID, e.g., DEC-NNNN / FEAT-NNN" }),
694
+ depth: Type.Optional(Type.Number({
695
+ description: "0 = bare-ID refs (default), 1 = inline direct cross-references, 2+ = recurse further",
696
+ })),
697
+ }),
698
+ async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
699
+ const renderedString = renderItemById(ctx.cwd, params.id, params.depth ?? 0);
700
+ return {
701
+ details: undefined,
702
+ content: [{ type: "text", text: renderedString }],
703
+ };
704
+ },
705
+ });
706
+ // ── Tool: enforce-budget ────────────────────────────────────────────────
707
+ pi.registerTool({
708
+ name: "enforce-budget",
709
+ label: "Enforce Prompt Budget",
710
+ description: "Check rendered text against an `x-prompt-budget` annotation on a schema field. Returns `{ output, warning }` — `output` is the original text passed through when under budget, or tail-truncated text with `[…truncated to budget]` marker when over; `warning` is null when no truncation occurred or a structured BudgetWarning record otherwise. Annotation absence is pass-through (no error). Mirrors the behaviour of the `enforceBudget` Nunjucks global registered by compileAgent.",
711
+ promptSnippet: "Validate rendered text against a schema field's prompt budget — returns truncated output and warning",
712
+ parameters: Type.Object({
713
+ rendered: Type.String({ description: "Rendered text to check against the field's prompt budget" }),
714
+ blockName: Type.String({
715
+ description: "Block schema name (without .schema.json suffix), e.g. 'decisions' or 'features'",
716
+ }),
717
+ fieldPath: Type.String({
718
+ description: "JSON-pointer-style path to the field, e.g. '/properties/decisions/items/properties/context'",
719
+ }),
720
+ }),
721
+ async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
722
+ const schemaFile = schemaPath(ctx.cwd, params.blockName);
723
+ if (!fs.existsSync(schemaFile)) {
724
+ throw new Error(`enforce-budget: schema file not found at ${schemaFile} for block '${params.blockName}'.`);
725
+ }
726
+ const schema = JSON.parse(fs.readFileSync(schemaFile, "utf-8"));
727
+ const result = enforceBudget(params.rendered, schema, params.fieldPath);
596
728
  return {
597
729
  details: undefined,
598
- content: [{ type: "text", text: truncateHead(JSON.stringify(result, null, 2)).content }],
730
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
599
731
  };
600
732
  },
601
733
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Composition-time helper: render a project block item by ID through its
3
+ * registered per-item macro.
4
+ *
5
+ * Composes the substrate primitives:
6
+ * - `buildIdIndex(cwd)` — pi-project, locates the item by ID
7
+ * - `createRendererRegistry` — pi-jit-agents, resolves the per-item macro
8
+ * - `createTemplateEnv` — pi-jit-agents, constructs the Nunjucks env
9
+ * - `registerCompositionGlobals` — pi-jit-agents, installs the same
10
+ * resolve / render_recursive / enforceBudget
11
+ * globals that compileAgent installs
12
+ * - `dispatchInlineMacro` — pi-jit-agents, single inline-by-source
13
+ * macro dispatch shared with `render_recursive`
14
+ *
15
+ * The single source of truth for the composition-globals contract is
16
+ * `registerCompositionGlobals` in pi-jit-agents — both compileAgent and this
17
+ * helper consume it. A new global, a signature change, or a fallback-marker
18
+ * adjustment lands once and propagates to every caller.
19
+ *
20
+ * Output contract:
21
+ * - happy path: renders the item via the registry's macro for the item's
22
+ * block kind, with cycle detection across recursive sibling
23
+ * references, returning the rendered string.
24
+ * - resolver miss: returns `[not-found: <id>]` — the ID does not exist in any
25
+ * indexed block.
26
+ * - registry miss: returns `[unrendered: <kind>/<id>]` — the registry has no
27
+ * per-item macro for the item's block kind. Mirrors the
28
+ * `render_recursive` fallback marker so a caller comparing
29
+ * output across direct invocation vs recursive-from-macro
30
+ * sees the same shape.
31
+ *
32
+ * The `builtinDir` for the renderer registry resolves to this package's
33
+ * bundled `templates/` directory (the Plan 6/7/8 per-item macros), the third
34
+ * tier in the registry's project / user / builtin search.
35
+ */
36
+ import { type ItemLocation } from "@davidorex/pi-context";
37
+ /**
38
+ * Render the item identified by `id` via its registered per-item macro.
39
+ *
40
+ * @param cwd project root used for `.project/` block reads, schema lookups
41
+ * for `enforceBudget`, and the project tier of registry / template
42
+ * discovery.
43
+ * @param id kind-prefixed item ID (DEC-/FEAT-/FGAP-/issue-/REQ-/TASK-/...).
44
+ * @param depth recursion budget for cross-block reference inlining inside the
45
+ * macro. 0 = bare-ID refs (no recursion); 1 = inline direct refs;
46
+ * 2+ = recursive descent up to the budget. The macro's own
47
+ * `depth > 0` guards control fan-out, then `render_recursive`
48
+ * propagates `depth - 1` per descent.
49
+ *
50
+ * @returns rendered string per the output contract documented at file head:
51
+ * `[not-found: <id>]` on resolver miss,
52
+ * `[unrendered: <kind>/<id>]` on registry miss,
53
+ * rendered text on happy path.
54
+ *
55
+ * Side-effect: budget warnings collected by the `enforceBudget` global during
56
+ * rendering are silently discarded by this entry point. A future surface may
57
+ * propagate them through the return shape; the current contract returns only
58
+ * the rendered string for parity with `render_recursive`.
59
+ */
60
+ export declare function renderItemById(cwd: string, id: string, depth?: number): string;
61
+ export type { ItemLocation };
62
+ //# sourceMappingURL=render-by-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-by-id.d.ts","sourceRoot":"","sources":["../src/render-by-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAYxE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CA+CjF;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Composition-time helper: render a project block item by ID through its
3
+ * registered per-item macro.
4
+ *
5
+ * Composes the substrate primitives:
6
+ * - `buildIdIndex(cwd)` — pi-project, locates the item by ID
7
+ * - `createRendererRegistry` — pi-jit-agents, resolves the per-item macro
8
+ * - `createTemplateEnv` — pi-jit-agents, constructs the Nunjucks env
9
+ * - `registerCompositionGlobals` — pi-jit-agents, installs the same
10
+ * resolve / render_recursive / enforceBudget
11
+ * globals that compileAgent installs
12
+ * - `dispatchInlineMacro` — pi-jit-agents, single inline-by-source
13
+ * macro dispatch shared with `render_recursive`
14
+ *
15
+ * The single source of truth for the composition-globals contract is
16
+ * `registerCompositionGlobals` in pi-jit-agents — both compileAgent and this
17
+ * helper consume it. A new global, a signature change, or a fallback-marker
18
+ * adjustment lands once and propagates to every caller.
19
+ *
20
+ * Output contract:
21
+ * - happy path: renders the item via the registry's macro for the item's
22
+ * block kind, with cycle detection across recursive sibling
23
+ * references, returning the rendered string.
24
+ * - resolver miss: returns `[not-found: <id>]` — the ID does not exist in any
25
+ * indexed block.
26
+ * - registry miss: returns `[unrendered: <kind>/<id>]` — the registry has no
27
+ * per-item macro for the item's block kind. Mirrors the
28
+ * `render_recursive` fallback marker so a caller comparing
29
+ * output across direct invocation vs recursive-from-macro
30
+ * sees the same shape.
31
+ *
32
+ * The `builtinDir` for the renderer registry resolves to this package's
33
+ * bundled `templates/` directory (the Plan 6/7/8 per-item macros), the third
34
+ * tier in the registry's project / user / builtin search.
35
+ */
36
+ import { buildIdIndex } from "@davidorex/pi-context";
37
+ import { bundledTemplateDir, createRendererRegistry, createTemplateEnv, dispatchInlineMacro, notFoundMarker, registerCompositionGlobals, unrenderedMarker, } from "@davidorex/pi-jit-agents";
38
+ /**
39
+ * Render the item identified by `id` via its registered per-item macro.
40
+ *
41
+ * @param cwd project root used for `.project/` block reads, schema lookups
42
+ * for `enforceBudget`, and the project tier of registry / template
43
+ * discovery.
44
+ * @param id kind-prefixed item ID (DEC-/FEAT-/FGAP-/issue-/REQ-/TASK-/...).
45
+ * @param depth recursion budget for cross-block reference inlining inside the
46
+ * macro. 0 = bare-ID refs (no recursion); 1 = inline direct refs;
47
+ * 2+ = recursive descent up to the budget. The macro's own
48
+ * `depth > 0` guards control fan-out, then `render_recursive`
49
+ * propagates `depth - 1` per descent.
50
+ *
51
+ * @returns rendered string per the output contract documented at file head:
52
+ * `[not-found: <id>]` on resolver miss,
53
+ * `[unrendered: <kind>/<id>]` on registry miss,
54
+ * rendered text on happy path.
55
+ *
56
+ * Side-effect: budget warnings collected by the `enforceBudget` global during
57
+ * rendering are silently discarded by this entry point. A future surface may
58
+ * propagate them through the return shape; the current contract returns only
59
+ * the rendered string for parity with `render_recursive`.
60
+ */
61
+ export function renderItemById(cwd, id, depth = 0) {
62
+ // F1 (Cycle 7): buildIdIndex now returns a SubstrateIndex; take its
63
+ // refname-keyed lookup map (`.byRefname`) — the surface both the point lookup
64
+ // below and the `getIdIndex` composition-global closure (which contracts a
65
+ // refname-keyed Map) consume.
66
+ const idIndex = buildIdIndex(cwd).byRefname;
67
+ const loc = idIndex.get(id);
68
+ if (!loc) {
69
+ return notFoundMarker(id);
70
+ }
71
+ const builtinDir = bundledTemplateDir();
72
+ const registry = createRendererRegistry({ cwd, builtinDir });
73
+ const macroRef = registry.lookup(loc.block);
74
+ if (!macroRef) {
75
+ return unrenderedMarker(loc.block, id);
76
+ }
77
+ const env = createTemplateEnv({ cwd, builtinDir });
78
+ // Composition globals — single source per registerCompositionGlobals.
79
+ // Pass a getIdIndex closure that returns the already-built index so the
80
+ // resolve/render_recursive globals do not rebuild it on each call.
81
+ const warnings = [];
82
+ registerCompositionGlobals({
83
+ env,
84
+ cwd,
85
+ rendererRegistry: registry,
86
+ getIdIndex: () => idIndex,
87
+ warningsCollector: warnings,
88
+ });
89
+ // Inline-by-source dispatch via the shared dispatchInlineMacro helper —
90
+ // the same approach `render_recursive` uses. Reads the macro file content
91
+ // and appends a call expression so absolute macro paths from the registry
92
+ // dispatch directly without going through the env's FileSystemLoader (the
93
+ // loader is anchored to the three-tier search dirs configured at
94
+ // createTemplateEnv time, which may not contain the absolute macro paths
95
+ // the registry returns).
96
+ return dispatchInlineMacro({
97
+ env,
98
+ templatePath: macroRef.templatePath,
99
+ macroName: macroRef.macroName,
100
+ item: loc.item,
101
+ depth,
102
+ errorContext: `${loc.block}/${id}`,
103
+ });
104
+ }
105
+ //# sourceMappingURL=render-by-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-by-id.js","sourceRoot":"","sources":["../src/render-by-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,GAChB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,EAAU,EAAE,QAAgB,CAAC;IACxE,oEAAoE;IACpE,8EAA8E;IAC9E,2EAA2E;IAC3E,8BAA8B;IAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAEnD,sEAAsE;IACtE,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,0BAA0B,CAAC;QAC1B,GAAG;QACH,GAAG;QACH,gBAAgB,EAAE,QAAQ;QAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO;QACzB,iBAAiB,EAAE,QAAQ;KAC3B,CAAC,CAAC;IAEH,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,iEAAiE;IACjE,yEAAyE;IACzE,yBAAyB;IACzB,OAAO,mBAAmB,CAAC;QAC1B,GAAG;QACH,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK;QACL,YAAY,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE;KAClC,CAAC,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
- import { validate, validateFromFile } from "@davidorex/pi-project/schema-validator";
6
+ import { validate, validateFromFile } from "@davidorex/pi-context/schema-validator";
7
7
  import { dispatch } from "./dispatch.js";
8
8
  import { resolveExpressions } from "./expression.js";
9
9
  import { persistStepOutput } from "./output.js";
@@ -4,10 +4,14 @@
4
4
  *
5
5
  * Operations:
6
6
  * - read: single or multi-block read via readBlock()
7
- * - readDir: directory enumeration for .project/ subdirectories
7
+ * - readDir: directory enumeration via readBlockDir() (re-exported from block-api)
8
8
  * - write: validated write via writeBlock()
9
9
  * - append: array append via appendToBlock()
10
10
  * - update: item update via updateItemInBlock()
11
+ * - nestedAppend: append to a nested array inside a parent-array item via appendToNestedArray()
12
+ * - updateNested: update an item inside a nested array on a parent-array item via updateNestedArrayItem()
13
+ * - remove: remove items matching a predicate from a top-level array via removeFromBlock()
14
+ * - removeNested: remove items matching a predicate from a nested array on a parent-array item via removeFromNestedArray()
11
15
  */
12
16
  import type { BlockSpec, StepResult } from "./types.js";
13
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"step-block.d.ts","sourceRoot":"","sources":["../src/step-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GACjB,UAAU,CA6CZ"}
1
+ {"version":3,"file":"step-block.d.ts","sourceRoot":"","sources":["../src/step-block.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoBH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD;;;GAGG;AACH,wBAAgB,YAAY,CAC3B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GACjB,UAAU,CAuDZ"}