@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.
- package/CHANGELOG.md +23 -0
- package/README.md +195 -0
- package/dist/block-api.d.ts +328 -0
- package/dist/block-api.d.ts.map +1 -0
- package/dist/block-api.js +1167 -0
- package/dist/block-api.js.map +1 -0
- package/dist/block-validation.d.ts +33 -0
- package/dist/block-validation.d.ts.map +1 -0
- package/dist/block-validation.js +213 -0
- package/dist/block-validation.js.map +1 -0
- package/dist/context-dir.d.ts +93 -0
- package/dist/context-dir.d.ts.map +1 -0
- package/dist/context-dir.js +224 -0
- package/dist/context-dir.js.map +1 -0
- package/dist/context-sdk.d.ts +428 -0
- package/dist/context-sdk.d.ts.map +1 -0
- package/dist/context-sdk.js +1327 -0
- package/dist/context-sdk.js.map +1 -0
- package/dist/context.d.ts +497 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +1060 -0
- package/dist/context.js.map +1 -0
- package/dist/dispatch-context.d.ts +112 -0
- package/dist/dispatch-context.d.ts.map +1 -0
- package/dist/dispatch-context.js +119 -0
- package/dist/dispatch-context.js.map +1 -0
- package/dist/execution-context.d.ts +138 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +151 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1655 -0
- package/dist/index.js.map +1 -0
- package/dist/lens-validator.d.ts +50 -0
- package/dist/lens-validator.d.ts.map +1 -0
- package/dist/lens-validator.js +46 -0
- package/dist/lens-validator.js.map +1 -0
- package/dist/lens-view.d.ts +75 -0
- package/dist/lens-view.d.ts.map +1 -0
- package/dist/lens-view.js +253 -0
- package/dist/lens-view.js.map +1 -0
- package/dist/rename-canonical-id.d.ts +64 -0
- package/dist/rename-canonical-id.d.ts.map +1 -0
- package/dist/rename-canonical-id.js +378 -0
- package/dist/rename-canonical-id.js.map +1 -0
- package/dist/roadmap-plan.d.ts +186 -0
- package/dist/roadmap-plan.d.ts.map +1 -0
- package/dist/roadmap-plan.js +534 -0
- package/dist/roadmap-plan.js.map +1 -0
- package/dist/samples-catalog.d.ts +48 -0
- package/dist/samples-catalog.d.ts.map +1 -0
- package/dist/samples-catalog.js +128 -0
- package/dist/samples-catalog.js.map +1 -0
- package/dist/schema-migrations.d.ts +82 -0
- package/dist/schema-migrations.d.ts.map +1 -0
- package/dist/schema-migrations.js +106 -0
- package/dist/schema-migrations.js.map +1 -0
- package/dist/schema-validator.d.ts +76 -0
- package/dist/schema-validator.d.ts.map +1 -0
- package/dist/schema-validator.js +219 -0
- package/dist/schema-validator.js.map +1 -0
- package/dist/schema-write.d.ts +122 -0
- package/dist/schema-write.d.ts.map +1 -0
- package/dist/schema-write.js +210 -0
- package/dist/schema-write.js.map +1 -0
- package/dist/status-vocab.d.ts +60 -0
- package/dist/status-vocab.d.ts.map +1 -0
- package/dist/status-vocab.js +109 -0
- package/dist/status-vocab.js.map +1 -0
- package/dist/test-helpers.d.ts +12 -0
- package/dist/test-helpers.d.ts.map +1 -0
- package/dist/test-helpers.js +28 -0
- package/dist/test-helpers.js.map +1 -0
- package/dist/topo.d.ts +19 -0
- package/dist/topo.d.ts.map +1 -0
- package/dist/topo.js +99 -0
- package/dist/topo.js.map +1 -0
- package/dist/update-check.d.ts +6 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +82 -0
- package/dist/update-check.js.map +1 -0
- package/package.json +115 -0
- package/samples/blocks/context-contracts.json +3 -0
- package/samples/blocks/conventions.json +3 -0
- package/samples/blocks/decisions.json +3 -0
- package/samples/blocks/features.json +3 -0
- package/samples/blocks/framework-gaps.json +3 -0
- package/samples/blocks/issues.json +3 -0
- package/samples/blocks/layer-plans.json +3 -0
- package/samples/blocks/phase.json +3 -0
- package/samples/blocks/rationale.json +3 -0
- package/samples/blocks/requirements.json +3 -0
- package/samples/blocks/research.json +3 -0
- package/samples/blocks/spec-reviews.json +3 -0
- package/samples/blocks/story.json +3 -0
- package/samples/blocks/tasks.json +3 -0
- package/samples/blocks/verification.json +3 -0
- package/samples/conception.json +467 -0
- package/samples/schemas/context-contracts.schema.json +89 -0
- package/samples/schemas/conventions.schema.json +34 -0
- package/samples/schemas/decisions.schema.json +87 -0
- package/samples/schemas/features.schema.json +53 -0
- package/samples/schemas/framework-gaps.schema.json +64 -0
- package/samples/schemas/issues.schema.json +39 -0
- package/samples/schemas/layer-plans.schema.json +92 -0
- package/samples/schemas/phase.schema.json +118 -0
- package/samples/schemas/rationale.schema.json +24 -0
- package/samples/schemas/requirements.schema.json +34 -0
- package/samples/schemas/research.schema.json +134 -0
- package/samples/schemas/spec-reviews.schema.json +62 -0
- package/samples/schemas/story.schema.json +73 -0
- package/samples/schemas/tasks.schema.json +34 -0
- package/samples/schemas/verification.schema.json +37 -0
- package/schemas/bootstrap.schema.json +24 -0
- package/schemas/config.schema.json +193 -0
- package/schemas/layer.schema.json +9 -0
- package/schemas/priority.schema.json +9 -0
- package/schemas/relations.schema.json +31 -0
- package/schemas/severity.schema.json +9 -0
- package/schemas/source.schema.json +9 -0
- package/schemas/status.schema.json +9 -0
- package/schemas/verification-method.schema.json +9 -0
- package/skill-narrative.md +130 -0
- package/skills/pi-context/SKILL.md +684 -0
- package/skills/pi-context/references/bundled-resources.md +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-dir.js","sourceRoot":"","sources":["../src/context-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project SDK — queryable surface for project block state, discovery,
|
|
3
|
+
* and derived metrics. Computes everything dynamically from filesystem
|
|
4
|
+
* and git — no cache, no stale data.
|
|
5
|
+
*/
|
|
6
|
+
import { type ConfigBlock } from "./context.js";
|
|
7
|
+
export { type BlockKindDecl, type CompositionMember, type ConfigBlock, type ContextData, type CurationSuggestion, displayName, type Edge, edgesForLens, groupByLens, type HierarchyDecl, type InvariantDecl, type ItemRecord, type LayerDecl, type LensSpec, listUncategorized, loadConfig, loadContext, loadRelations, type RelationTypeDecl, type StatusBucket, type SubstrateValidationIssue, type SubstrateValidationResult, synthesizeFromField, validateRelations, walkDescendants, } from "./context.js";
|
|
8
|
+
export interface BlockInfo {
|
|
9
|
+
name: string;
|
|
10
|
+
hasSchema: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function availableBlocks(cwd: string): BlockInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* Discover schemas in the substrate dir's `schemas/` subdirectory (resolved
|
|
15
|
+
* via `schemasDir(cwd)` per DEC-0015). Returns sorted list of
|
|
16
|
+
* absolute paths to .schema.json files.
|
|
17
|
+
*/
|
|
18
|
+
export declare function availableSchemas(cwd: string): string[];
|
|
19
|
+
/**
|
|
20
|
+
* Discover blocks with array properties by scanning the substrate dir's
|
|
21
|
+
* `schemas/` subdirectory (resolved via `schemasDir(cwd)` per
|
|
22
|
+
* DEC-0015) for schemas whose root type has at least one array property.
|
|
23
|
+
* Returns block name, first array key, and schema path for each.
|
|
24
|
+
*/
|
|
25
|
+
export declare function findAppendableBlocks(cwd: string): Array<{
|
|
26
|
+
block: string;
|
|
27
|
+
arrayKey: string;
|
|
28
|
+
schemaPath: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** Default planning lifecycle block types shipped with /context init. */
|
|
31
|
+
export declare const CONTEXT_BLOCK_TYPES: readonly ["project", "domain", "requirements", "architecture", "tasks", "decisions", "issues", "rationale", "verification", "handoff", "conformance-reference", "audit"];
|
|
32
|
+
export interface SchemaProperty {
|
|
33
|
+
name: string;
|
|
34
|
+
type: string;
|
|
35
|
+
required: boolean;
|
|
36
|
+
description?: string;
|
|
37
|
+
enum?: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface SchemaInfo {
|
|
40
|
+
name: string;
|
|
41
|
+
title: string;
|
|
42
|
+
properties: SchemaProperty[];
|
|
43
|
+
arrayKeys: string[];
|
|
44
|
+
itemProperties?: Record<string, SchemaProperty[]>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Read and parse a schema, extracting property metadata.
|
|
48
|
+
* Returns null if the schema file doesn't exist or is unparseable.
|
|
49
|
+
*/
|
|
50
|
+
export declare function schemaInfo(cwd: string, schemaName: string): SchemaInfo | null;
|
|
51
|
+
/**
|
|
52
|
+
* Extract schema property metadata from an ABSOLUTE schema file path.
|
|
53
|
+
* Identical extraction to `schemaInfo` but addressed by path rather than
|
|
54
|
+
* (cwd, name) — lets package-intrinsic consumers (e.g. samples-catalog) read
|
|
55
|
+
* the extension's bundled samples/schemas/*.schema.json without a project
|
|
56
|
+
* substrate. Returns null if the schema file doesn't exist or is unparseable.
|
|
57
|
+
*/
|
|
58
|
+
export declare function schemaInfoFromPath(absSchemaPath: string, schemaName: string): SchemaInfo | null;
|
|
59
|
+
/**
|
|
60
|
+
* All schemas with their property metadata.
|
|
61
|
+
* Scans the substrate dir's `schemas/` subdirectory (resolved via
|
|
62
|
+
* `schemasDir(cwd)` per DEC-0015) and parses each schema.
|
|
63
|
+
*/
|
|
64
|
+
export declare function schemaVocabulary(cwd: string): SchemaInfo[];
|
|
65
|
+
export interface BlockStructure {
|
|
66
|
+
name: string;
|
|
67
|
+
exists: boolean;
|
|
68
|
+
hasSchema: boolean;
|
|
69
|
+
arrays: {
|
|
70
|
+
key: string;
|
|
71
|
+
itemCount: number;
|
|
72
|
+
}[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* What blocks exist and their structure — combines availableBlocks
|
|
76
|
+
* and block summaries into a single queryable function.
|
|
77
|
+
*/
|
|
78
|
+
export declare function blockStructure(cwd: string): BlockStructure[];
|
|
79
|
+
export interface ArraySummary {
|
|
80
|
+
total: number;
|
|
81
|
+
byStatus?: Record<string, number>;
|
|
82
|
+
}
|
|
83
|
+
export interface BlockSummary {
|
|
84
|
+
arrays: Record<string, ArraySummary>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Zero-loss derived "where are we + what's next" state (DEC-0040 / FGAP-072 /
|
|
88
|
+
* FGAP-059). A pure function of `.project` substrate — focus, in-flight units,
|
|
89
|
+
* atomic-next ranked actions, and blocked tasks are all DERIVED, never
|
|
90
|
+
* hand-stored. Built to serve `.context` identically once that substrate-dir
|
|
91
|
+
* lands. Reuses existing primitives (buildIdIndex / loadRelations / topoSort);
|
|
92
|
+
* introduces no new traversal or status logic.
|
|
93
|
+
*/
|
|
94
|
+
export interface CurrentState {
|
|
95
|
+
/** one-line: active in-flight ids, else current in-progress phase, else "no active focus." */
|
|
96
|
+
focus: string;
|
|
97
|
+
/** tasks with status "in-progress" */
|
|
98
|
+
inFlight: {
|
|
99
|
+
id: string;
|
|
100
|
+
block: string;
|
|
101
|
+
description: string;
|
|
102
|
+
}[];
|
|
103
|
+
/** atomic-next, ranked: open framework-gaps (by priority) then unblocked planned tasks (topo order) */
|
|
104
|
+
nextActions: {
|
|
105
|
+
id: string;
|
|
106
|
+
kind: string;
|
|
107
|
+
priority?: string;
|
|
108
|
+
reason: string;
|
|
109
|
+
}[];
|
|
110
|
+
/** planned tasks whose task_depends_on_task dependency parents are not ALL completed */
|
|
111
|
+
blocked: {
|
|
112
|
+
id: string;
|
|
113
|
+
block: string;
|
|
114
|
+
blockedBy: string[];
|
|
115
|
+
}[];
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The four-state bootstrap progression, derived purely from the filesystem
|
|
119
|
+
* (DEC-0040 — nothing stored). Consumed by the `/context start` conductor, the
|
|
120
|
+
* dispatch READY-gate, and the startup-slot hint (DEC-0042 / FGAP-095).
|
|
121
|
+
*/
|
|
122
|
+
export type BootstrapState = "no-pointer" | "no-config" | "not-installed" | "ready";
|
|
123
|
+
export interface BootstrapStatus {
|
|
124
|
+
/** which stop in the bootstrap progression `cwd` is at */
|
|
125
|
+
state: BootstrapState;
|
|
126
|
+
/** absolute substrate dir once the `.pi-context.json` pointer exists, else null */
|
|
127
|
+
contextDir: string | null;
|
|
128
|
+
/** declared-but-unmaterialized installed assets — populated only for "not-installed", else empty */
|
|
129
|
+
missing: {
|
|
130
|
+
schemas: string[];
|
|
131
|
+
blocks: string[];
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Derive the bootstrap progression for `cwd` from the filesystem, in order:
|
|
136
|
+
* no-pointer — no `.pi-context.json` (checked directly so this NEVER throws
|
|
137
|
+
* pre-bootstrap — it is the unset-substrate detection read the
|
|
138
|
+
* harness-confined LLM uses to redirect the human to `/context start`)
|
|
139
|
+
* no-config — pointer present, no `config.json`
|
|
140
|
+
* not-installed — config present, some declared installed_* asset is absent
|
|
141
|
+
* ready — config present, all declared assets materialized (or none declared)
|
|
142
|
+
*
|
|
143
|
+
* Does NOT swallow corruption: a malformed `config.json` propagates
|
|
144
|
+
* `loadConfig`'s ValidationError — the four states are the NORMAL progression;
|
|
145
|
+
* corruption is a separate error condition, not a bootstrap stop.
|
|
146
|
+
*/
|
|
147
|
+
export declare function deriveBootstrapState(cwd: string): BootstrapStatus;
|
|
148
|
+
export interface ContextState {
|
|
149
|
+
testCount: number;
|
|
150
|
+
sourceFiles: number;
|
|
151
|
+
sourceLines: number;
|
|
152
|
+
lastCommit: string;
|
|
153
|
+
lastCommitMessage: string;
|
|
154
|
+
recentCommits: string[];
|
|
155
|
+
blockSummaries: Record<string, BlockSummary>;
|
|
156
|
+
phases: {
|
|
157
|
+
total: number;
|
|
158
|
+
current: number;
|
|
159
|
+
};
|
|
160
|
+
blocks: number;
|
|
161
|
+
schemas: number;
|
|
162
|
+
requirements?: {
|
|
163
|
+
total: number;
|
|
164
|
+
byStatus: Record<string, number>;
|
|
165
|
+
byPriority: Record<string, number>;
|
|
166
|
+
};
|
|
167
|
+
tasks?: {
|
|
168
|
+
total: number;
|
|
169
|
+
byStatus: Record<string, number>;
|
|
170
|
+
};
|
|
171
|
+
domain?: {
|
|
172
|
+
total: number;
|
|
173
|
+
};
|
|
174
|
+
verifications?: {
|
|
175
|
+
total: number;
|
|
176
|
+
passed: number;
|
|
177
|
+
failed: number;
|
|
178
|
+
};
|
|
179
|
+
hasHandoff?: boolean;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Derive project state from authoritative sources at query time.
|
|
183
|
+
* No cache, no stale data — computed fresh on every call.
|
|
184
|
+
*/
|
|
185
|
+
export declare function contextState(cwd: string): ContextState;
|
|
186
|
+
/**
|
|
187
|
+
* Derive {@link CurrentState} ("where are we + what's next") purely from
|
|
188
|
+
* `.project` substrate. No writes; tolerant of absent optional blocks (every
|
|
189
|
+
* branch defaults to empty rather than throwing).
|
|
190
|
+
*
|
|
191
|
+
* Edge-direction contract for blocked/ready derivation (verified against
|
|
192
|
+
* roadmap-plan.ts:471 — the topoSort-deps mapping for phase_depends_on uses the
|
|
193
|
+
* identical convention): a `task_depends_on_task` edge `{parent: D, child: T}`
|
|
194
|
+
* means task T DEPENDS ON task D, so D must reach status "completed" before T is
|
|
195
|
+
* unblocked. (relation name source_verb_target = task_depends_on_task ⇒ child is
|
|
196
|
+
* the source/dependent, parent is the target/prerequisite; config display_name
|
|
197
|
+
* "depends on task".)
|
|
198
|
+
*/
|
|
199
|
+
export declare function currentState(cwd: string): CurrentState;
|
|
200
|
+
/**
|
|
201
|
+
* Predicate operators for filterBlockItems. Each operator carries a
|
|
202
|
+
* documented semantic against `item[field]`:
|
|
203
|
+
* - `eq` : strict-equality (===) against `value`
|
|
204
|
+
* - `neq` : strict-inequality (!==) against `value`
|
|
205
|
+
* - `in` : `value` must be an array; matches when item[field] is in it
|
|
206
|
+
* - `matches` : item[field] must be a string; tested against `new RegExp(value)`
|
|
207
|
+
*
|
|
208
|
+
* The match policy for items missing the predicate field is uniform:
|
|
209
|
+
* `item[field] === undefined` → NOT a match (returns false) for every
|
|
210
|
+
* operator. Rationale: returning early avoids throwing on heterogeneous
|
|
211
|
+
* block arrays where some items legitimately lack the field; callers that
|
|
212
|
+
* want a hard "field must exist" gate compose with `op: "neq", value: undefined`
|
|
213
|
+
* (still excluded by the undefined branch — current semantic is filter, not
|
|
214
|
+
* schema assertion). Documented here rather than via throw so callers get a
|
|
215
|
+
* cleanly-typed empty/partial array rather than a runtime trap.
|
|
216
|
+
*/
|
|
217
|
+
export interface FilterPredicate {
|
|
218
|
+
field: string;
|
|
219
|
+
op: "eq" | "neq" | "in" | "matches";
|
|
220
|
+
value: unknown;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Filter the array items of a block by a predicate. Reads the block via the
|
|
224
|
+
* canonical block-api `readBlock`, discovers the single top-level array key,
|
|
225
|
+
* and returns a new array of items satisfying the predicate. The source
|
|
226
|
+
* block is never mutated.
|
|
227
|
+
*
|
|
228
|
+
* Behavior contract:
|
|
229
|
+
* - Block must exist; underlying `readBlock` throw propagates.
|
|
230
|
+
* - Block must have exactly one top-level array property (single-array
|
|
231
|
+
* assumption — same as inject-context-items.ts).
|
|
232
|
+
* - Items missing the predicate field never match (see FilterPredicate
|
|
233
|
+
* docstring for rationale).
|
|
234
|
+
* - `op: "in"` requires `value` to be an array; otherwise no items match.
|
|
235
|
+
* - `op: "matches"` constructs `new RegExp(String(value))`; a malformed
|
|
236
|
+
* regex pattern throws synchronously from the RegExp constructor.
|
|
237
|
+
*
|
|
238
|
+
* Closes part of the FGAP-026 phase 2 query-surface gap (TASK-034).
|
|
239
|
+
*/
|
|
240
|
+
export declare function filterBlockItems(cwd: string, blockName: string, predicate: FilterPredicate): unknown[];
|
|
241
|
+
export interface BlockPage {
|
|
242
|
+
items: unknown[];
|
|
243
|
+
total: number;
|
|
244
|
+
hasMore: boolean;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Read a single item from ONE named block by its id, or null if absent.
|
|
248
|
+
* Block-scoped (no cross-substrate idIndex, no prefix-vs-block invariant — that is resolveItemById).
|
|
249
|
+
* Reuses filterBlockItems(id eq) so it inherits readBlock + discoverArrayKey + edge semantics
|
|
250
|
+
* (missing block / multiple top-level arrays THROW; no-array block or id-not-found → null). FGAP-045.
|
|
251
|
+
*/
|
|
252
|
+
export declare function readBlockItem(cwd: string, blockName: string, id: string): unknown | null;
|
|
253
|
+
/**
|
|
254
|
+
* Paginate a block's items. Reuses readBlock + discoverArrayKey. Returns the FULL count as `total`
|
|
255
|
+
* (not the page length) and `hasMore = offset + limit < total`. No-array block → {items:[],total:0,
|
|
256
|
+
* hasMore:false}; offset ≥ total → empty items with correct total. Missing block / multiple top-level
|
|
257
|
+
* arrays propagate the throw (consistent with filterBlockItems). FGAP-045.
|
|
258
|
+
*/
|
|
259
|
+
export declare function readBlockPage(cwd: string, blockName: string, opts?: {
|
|
260
|
+
offset?: number;
|
|
261
|
+
limit?: number;
|
|
262
|
+
}): BlockPage;
|
|
263
|
+
export interface JoinSpec {
|
|
264
|
+
leftBlock: string;
|
|
265
|
+
rightBlock: string;
|
|
266
|
+
relationType?: string;
|
|
267
|
+
leftField?: string;
|
|
268
|
+
rightField?: string;
|
|
269
|
+
leftEndpoint?: "parent" | "child";
|
|
270
|
+
leftPredicate?: FilterPredicate;
|
|
271
|
+
}
|
|
272
|
+
export interface JoinResult {
|
|
273
|
+
left: Record<string, unknown>;
|
|
274
|
+
right: Record<string, unknown>[];
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Cross-block join (FGAP-043, HYBRID). Mode = exactly one of relationType (edge) XOR
|
|
278
|
+
* leftField+rightField (field). Returns one JoinResult per left item (after leftPredicate),
|
|
279
|
+
* right always an array. Edge mode is DEC-0013-native (relations.json); field mode joins on a
|
|
280
|
+
* shared field value (legacy inline-FK + arbitrary shared fields). Reuses filterBlockItems /
|
|
281
|
+
* readBlock / discoverArrayKey / loadRelations / buildIdIndex.
|
|
282
|
+
*/
|
|
283
|
+
export declare function joinBlocks(cwd: string, spec: JoinSpec): JoinResult[];
|
|
284
|
+
/**
|
|
285
|
+
* Locator for a single item discovered by buildIdIndex: which block file it
|
|
286
|
+
* lives in, which array key inside that block holds it, and the item payload.
|
|
287
|
+
* Intended as the substrate for renderer-driven cross-reference resolution
|
|
288
|
+
* (e.g., a per-item macro inlining a related decision by ID).
|
|
289
|
+
*/
|
|
290
|
+
export interface ItemLocation {
|
|
291
|
+
block: string;
|
|
292
|
+
arrayKey: string;
|
|
293
|
+
item: Record<string, unknown>;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Look up the block expected to host an ID based on its prefix, driven by
|
|
297
|
+
* the config registry.
|
|
298
|
+
*
|
|
299
|
+
* Resolution: scan `cfg.block_kinds[]` for the longest-matching `prefix`
|
|
300
|
+
* and return its `canonical_id`. Returns null when:
|
|
301
|
+
* - `cfg` is null (no config / pre-bootstrap project — graceful fallback)
|
|
302
|
+
* - no `block_kinds[].prefix` matches the id (bare phase IDs, legacy
|
|
303
|
+
* unprefixed IDs, future prefixes not yet registered)
|
|
304
|
+
*
|
|
305
|
+
* Registry is config-driven from line 1 — prefix conflicts surface at
|
|
306
|
+
* config-registration time rather than fixture-write time. Closes issue-089
|
|
307
|
+
* class (PLAN- vs PLAN-NNN collision) structurally.
|
|
308
|
+
*
|
|
309
|
+
* Longest-prefix wins so that compatible registrations like `R-` and
|
|
310
|
+
* `REVIEW-` resolve unambiguously.
|
|
311
|
+
*/
|
|
312
|
+
export declare function expectedBlockForId(id: string, cfg: ConfigBlock | null): string | null;
|
|
313
|
+
/**
|
|
314
|
+
* Build a map from item-ID to its location across every block in `.project/`.
|
|
315
|
+
*
|
|
316
|
+
* Scan strategy:
|
|
317
|
+
* - `.project/*.json` — every array property whose items are objects with
|
|
318
|
+
* a string `id` field becomes an indexed entry. Phases participate as an
|
|
319
|
+
* ordinary array-block since DEC-0028 (PHASE-NNN ids in `phase.json` under
|
|
320
|
+
* the plural `phases` array key); there is no dedicated file-per-phase branch.
|
|
321
|
+
*
|
|
322
|
+
* Prefix invariant: when an item ID starts with one of the prefixes registered
|
|
323
|
+
* in `config.block_kinds[]`, the block it was found in must match that
|
|
324
|
+
* registry's `canonical_id`. Mismatches throw immediately — schema patterns
|
|
325
|
+
* make this state unreachable through validated writes, so encountering one
|
|
326
|
+
* indicates either a direct-fs corruption or an unmapped prefix collision that
|
|
327
|
+
* needs explicit resolution. When no config exists (pre-bootstrap project),
|
|
328
|
+
* the prefix invariant is silently skipped — every encountered id is indexed
|
|
329
|
+
* without enforcement.
|
|
330
|
+
*
|
|
331
|
+
* Collisions on identical IDs across different blocks: first writer wins
|
|
332
|
+
* (no overwrite) — duplicate entries are intentionally ignored to keep
|
|
333
|
+
* the resolver deterministic without allocating warning channels here.
|
|
334
|
+
*/
|
|
335
|
+
export declare function buildIdIndex(cwd: string): Map<string, ItemLocation>;
|
|
336
|
+
/**
|
|
337
|
+
* One-off lookup — builds the full index then performs a single get.
|
|
338
|
+
* Callers performing multiple lookups in one render pass should call
|
|
339
|
+
* `buildIdIndex` once and reuse the returned map.
|
|
340
|
+
*/
|
|
341
|
+
export declare function resolveItemById(cwd: string, id: string): ItemLocation | null;
|
|
342
|
+
/**
|
|
343
|
+
* Bulk variant of `resolveItemById` — resolve N ids against a single
|
|
344
|
+
* `buildIdIndex` traversal. Complements the singular form (which remains
|
|
345
|
+
* available for one-off renderer-driven lookups) by collapsing N independent
|
|
346
|
+
* `buildIdIndex` rebuilds into one. Coexists with the singular surface;
|
|
347
|
+
* neither supersedes the other.
|
|
348
|
+
*
|
|
349
|
+
* Semantics:
|
|
350
|
+
* - Returns a `Map<string, ItemLocation | null>` whose entries are keyed
|
|
351
|
+
* by the INPUT ids exactly as supplied (no normalization, no dedup
|
|
352
|
+
* beyond Map's intrinsic key-uniqueness). Duplicate input ids therefore
|
|
353
|
+
* collapse to one map entry — caller-side responsibility if multiplicity
|
|
354
|
+
* matters; the canonical bulk-lookup contract is "set of ids → set of
|
|
355
|
+
* resolutions" rather than "list → list".
|
|
356
|
+
* - For each input id: present in the index → its `ItemLocation`; absent
|
|
357
|
+
* → null entry. Every input id has an entry in the returned map (no
|
|
358
|
+
* silent drops); this is the property that distinguishes the bulk
|
|
359
|
+
* surface from a partial-result `getMany`.
|
|
360
|
+
* - Empty input (`ids: []`) returns an empty Map (no index build cost
|
|
361
|
+
* beyond the unavoidable directory existence check inside buildIdIndex).
|
|
362
|
+
* - Insertion order matches the first-encounter order of `ids` (standard
|
|
363
|
+
* ES Map semantics on `.set`).
|
|
364
|
+
*
|
|
365
|
+
* Behavior contract:
|
|
366
|
+
* - Single `buildIdIndex(cwd)` invocation regardless of `ids.length`
|
|
367
|
+
* (closes the N×singular-call pattern that motivated the bulk surface).
|
|
368
|
+
* - Prefix-vs-block invariant violations inside the index build propagate
|
|
369
|
+
* out as-is — same surface contract as `resolveItemById`.
|
|
370
|
+
*
|
|
371
|
+
* Closes part of the FGAP-026 phase 2 query-surface gap (TASK-035).
|
|
372
|
+
*/
|
|
373
|
+
export declare function resolveItemsByIds(cwd: string, ids: string[]): Map<string, ItemLocation | null>;
|
|
374
|
+
export interface ContextValidationIssue {
|
|
375
|
+
severity: "error" | "warning";
|
|
376
|
+
message: string;
|
|
377
|
+
block: string;
|
|
378
|
+
/**
|
|
379
|
+
* Defect locator within the block. Required for cross-block reference
|
|
380
|
+
* diagnostics; optional for lens-validator-sourced issues whose
|
|
381
|
+
* locator (e.g. phase_id) does not always map to a field path.
|
|
382
|
+
*/
|
|
383
|
+
field?: string;
|
|
384
|
+
/**
|
|
385
|
+
* Opaque diagnostic slug from a registered lens-validator
|
|
386
|
+
* (e.g. roadmap_lens_missing). Absent on issues produced by the
|
|
387
|
+
* built-in cross-block reference scan, which has no slug surface
|
|
388
|
+
* (its diagnostics are uniquely identified by block + field).
|
|
389
|
+
*/
|
|
390
|
+
code?: string;
|
|
391
|
+
}
|
|
392
|
+
export interface ContextValidationResult {
|
|
393
|
+
status: "clean" | "warnings" | "invalid";
|
|
394
|
+
issues: ContextValidationIssue[];
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Validate cross-block referential integrity against the EDGE model
|
|
398
|
+
* (DEC-0013: `relations.json` closure-table edges are THE reference surface).
|
|
399
|
+
* Returns structured issues rather than throwing.
|
|
400
|
+
*
|
|
401
|
+
* Edge integrity replaces the pre-DEC-0036 per-block inline-FK reference scan:
|
|
402
|
+
* each edge's `parent`/`child` must resolve to a known item id (via the unified
|
|
403
|
+
* `buildIdIndex`), and each edge's `relation_type` must be registered in
|
|
404
|
+
* `config.relation_types[]` (DEC-0030 tripartite canonical_ids). Cycle
|
|
405
|
+
* detection is delegated to `validateRelations` (its `edge_cycle_detected`
|
|
406
|
+
* diagnostics are merged in).
|
|
407
|
+
*
|
|
408
|
+
* Substrate invariants beyond edge integrity are enforced generically from
|
|
409
|
+
* `config.invariants[]` per the `requires-edge` class — no invariant vocabulary
|
|
410
|
+
* (block kind / status / relation_type / direction) lives in source (DEC-0025).
|
|
411
|
+
* The canonical pi-context conception declares two invariants as config DATA:
|
|
412
|
+
* `completed-task-has-verification` and `decision-cites-forcing-artifact`; a
|
|
413
|
+
* project ships only the invariants its own conception requires.
|
|
414
|
+
*/
|
|
415
|
+
export declare function validateContext(cwd: string): ContextValidationResult;
|
|
416
|
+
export interface CompleteTaskResult {
|
|
417
|
+
taskId: string;
|
|
418
|
+
verificationId: string;
|
|
419
|
+
verificationStatus: string;
|
|
420
|
+
previousStatus: string;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Gate task completion on verification. Reads the verification block to confirm
|
|
424
|
+
* a passing verification entry exists targeting this task, then atomically
|
|
425
|
+
* updates the task status to "completed" with the verification cross-reference.
|
|
426
|
+
*/
|
|
427
|
+
export declare function completeTask(cwd: string, taskId: string, verificationId: string): CompleteTaskResult;
|
|
428
|
+
//# sourceMappingURL=context-sdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-sdk.d.ts","sourceRoot":"","sources":["../src/context-sdk.ts"],"names":[],"mappings":"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"}
|