@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops-registry.js","sourceRoot":"","sources":["../src/ops-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static orientation block — pure, no I/O, no substrate read. Maps common
|
|
3
|
+
* operating topics to the tool calls that answer them, with a grounding
|
|
4
|
+
* directive against confabulating canonical names / schemas / signatures.
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildOrientationBlock(): string;
|
|
7
|
+
/**
|
|
8
|
+
* Absolute path to the packaged pi-context skill directory.
|
|
9
|
+
*
|
|
10
|
+
* Resolved relative to this module. The built module lives at
|
|
11
|
+
* `dist/orientation.js`, so `..` from `moduleDir` is the package root and
|
|
12
|
+
* `../skills/pi-context` is correct for both the `src/` (tsx) and `dist/`
|
|
13
|
+
* (built — the layout pi loads) locations.
|
|
14
|
+
*/
|
|
15
|
+
export declare function skillsDir(): string;
|
|
16
|
+
//# sourceMappingURL=orientation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orientation.d.ts","sourceRoot":"","sources":["../src/orientation.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAa9C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Eager framework guidance for the in-pi LLM (FGAP-090 / TASK-074).
|
|
3
|
+
*
|
|
4
|
+
* The constrained in-pi agent receives no framework orientation today — it
|
|
5
|
+
* operates from tool descriptions alone. This module supplies two pure
|
|
6
|
+
* surfaces consumed by the pi-context extension's 0.75.4 hooks:
|
|
7
|
+
*
|
|
8
|
+
* - `buildOrientationBlock()` — a static topic→TOOL-CALL map appended to the
|
|
9
|
+
* agent's system prompt via `before_agent_start`. The in-pi agent has NO
|
|
10
|
+
* `read` tool, so guidance routes to TOOLS (queryable), never file paths.
|
|
11
|
+
* - `skillsDir()` — the absolute path to the packaged pi-context skill dir,
|
|
12
|
+
* surfaced via `resources_discover`.
|
|
13
|
+
*/
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
import { fileURLToPath } from "node:url";
|
|
16
|
+
// Resolve relative to THIS module. `import.meta.dirname` is latent-broken
|
|
17
|
+
// under tsx-CJS in this repo; use fileURLToPath + path.dirname instead.
|
|
18
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
19
|
+
/**
|
|
20
|
+
* Static orientation block — pure, no I/O, no substrate read. Maps common
|
|
21
|
+
* operating topics to the tool calls that answer them, with a grounding
|
|
22
|
+
* directive against confabulating canonical names / schemas / signatures.
|
|
23
|
+
*/
|
|
24
|
+
export function buildOrientationBlock() {
|
|
25
|
+
return `## pi-context: how to operate this project's substrate
|
|
26
|
+
|
|
27
|
+
This project's state lives in a typed substrate you operate via tools — not files you read. Query before you assert; never invent canonical names, schemas, or tool signatures — they are all queryable.
|
|
28
|
+
|
|
29
|
+
- Vocabulary (block kinds, relation_types, lenses, layers): call \`read-config\` (this project's authoritative registry) or \`read-samples-catalog\` (the installable catalog).
|
|
30
|
+
- A block kind's schema (fields, id pattern, required): call \`read-schema\`.
|
|
31
|
+
- The tools available to you and their parameters: call \`list-tools\` — do not guess a tool name or signature.
|
|
32
|
+
- Read substrate items: \`read-block\` / \`read-block-item\` / \`read-block-page\`; resolve an id: \`resolve-item-by-id\`.
|
|
33
|
+
- Add a block kind: \`read-samples-catalog\` (see the shape), then \`write-schema\` (define) + \`amend-config\` (register). Add a relationship: \`append-relation\` (relations are edges, never FK fields). Change config: \`amend-config\`.
|
|
34
|
+
- Bootstrap / onboarding: run \`/context init <substrate-dir>\` (suggested \`.context\`), then \`/context accept-all\`, then \`/context install\`.
|
|
35
|
+
|
|
36
|
+
Grounding: vocabulary and tool signatures are always queryable via the tools above. If you are unsure of a canonical name, schema, or parameter, call the relevant tool — do not confabulate.`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Absolute path to the packaged pi-context skill directory.
|
|
40
|
+
*
|
|
41
|
+
* Resolved relative to this module. The built module lives at
|
|
42
|
+
* `dist/orientation.js`, so `..` from `moduleDir` is the package root and
|
|
43
|
+
* `../skills/pi-context` is correct for both the `src/` (tsx) and `dist/`
|
|
44
|
+
* (built — the layout pi loads) locations.
|
|
45
|
+
*/
|
|
46
|
+
export function skillsDir() {
|
|
47
|
+
return path.resolve(moduleDir, "..", "skills", "pi-context");
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=orientation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orientation.js","sourceRoot":"","sources":["../src/orientation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,0EAA0E;AAC1E,wEAAwE;AACxE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACpC,OAAO;;;;;;;;;;;8LAWsL,CAAC;AAC/L,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS;IACxB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ResolvedRef } from "./context-sdk.js";
|
|
2
|
+
import type { DispatchContext } from "./dispatch-context.js";
|
|
3
|
+
/** Input to {@link promoteItem}. `source` is any selector `resolveRef` accepts
|
|
4
|
+
* (bare refname / `<alias>:<refname>` / structured locator string is not
|
|
5
|
+
* supported here — pass the selector form `resolveRef` resolves). */
|
|
6
|
+
export interface PromoteItemInput {
|
|
7
|
+
source: string;
|
|
8
|
+
destinationSubstrate: string;
|
|
9
|
+
newRefname?: string;
|
|
10
|
+
dryRun?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Result of {@link promoteItem}. `destination` is the {@link ResolvedRef} for
|
|
13
|
+
* the written (or, on dry-run, the WOULD-be-written) item. */
|
|
14
|
+
export interface PromotionResult {
|
|
15
|
+
source: ResolvedRef;
|
|
16
|
+
destination: ResolvedRef;
|
|
17
|
+
lineageEdgeAppended: boolean;
|
|
18
|
+
dryRun: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Promote a substrate item into another substrate as a NEW content-addressed
|
|
22
|
+
* item, recording the `item_derived_from_item` lineage edge. See the module
|
|
23
|
+
* header for the full semantics. Throws (plain `Error`) on every precondition
|
|
24
|
+
* failure — unresolvable / non-item source, unregistered destination alias,
|
|
25
|
+
* unregistered destination relation_type, destination refname collision.
|
|
26
|
+
*/
|
|
27
|
+
export declare function promoteItem(cwd: string, input: PromoteItemInput, ctx?: DispatchContext): PromotionResult;
|
|
28
|
+
//# sourceMappingURL=promote-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote-item.d.ts","sourceRoot":"","sources":["../src/promote-item.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;qEAEqE;AACrE,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;8DAC8D;AAC9D,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CAChB;AAoED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,eAAe,CA2IxG"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cycle 9 / G2 — `promoteItem`: copy an item from one substrate into another as
|
|
3
|
+
* a NEW content-addressed item and record the lineage edge.
|
|
4
|
+
*
|
|
5
|
+
* "Promotion" is the cross-substrate analogue of supersession: the source item's
|
|
6
|
+
* content projection (its fields minus identity + attestation metadata) is
|
|
7
|
+
* re-filed into the DESTINATION substrate, where the canonical write-path mints a
|
|
8
|
+
* fresh destination `oid` + recomputes `content_hash` + persists the content
|
|
9
|
+
* object. A lineage edge `item_derived_from_item` is then filed into the
|
|
10
|
+
* destination relations.json with the new derived item as parent and the source
|
|
11
|
+
* as child (carrying the source's pinned `content_hash` for drift detection).
|
|
12
|
+
* When the source block's status enum supports it, the source is marked
|
|
13
|
+
* `superseded` (or `superseded_by`); otherwise the lineage edge is the sole
|
|
14
|
+
* authoritative supersession record.
|
|
15
|
+
*
|
|
16
|
+
* Layering: this module sits ABOVE context-sdk / context / block-api /
|
|
17
|
+
* context-registry / context-dir and is imported by NONE of them (one-way). It
|
|
18
|
+
* composes their primitives; it adds no new lower-layer surface.
|
|
19
|
+
*/
|
|
20
|
+
import fs from "node:fs";
|
|
21
|
+
import path from "node:path";
|
|
22
|
+
import { appendToBlockForDir, DEFAULT_METADATA_FIELDS, nextIdForDir, readBlockForDir, resolveBlockItemSchema, updateItemInBlockForDir, } from "./block-api.js";
|
|
23
|
+
import { appendRelationForDir } from "./context.js";
|
|
24
|
+
import { resolveContextDir, schemaPathForDir, substrateIdForDir } from "./context-dir.js";
|
|
25
|
+
import { resolveAlias, resolveSubstrateDir } from "./context-registry.js";
|
|
26
|
+
import { resolveRef } from "./context-sdk.js";
|
|
27
|
+
/**
|
|
28
|
+
* Strip the identity + attestation metadata from a source item, leaving the
|
|
29
|
+
* content projection that will be re-filed into the destination. Uses the
|
|
30
|
+
* canonical `DEFAULT_METADATA_FIELDS` (floor ∪ discretionary) so the projection
|
|
31
|
+
* carries no `id`/`oid`/`content_hash`/`content_parent` nor author/closure
|
|
32
|
+
* fields — the destination write-path mints its own.
|
|
33
|
+
*/
|
|
34
|
+
function contentOnlyProjection(item) {
|
|
35
|
+
const out = {};
|
|
36
|
+
for (const [k, v] of Object.entries(item)) {
|
|
37
|
+
if (DEFAULT_METADATA_FIELDS.has(k))
|
|
38
|
+
continue;
|
|
39
|
+
out[k] = v;
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the chosen supersession status value for a block from its item
|
|
45
|
+
* schema's `status` enum: prefer `"superseded"`, then `"superseded_by"`,
|
|
46
|
+
* otherwise null (the block has no compatible status value — leave unchanged).
|
|
47
|
+
* A block with no status field / no enum returns null.
|
|
48
|
+
*/
|
|
49
|
+
function supersessionStatusFor(srcDir, block) {
|
|
50
|
+
const schemaFile = schemaPathForDir(srcDir, block);
|
|
51
|
+
if (!fs.existsSync(schemaFile))
|
|
52
|
+
return null;
|
|
53
|
+
let schema;
|
|
54
|
+
try {
|
|
55
|
+
schema = JSON.parse(fs.readFileSync(schemaFile, "utf-8"));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
let itemSchema;
|
|
61
|
+
try {
|
|
62
|
+
itemSchema = resolveBlockItemSchema(schema).itemSchema;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const props = (itemSchema.properties ?? {});
|
|
68
|
+
const statusProp = props.status;
|
|
69
|
+
const enumVals = statusProp && Array.isArray(statusProp.enum) ? statusProp.enum : undefined;
|
|
70
|
+
if (!enumVals)
|
|
71
|
+
return null;
|
|
72
|
+
if (enumVals.includes("superseded"))
|
|
73
|
+
return "superseded";
|
|
74
|
+
if (enumVals.includes("superseded_by"))
|
|
75
|
+
return "superseded_by";
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/** Read the `config.relation_types[].canonical_id` set of a substrate dir. */
|
|
79
|
+
function relationTypeIds(substrateDir) {
|
|
80
|
+
const configPath = path.join(substrateDir, "config.json");
|
|
81
|
+
const ids = new Set();
|
|
82
|
+
if (!fs.existsSync(configPath))
|
|
83
|
+
return ids;
|
|
84
|
+
let cfg;
|
|
85
|
+
try {
|
|
86
|
+
cfg = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return ids;
|
|
90
|
+
}
|
|
91
|
+
const rts = Array.isArray(cfg.relation_types) ? cfg.relation_types : [];
|
|
92
|
+
for (const rt of rts) {
|
|
93
|
+
if (rt && typeof rt === "object" && typeof rt.canonical_id === "string") {
|
|
94
|
+
ids.add(rt.canonical_id);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return ids;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Promote a substrate item into another substrate as a NEW content-addressed
|
|
101
|
+
* item, recording the `item_derived_from_item` lineage edge. See the module
|
|
102
|
+
* header for the full semantics. Throws (plain `Error`) on every precondition
|
|
103
|
+
* failure — unresolvable / non-item source, unregistered destination alias,
|
|
104
|
+
* unregistered destination relation_type, destination refname collision.
|
|
105
|
+
*/
|
|
106
|
+
export function promoteItem(cwd, input, ctx) {
|
|
107
|
+
// (1) Resolve + validate the source.
|
|
108
|
+
const src = resolveRef(cwd, input.source);
|
|
109
|
+
if (src.endpointKind !== "item") {
|
|
110
|
+
throw new Error(`promoteItem: source '${input.source}' is not an item endpoint (got ${src.endpointKind})`);
|
|
111
|
+
}
|
|
112
|
+
if (src.status !== "active" && src.status !== "foreign") {
|
|
113
|
+
throw new Error(`promoteItem: source '${input.source}' is ${src.status} — only active or foreign items can be promoted`);
|
|
114
|
+
}
|
|
115
|
+
if (!src.loc) {
|
|
116
|
+
throw new Error(`promoteItem: source '${input.source}' resolved without an item location`);
|
|
117
|
+
}
|
|
118
|
+
const srcBlock = src.loc.block;
|
|
119
|
+
const srcArrayKey = src.loc.arrayKey;
|
|
120
|
+
const srcRefname = src.refname ?? src.loc.id;
|
|
121
|
+
const srcOid = src.oid ?? (typeof src.loc.item.oid === "string" ? src.loc.item.oid : undefined);
|
|
122
|
+
// Determine the SOURCE substrate dir + substrate_id (a lineage-edge child
|
|
123
|
+
// needs a substrate_id locator).
|
|
124
|
+
const srcDir = src.status === "active" ? resolveContextDir(cwd) : resolveForeignDir(cwd, src.substrate_id);
|
|
125
|
+
const srcId = src.substrate_id ?? substrateIdForDir(srcDir);
|
|
126
|
+
const srcContentHash = typeof src.loc.item.content_hash === "string" ? src.loc.item.content_hash : undefined;
|
|
127
|
+
// (2) Resolve the destination substrate.
|
|
128
|
+
const destId = resolveAlias(cwd, input.destinationSubstrate);
|
|
129
|
+
if (destId === null) {
|
|
130
|
+
throw new Error(`promoteItem: destination substrate '${input.destinationSubstrate}' is not registered (register it in .pi-context-registry.json before promoting)`);
|
|
131
|
+
}
|
|
132
|
+
const destDirRel = resolveSubstrateDir(cwd, destId);
|
|
133
|
+
if (destDirRel === null) {
|
|
134
|
+
throw new Error(`promoteItem: destination substrate_id '${destId}' has no registered dir`);
|
|
135
|
+
}
|
|
136
|
+
const destDir = path.isAbsolute(destDirRel) ? destDirRel : path.resolve(cwd, destDirRel);
|
|
137
|
+
// (3) Precondition: the lineage relation_type must be registered in the
|
|
138
|
+
// destination config, else the edge would write but validateContext would
|
|
139
|
+
// later error — fail loud at the boundary.
|
|
140
|
+
if (!relationTypeIds(destDir).has("item_derived_from_item")) {
|
|
141
|
+
throw new Error(`promoteItem: relation_type 'item_derived_from_item' is not registered in ${destDir} config.relation_types — register it before promoting`);
|
|
142
|
+
}
|
|
143
|
+
// (4) Build the content projection from the source item (fields minus
|
|
144
|
+
// identity/attestation metadata). Pin the source content_hash for the edge.
|
|
145
|
+
const projection = contentOnlyProjection(src.loc.item);
|
|
146
|
+
// (5) Allocate the destination refname; reject a supplied newRefname that
|
|
147
|
+
// already exists in the destination block.
|
|
148
|
+
const destRefname = input.newRefname ?? nextIdForDir(destDir, srcBlock);
|
|
149
|
+
if (input.newRefname !== undefined && destItemExists(destDir, srcBlock, srcArrayKey, destRefname)) {
|
|
150
|
+
throw new Error(`promoteItem: newRefname '${destRefname}' already exists in destination block '${srcBlock}.${srcArrayKey}'`);
|
|
151
|
+
}
|
|
152
|
+
// (6) Dry-run: synthesize the WOULD-be-written destination ResolvedRef and
|
|
153
|
+
// write NOTHING on any channel.
|
|
154
|
+
if (input.dryRun) {
|
|
155
|
+
return {
|
|
156
|
+
source: src,
|
|
157
|
+
destination: {
|
|
158
|
+
status: "active",
|
|
159
|
+
endpointKind: "item",
|
|
160
|
+
substrate_id: destId,
|
|
161
|
+
refname: destRefname,
|
|
162
|
+
},
|
|
163
|
+
lineageEdgeAppended: false,
|
|
164
|
+
dryRun: true,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
// (7) Write the promoted item — the write-path mints the destination oid +
|
|
168
|
+
// content_hash + persists the content object.
|
|
169
|
+
appendToBlockForDir(destDir, srcBlock, srcArrayKey, { id: destRefname, ...projection }, ctx);
|
|
170
|
+
// (8) Read back the minted identity fields.
|
|
171
|
+
const written = readDestItem(destDir, srcBlock, srcArrayKey, destRefname);
|
|
172
|
+
if (!written) {
|
|
173
|
+
throw new Error(`promoteItem: wrote item '${destRefname}' to ${destDir} but could not read it back`);
|
|
174
|
+
}
|
|
175
|
+
const newOid = typeof written.oid === "string" ? written.oid : undefined;
|
|
176
|
+
if (!newOid) {
|
|
177
|
+
throw new Error(`promoteItem: destination item '${destRefname}' has no minted oid — invariant breach`);
|
|
178
|
+
}
|
|
179
|
+
if (srcOid !== undefined && newOid === srcOid) {
|
|
180
|
+
throw new Error(`promoteItem: destination oid equals source oid '${srcOid}' — a promotion must mint a distinct identity`);
|
|
181
|
+
}
|
|
182
|
+
// (9) File the lineage edge into the DESTINATION (parent = the new derived
|
|
183
|
+
// item; child = the source).
|
|
184
|
+
const edge = {
|
|
185
|
+
parent: { kind: "item", substrate_id: destId, oid: newOid, refname: destRefname },
|
|
186
|
+
child: {
|
|
187
|
+
kind: "item",
|
|
188
|
+
substrate_id: srcId,
|
|
189
|
+
...(srcOid !== undefined ? { oid: srcOid } : {}),
|
|
190
|
+
refname: srcRefname,
|
|
191
|
+
...(srcContentHash !== undefined ? { content_hash: srcContentHash } : {}),
|
|
192
|
+
},
|
|
193
|
+
relation_type: "item_derived_from_item",
|
|
194
|
+
};
|
|
195
|
+
const { appended: lineageEdgeAppended } = appendRelationForDir(destDir, edge, ctx);
|
|
196
|
+
// (10) Mark the source superseded when its status enum supports it; the
|
|
197
|
+
// lineage edge is authoritative regardless.
|
|
198
|
+
const supersedeValue = supersessionStatusFor(srcDir, srcBlock);
|
|
199
|
+
if (supersedeValue !== null) {
|
|
200
|
+
updateItemInBlockForDir(srcDir, srcBlock, srcArrayKey, (item) => item.id === srcRefname, { status: supersedeValue }, ctx);
|
|
201
|
+
}
|
|
202
|
+
// (11) Return the written destination as a ResolvedRef.
|
|
203
|
+
return {
|
|
204
|
+
source: src,
|
|
205
|
+
destination: {
|
|
206
|
+
status: "active",
|
|
207
|
+
endpointKind: "item",
|
|
208
|
+
substrate_id: destId,
|
|
209
|
+
oid: newOid,
|
|
210
|
+
refname: destRefname,
|
|
211
|
+
loc: { id: destRefname, block: srcBlock, arrayKey: srcArrayKey, item: written },
|
|
212
|
+
},
|
|
213
|
+
lineageEdgeAppended,
|
|
214
|
+
dryRun: false,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/** Absolutize a registered foreign substrate dir; throws when the substrate_id
|
|
218
|
+
* is absent/unregistered (a foreign source must resolve to a dir to read its
|
|
219
|
+
* item + supersede it). */
|
|
220
|
+
function resolveForeignDir(cwd, substrate_id) {
|
|
221
|
+
if (!substrate_id) {
|
|
222
|
+
throw new Error("promoteItem: foreign source resolved without a substrate_id");
|
|
223
|
+
}
|
|
224
|
+
const rel = resolveSubstrateDir(cwd, substrate_id);
|
|
225
|
+
if (rel === null) {
|
|
226
|
+
throw new Error(`promoteItem: foreign source substrate_id '${substrate_id}' is not registered`);
|
|
227
|
+
}
|
|
228
|
+
return path.isAbsolute(rel) ? rel : path.resolve(cwd, rel);
|
|
229
|
+
}
|
|
230
|
+
/** True when an item with `id === refname` already exists in the destination
|
|
231
|
+
* block array. */
|
|
232
|
+
function destItemExists(destDir, block, arrayKey, refname) {
|
|
233
|
+
return readDestItem(destDir, block, arrayKey, refname) !== null;
|
|
234
|
+
}
|
|
235
|
+
/** Read a single item by `id === refname` from a destination block array, or
|
|
236
|
+
* null when the block is absent / the item is not present. */
|
|
237
|
+
function readDestItem(destDir, block, arrayKey, refname) {
|
|
238
|
+
let blockData;
|
|
239
|
+
try {
|
|
240
|
+
blockData = readBlockForDir(destDir, block);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
if (!blockData || typeof blockData !== "object")
|
|
246
|
+
return null;
|
|
247
|
+
const arr = blockData[arrayKey];
|
|
248
|
+
if (!Array.isArray(arr))
|
|
249
|
+
return null;
|
|
250
|
+
for (const it of arr) {
|
|
251
|
+
if (it && typeof it === "object" && it.id === refname) {
|
|
252
|
+
return it;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=promote-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promote-item.js","sourceRoot":"","sources":["../src/promote-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discover the single top-level array key in a block/object payload. Returns
|
|
3
|
+
* null when there are zero array properties; throws when ambiguous (two or
|
|
4
|
+
* more array properties), since callers cannot proceed without an explicit
|
|
5
|
+
* disambiguation policy. The single-array-key assumption is shared across
|
|
6
|
+
* .project/ block writes (inject-context-items.ts) and the block read surface
|
|
7
|
+
* (filterBlockItems / readBlockPage in context-sdk.ts, which imports this).
|
|
8
|
+
*/
|
|
9
|
+
export declare function discoverArrayKey(data: Record<string, unknown>): string | null;
|
|
10
|
+
/**
|
|
11
|
+
* The readable envelope every read surface emits. `content` is the text for
|
|
12
|
+
* the AgentToolResult (JSON body plus a structured footer when paged and/or
|
|
13
|
+
* truncated). The structured fields (`total`/`hasMore`/`truncated`/
|
|
14
|
+
* `totalBytes`) generalize readBlockPage's `{items,total,hasMore}` and add the
|
|
15
|
+
* FGAP-089 truncation signal so consumers (or the agent) can react
|
|
16
|
+
* programmatically rather than parse prose.
|
|
17
|
+
*/
|
|
18
|
+
export interface ReadEnvelope {
|
|
19
|
+
/** Readable text for the tool result: JSON body + optional structured footer. */
|
|
20
|
+
content: string;
|
|
21
|
+
/** Full element count when `value` was treated as a collection (paged); absent for whole-object reads. */
|
|
22
|
+
total?: number;
|
|
23
|
+
/** Whether more elements exist past this page; absent for whole-object reads. */
|
|
24
|
+
hasMore?: boolean;
|
|
25
|
+
/** Whether truncateHead capped the serialized JSON (50KB / line cap). */
|
|
26
|
+
truncated: boolean;
|
|
27
|
+
/** Total bytes of the un-capped serialized JSON. */
|
|
28
|
+
totalBytes: number;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the full content was returned (machine-checkable, FGAP-089). True
|
|
31
|
+
* for every non-over-cap return — including a paged-but-not-truncated page
|
|
32
|
+
* (the page itself is complete; `hasMore` signals more pages). False ONLY on
|
|
33
|
+
* the over-CAP fail-closed paths (directive-only refusal, or head-leading
|
|
34
|
+
* marked partial) where the serialized value did not fit and was either
|
|
35
|
+
* refused or returned as an explicitly-incomplete head.
|
|
36
|
+
*/
|
|
37
|
+
complete: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** Stable, greppable footer prefix — keep in sync with consumers/tests. */
|
|
40
|
+
export declare const READ_ELEMENT_FOOTER_PREFIX = "[read-element:";
|
|
41
|
+
export interface SerializeForReadOptions {
|
|
42
|
+
/** Force a specific array property to page over (else auto-discovered). */
|
|
43
|
+
itemsKey?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Force whole-object serialization — skip collection discovery/paging even
|
|
46
|
+
* when the value is (or contains) an array. For callers handing in an
|
|
47
|
+
* ALREADY-paged result (e.g. readBlockPage's {items,total,hasMore}) that must
|
|
48
|
+
* not be re-paged, or any value whose array is intrinsic, not a page surface.
|
|
49
|
+
*/
|
|
50
|
+
whole?: boolean;
|
|
51
|
+
/** Page start index (default 0). Only meaningful for collections. */
|
|
52
|
+
offset?: number;
|
|
53
|
+
/** Page size (default 50). Only meaningful for collections. */
|
|
54
|
+
limit?: number;
|
|
55
|
+
/** Optional human label included in the footer (e.g. the addressed thing). */
|
|
56
|
+
label?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Fail-closed narrowing directive (FGAP-089). When set AND the serialized
|
|
59
|
+
* value exceeds the read cap, serializeForRead returns the DIRECTIVE ONLY —
|
|
60
|
+
* NO partial body — naming the narrowing tool + addressing the caller should
|
|
61
|
+
* use instead (a partial read would mislead a constrained agent into
|
|
62
|
+
* treating a truncated value as complete). Leave UNSET for edge surfaces
|
|
63
|
+
* that have no finer addressing: those get the unmissable head-leading
|
|
64
|
+
* marked partial instead.
|
|
65
|
+
*/
|
|
66
|
+
overCapDirective?: {
|
|
67
|
+
/** The tool to call to narrow the read (e.g. "read-block-page"). */
|
|
68
|
+
tool: string;
|
|
69
|
+
/** Concrete params to suggest (rendered as `key=value` pairs). */
|
|
70
|
+
params?: Record<string, string | number>;
|
|
71
|
+
/** Extra free-text guidance appended after the directive. */
|
|
72
|
+
hint?: string;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export declare const DEFAULT_LIMIT = 50;
|
|
76
|
+
/** The single pagination result shape: a slice plus full-count metadata. */
|
|
77
|
+
export interface PageResult<T> {
|
|
78
|
+
items: T[];
|
|
79
|
+
total: number;
|
|
80
|
+
hasMore: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The ONE pagination implementation. Slices `arr` at offset(0)/limit(50) and
|
|
84
|
+
* reports the FULL count as `total` plus `hasMore = offset + limit < total`.
|
|
85
|
+
* Both serializeForRead (text envelope) and readBlockPage (structured page)
|
|
86
|
+
* route through this so there is no parallel paging math.
|
|
87
|
+
*/
|
|
88
|
+
export declare function pageArray<T>(arr: T[], opts?: {
|
|
89
|
+
offset?: number;
|
|
90
|
+
limit?: number;
|
|
91
|
+
}): PageResult<T>;
|
|
92
|
+
/**
|
|
93
|
+
* Serialize an already-loaded value for a read tool result. Collections are
|
|
94
|
+
* paged (offset/limit) and report total/hasMore; non-collections serialize
|
|
95
|
+
* whole. JSON text is capped via truncateHead.
|
|
96
|
+
*
|
|
97
|
+
* Over-CAP reads FAIL CLOSED (FGAP-089): a value that exceeds the 50KB read cap
|
|
98
|
+
* does NOT return a partial body dressed as the whole value. Instead —
|
|
99
|
+
* - with `overCapDirective`: a directive-only REFUSAL (no body) naming the
|
|
100
|
+
* narrowing tool + addressing;
|
|
101
|
+
* - without it (edge surfaces, no finer addressing): an UNMISSABLE
|
|
102
|
+
* HEAD-LEADING marked partial (warning FIRST, then the head).
|
|
103
|
+
* Both set `complete:false`. Under-cap returns set `complete:true`; a paged
|
|
104
|
+
* (but not over-cap) page is complete and keeps the structured paging footer
|
|
105
|
+
* (prefix `[read-element:`) since the next page is reachable via offset/limit.
|
|
106
|
+
*/
|
|
107
|
+
export declare function serializeForRead(value: unknown, opts?: SerializeForReadOptions): ReadEnvelope;
|
|
108
|
+
export interface AddressSpec {
|
|
109
|
+
/** Find an element by `.id` (or `.canonical_id`) inside an array / single-array object. */
|
|
110
|
+
id?: string;
|
|
111
|
+
/** Object-property lookup (also matches a config-registry array entry by canonical_id). */
|
|
112
|
+
key?: string;
|
|
113
|
+
/** Dotted/bracket path walk, e.g. `a.b.c` or `a[0].b`. */
|
|
114
|
+
path?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface AddressResult {
|
|
117
|
+
found: boolean;
|
|
118
|
+
value: unknown;
|
|
119
|
+
/** Human string describing what was addressed (for tool result / footer label). */
|
|
120
|
+
resolved: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Element addressing over an already-loaded value. Mutually-exclusive address
|
|
124
|
+
* forms (id | key | path); the first present form wins. Never throws on a
|
|
125
|
+
* miss — returns { found:false, value:undefined, resolved } so callers report
|
|
126
|
+
* a clean "not found".
|
|
127
|
+
*/
|
|
128
|
+
export declare function addressInto(value: unknown, addr: AddressSpec): AddressResult;
|
|
129
|
+
//# sourceMappingURL=read-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-element.d.ts","sourceRoot":"","sources":["../src/read-element.ts"],"names":[],"mappings":"AA8BA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAS7E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC5B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,0GAA0G;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE;QAClB,oEAAoE;QACpE,IAAI,EAAE,MAAM,CAAC;QACb,kEAAkE;QAClE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACzC,6DAA6D;QAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACF;AAED,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,4EAA4E;AAC5E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAKpG;AAoCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,uBAA4B,GAAG,YAAY,CAkFjG;AAED,MAAM,WAAW,WAAW;IAC3B,2FAA2F;IAC3F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2FAA2F;IAC3F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CACjB;AA8CD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,CA0D5E"}
|