@davidorex/pi-context 0.26.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 (126) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +195 -0
  3. package/dist/block-api.d.ts +328 -0
  4. package/dist/block-api.d.ts.map +1 -0
  5. package/dist/block-api.js +1167 -0
  6. package/dist/block-api.js.map +1 -0
  7. package/dist/block-validation.d.ts +33 -0
  8. package/dist/block-validation.d.ts.map +1 -0
  9. package/dist/block-validation.js +213 -0
  10. package/dist/block-validation.js.map +1 -0
  11. package/dist/context-dir.d.ts +93 -0
  12. package/dist/context-dir.d.ts.map +1 -0
  13. package/dist/context-dir.js +224 -0
  14. package/dist/context-dir.js.map +1 -0
  15. package/dist/context-sdk.d.ts +428 -0
  16. package/dist/context-sdk.d.ts.map +1 -0
  17. package/dist/context-sdk.js +1327 -0
  18. package/dist/context-sdk.js.map +1 -0
  19. package/dist/context.d.ts +497 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +1060 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/dispatch-context.d.ts +112 -0
  24. package/dist/dispatch-context.d.ts.map +1 -0
  25. package/dist/dispatch-context.js +119 -0
  26. package/dist/dispatch-context.js.map +1 -0
  27. package/dist/execution-context.d.ts +138 -0
  28. package/dist/execution-context.d.ts.map +1 -0
  29. package/dist/execution-context.js +151 -0
  30. package/dist/execution-context.js.map +1 -0
  31. package/dist/index.d.ts +34 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +1655 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/lens-validator.d.ts +50 -0
  36. package/dist/lens-validator.d.ts.map +1 -0
  37. package/dist/lens-validator.js +46 -0
  38. package/dist/lens-validator.js.map +1 -0
  39. package/dist/lens-view.d.ts +75 -0
  40. package/dist/lens-view.d.ts.map +1 -0
  41. package/dist/lens-view.js +253 -0
  42. package/dist/lens-view.js.map +1 -0
  43. package/dist/rename-canonical-id.d.ts +64 -0
  44. package/dist/rename-canonical-id.d.ts.map +1 -0
  45. package/dist/rename-canonical-id.js +378 -0
  46. package/dist/rename-canonical-id.js.map +1 -0
  47. package/dist/roadmap-plan.d.ts +186 -0
  48. package/dist/roadmap-plan.d.ts.map +1 -0
  49. package/dist/roadmap-plan.js +534 -0
  50. package/dist/roadmap-plan.js.map +1 -0
  51. package/dist/samples-catalog.d.ts +48 -0
  52. package/dist/samples-catalog.d.ts.map +1 -0
  53. package/dist/samples-catalog.js +128 -0
  54. package/dist/samples-catalog.js.map +1 -0
  55. package/dist/schema-migrations.d.ts +82 -0
  56. package/dist/schema-migrations.d.ts.map +1 -0
  57. package/dist/schema-migrations.js +106 -0
  58. package/dist/schema-migrations.js.map +1 -0
  59. package/dist/schema-validator.d.ts +76 -0
  60. package/dist/schema-validator.d.ts.map +1 -0
  61. package/dist/schema-validator.js +219 -0
  62. package/dist/schema-validator.js.map +1 -0
  63. package/dist/schema-write.d.ts +122 -0
  64. package/dist/schema-write.d.ts.map +1 -0
  65. package/dist/schema-write.js +210 -0
  66. package/dist/schema-write.js.map +1 -0
  67. package/dist/status-vocab.d.ts +60 -0
  68. package/dist/status-vocab.d.ts.map +1 -0
  69. package/dist/status-vocab.js +109 -0
  70. package/dist/status-vocab.js.map +1 -0
  71. package/dist/test-helpers.d.ts +12 -0
  72. package/dist/test-helpers.d.ts.map +1 -0
  73. package/dist/test-helpers.js +28 -0
  74. package/dist/test-helpers.js.map +1 -0
  75. package/dist/topo.d.ts +19 -0
  76. package/dist/topo.d.ts.map +1 -0
  77. package/dist/topo.js +99 -0
  78. package/dist/topo.js.map +1 -0
  79. package/dist/update-check.d.ts +6 -0
  80. package/dist/update-check.d.ts.map +1 -0
  81. package/dist/update-check.js +82 -0
  82. package/dist/update-check.js.map +1 -0
  83. package/package.json +115 -0
  84. package/samples/blocks/context-contracts.json +3 -0
  85. package/samples/blocks/conventions.json +3 -0
  86. package/samples/blocks/decisions.json +3 -0
  87. package/samples/blocks/features.json +3 -0
  88. package/samples/blocks/framework-gaps.json +3 -0
  89. package/samples/blocks/issues.json +3 -0
  90. package/samples/blocks/layer-plans.json +3 -0
  91. package/samples/blocks/phase.json +3 -0
  92. package/samples/blocks/rationale.json +3 -0
  93. package/samples/blocks/requirements.json +3 -0
  94. package/samples/blocks/research.json +3 -0
  95. package/samples/blocks/spec-reviews.json +3 -0
  96. package/samples/blocks/story.json +3 -0
  97. package/samples/blocks/tasks.json +3 -0
  98. package/samples/blocks/verification.json +3 -0
  99. package/samples/conception.json +467 -0
  100. package/samples/schemas/context-contracts.schema.json +89 -0
  101. package/samples/schemas/conventions.schema.json +34 -0
  102. package/samples/schemas/decisions.schema.json +87 -0
  103. package/samples/schemas/features.schema.json +53 -0
  104. package/samples/schemas/framework-gaps.schema.json +64 -0
  105. package/samples/schemas/issues.schema.json +39 -0
  106. package/samples/schemas/layer-plans.schema.json +92 -0
  107. package/samples/schemas/phase.schema.json +118 -0
  108. package/samples/schemas/rationale.schema.json +24 -0
  109. package/samples/schemas/requirements.schema.json +34 -0
  110. package/samples/schemas/research.schema.json +134 -0
  111. package/samples/schemas/spec-reviews.schema.json +62 -0
  112. package/samples/schemas/story.schema.json +73 -0
  113. package/samples/schemas/tasks.schema.json +34 -0
  114. package/samples/schemas/verification.schema.json +37 -0
  115. package/schemas/bootstrap.schema.json +24 -0
  116. package/schemas/config.schema.json +193 -0
  117. package/schemas/layer.schema.json +9 -0
  118. package/schemas/priority.schema.json +9 -0
  119. package/schemas/relations.schema.json +31 -0
  120. package/schemas/severity.schema.json +9 -0
  121. package/schemas/source.schema.json +9 -0
  122. package/schemas/status.schema.json +9 -0
  123. package/schemas/verification-method.schema.json +9 -0
  124. package/skill-narrative.md +130 -0
  125. package/skills/pi-context/SKILL.md +684 -0
  126. package/skills/pi-context/references/bundled-resources.md +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Dispatch context — authorship attestation surface for block-api writes.
