@davidorex/pi-context 0.26.0 → 0.28.1
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 +71 -15
- package/README.md +71 -18
- package/dist/block-api.d.ts +165 -18
- package/dist/block-api.d.ts.map +1 -1
- package/dist/block-api.js +800 -57
- package/dist/block-api.js.map +1 -1
- package/dist/citation-rot-scanner.d.ts +80 -0
- package/dist/citation-rot-scanner.d.ts.map +1 -0
- package/dist/citation-rot-scanner.js +421 -0
- package/dist/citation-rot-scanner.js.map +1 -0
- package/dist/content-hash.d.ts +25 -0
- package/dist/content-hash.d.ts.map +1 -0
- package/dist/content-hash.js +62 -0
- package/dist/content-hash.js.map +1 -0
- package/dist/context-dir.d.ts +126 -1
- package/dist/context-dir.d.ts.map +1 -1
- package/dist/context-dir.js +208 -4
- package/dist/context-dir.js.map +1 -1
- package/dist/context-registry.d.ts +122 -0
- package/dist/context-registry.d.ts.map +1 -0
- package/dist/context-registry.js +189 -0
- package/dist/context-registry.js.map +1 -0
- package/dist/context-sdk.d.ts +179 -12
- package/dist/context-sdk.d.ts.map +1 -1
- package/dist/context-sdk.js +536 -101
- package/dist/context-sdk.js.map +1 -1
- package/dist/context.d.ts +222 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +244 -56
- package/dist/context.js.map +1 -1
- package/dist/git-env.d.ts +2 -0
- package/dist/git-env.d.ts.map +1 -0
- package/dist/git-env.js +29 -0
- package/dist/git-env.js.map +1 -0
- package/dist/index.d.ts +124 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +440 -1125
- package/dist/index.js.map +1 -1
- package/dist/lens-view.d.ts.map +1 -1
- package/dist/lens-view.js +5 -3
- package/dist/lens-view.js.map +1 -1
- package/dist/migration-registry-loader.d.ts +121 -0
- package/dist/migration-registry-loader.d.ts.map +1 -0
- package/dist/migration-registry-loader.js +309 -0
- package/dist/migration-registry-loader.js.map +1 -0
- package/dist/migrations-store.d.ts +141 -0
- package/dist/migrations-store.d.ts.map +1 -0
- package/dist/migrations-store.js +206 -0
- package/dist/migrations-store.js.map +1 -0
- package/dist/object-store.d.ts +26 -0
- package/dist/object-store.d.ts.map +1 -0
- package/dist/object-store.js +104 -0
- package/dist/object-store.js.map +1 -0
- package/dist/ops-registry.d.ts +44 -0
- package/dist/ops-registry.d.ts.map +1 -0
- package/dist/ops-registry.js +1223 -0
- package/dist/ops-registry.js.map +1 -0
- package/dist/orientation.d.ts +16 -0
- package/dist/orientation.d.ts.map +1 -0
- package/dist/orientation.js +49 -0
- package/dist/orientation.js.map +1 -0
- package/dist/promote-item.d.ts +28 -0
- package/dist/promote-item.d.ts.map +1 -0
- package/dist/promote-item.js +257 -0
- package/dist/promote-item.js.map +1 -0
- package/dist/read-element.d.ts +129 -0
- package/dist/read-element.d.ts.map +1 -0
- package/dist/read-element.js +296 -0
- package/dist/read-element.js.map +1 -0
- package/dist/rename-canonical-id.d.ts.map +1 -1
- package/dist/rename-canonical-id.js +22 -13
- package/dist/rename-canonical-id.js.map +1 -1
- package/dist/roadmap-plan.d.ts.map +1 -1
- package/dist/roadmap-plan.js +23 -13
- package/dist/roadmap-plan.js.map +1 -1
- package/dist/schema-validator.d.ts +1 -0
- package/dist/schema-validator.d.ts.map +1 -1
- package/dist/schema-validator.js +7 -3
- package/dist/schema-validator.js.map +1 -1
- package/dist/schema-write.d.ts +78 -4
- package/dist/schema-write.d.ts.map +1 -1
- package/dist/schema-write.js +297 -34
- package/dist/schema-write.js.map +1 -1
- package/dist/status-vocab.d.ts +1 -0
- package/dist/status-vocab.d.ts.map +1 -1
- package/dist/status-vocab.js +4 -0
- package/dist/status-vocab.js.map +1 -1
- package/dist/truncate.d.ts +34 -0
- package/dist/truncate.d.ts.map +1 -0
- package/dist/truncate.js +85 -0
- package/dist/truncate.js.map +1 -0
- package/dist/write-schema-migration-tool.d.ts +46 -0
- package/dist/write-schema-migration-tool.d.ts.map +1 -0
- package/dist/write-schema-migration-tool.js +115 -0
- package/dist/write-schema-migration-tool.js.map +1 -0
- package/package.json +35 -2
- package/samples/blocks/work-orders.json +3 -0
- package/samples/conception.json +22 -3
- package/samples/migrations.json +133 -0
- package/samples/schemas/context-contracts.schema.json +19 -4
- package/samples/schemas/conventions.schema.json +68 -12
- package/samples/schemas/decisions.schema.json +125 -28
- package/samples/schemas/features.schema.json +140 -26
- package/samples/schemas/framework-gaps.schema.json +171 -26
- package/samples/schemas/issues.schema.json +86 -13
- package/samples/schemas/layer-plans.schema.json +195 -35
- package/samples/schemas/phase.schema.json +18 -3
- package/samples/schemas/rationale.schema.json +37 -7
- package/samples/schemas/requirements.schema.json +77 -10
- package/samples/schemas/research.schema.json +169 -36
- package/samples/schemas/spec-reviews.schema.json +88 -18
- package/samples/schemas/story.schema.json +18 -3
- package/samples/schemas/tasks.schema.json +66 -10
- package/samples/schemas/verification.schema.json +70 -12
- package/samples/schemas/work-orders.schema.json +195 -0
- package/schemas/bootstrap.schema.json +18 -6
- package/schemas/config.schema.json +58 -26
- package/schemas/context-registry.schema.json +46 -0
- package/schemas/migrations.schema.json +123 -0
- package/schemas/relations.schema.json +41 -10
- package/skill-narrative.md +42 -21
- package/skills/pi-context/SKILL.md +159 -65
- package/skills/pi-context/references/bundled-resources.md +7 -2
package/dist/schema-write.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-write.js","sourceRoot":"","sources":["../src/schema-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema-write.js","sourceRoot":"","sources":["../src/schema-write.ts"],"names":[],"mappings":"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"}
|
package/dist/status-vocab.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export type { StatusBucket } from "./context.js";
|
|
|
42
42
|
* - layer-plans.status: draft | proposed | decided | in-progress | complete | abandoned
|
|
43
43
|
* - issues.status: open | resolved | deferred
|
|
44
44
|
* - phase.status: planned | in-progress | completed
|
|
45
|
+
* - work-orders.status: proposed | in-progress | real-check-passed | real-check-failed | completed | cancelled
|
|
45
46
|
*
|
|
46
47
|
* status-vocab.test.ts guards completeness: every samples/schemas status enum
|
|
47
48
|
* value must resolve here (only the intended terminal-not-complete set may map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-vocab.d.ts","sourceRoot":"","sources":["../src/status-vocab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"status-vocab.d.ts","sourceRoot":"","sources":["../src/status-vocab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9D,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAkDnE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAGjF"}
|
package/dist/status-vocab.js
CHANGED
|
@@ -41,6 +41,7 @@ import { loadContext } from "./context.js";
|
|
|
41
41
|
* - layer-plans.status: draft | proposed | decided | in-progress | complete | abandoned
|
|
42
42
|
* - issues.status: open | resolved | deferred
|
|
43
43
|
* - phase.status: planned | in-progress | completed
|
|
44
|
+
* - work-orders.status: proposed | in-progress | real-check-passed | real-check-failed | completed | cancelled
|
|
44
45
|
*
|
|
45
46
|
* status-vocab.test.ts guards completeness: every samples/schemas status enum
|
|
46
47
|
* value must resolve here (only the intended terminal-not-complete set may map
|
|
@@ -60,6 +61,7 @@ export const STATUS_VOCABULARY_DEFAULTS = {
|
|
|
60
61
|
archived: "complete",
|
|
61
62
|
closed: "complete", // framework-gaps: gap resolved/done
|
|
62
63
|
verified: "complete", // requirements: terminal-done, beyond "implemented"
|
|
64
|
+
"real-check-passed": "complete", // work-orders: real-check verdict pass = lifecycle-complete equivalent (DEC-0018)
|
|
63
65
|
// → in_progress
|
|
64
66
|
in_progress: "in_progress",
|
|
65
67
|
"in-progress": "in_progress",
|
|
@@ -72,6 +74,7 @@ export const STATUS_VOCABULARY_DEFAULTS = {
|
|
|
72
74
|
blocked: "blocked",
|
|
73
75
|
paused: "blocked",
|
|
74
76
|
failed: "blocked",
|
|
77
|
+
"real-check-failed": "blocked", // work-orders: real-check verdict fail = lifecycle-blocked equivalent (DEC-0018)
|
|
75
78
|
// → todo
|
|
76
79
|
open: "todo",
|
|
77
80
|
todo: "todo",
|
|
@@ -89,6 +92,7 @@ export const STATUS_VOCABULARY_DEFAULTS = {
|
|
|
89
92
|
// linear progress narrative. Roadmap/plan rollups treat them as "doesn't
|
|
90
93
|
// count toward progress" rather than as complete or todo.
|
|
91
94
|
superseded: "unknown",
|
|
95
|
+
superseded_by: "unknown", // framework-gaps: gap absorbed by a TASK that lands canonical resolution (mis-scoped FGAP closure pattern; v1.1.0 enum extension)
|
|
92
96
|
cancelled: "unknown",
|
|
93
97
|
deferred: "unknown",
|
|
94
98
|
abandoned: "unknown", // layer-plans/spec-reviews: work stopped, not completed
|
package/dist/status-vocab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-vocab.js","sourceRoot":"","sources":["../src/status-vocab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAI9D
|
|
1
|
+
{"version":3,"file":"status-vocab.js","sourceRoot":"","sources":["../src/status-vocab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAiC;IACvE,aAAa;IACb,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,UAAU,EAAE,oCAAoC;IACxD,QAAQ,EAAE,UAAU,EAAE,oDAAoD;IAC1E,mBAAmB,EAAE,UAAU,EAAE,kFAAkF;IACnH,gBAAgB;IAChB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,aAAa;IAC5B,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,aAAa,EAAE,gEAAgE;IAC5F,OAAO,EAAE,aAAa,EAAE,oDAAoD;IAC5E,OAAO,EAAE,aAAa,EAAE,wEAAwE;IAChG,YAAY;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,mBAAmB,EAAE,SAAS,EAAE,iFAAiF;IACjH,SAAS;IACT,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM,EAAE,+CAA+C;IACjE,KAAK,EAAE,MAAM,EAAE,0DAA0D;IACzE,OAAO,EAAE,MAAM,EAAE,2DAA2D;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,yEAAyE;IACzE,0DAA0D;IAC1D,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,SAAS,EAAE,kIAAkI;IAC5J,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS,EAAE,wDAAwD;IAC9E,OAAO,EAAE,SAAS,EAAE,yCAAyC;IAC7D,OAAO,EAAE,SAAS,EAAE,0DAA0D;IAC9E,KAAK,EAAE,SAAS,EAAE,kEAAkE;CACpF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IAClD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,GAAG,0BAA0B,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendored from @earendil-works/pi-coding-agent@0.75.4 (dist/core/tools/truncate.js).
|
|
3
|
+
* Reason: the SDK exposes no resolving subpath for truncateHead (its package.json `exports`
|
|
4
|
+
* map is "." + "./hooks" only) and the root barrel is unresolvable under `tsx -e`
|
|
5
|
+
* (ERR_PACKAGE_PATH_NOT_EXPORTED), which silently breaks the orchestrator's tsx-eval
|
|
6
|
+
* verification path (validateContext / contextState) once pulled into context-sdk's import
|
|
7
|
+
* graph (FGAP-104). truncateHead is pure (Buffer.byteLength only), so it is vendored verbatim.
|
|
8
|
+
* Re-sync if the SDK adds a resolving `tools` export.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_MAX_LINES = 2000;
|
|
11
|
+
export declare const DEFAULT_MAX_BYTES: number;
|
|
12
|
+
export interface TruncationOptions {
|
|
13
|
+
maxLines?: number;
|
|
14
|
+
maxBytes?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface TruncationResult {
|
|
17
|
+
content: string;
|
|
18
|
+
truncated: boolean;
|
|
19
|
+
truncatedBy: "lines" | "bytes" | null;
|
|
20
|
+
totalLines: number;
|
|
21
|
+
totalBytes: number;
|
|
22
|
+
outputLines: number;
|
|
23
|
+
outputBytes: number;
|
|
24
|
+
lastLinePartial: boolean;
|
|
25
|
+
firstLineExceedsLimit: boolean;
|
|
26
|
+
maxLines: number;
|
|
27
|
+
maxBytes: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Truncate content from the head (keep first N lines/bytes). Never returns partial lines.
|
|
31
|
+
* If the first line exceeds the byte limit, returns empty content with firstLineExceedsLimit=true.
|
|
32
|
+
*/
|
|
33
|
+
export declare function truncateHead(content: string, options?: TruncationOptions): TruncationResult;
|
|
34
|
+
//# sourceMappingURL=truncate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../src/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,iBAAiB,QAAY,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAoE/F"}
|
package/dist/truncate.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendored from @earendil-works/pi-coding-agent@0.75.4 (dist/core/tools/truncate.js).
|
|
3
|
+
* Reason: the SDK exposes no resolving subpath for truncateHead (its package.json `exports`
|
|
4
|
+
* map is "." + "./hooks" only) and the root barrel is unresolvable under `tsx -e`
|
|
5
|
+
* (ERR_PACKAGE_PATH_NOT_EXPORTED), which silently breaks the orchestrator's tsx-eval
|
|
6
|
+
* verification path (validateContext / contextState) once pulled into context-sdk's import
|
|
7
|
+
* graph (FGAP-104). truncateHead is pure (Buffer.byteLength only), so it is vendored verbatim.
|
|
8
|
+
* Re-sync if the SDK adds a resolving `tools` export.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_MAX_LINES = 2000;
|
|
11
|
+
export const DEFAULT_MAX_BYTES = 50 * 1024; // 50KB
|
|
12
|
+
/**
|
|
13
|
+
* Truncate content from the head (keep first N lines/bytes). Never returns partial lines.
|
|
14
|
+
* If the first line exceeds the byte limit, returns empty content with firstLineExceedsLimit=true.
|
|
15
|
+
*/
|
|
16
|
+
export function truncateHead(content, options = {}) {
|
|
17
|
+
const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
18
|
+
const maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
19
|
+
const totalBytes = Buffer.byteLength(content, "utf-8");
|
|
20
|
+
const lines = content.split("\n");
|
|
21
|
+
const totalLines = lines.length;
|
|
22
|
+
if (totalLines <= maxLines && totalBytes <= maxBytes) {
|
|
23
|
+
return {
|
|
24
|
+
content,
|
|
25
|
+
truncated: false,
|
|
26
|
+
truncatedBy: null,
|
|
27
|
+
totalLines,
|
|
28
|
+
totalBytes,
|
|
29
|
+
outputLines: totalLines,
|
|
30
|
+
outputBytes: totalBytes,
|
|
31
|
+
lastLinePartial: false,
|
|
32
|
+
firstLineExceedsLimit: false,
|
|
33
|
+
maxLines,
|
|
34
|
+
maxBytes,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const firstLineBytes = Buffer.byteLength(lines[0], "utf-8");
|
|
38
|
+
if (firstLineBytes > maxBytes) {
|
|
39
|
+
return {
|
|
40
|
+
content: "",
|
|
41
|
+
truncated: true,
|
|
42
|
+
truncatedBy: "bytes",
|
|
43
|
+
totalLines,
|
|
44
|
+
totalBytes,
|
|
45
|
+
outputLines: 0,
|
|
46
|
+
outputBytes: 0,
|
|
47
|
+
lastLinePartial: false,
|
|
48
|
+
firstLineExceedsLimit: true,
|
|
49
|
+
maxLines,
|
|
50
|
+
maxBytes,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const outputLinesArr = [];
|
|
54
|
+
let outputBytesCount = 0;
|
|
55
|
+
let truncatedBy = "lines";
|
|
56
|
+
for (let i = 0; i < lines.length && i < maxLines; i++) {
|
|
57
|
+
const line = lines[i];
|
|
58
|
+
const lineBytes = Buffer.byteLength(line, "utf-8") + (i > 0 ? 1 : 0); // +1 for newline
|
|
59
|
+
if (outputBytesCount + lineBytes > maxBytes) {
|
|
60
|
+
truncatedBy = "bytes";
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
outputLinesArr.push(line);
|
|
64
|
+
outputBytesCount += lineBytes;
|
|
65
|
+
}
|
|
66
|
+
if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
|
|
67
|
+
truncatedBy = "lines";
|
|
68
|
+
}
|
|
69
|
+
const outputContent = outputLinesArr.join("\n");
|
|
70
|
+
const finalOutputBytes = Buffer.byteLength(outputContent, "utf-8");
|
|
71
|
+
return {
|
|
72
|
+
content: outputContent,
|
|
73
|
+
truncated: true,
|
|
74
|
+
truncatedBy,
|
|
75
|
+
totalLines,
|
|
76
|
+
totalBytes,
|
|
77
|
+
outputLines: outputLinesArr.length,
|
|
78
|
+
outputBytes: finalOutputBytes,
|
|
79
|
+
lastLinePartial: false,
|
|
80
|
+
firstLineExceedsLimit: false,
|
|
81
|
+
maxLines,
|
|
82
|
+
maxBytes,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=truncate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../src/truncate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write-schema-migration tool — execute body extracted from index.ts so it
|
|
3
|
+
* can be invoked by a direct unit test without driving the full extension
|
|
4
|
+
* factory. The pi.registerTool wrapper in index.ts is a thin caller; this
|
|
5
|
+
* module owns the validation + dispatch shape.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors the author-agent-spec-tool pattern in pi-agent-dispatch: tool
|
|
8
|
+
* implementation in its own module, tool registration site is a thin
|
|
9
|
+
* wrapper. Lets the tool's operation discriminator + transform
|
|
10
|
+
* presence/absence guards be exercised in isolation.
|
|
11
|
+
*
|
|
12
|
+
* Capability/migration authoring is human-authorized via the auth-gate
|
|
13
|
+
* confirm at the pi-dispatch layer: the agent may issue the call, the
|
|
14
|
+
* operator authorizes at the terminal, and the auth-gate stamps
|
|
15
|
+
* event.input.writer with the verified terminal-operator identity before
|
|
16
|
+
* the body runs.
|
|
17
|
+
*
|
|
18
|
+
* The Pi tool description in index.ts uses abstract framework language
|
|
19
|
+
* (no canonical-id citations) per the operator-facing string convention.
|
|
20
|
+
*/
|
|
21
|
+
import type { AgentToolResult } from "@earendil-works/pi-coding-agent";
|
|
22
|
+
export interface WriteSchemaMigrationParams {
|
|
23
|
+
operation: string;
|
|
24
|
+
schemaName: string;
|
|
25
|
+
fromVersion: string;
|
|
26
|
+
toVersion: string;
|
|
27
|
+
kind?: string;
|
|
28
|
+
transform?: unknown;
|
|
29
|
+
writer: {
|
|
30
|
+
kind: string;
|
|
31
|
+
user: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Execute body for the write-schema-migration tool. Dispatches the three
|
|
36
|
+
* substrate operations (create / replace / remove) over the migrations.json
|
|
37
|
+
* write surface; the auth-gate at the pi-dispatch layer is the canonical
|
|
38
|
+
* identity check (this body trusts the writer field as-is, only requiring
|
|
39
|
+
* writer.user as a structural precondition for DispatchContext
|
|
40
|
+
* construction); enforces TransformSpec presence/absence per kind.
|
|
41
|
+
*
|
|
42
|
+
* Returns an AgentToolResult naming the verb + persisted migrations.json
|
|
43
|
+
* path so the caller's content array surfaces the on-disk effect.
|
|
44
|
+
*/
|
|
45
|
+
export declare function writeSchemaMigrationExecute(cwd: string, params: WriteSchemaMigrationParams): Promise<AgentToolResult<undefined>>;
|
|
46
|
+
//# sourceMappingURL=write-schema-migration-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-schema-migration-tool.d.ts","sourceRoot":"","sources":["../src/write-schema-migration-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASvE,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAChD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,0BAA0B,GAChC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CA+FrC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write-schema-migration tool — execute body extracted from index.ts so it
|
|
3
|
+
* can be invoked by a direct unit test without driving the full extension
|
|
4
|
+
* factory. The pi.registerTool wrapper in index.ts is a thin caller; this
|
|
5
|
+
* module owns the validation + dispatch shape.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors the author-agent-spec-tool pattern in pi-agent-dispatch: tool
|
|
8
|
+
* implementation in its own module, tool registration site is a thin
|
|
9
|
+
* wrapper. Lets the tool's operation discriminator + transform
|
|
10
|
+
* presence/absence guards be exercised in isolation.
|
|
11
|
+
*
|
|
12
|
+
* Capability/migration authoring is human-authorized via the auth-gate
|
|
13
|
+
* confirm at the pi-dispatch layer: the agent may issue the call, the
|
|
14
|
+
* operator authorizes at the terminal, and the auth-gate stamps
|
|
15
|
+
* event.input.writer with the verified terminal-operator identity before
|
|
16
|
+
* the body runs.
|
|
17
|
+
*
|
|
18
|
+
* The Pi tool description in index.ts uses abstract framework language
|
|
19
|
+
* (no canonical-id citations) per the operator-facing string convention.
|
|
20
|
+
*/
|
|
21
|
+
import { migrationsPath } from "./context-dir.js";
|
|
22
|
+
import { appendMigrationDecl, removeMigrationDecl, replaceMigrationDecl, } from "./migrations-store.js";
|
|
23
|
+
/**
|
|
24
|
+
* Execute body for the write-schema-migration tool. Dispatches the three
|
|
25
|
+
* substrate operations (create / replace / remove) over the migrations.json
|
|
26
|
+
* write surface; the auth-gate at the pi-dispatch layer is the canonical
|
|
27
|
+
* identity check (this body trusts the writer field as-is, only requiring
|
|
28
|
+
* writer.user as a structural precondition for DispatchContext
|
|
29
|
+
* construction); enforces TransformSpec presence/absence per kind.
|
|
30
|
+
*
|
|
31
|
+
* Returns an AgentToolResult naming the verb + persisted migrations.json
|
|
32
|
+
* path so the caller's content array surfaces the on-disk effect.
|
|
33
|
+
*/
|
|
34
|
+
export async function writeSchemaMigrationExecute(cwd, params) {
|
|
35
|
+
const op = params.operation;
|
|
36
|
+
if (op !== "create" && op !== "replace" && op !== "remove") {
|
|
37
|
+
throw new Error(`write-schema-migration: unknown operation '${op}' — expected create | replace | remove`);
|
|
38
|
+
}
|
|
39
|
+
// Identity check has moved to the pi-dispatch auth-gate (registered
|
|
40
|
+
// by pi-agent-dispatch). By the time this body runs, the auth-gate
|
|
41
|
+
// has prompted the operator and — on confirm=true with a verifiable
|
|
42
|
+
// identity — stamped event.input.writer with the verified terminal-
|
|
43
|
+
// operator identity. The body trusts the writer field as-is.
|
|
44
|
+
if (!params.writer?.user) {
|
|
45
|
+
throw new Error("write-schema-migration: writer.user is required.");
|
|
46
|
+
}
|
|
47
|
+
if (op === "remove") {
|
|
48
|
+
removeMigrationDecl(cwd, params.schemaName, params.fromVersion, {
|
|
49
|
+
writer: { kind: "human", user: params.writer.user },
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
details: undefined,
|
|
53
|
+
content: [
|
|
54
|
+
{
|
|
55
|
+
type: "text",
|
|
56
|
+
text: `write-schema-migration: removed migration for schema '${params.schemaName}' fromVersion '${params.fromVersion}' at ${migrationsPath(cwd)}`,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const kind = params.kind;
|
|
62
|
+
if (kind !== "identity" && kind !== "declarative-transform") {
|
|
63
|
+
throw new Error(`write-schema-migration: kind must be 'identity' or 'declarative-transform' for operation '${op}' (got '${kind}')`);
|
|
64
|
+
}
|
|
65
|
+
if (params.fromVersion === params.toVersion) {
|
|
66
|
+
throw new Error(`write-schema-migration: fromVersion ('${params.fromVersion}') must differ from toVersion ('${params.toVersion}')`);
|
|
67
|
+
}
|
|
68
|
+
let transformBody = params.transform;
|
|
69
|
+
if (typeof transformBody === "string") {
|
|
70
|
+
try {
|
|
71
|
+
transformBody = JSON.parse(transformBody);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
throw new Error("write-schema-migration: transform parameter must be an object, got unparseable string.");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (kind === "declarative-transform") {
|
|
78
|
+
if (transformBody === undefined ||
|
|
79
|
+
transformBody === null ||
|
|
80
|
+
typeof transformBody !== "object" ||
|
|
81
|
+
!("operations" in transformBody)) {
|
|
82
|
+
throw new Error("write-schema-migration: kind='declarative-transform' requires a transform body with an 'operations' array.");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (transformBody !== undefined && transformBody !== null) {
|
|
86
|
+
throw new Error("write-schema-migration: kind='identity' must NOT carry a transform body (identity asserts data is shape-compatible across the bump).");
|
|
87
|
+
}
|
|
88
|
+
const decl = {
|
|
89
|
+
schemaName: params.schemaName,
|
|
90
|
+
fromVersion: params.fromVersion,
|
|
91
|
+
toVersion: params.toVersion,
|
|
92
|
+
kind,
|
|
93
|
+
...(kind === "declarative-transform" ? { transform: transformBody } : {}),
|
|
94
|
+
created_by: params.writer.user,
|
|
95
|
+
created_at: new Date().toISOString(),
|
|
96
|
+
};
|
|
97
|
+
const dispatchCtx = { writer: { kind: "human", user: params.writer.user } };
|
|
98
|
+
if (op === "create") {
|
|
99
|
+
appendMigrationDecl(cwd, decl, dispatchCtx);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
replaceMigrationDecl(cwd, decl, dispatchCtx);
|
|
103
|
+
}
|
|
104
|
+
const verb = op === "create" ? "created" : "replaced";
|
|
105
|
+
return {
|
|
106
|
+
details: undefined,
|
|
107
|
+
content: [
|
|
108
|
+
{
|
|
109
|
+
type: "text",
|
|
110
|
+
text: `write-schema-migration: ${verb} ${kind} migration for schema '${params.schemaName}' ${params.fromVersion}→${params.toVersion} at ${migrationsPath(cwd)}`,
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=write-schema-migration-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-schema-migration-tool.js","sourceRoot":"","sources":["../src/write-schema-migration-tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@davidorex/pi-context",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.1",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
4
7
|
"description": "Schema-driven project state management for Pi",
|
|
5
8
|
"license": "MIT",
|
|
6
9
|
"author": "David Ryan",
|
|
@@ -25,6 +28,18 @@
|
|
|
25
28
|
"types": "./dist/block-api.d.ts",
|
|
26
29
|
"default": "./dist/block-api.js"
|
|
27
30
|
},
|
|
31
|
+
"./content-hash": {
|
|
32
|
+
"types": "./dist/content-hash.d.ts",
|
|
33
|
+
"default": "./dist/content-hash.js"
|
|
34
|
+
},
|
|
35
|
+
"./git-env": {
|
|
36
|
+
"types": "./dist/git-env.d.ts",
|
|
37
|
+
"default": "./dist/git-env.js"
|
|
38
|
+
},
|
|
39
|
+
"./object-store": {
|
|
40
|
+
"types": "./dist/object-store.d.ts",
|
|
41
|
+
"default": "./dist/object-store.js"
|
|
42
|
+
},
|
|
28
43
|
"./schema-validator": {
|
|
29
44
|
"types": "./dist/schema-validator.d.ts",
|
|
30
45
|
"default": "./dist/schema-validator.js"
|
|
@@ -37,6 +52,10 @@
|
|
|
37
52
|
"types": "./dist/context-dir.d.ts",
|
|
38
53
|
"default": "./dist/context-dir.js"
|
|
39
54
|
},
|
|
55
|
+
"./context-registry": {
|
|
56
|
+
"types": "./dist/context-registry.d.ts",
|
|
57
|
+
"default": "./dist/context-registry.js"
|
|
58
|
+
},
|
|
40
59
|
"./context-sdk": {
|
|
41
60
|
"types": "./dist/context-sdk.d.ts",
|
|
42
61
|
"default": "./dist/context-sdk.js"
|
|
@@ -45,6 +64,10 @@
|
|
|
45
64
|
"types": "./dist/context.d.ts",
|
|
46
65
|
"default": "./dist/context.js"
|
|
47
66
|
},
|
|
67
|
+
"./promote-item": {
|
|
68
|
+
"types": "./dist/promote-item.d.ts",
|
|
69
|
+
"default": "./dist/promote-item.js"
|
|
70
|
+
},
|
|
48
71
|
"./dispatch-context": {
|
|
49
72
|
"types": "./dist/dispatch-context.d.ts",
|
|
50
73
|
"default": "./dist/dispatch-context.js"
|
|
@@ -69,7 +92,16 @@
|
|
|
69
92
|
"types": "./dist/samples-catalog.d.ts",
|
|
70
93
|
"default": "./dist/samples-catalog.js"
|
|
71
94
|
},
|
|
95
|
+
"./read-element": {
|
|
96
|
+
"types": "./dist/read-element.d.ts",
|
|
97
|
+
"default": "./dist/read-element.js"
|
|
98
|
+
},
|
|
99
|
+
"./ops": {
|
|
100
|
+
"types": "./dist/ops-registry.d.ts",
|
|
101
|
+
"default": "./dist/ops-registry.js"
|
|
102
|
+
},
|
|
72
103
|
"./schemas/config.schema.json": "./schemas/config.schema.json",
|
|
104
|
+
"./schemas/context-registry.schema.json": "./schemas/context-registry.schema.json",
|
|
73
105
|
"./schemas/relations.schema.json": "./schemas/relations.schema.json",
|
|
74
106
|
"./schemas/priority.schema.json": "./schemas/priority.schema.json",
|
|
75
107
|
"./schemas/status.schema.json": "./schemas/status.schema.json",
|
|
@@ -95,7 +127,7 @@
|
|
|
95
127
|
],
|
|
96
128
|
"scripts": {
|
|
97
129
|
"clean": "rm -rf dist",
|
|
98
|
-
"build": "tsc -p tsconfig.build.json",
|
|
130
|
+
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
99
131
|
"prepublishOnly": "npm run clean && npm run build",
|
|
100
132
|
"test": "tsx --test src/*.test.ts"
|
|
101
133
|
},
|
|
@@ -104,6 +136,7 @@
|
|
|
104
136
|
"typebox": "^1.1.24",
|
|
105
137
|
"ajv": "^8.17.1",
|
|
106
138
|
"ajv-formats": "^3.0.1",
|
|
139
|
+
"canonicalize": "^2.0.0",
|
|
107
140
|
"proper-lockfile": "^4.1.2"
|
|
108
141
|
},
|
|
109
142
|
"devDependencies": {
|
package/samples/conception.json
CHANGED
|
@@ -120,6 +120,14 @@
|
|
|
120
120
|
"schema_path": "schemas/story.schema.json",
|
|
121
121
|
"array_key": "stories",
|
|
122
122
|
"data_path": "story.json"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"canonical_id": "work-orders",
|
|
126
|
+
"display_name": "Work Orders",
|
|
127
|
+
"prefix": "WO-",
|
|
128
|
+
"schema_path": "schemas/work-orders.schema.json",
|
|
129
|
+
"array_key": "work_orders",
|
|
130
|
+
"data_path": "work-orders.json"
|
|
123
131
|
}
|
|
124
132
|
],
|
|
125
133
|
"relation_types": [
|
|
@@ -318,6 +326,13 @@
|
|
|
318
326
|
"category": "data_flow",
|
|
319
327
|
"source_kinds": ["tasks"],
|
|
320
328
|
"target_kinds": ["decisions"]
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"canonical_id": "item_derived_from_item",
|
|
332
|
+
"display_name": "derived from",
|
|
333
|
+
"category": "data_flow",
|
|
334
|
+
"source_kinds": ["*"],
|
|
335
|
+
"target_kinds": ["*"]
|
|
321
336
|
}
|
|
322
337
|
],
|
|
323
338
|
"lenses": [
|
|
@@ -365,7 +380,8 @@
|
|
|
365
380
|
"conventions",
|
|
366
381
|
"context-contracts",
|
|
367
382
|
"phase",
|
|
368
|
-
"story"
|
|
383
|
+
"story",
|
|
384
|
+
"work-orders"
|
|
369
385
|
],
|
|
370
386
|
"installed_blocks": [
|
|
371
387
|
"decisions",
|
|
@@ -382,7 +398,8 @@
|
|
|
382
398
|
"conventions",
|
|
383
399
|
"context-contracts",
|
|
384
400
|
"phase",
|
|
385
|
-
"story"
|
|
401
|
+
"story",
|
|
402
|
+
"work-orders"
|
|
386
403
|
],
|
|
387
404
|
"invariants": [
|
|
388
405
|
{
|
|
@@ -463,5 +480,7 @@
|
|
|
463
480
|
"severity": "warning",
|
|
464
481
|
"message": "Task '{id}' is governed by a superseded or cancelled decision"
|
|
465
482
|
}
|
|
466
|
-
]
|
|
483
|
+
],
|
|
484
|
+
"tool_operations": [],
|
|
485
|
+
"tool_operations_forbidden": []
|
|
467
486
|
}
|