@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
package/dist/topo.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic topological sort + cycle detection — a pure utility with no
|
|
3
|
+
* substrate dependency. Extracted here (from roadmap-plan.ts) so both
|
|
4
|
+
* roadmap-plan and context-sdk can consume it without forming a module
|
|
5
|
+
* import cycle (context-sdk.currentState + roadmap-plan both topo-order).
|
|
6
|
+
*
|
|
7
|
+
* Returns:
|
|
8
|
+
* order — dependency-respecting id order (Kahn's algorithm; stable,
|
|
9
|
+
* preserves input order within a stratum).
|
|
10
|
+
* cycles — array of cycle paths, each a string[] starting and ending
|
|
11
|
+
* with the same id. Empty when the graph is acyclic.
|
|
12
|
+
*
|
|
13
|
+
* Callers choose whether cycles are fatal.
|
|
14
|
+
*/
|
|
15
|
+
export function topoSort(nodes, idOf, deps) {
|
|
16
|
+
const idIndex = new Map();
|
|
17
|
+
const ids = [];
|
|
18
|
+
for (const n of nodes) {
|
|
19
|
+
const id = idOf(n);
|
|
20
|
+
idIndex.set(id, ids.length);
|
|
21
|
+
ids.push(id);
|
|
22
|
+
}
|
|
23
|
+
// Build adjacency: edge from dep → node (so processing dep first
|
|
24
|
+
// gates node). depsArr[i] = ids that must precede ids[i].
|
|
25
|
+
const inDegree = new Map();
|
|
26
|
+
const adj = new Map(); // dep id → [node ids that depend on it]
|
|
27
|
+
for (const id of ids) {
|
|
28
|
+
inDegree.set(id, 0);
|
|
29
|
+
adj.set(id, []);
|
|
30
|
+
}
|
|
31
|
+
for (const n of nodes) {
|
|
32
|
+
const id = idOf(n);
|
|
33
|
+
for (const d of deps(n)) {
|
|
34
|
+
// Only count edges between nodes present in the graph.
|
|
35
|
+
if (!idIndex.has(d))
|
|
36
|
+
continue;
|
|
37
|
+
inDegree.set(id, (inDegree.get(id) ?? 0) + 1);
|
|
38
|
+
adj.get(d)?.push(id);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Kahn's algorithm: queue zero-in-degree nodes in input order.
|
|
42
|
+
const order = [];
|
|
43
|
+
const queue = [];
|
|
44
|
+
for (const id of ids) {
|
|
45
|
+
if ((inDegree.get(id) ?? 0) === 0)
|
|
46
|
+
queue.push(id);
|
|
47
|
+
}
|
|
48
|
+
while (queue.length > 0) {
|
|
49
|
+
const id = queue.shift();
|
|
50
|
+
if (id === undefined)
|
|
51
|
+
break;
|
|
52
|
+
order.push(id);
|
|
53
|
+
for (const dependent of adj.get(id) ?? []) {
|
|
54
|
+
const next = (inDegree.get(dependent) ?? 0) - 1;
|
|
55
|
+
inDegree.set(dependent, next);
|
|
56
|
+
if (next === 0)
|
|
57
|
+
queue.push(dependent);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Cycle detection: any node not in `order` participates in a cycle.
|
|
61
|
+
const cycles = [];
|
|
62
|
+
if (order.length < ids.length) {
|
|
63
|
+
const remaining = new Set(ids.filter((id) => !order.includes(id)));
|
|
64
|
+
const visited = new Set();
|
|
65
|
+
const stack = [];
|
|
66
|
+
const onStack = new Set();
|
|
67
|
+
const seen = new Set();
|
|
68
|
+
const dfs = (id) => {
|
|
69
|
+
if (onStack.has(id)) {
|
|
70
|
+
const idx = stack.indexOf(id);
|
|
71
|
+
if (idx === -1)
|
|
72
|
+
return;
|
|
73
|
+
const cycle = [...stack.slice(idx), id];
|
|
74
|
+
const key = cycle.join("→");
|
|
75
|
+
if (!seen.has(key)) {
|
|
76
|
+
seen.add(key);
|
|
77
|
+
cycles.push(cycle);
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (visited.has(id) || !remaining.has(id))
|
|
82
|
+
return;
|
|
83
|
+
visited.add(id);
|
|
84
|
+
onStack.add(id);
|
|
85
|
+
stack.push(id);
|
|
86
|
+
for (const next of adj.get(id) ?? []) {
|
|
87
|
+
dfs(next);
|
|
88
|
+
}
|
|
89
|
+
stack.pop();
|
|
90
|
+
onStack.delete(id);
|
|
91
|
+
};
|
|
92
|
+
for (const id of remaining) {
|
|
93
|
+
if (!visited.has(id))
|
|
94
|
+
dfs(id);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { order, cycles };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=topo.js.map
|
package/dist/topo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topo.js","sourceRoot":"","sources":["../src/topo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run the update check and notify if a newer version exists.
|
|
3
|
+
* Call fire-and-forget from the extension factory — non-blocking.
|
|
4
|
+
*/
|
|
5
|
+
export declare function checkForUpdates(notify: (message: string, level: "info" | "warning") => void): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=update-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAkEA;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUjH"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Non-blocking update check for @davidorex/pi-project-workflows.
|
|
3
|
+
* Fetches latest version from npm registry and notifies via callback
|
|
4
|
+
* if a newer version is available. Fails silently on network errors.
|
|
5
|
+
*/
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
9
|
+
const PACKAGE_NAME = "@davidorex/pi-project-workflows";
|
|
10
|
+
const REGISTRY_URL = `https://registry.npmjs.org/${PACKAGE_NAME}/latest`;
|
|
11
|
+
const TIMEOUT_MS = 10_000;
|
|
12
|
+
/**
|
|
13
|
+
* Read the installed version of the meta-package from node_modules.
|
|
14
|
+
* Walks up from this package to find the meta-package. Returns null
|
|
15
|
+
* if not installed (user may have installed packages individually).
|
|
16
|
+
*/
|
|
17
|
+
function getInstalledVersion() {
|
|
18
|
+
try {
|
|
19
|
+
// fileURLToPath idiom (FGAP-088): import.meta.dirname is undefined when this
|
|
20
|
+
// built module loads under tsx's CJS-interop path; import.meta.url is not.
|
|
21
|
+
let dir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
22
|
+
for (let i = 0; i < 5; i++) {
|
|
23
|
+
const candidate = path.join(dir, "node_modules", PACKAGE_NAME, "package.json");
|
|
24
|
+
if (fs.existsSync(candidate)) {
|
|
25
|
+
const pkg = JSON.parse(fs.readFileSync(candidate, "utf-8"));
|
|
26
|
+
return pkg.version ?? null;
|
|
27
|
+
}
|
|
28
|
+
dir = path.dirname(dir);
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Fetch latest version from npm registry. Returns null on failure.
|
|
38
|
+
*/
|
|
39
|
+
async function getLatestVersion() {
|
|
40
|
+
try {
|
|
41
|
+
const controller = new AbortController();
|
|
42
|
+
const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
43
|
+
const res = await fetch(REGISTRY_URL, { signal: controller.signal });
|
|
44
|
+
clearTimeout(timer);
|
|
45
|
+
if (!res.ok)
|
|
46
|
+
return null;
|
|
47
|
+
const data = (await res.json());
|
|
48
|
+
return data.version ?? null;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Compare two semver strings. Returns true if latest > installed.
|
|
56
|
+
*/
|
|
57
|
+
function isNewer(installed, latest) {
|
|
58
|
+
const parse = (v) => v.replace(/-.*$/, "").split(".").map(Number);
|
|
59
|
+
const [iMaj, iMin, iPat] = parse(installed);
|
|
60
|
+
const [lMaj, lMin, lPat] = parse(latest);
|
|
61
|
+
if (lMaj !== iMaj)
|
|
62
|
+
return lMaj > iMaj;
|
|
63
|
+
if (lMin !== iMin)
|
|
64
|
+
return lMin > iMin;
|
|
65
|
+
return lPat > iPat;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Run the update check and notify if a newer version exists.
|
|
69
|
+
* Call fire-and-forget from the extension factory — non-blocking.
|
|
70
|
+
*/
|
|
71
|
+
export async function checkForUpdates(notify) {
|
|
72
|
+
const installed = getInstalledVersion();
|
|
73
|
+
if (!installed)
|
|
74
|
+
return;
|
|
75
|
+
const latest = await getLatestVersion();
|
|
76
|
+
if (!latest)
|
|
77
|
+
return;
|
|
78
|
+
if (isNewer(installed, latest)) {
|
|
79
|
+
notify(`Update available: ${PACKAGE_NAME} ${installed} → ${latest}\nRun: pi install npm:${PACKAGE_NAME}`, "info");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=update-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,iCAAiC,CAAC;AACvD,MAAM,YAAY,GAAG,8BAA8B,YAAY,SAAS,CAAC;AACzE,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B;;;;GAIG;AACH,SAAS,mBAAmB;IAC3B,IAAI,CAAC;QACJ,6EAA6E;QAC7E,2EAA2E;QAC3E,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;YAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;YAC5B,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QACxD,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,SAAiB,EAAE,MAAc;IACjD,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAA4D;IACjG,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,IAAI,CAAC,SAAS;QAAE,OAAO;IAEvB,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,IAAI,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,qBAAqB,YAAY,IAAI,SAAS,MAAM,MAAM,yBAAyB,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;IACnH,CAAC;AACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@davidorex/pi-context",
|
|
3
|
+
"version": "0.26.0",
|
|
4
|
+
"description": "Schema-driven project state management for Pi",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "David Ryan",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"pi-package"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/davidorex/pi-project-workflows.git",
|
|
14
|
+
"directory": "packages/pi-context"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/davidorex/pi-project-workflows/tree/main/packages/pi-context",
|
|
17
|
+
"main": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"default": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./block-api": {
|
|
25
|
+
"types": "./dist/block-api.d.ts",
|
|
26
|
+
"default": "./dist/block-api.js"
|
|
27
|
+
},
|
|
28
|
+
"./schema-validator": {
|
|
29
|
+
"types": "./dist/schema-validator.d.ts",
|
|
30
|
+
"default": "./dist/schema-validator.js"
|
|
31
|
+
},
|
|
32
|
+
"./block-validation": {
|
|
33
|
+
"types": "./dist/block-validation.d.ts",
|
|
34
|
+
"default": "./dist/block-validation.js"
|
|
35
|
+
},
|
|
36
|
+
"./context-dir": {
|
|
37
|
+
"types": "./dist/context-dir.d.ts",
|
|
38
|
+
"default": "./dist/context-dir.js"
|
|
39
|
+
},
|
|
40
|
+
"./context-sdk": {
|
|
41
|
+
"types": "./dist/context-sdk.d.ts",
|
|
42
|
+
"default": "./dist/context-sdk.js"
|
|
43
|
+
},
|
|
44
|
+
"./context": {
|
|
45
|
+
"types": "./dist/context.d.ts",
|
|
46
|
+
"default": "./dist/context.js"
|
|
47
|
+
},
|
|
48
|
+
"./dispatch-context": {
|
|
49
|
+
"types": "./dist/dispatch-context.d.ts",
|
|
50
|
+
"default": "./dist/dispatch-context.js"
|
|
51
|
+
},
|
|
52
|
+
"./schema-write": {
|
|
53
|
+
"types": "./dist/schema-write.d.ts",
|
|
54
|
+
"default": "./dist/schema-write.js"
|
|
55
|
+
},
|
|
56
|
+
"./schema-migrations": {
|
|
57
|
+
"types": "./dist/schema-migrations.d.ts",
|
|
58
|
+
"default": "./dist/schema-migrations.js"
|
|
59
|
+
},
|
|
60
|
+
"./lens-view": {
|
|
61
|
+
"types": "./dist/lens-view.d.ts",
|
|
62
|
+
"default": "./dist/lens-view.js"
|
|
63
|
+
},
|
|
64
|
+
"./rename-canonical-id": {
|
|
65
|
+
"types": "./dist/rename-canonical-id.d.ts",
|
|
66
|
+
"default": "./dist/rename-canonical-id.js"
|
|
67
|
+
},
|
|
68
|
+
"./samples-catalog": {
|
|
69
|
+
"types": "./dist/samples-catalog.d.ts",
|
|
70
|
+
"default": "./dist/samples-catalog.js"
|
|
71
|
+
},
|
|
72
|
+
"./schemas/config.schema.json": "./schemas/config.schema.json",
|
|
73
|
+
"./schemas/relations.schema.json": "./schemas/relations.schema.json",
|
|
74
|
+
"./schemas/priority.schema.json": "./schemas/priority.schema.json",
|
|
75
|
+
"./schemas/status.schema.json": "./schemas/status.schema.json",
|
|
76
|
+
"./schemas/severity.schema.json": "./schemas/severity.schema.json",
|
|
77
|
+
"./schemas/source.schema.json": "./schemas/source.schema.json",
|
|
78
|
+
"./schemas/layer.schema.json": "./schemas/layer.schema.json",
|
|
79
|
+
"./schemas/verification-method.schema.json": "./schemas/verification-method.schema.json"
|
|
80
|
+
},
|
|
81
|
+
"pi": {
|
|
82
|
+
"extensions": [
|
|
83
|
+
"./dist/index.js"
|
|
84
|
+
],
|
|
85
|
+
"skills": [
|
|
86
|
+
"./skills"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"files": [
|
|
90
|
+
"dist/",
|
|
91
|
+
"skills/",
|
|
92
|
+
"schemas/",
|
|
93
|
+
"samples/",
|
|
94
|
+
"*.md"
|
|
95
|
+
],
|
|
96
|
+
"scripts": {
|
|
97
|
+
"clean": "rm -rf dist",
|
|
98
|
+
"build": "tsc -p tsconfig.build.json",
|
|
99
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
100
|
+
"test": "tsx --test src/*.test.ts"
|
|
101
|
+
},
|
|
102
|
+
"dependencies": {
|
|
103
|
+
"@earendil-works/pi-coding-agent": "^0.75.4",
|
|
104
|
+
"typebox": "^1.1.24",
|
|
105
|
+
"ajv": "^8.17.1",
|
|
106
|
+
"ajv-formats": "^3.0.1",
|
|
107
|
+
"proper-lockfile": "^4.1.2"
|
|
108
|
+
},
|
|
109
|
+
"devDependencies": {
|
|
110
|
+
"@types/proper-lockfile": "^4.1.4"
|
|
111
|
+
},
|
|
112
|
+
"engines": {
|
|
113
|
+
"node": ">=22.19.0"
|
|
114
|
+
}
|
|
115
|
+
}
|