3
+ *
4
+ * Closes structurally:
5
+ * - FGAP-004 (authorship attestation at block write time): block-api write
6
+ * functions accept an optional `DispatchContext`. When provided AND the
7
+ * target schema declares author fields (created_by / created_at /
8
+ * modified_by / modified_at), the write surface stamps the item before
9
+ * AJV validation. When omitted, behavior is byte-identical to the prior
10
+ * surface — the parameter is purely additive.
11
+ *
12
+ * Convention reference: `created_by` strings already in committed blocks
13
+ * follow `<kind>/<id>`, e.g. `agent/claude-opus-4-6` in
14
+ * `.project/decisions.json`. `writerToString` reproduces that exact format
15
+ * across the four `WriterIdentity` discriminants.
16
+ *
17
+ * Out-of-scope for step 3:
18
+ * - Adding author fields to schemas that lack them (FGAP-006 schema
19
+ * versioning territory; step 4)
20
+ * - Migrating existing block-api callers to pass `ctx` (incremental;
21
+ * opt-in by design — never required)
22
+ * - Deprecating non-ctx writes (no — `ctx` remains optional for the
23
+ * full rebuild arc)
24
+ *
25
+ * This module has no external dependencies — pure types + helpers — so it
26
+ * can be imported from block-api.ts, schema-write.ts, or any consumer
27
+ * without forming a cycle through context / context-sdk.
28
+ */
29
+ /**
30
+ * Discriminated union of writer kinds. Each branch carries the minimum id
31
+ * needed to round-trip through `writerToString`. The string form is the
32
+ * canonical write-time author marker shape used in `.project/*.json`.
33
+ */
34
+ export type WriterIdentity = {
35
+ kind: "human";
36
+ user: string;
37
+ } | {
38
+ kind: "agent";
39
+ agent_id: string;
40
+ model?: string;
41
+ } | {
42
+ kind: "monitor";
43
+ monitor_name: string;
44
+ } | {
45
+ kind: "workflow";
46
+ workflow_step_id: string;
47
+ };
48
+ /**
49
+ * Optional final argument passed to block-api write functions. The shape
50
+ * stays minimal in step 3 — `writer` is the single field — so future
51
+ * additions (trace ids, run ids, intent labels) extend the interface
52
+ * without breaking existing callers.
53
+ */
54
+ export interface DispatchContext {
55
+ writer: WriterIdentity;
56
+ }
57
+ /**
58
+ * Render a `WriterIdentity` into the canonical `<kind>/<id>` string form.
59
+ * The id segment is the human-readable identifier per kind:
60
+ * - human → `user`
61
+ * - agent → `agent_id`
62
+ * - monitor → `monitor_name`
63
+ * - workflow → `workflow_step_id`
64
+ *
65
+ * Examples (matches existing decisions.json convention):
66
+ * writerToString({kind: "agent", agent_id: "claude-opus-4-7"})
67
+ * → "agent/claude-opus-4-7"
68
+ * writerToString({kind: "human", user: "david"})
69
+ * → "human/david"
70
+ * writerToString({kind: "monitor", monitor_name: "fragility-detector"})
71
+ * → "monitor/fragility-detector"
72
+ * writerToString({kind: "workflow", workflow_step_id: "step-5"})
73
+ * → "workflow/step-5"
74
+ *
75
+ * `model` on agent writers is informational metadata — it is intentionally
76
+ * excluded from the canonical string form to keep author markers stable
77
+ * across model upgrades for the same agent.
78
+ */
79
+ export declare function writerToString(w: WriterIdentity): string;
80
+ /**
81
+ * Stamp authorship fields onto a copy of `item` and return the new object.
82
+ * The original `item` is never mutated — callers can safely retain the
83
+ * pre-stamp reference.
84
+ *
85
+ * Stamping rules (each field is only assigned when `declaredFields` includes
86
+ * its name — schemas that declare a SUBSET of the four author fields receive
87
+ * stamps only for the declared subset; the rest are left untouched so that
88
+ * `additionalProperties: false` schemas validate cleanly):
89
+ * - mode === "create":
90
+ * `created_by` and `created_at` (if declared) are set ONLY if the field
91
+ * is missing (or present-but-undefined). Pre-existing values are
92
+ * preserved so that re-creates / replays do not overwrite the original
93
+ * author. `modified_by` and `modified_at` (if declared) are always set
94
+ * to current values.
95
+ * - mode === "update":
96
+ * `created_by` and `created_at` are NEVER touched even when declared.
97
+ * `modified_by` and `modified_at` (if declared) are always refreshed
98
+ * to current values.
99
+ *
100
+ * Timestamps use ISO 8601 via `new Date().toISOString()`, matching the
101
+ * format shipping in `.project/decisions.json` etc.
102
+ *
103
+ * `declaredFields` is the per-schema set of author-field property names that
104
+ * the target shape's `properties` object declares. The block-api schema
105
+ * introspection cache builds the set per (block, arrayKey or envelope) and
106
+ * threads it in here. An empty set means "schema declares no author fields"
107
+ * — `stampItem` then returns the item unchanged. Callers should normally
108
+ * route through `maybeStampItem` (block-api.ts) which short-circuits before
109
+ * this function on an empty set; the empty-set path here is defensive.
110
+ */
111
+ export declare function stampItem(item: Record<string, unknown>, ctx: DispatchContext, mode: "create" | "update", declaredFields: ReadonlySet<string>): Record<string, unknown>;
112
+ //# sourceMappingURL=dispatch-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-context.d.ts","sourceRoot":"","sources":["../src/dispatch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACvB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,cAAc,CAAC;CACvB;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAWxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,EACzB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Dispatch context — authorship attestation surface for block-api writes.
3
+ *
4
+ * Closes structurally:
5
+ * - FGAP-004 (authorship attestation at block write time): block-api write
6
+ * functions accept an optional `DispatchContext`. When provided AND the
7
+ * target schema declares author fields (created_by / created_at /
8
+ * modified_by / modified_at), the write surface stamps the item before
9
+ * AJV validation. When omitted, behavior is byte-identical to the prior
10
+ * surface — the parameter is purely additive.
11
+ *
12
+ * Convention reference: `created_by` strings already in committed blocks
13
+ * follow `<kind>/<id>`, e.g. `agent/claude-opus-4-6` in
14
+ * `.project/decisions.json`. `writerToString` reproduces that exact format
15
+ * across the four `WriterIdentity` discriminants.
16
+ *
17
+ * Out-of-scope for step 3:
18
+ * - Adding author fields to schemas that lack them (FGAP-006 schema
19
+ * versioning territory; step 4)
20
+ * - Migrating existing block-api callers to pass `ctx` (incremental;
21
+ * opt-in by design — never required)
22
+ * - Deprecating non-ctx writes (no — `ctx` remains optional for the
23
+ * full rebuild arc)
24
+ *
25
+ * This module has no external dependencies — pure types + helpers — so it
26
+ * can be imported from block-api.ts, schema-write.ts, or any consumer
27
+ * without forming a cycle through context / context-sdk.
28
+ */
29
+ // ── Helpers ─────────────────────────────────────────────────────────────────
30
+ /**
31
+ * Render a `WriterIdentity` into the canonical `<kind>/<id>` string form.
32
+ * The id segment is the human-readable identifier per kind:
33
+ * - human → `user`
34
+ * - agent → `agent_id`
35
+ * - monitor → `monitor_name`
36
+ * - workflow → `workflow_step_id`
37
+ *
38
+ * Examples (matches existing decisions.json convention):
39
+ * writerToString({kind: "agent", agent_id: "claude-opus-4-7"})
40
+ * → "agent/claude-opus-4-7"
41
+ * writerToString({kind: "human", user: "david"})
42
+ * → "human/david"
43
+ * writerToString({kind: "monitor", monitor_name: "fragility-detector"})
44
+ * → "monitor/fragility-detector"
45
+ * writerToString({kind: "workflow", workflow_step_id: "step-5"})
46
+ * → "workflow/step-5"
47
+ *
48
+ * `model` on agent writers is informational metadata — it is intentionally
49
+ * excluded from the canonical string form to keep author markers stable
50
+ * across model upgrades for the same agent.
51
+ */
52
+ export function writerToString(w) {
53
+ switch (w.kind) {
54
+ case "human":
55
+ return `human/${w.user}`;
56
+ case "agent":
57
+ return `agent/${w.agent_id}`;
58
+ case "monitor":
59
+ return `monitor/${w.monitor_name}`;
60
+ case "workflow":
61
+ return `workflow/${w.workflow_step_id}`;
62
+ }
63
+ }
64
+ /**
65
+ * Stamp authorship fields onto a copy of `item` and return the new object.
66
+ * The original `item` is never mutated — callers can safely retain the
67
+ * pre-stamp reference.
68
+ *
69
+ * Stamping rules (each field is only assigned when `declaredFields` includes
70
+ * its name — schemas that declare a SUBSET of the four author fields receive
71
+ * stamps only for the declared subset; the rest are left untouched so that
72
+ * `additionalProperties: false` schemas validate cleanly):
73
+ * - mode === "create":
74
+ * `created_by` and `created_at` (if declared) are set ONLY if the field
75
+ * is missing (or present-but-undefined). Pre-existing values are
76
+ * preserved so that re-creates / replays do not overwrite the original
77
+ * author. `modified_by` and `modified_at` (if declared) are always set
78
+ * to current values.
79
+ * - mode === "update":
80
+ * `created_by` and `created_at` are NEVER touched even when declared.
81
+ * `modified_by` and `modified_at` (if declared) are always refreshed
82
+ * to current values.
83
+ *
84
+ * Timestamps use ISO 8601 via `new Date().toISOString()`, matching the
85
+ * format shipping in `.project/decisions.json` etc.
86
+ *
87
+ * `declaredFields` is the per-schema set of author-field property names that
88
+ * the target shape's `properties` object declares. The block-api schema
89
+ * introspection cache builds the set per (block, arrayKey or envelope) and
90
+ * threads it in here. An empty set means "schema declares no author fields"
91
+ * — `stampItem` then returns the item unchanged. Callers should normally
92
+ * route through `maybeStampItem` (block-api.ts) which short-circuits before
93
+ * this function on an empty set; the empty-set path here is defensive.
94
+ */
95
+ export function stampItem(item, ctx, mode, declaredFields) {
96
+ if (declaredFields.size === 0)
97
+ return { ...item };
98
+ const writer = writerToString(ctx.writer);
99
+ const now = new Date().toISOString();
100
+ const out = { ...item };
101
+ if (mode === "create") {
102
+ if (declaredFields.has("created_by") && (out.created_by === undefined || out.created_by === null)) {
103
+ out.created_by = writer;
104
+ }
105
+ if (declaredFields.has("created_at") && (out.created_at === undefined || out.created_at === null)) {
106
+ out.created_at = now;
107
+ }
108
+ }
109
+ // modified_by + modified_at refresh on every call — both create (item is
110
+ // also being modified at create time) and update — but only when declared.
111
+ if (declaredFields.has("modified_by")) {
112
+ out.modified_by = writer;
113
+ }
114
+ if (declaredFields.has("modified_at")) {
115
+ out.modified_at = now;
116
+ }
117
+ return out;
118
+ }
119
+ //# sourceMappingURL=dispatch-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-context.js","sourceRoot":"","sources":["../src/dispatch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAyBH,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,cAAc,CAAC,CAAiB;IAC/C,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,OAAO;YACX,OAAO,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9B,KAAK,SAAS;YACb,OAAO,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC;QACpC,KAAK,UAAU;YACd,OAAO,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,SAAS,CACxB,IAA6B,EAC7B,GAAoB,EACpB,IAAyB,EACzB,cAAmC;IAEnC,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;YACnG,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;YACnG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,CAAC;IACF,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * gatherExecutionContext primitive — work-unit-driven context bundling per
3
+ * DEC-0017. Reads the unit + reads its context-contract (keyed by unit_kind)
4
+ * + walks each declared relation_type in the contract bidirectionally per
5
+ * direction semantic + resolves reached ids to full items via the bulk
6
+ * resolver + returns the composed ContextBundle as one structured payload.
7
+ *
8
+ * Closure scope: this module closes FGAP-031 (gather-execution-context
9
+ * primitive) by composing existing pieces:
10
+ * - filterBlockItems (context-sdk.ts; TASK-034 / Phase 2.1) — locates the
11
+ * context-contract entry by unit_kind without scanning the whole block.
12
+ * - resolveItemsByIds (context-sdk.ts; TASK-035 / Phase 2.2) — cross-block
13
+ * bulk lookup over a single buildIdIndex traversal; used twice (once to
14
+ * read the unit by id, once to resolve reached ids per relation_type).
15
+ * - walkAncestors / walkDescendants / findReferences (context.ts;
16
+ * TASK-036/037 / Phase 2.3/2.4) — closure-table traversal primitives.
17
+ * - loadRelations (context.ts existing) — single substrate read of
18
+ * relations.json reused across every declared relation_type's walk; the
19
+ * traversal primitives operate on the loaded Edge[] in-memory rather
20
+ * than re-reading disk per relation_type.
21
+ *
22
+ * Direction semantics (BundleRelationTypeSpec.direction):
23
+ * "in" — walk inbound chain (walkAncestors) — items that point AT the
24
+ * unit through this relation_type (e.g. constrained_by edges
25
+ * where unit is the constrained child).
26
+ * "out" — walk outbound chain (walkDescendants) — items the unit points
27
+ * AT through this relation_type.
28
+ * "both" — union of in + out as a deduped id set.
29
+ *
30
+ * Depth bound: callers MAY override per-spec.max_depth via args.maxDepth;
31
+ * the effective depth is `Math.min(args.maxDepth, spec.max_depth)`. The
32
+ * traversal primitives themselves are visited-set bounded but not currently
33
+ * depth-bounded (cycle-safe via the visited set); recording the effective
34
+ * depth on the bundle preserves the contract surface for a future
35
+ * depth-bounded variant (FGAP-029 depth-bound territory) without breaking
36
+ * the current callable shape.
37
+ *
38
+ * Error surface: returns `{ error: string }` (NOT throw) for three failure
39
+ * modes:
40
+ * - unit id not found in the cross-block index.
41
+ * - context-contracts read failure (e.g. schema absent / corrupt file).
42
+ * - no context-contract entry matches the requested unit_kind.
43
+ * Other errors (relations.json schema failure, block-file parse failure)
44
+ * propagate as throws via the underlying primitives — these are substrate
45
+ * corruption, not lookup misses.
46
+ *
47
+ * Per DEC-0019 dual-surface pattern: this library function pairs with the
48
+ * gather-execution-context pi tool (index.ts) and the orchestrator script
49
+ * scripts/orchestrator/gather-execution-context.ts; all three ship as one
50
+ * atomic unit. TASK-039 / Phase 3 sub-phase 3.2.
51
+ */
52
+ /**
53
+ * One entry in a context-contract's bundle_relation_types[] — declares a
54
+ * relation_type to walk, the direction of traversal, the per-relation depth
55
+ * bound, and an optional applicability_predicate (FGAP-010 territory;
56
+ * reserved, not yet consumed by this primitive).
57
+ */
58
+ export interface BundleRelationTypeSpec {
59
+ relation_type: string;
60
+ direction: "in" | "out" | "both";
61
+ max_depth: number;
62
+ applicability_predicate?: string;
63
+ }
64
+ /**
65
+ * Context-contract block-item shape (matches the registry schema at
66
+ * `packages/pi-context/registry/schemas/context-contracts.schema.json`).
67
+ * Re-declared here at the consumer boundary rather than imported from a
68
+ * generated types module — the schema is the source of truth and the
69
+ * shape is small enough that explicit duplication is cheaper than a
70
+ * codegen step.
71
+ */
72
+ export interface ContextContract {
73
+ id: string;
74
+ unit_kind: string;
75
+ bundle_relation_types: BundleRelationTypeSpec[];
76
+ description?: string;
77
+ notes?: string;
78
+ created_by: string;
79
+ created_at: string;
80
+ modified_by?: string;
81
+ modified_at?: string;
82
+ }
83
+ /**
84
+ * Composed execution-context bundle returned by gatherExecutionContext.
85
+ *
86
+ * unit — the work-unit item payload as read from its block.
87
+ * perRelationType — map from relation_type to the resolved item payloads
88
+ * reached by walking that relation_type per the
89
+ * contract's direction + depth bound.
90
+ * traversal_depth — the max effective depth applied across all walks
91
+ * (i.e. max over `min(args.maxDepth, spec.max_depth)`).
92
+ * Reflects the bound applied, not the depth actually
93
+ * reached — callers reasoning about reach should
94
+ * inspect perRelationType lengths directly.
95
+ * scoped_at — ISO timestamp at which the bundle was composed;
96
+ * records when the substrate snapshot read happened.
97
+ */
98
+ export interface ContextBundle {
99
+ unit: Record<string, unknown>;
100
+ perRelationType: Record<string, Record<string, unknown>[]>;
101
+ traversal_depth: number;
102
+ scoped_at: string;
103
+ }
104
+ /**
105
+ * Arguments to gatherExecutionContext. `kind` selects the context-contract
106
+ * entry to apply (by `unit_kind`); `maxDepth` optionally caps every
107
+ * BundleRelationTypeSpec.max_depth via Math.min.
108
+ */
109
+ export interface GatherExecutionContextArgs {
110
+ unitId: string;
111
+ kind: string;
112
+ maxDepth?: number;
113
+ }
114
+ /**
115
+ * Compose a ContextBundle for `args.unitId` of kind `args.kind`.
116
+ *
117
+ * Steps:
118
+ * 1. Cross-block lookup of the unit item (via the bulk resolver — single
119
+ * buildIdIndex traversal). Missing unit → return `{ error }`.
120
+ * 2. Filter context-contracts.json by `unit_kind == args.kind`. The block
121
+ * read failure surfaces as `{ error }`; missing match also returns
122
+ * `{ error }`. First match wins when multiple contracts share a
123
+ * unit_kind — the schema permits multiple entries but the substrate
124
+ * convention is one contract per unit_kind.
125
+ * 3. Single loadRelations(cwd) read; reused across every declared
126
+ * relation_type walk.
127
+ * 4. For each BundleRelationTypeSpec: compute effective depth, dispatch
128
+ * direction → walkAncestors / walkDescendants / union; resolve the
129
+ * reached id set to full items via resolveItemsByIds (bulk over the
130
+ * already-built index for that relation_type — index is rebuilt per
131
+ * resolveItemsByIds call by current contract).
132
+ * 5. Return ContextBundle with unit + perRelationType map + max effective
133
+ * depth + scoped_at timestamp.
134
+ */
135
+ export declare function gatherExecutionContext(cwd: string, args: GatherExecutionContextArgs): ContextBundle | {
136
+ error: string;
137
+ };
138
+ //# sourceMappingURL=execution-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../src/execution-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAKH;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,sBAAsB,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,0BAA0B,GAC9B,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA6EnC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * gatherExecutionContext primitive — work-unit-driven context bundling per
3
+ * DEC-0017. Reads the unit + reads its context-contract (keyed by unit_kind)
4
+ * + walks each declared relation_type in the contract bidirectionally per
5
+ * direction semantic + resolves reached ids to full items via the bulk
6
+ * resolver + returns the composed ContextBundle as one structured payload.
7
+ *
8
+ * Closure scope: this module closes FGAP-031 (gather-execution-context
9
+ * primitive) by composing existing pieces:
10
+ * - filterBlockItems (context-sdk.ts; TASK-034 / Phase 2.1) — locates the
11
+ * context-contract entry by unit_kind without scanning the whole block.
12
+ * - resolveItemsByIds (context-sdk.ts; TASK-035 / Phase 2.2) — cross-block
13
+ * bulk lookup over a single buildIdIndex traversal; used twice (once to
14
+ * read the unit by id, once to resolve reached ids per relation_type).
15
+ * - walkAncestors / walkDescendants / findReferences (context.ts;
16
+ * TASK-036/037 / Phase 2.3/2.4) — closure-table traversal primitives.
17
+ * - loadRelations (context.ts existing) — single substrate read of
18
+ * relations.json reused across every declared relation_type's walk; the
19
+ * traversal primitives operate on the loaded Edge[] in-memory rather
20
+ * than re-reading disk per relation_type.
21
+ *
22
+ * Direction semantics (BundleRelationTypeSpec.direction):
23
+ * "in" — walk inbound chain (walkAncestors) — items that point AT the
24
+ * unit through this relation_type (e.g. constrained_by edges
25
+ * where unit is the constrained child).
26
+ * "out" — walk outbound chain (walkDescendants) — items the unit points
27
+ * AT through this relation_type.
28
+ * "both" — union of in + out as a deduped id set.
29
+ *
30
+ * Depth bound: callers MAY override per-spec.max_depth via args.maxDepth;
31
+ * the effective depth is `Math.min(args.maxDepth, spec.max_depth)`. The
32
+ * traversal primitives themselves are visited-set bounded but not currently
33
+ * depth-bounded (cycle-safe via the visited set); recording the effective
34
+ * depth on the bundle preserves the contract surface for a future
35
+ * depth-bounded variant (FGAP-029 depth-bound territory) without breaking
36
+ * the current callable shape.
37
+ *
38
+ * Error surface: returns `{ error: string }` (NOT throw) for three failure
39
+ * modes:
40
+ * - unit id not found in the cross-block index.
41
+ * - context-contracts read failure (e.g. schema absent / corrupt file).
42
+ * - no context-contract entry matches the requested unit_kind.
43
+ * Other errors (relations.json schema failure, block-file parse failure)
44
+ * propagate as throws via the underlying primitives — these are substrate
45
+ * corruption, not lookup misses.
46
+ *
47
+ * Per DEC-0019 dual-surface pattern: this library function pairs with the
48
+ * gather-execution-context pi tool (index.ts) and the orchestrator script
49
+ * scripts/orchestrator/gather-execution-context.ts; all three ship as one
50
+ * atomic unit. TASK-039 / Phase 3 sub-phase 3.2.
51
+ */
52
+ import { loadRelations, walkAncestors, walkDescendants } from "./context.js";
53
+ import { filterBlockItems, resolveItemsByIds } from "./context-sdk.js";
54
+ /**
55
+ * Compose a ContextBundle for `args.unitId` of kind `args.kind`.
56
+ *
57
+ * Steps:
58
+ * 1. Cross-block lookup of the unit item (via the bulk resolver — single
59
+ * buildIdIndex traversal). Missing unit → return `{ error }`.
60
+ * 2. Filter context-contracts.json by `unit_kind == args.kind`. The block
61
+ * read failure surfaces as `{ error }`; missing match also returns
62
+ * `{ error }`. First match wins when multiple contracts share a
63
+ * unit_kind — the schema permits multiple entries but the substrate
64
+ * convention is one contract per unit_kind.
65
+ * 3. Single loadRelations(cwd) read; reused across every declared
66
+ * relation_type walk.
67
+ * 4. For each BundleRelationTypeSpec: compute effective depth, dispatch
68
+ * direction → walkAncestors / walkDescendants / union; resolve the
69
+ * reached id set to full items via resolveItemsByIds (bulk over the
70
+ * already-built index for that relation_type — index is rebuilt per
71
+ * resolveItemsByIds call by current contract).
72
+ * 5. Return ContextBundle with unit + perRelationType map + max effective
73
+ * depth + scoped_at timestamp.
74
+ */
75
+ export function gatherExecutionContext(cwd, args) {
76
+ // 1. Read the unit by id (cross-block via the bulk resolver — single
77
+ // buildIdIndex traversal even for the singleton lookup; same
78
+ // contract as resolveItemById, just the bulk surface).
79
+ const unitMap = resolveItemsByIds(cwd, [args.unitId]);
80
+ const unitLoc = unitMap.get(args.unitId);
81
+ if (!unitLoc)
82
+ return { error: `unit not found: ${args.unitId}` };
83
+ const unit = unitLoc.item;
84
+ // 2. Look up the context-contract by unit_kind. filterBlockItems throws
85
+ // on substrate read / schema failure — convert that to an error
86
+ // return so the tool surface doesn't propagate substrate-corruption
87
+ // style throws as unhandled.
88
+ let contracts;
89
+ try {
90
+ contracts = filterBlockItems(cwd, "context-contracts", {
91
+ field: "unit_kind",
92
+ op: "eq",
93
+ value: args.kind,
94
+ });
95
+ }
96
+ catch (err) {
97
+ return {
98
+ error: `context-contracts read failed: ${err instanceof Error ? err.message : String(err)}`,
99
+ };
100
+ }
101
+ if (contracts.length === 0) {
102
+ return { error: `no context-contract for kind: ${args.kind}` };
103
+ }
104
+ const contract = contracts[0];
105
+ // 3. Single relations.json read; reused across every relation_type walk.
106
+ const edges = loadRelations(cwd);
107
+ // 4. Walk each declared relation_type per direction, resolve reached
108
+ // ids to full items, accumulate perRelationType buckets.
109
+ const perRelationType = {};
110
+ let maxDepthSeen = 0;
111
+ for (const spec of contract.bundle_relation_types) {
112
+ const effectiveDepth = args.maxDepth !== undefined ? Math.min(args.maxDepth, spec.max_depth) : spec.max_depth;
113
+ maxDepthSeen = Math.max(maxDepthSeen, effectiveDepth);
114
+ let reachedIds;
115
+ if (spec.direction === "in") {
116
+ reachedIds = walkAncestors(args.unitId, spec.relation_type, edges);
117
+ }
118
+ else if (spec.direction === "out") {
119
+ reachedIds = walkDescendants(args.unitId, spec.relation_type, edges);
120
+ }
121
+ else {
122
+ // "both" — deduped union of inbound + outbound id chains.
123
+ const inIds = walkAncestors(args.unitId, spec.relation_type, edges);
124
+ const outIds = walkDescendants(args.unitId, spec.relation_type, edges);
125
+ reachedIds = Array.from(new Set([...inIds, ...outIds]));
126
+ }
127
+ if (reachedIds.length === 0) {
128
+ perRelationType[spec.relation_type] = [];
129
+ continue;
130
+ }
131
+ // Bulk resolve reached ids; preserve traversal-order in the output
132
+ // bucket. Unresolvable ids (e.g. dangling edges referencing items
133
+ // not present in any block) are dropped silently — the bucket
134
+ // reflects the substrate-resolved subset, not the edge set.
135
+ const itemMap = resolveItemsByIds(cwd, reachedIds);
136
+ const items = [];
137
+ for (const id of reachedIds) {
138
+ const loc = itemMap.get(id);
139
+ if (loc)
140
+ items.push(loc.item);
141
+ }
142
+ perRelationType[spec.relation_type] = items;
143
+ }
144
+ return {
145
+ unit: unit,
146
+ perRelationType,
147
+ traversal_depth: maxDepthSeen,
148
+ scoped_at: new Date().toISOString(),
149
+ };
150
+ }
151
+ //# sourceMappingURL=execution-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../src/execution-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ /**
3
+ * Result shape from installContext. installed/updated/skipped/notFound carry
4
+ * relative-to-project-root destination paths (schemas/<name>.schema.json or
5
+ * <name>.json). error is set only when no .project/config.json exists.
6
+ */
7
+ export interface InstallResult {
8
+ error?: string;
9
+ installed: string[];
10
+ updated: string[];
11
+ skipped: string[];
12
+ notFound: string[];
13
+ }
14
+ /**
15
+ * /context install opt-in mechanism (DEC-0011). Reads config.installed_schemas
16
+ * and config.installed_blocks, copies declared assets from the package
17
+ * samples catalog (samples/, keyed by conception.json's block_kinds) into the
18
+ * project's substrate root + schemas dir.
19
+ *
20
+ * - Default behavior is skip-if-exists. With overwrite=true, replaces the
21
+ * destination file and reports as "updated" rather than "installed".
22
+ * - Sources missing from the samples catalog are reported as "notFound".
23
+ * - Empty install lists are not an error — the result is a clean no-op.
24
+ */
25
+ export declare function installContext(cwd: string, options?: {
26
+ overwrite?: boolean;
27
+ }): InstallResult;
28
+ declare const extension: (pi: ExtensionAPI) => void;
29
+ export default extension;
30
+ export type { CompleteTaskResult, ItemLocation } from "./context-sdk.js";
31
+ export { blockStructure, buildIdIndex, CONTEXT_BLOCK_TYPES, completeTask, findAppendableBlocks, resolveItemById, schemaInfo, schemaVocabulary, } from "./context-sdk.js";
32
+ export { type RenameKind, type RenameReport, renameCanonicalId } from "./rename-canonical-id.js";
33
+ export { listRoadmaps, loadRoadmap, type PhaseSpec, type PhaseStatus, type PhaseView, type RoadmapSpec, type RoadmapView, renderRoadmap, resolveStatusVocabulary, rollupPhaseStatus, topoSort, validateRoadmaps, } from "./roadmap-plan.js";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAGX,YAAY,EAGZ,MAAM,iCAAiC,CAAC;AA0QzC;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAoFhG;AAiED,QAAA,MAAM,SAAS,GAAI,IAAI,YAAY,SAouDlC,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EACN,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,EACN,YAAY,EACZ,WAAW,EACX,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,EACR,gBAAgB,GAChB,MAAM,mBAAmB,CAAC"}