pi-fabric 0.64.0 → 0.65.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.
Files changed (84) hide show
  1. package/README.md +1 -0
  2. package/dist/agents/manager.d.ts.map +1 -1
  3. package/dist/agents/pi-binary.d.ts +7 -0
  4. package/dist/agents/pi-binary.d.ts.map +1 -0
  5. package/dist/chunks/{chunk-22RY7UMR.js → chunk-2YCOXT4W.js} +4 -13
  6. package/dist/chunks/chunk-2YCOXT4W.js.map +7 -0
  7. package/dist/chunks/{chunk-725BGPJU.js → chunk-3XLK3HIF.js} +102 -78
  8. package/dist/chunks/chunk-3XLK3HIF.js.map +7 -0
  9. package/dist/chunks/{chunk-EBGSP7Q7.js → chunk-ASBRTAJ4.js} +74 -16
  10. package/dist/chunks/chunk-ASBRTAJ4.js.map +7 -0
  11. package/dist/chunks/chunk-CIJPRYAP.js +16 -0
  12. package/dist/chunks/chunk-CIJPRYAP.js.map +7 -0
  13. package/dist/chunks/{chunk-UACA2AKF.js → chunk-FL52NCFS.js} +1 -1
  14. package/dist/chunks/{chunk-UACA2AKF.js.map → chunk-FL52NCFS.js.map} +2 -2
  15. package/dist/chunks/{chunk-GFZYWVIK.js → chunk-HDKEA77S.js} +1 -1
  16. package/dist/chunks/chunk-HDKEA77S.js.map +7 -0
  17. package/dist/chunks/{chunk-OKQHLYTU.js → chunk-LDZWE6OA.js} +156 -52
  18. package/dist/chunks/chunk-LDZWE6OA.js.map +7 -0
  19. package/dist/chunks/{chunk-TGRIZ7E4.js → chunk-LKH5MCNR.js} +48 -1
  20. package/dist/chunks/chunk-LKH5MCNR.js.map +7 -0
  21. package/dist/chunks/{fabric-runtime-state-STCXP7AK.js → fabric-runtime-state-ABRESV3R.js} +618 -124
  22. package/dist/chunks/fabric-runtime-state-ABRESV3R.js.map +7 -0
  23. package/dist/chunks/scanner-4IGGTOEI.js +182 -0
  24. package/dist/chunks/scanner-4IGGTOEI.js.map +7 -0
  25. package/dist/chunks/{settings-GYHFWT4K.js → settings-WDHCKZZK.js} +7 -3
  26. package/dist/chunks/settings-WDHCKZZK.js.map +7 -0
  27. package/dist/commands/fabric.d.ts.map +1 -1
  28. package/dist/config.d.ts +21 -0
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/core/action-registry.d.ts +23 -0
  31. package/dist/core/action-registry.d.ts.map +1 -1
  32. package/dist/core/action-registry.js +4 -3
  33. package/dist/fabric-runtime-state.d.ts +5 -0
  34. package/dist/fabric-runtime-state.d.ts.map +1 -1
  35. package/dist/fabric-state.d.ts +4 -0
  36. package/dist/fabric-state.d.ts.map +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +65 -11
  39. package/dist/index.js.map +2 -2
  40. package/dist/prewalk/controller.d.ts +1 -0
  41. package/dist/prewalk/controller.d.ts.map +1 -1
  42. package/dist/prewalk/fs-drift.d.ts +1 -0
  43. package/dist/prewalk/fs-drift.d.ts.map +1 -1
  44. package/dist/prewalk/handoff.d.ts +1 -0
  45. package/dist/prewalk/handoff.d.ts.map +1 -1
  46. package/dist/protocol.d.ts +8 -0
  47. package/dist/protocol.d.ts.map +1 -1
  48. package/dist/protocol.js +3 -2
  49. package/dist/providers/compact-provider.d.ts.map +1 -1
  50. package/dist/providers/mcp-advisory.d.ts.map +1 -1
  51. package/dist/providers/mcp-descriptor-cache.d.ts +7 -0
  52. package/dist/providers/mcp-descriptor-cache.d.ts.map +1 -1
  53. package/dist/providers/mcp-provider.d.ts.map +1 -1
  54. package/dist/residency/host.js +5 -4
  55. package/dist/residency/host.js.map +1 -1
  56. package/dist/speculation/eligibility.d.ts +22 -0
  57. package/dist/speculation/eligibility.d.ts.map +1 -0
  58. package/dist/speculation/freshness.d.ts +10 -0
  59. package/dist/speculation/freshness.d.ts.map +1 -0
  60. package/dist/speculation/partial-json.d.ts +9 -0
  61. package/dist/speculation/partial-json.d.ts.map +1 -0
  62. package/dist/speculation/scanner.d.ts +13 -0
  63. package/dist/speculation/scanner.d.ts.map +1 -0
  64. package/dist/speculation/store.d.ts +35 -0
  65. package/dist/speculation/store.d.ts.map +1 -0
  66. package/dist/speculation/stream-tap.d.ts +27 -0
  67. package/dist/speculation/stream-tap.d.ts.map +1 -0
  68. package/dist/speculation/types.d.ts +43 -0
  69. package/dist/speculation/types.d.ts.map +1 -0
  70. package/dist/topology/peer-settle.d.ts +2 -3
  71. package/dist/topology/peer-settle.d.ts.map +1 -1
  72. package/dist/ui/settings.d.ts.map +1 -1
  73. package/dist/worker.js +0 -0
  74. package/docs/configuration.md +4 -0
  75. package/docs/speculation.md +119 -0
  76. package/package.json +14 -16
  77. package/dist/chunks/chunk-22RY7UMR.js.map +0 -7
  78. package/dist/chunks/chunk-725BGPJU.js.map +0 -7
  79. package/dist/chunks/chunk-EBGSP7Q7.js.map +0 -7
  80. package/dist/chunks/chunk-GFZYWVIK.js.map +0 -7
  81. package/dist/chunks/chunk-OKQHLYTU.js.map +0 -7
  82. package/dist/chunks/chunk-TGRIZ7E4.js.map +0 -7
  83. package/dist/chunks/fabric-runtime-state-STCXP7AK.js.map +0 -7
  84. package/dist/chunks/settings-GYHFWT4K.js.map +0 -7
package/README.md CHANGED
@@ -131,6 +131,7 @@ See the [interface & commands reference](docs/interface.md) for every view, keyb
131
131
  - [Components & committed capabilities](docs/components.md): supervised effects, exact requirements, external per-model guidance and execution-profile replacement, rolling provider generations, actor commitments, and both formal calculi.
132
132
  - [External providers](docs/providers.md): the versioned provider protocol for extensions.
133
133
  - [Architecture & security](docs/architecture.md): the host bridge, sandboxing, tool-call robustness, and limits.
134
+ - [Speculative PTC](docs/speculation.md): pre-launching literal read calls while the program streams, with epoch + freshness guarantees.
134
135
  - [Skills](docs/skills.md): the core-first invocation policy and user-invoked advanced patterns.
135
136
 
136
137
  ## Development
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface PiBinaryResolutionOptions {
2
+ env?: NodeJS.ProcessEnv;
3
+ homeDirectory?: string;
4
+ isExecutable?: (file: string) => boolean;
5
+ }
6
+ export declare const resolvePiBinary: (configured?: string, options?: PiBinaryResolutionOptions) => string;
7
+ //# sourceMappingURL=pi-binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-binary.d.ts","sourceRoot":"","sources":["../../src/agents/pi-binary.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAWD,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,UAAS,yBAA8B,KACtC,MAWF,CAAC"}
@@ -1,14 +1,6 @@
1
- // src/core/stable-hash.ts
2
- import { createHash } from "node:crypto";
3
- var stableJsonValue = (value) => {
4
- if (Array.isArray(value)) return value.map(stableJsonValue);
5
- if (value instanceof URL) return value.href;
6
- if (value === null || typeof value !== "object") return value;
7
- return Object.fromEntries(
8
- Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, nested]) => [key, stableJsonValue(nested)])
9
- );
10
- };
11
- var stableJsonHash = (value) => createHash("sha256").update(JSON.stringify(stableJsonValue(value))).digest("hex");
1
+ import {
2
+ stableJsonHash
3
+ } from "./chunk-CIJPRYAP.js";
12
4
 
13
5
  // src/components/model-guidance.ts
14
6
  var FABRIC_EXECUTION_GUIDANCE_SLOT = "fabric.execution";
@@ -224,7 +216,6 @@ var resolveFabricModelGuidance = (guidance, options) => {
224
216
  };
225
217
 
226
218
  export {
227
- stableJsonHash,
228
219
  FABRIC_EXECUTION_GUIDANCE_SLOT,
229
220
  MAX_FABRIC_MODEL_GUIDANCE_PER_COMPONENT,
230
221
  MAX_FABRIC_MODEL_GUIDANCE_CONTENT_CHARS,
@@ -237,4 +228,4 @@ export {
237
228
  fabricModelGuidanceInfo,
238
229
  resolveFabricModelGuidance
239
230
  };
240
- //# sourceMappingURL=chunk-22RY7UMR.js.map
231
+ //# sourceMappingURL=chunk-2YCOXT4W.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/model-guidance.ts"],
4
+ "sourcesContent": ["import { stableJsonHash } from \"../core/stable-hash.js\";\nimport type {\n FabricModelGuidance,\n FabricModelGuidanceInfo,\n FabricModelGuidancePlacement,\n FabricModelGuidanceTarget,\n} from \"./types.js\";\n\nexport const FABRIC_EXECUTION_GUIDANCE_SLOT = \"fabric.execution\";\nexport const MAX_FABRIC_MODEL_GUIDANCE_PER_COMPONENT = 64;\nexport const MAX_FABRIC_MODEL_GUIDANCE_CONTENT_CHARS = 32_000;\nexport const MAX_FABRIC_MODEL_GUIDANCE_TOTAL_CHARS = 64_000;\nexport const MAX_FABRIC_MODEL_GUIDANCE_REGISTRATIONS = 1_024;\nexport const MAX_FABRIC_MODEL_GUIDANCE_SNAPSHOT_CHARS = 1_000_000;\n\nconst MAX_LABEL_CHARS = 128;\nconst MAX_SLOT_CHARS = 128;\nconst MAX_MODEL_PATTERNS = 32;\nconst MAX_MODEL_PATTERN_CHARS = 256;\nconst CONTROL_CHARACTER = /[\\u0000-\\u001f\\u007f]/;\nconst REGEX_CHARACTER = /[\\\\^$+.[\\]{}()|]/;\n\nexport interface NormalizedFabricModelGuidance {\n label: string;\n models: string[];\n content: string;\n targets: FabricModelGuidanceTarget[];\n placement: FabricModelGuidancePlacement;\n slot?: string;\n}\n\nexport interface FabricOwnedModelGuidance extends NormalizedFabricModelGuidance {\n componentId: string;\n component: string;\n revision: number;\n}\n\nconst compareStableText = (left: string, right: string): number =>\n left < right ? -1 : left > right ? 1 : 0;\n\nexport const compareFabricOwnedModelGuidance = (\n left: FabricOwnedModelGuidance,\n right: FabricOwnedModelGuidance,\n): number =>\n compareStableText(left.componentId, right.componentId) ||\n compareStableText(left.label, right.label);\n\nexport interface FabricGuidanceDefaultSlot {\n slot: string;\n content: string;\n}\n\nexport interface FabricResolvedModelGuidance {\n slotText: string;\n appendText: string;\n digest: string;\n sources: Array<{\n componentId: string;\n component: string;\n label: string;\n placement: FabricModelGuidancePlacement;\n slot?: string;\n contentHash: string;\n }>;\n}\n\nconst guidanceError = (message: string): Error =>\n new Error(`Invalid Fabric model guidance: ${message}`);\n\nconst normalizedIdentifier = (value: unknown, field: \"label\" | \"slot\", max: number): string => {\n if (typeof value !== \"string\") throw guidanceError(`${field} must be a string`);\n const normalized = value.trim();\n if (!normalized) throw guidanceError(`${field} must not be empty`);\n if (normalized.length > max) throw guidanceError(`${field} exceeds ${max} characters`);\n if (CONTROL_CHARACTER.test(normalized)) {\n throw guidanceError(`${field} must not contain control characters`);\n }\n return normalized;\n};\n\nconst normalizeTargets = (\n targets: readonly FabricModelGuidanceTarget[] | undefined,\n): FabricModelGuidanceTarget[] => {\n if (targets === undefined) return [\"main\", \"participant\"];\n if (!Array.isArray(targets) || targets.length === 0) {\n throw guidanceError(\"targets must contain main and/or participant\");\n }\n const normalized: FabricModelGuidanceTarget[] = [];\n for (const target of targets) {\n if (target !== \"main\" && target !== \"participant\") {\n throw guidanceError(`unsupported target ${String(target)}`);\n }\n if (!normalized.includes(target)) normalized.push(target);\n }\n return normalized;\n};\n\nexport const normalizeFabricModelGuidance = (\n guidance: FabricModelGuidance,\n): NormalizedFabricModelGuidance => {\n if (!guidance || typeof guidance !== \"object\" || Array.isArray(guidance)) {\n throw guidanceError(\"registration must be an object\");\n }\n const label = normalizedIdentifier(guidance.label, \"label\", MAX_LABEL_CHARS);\n if (!Array.isArray(guidance.models) || guidance.models.length === 0) {\n throw guidanceError(`${label} must select at least one provider/model pattern`);\n }\n if (guidance.models.length > MAX_MODEL_PATTERNS) {\n throw guidanceError(`${label} selects more than ${MAX_MODEL_PATTERNS} model patterns`);\n }\n const models: string[] = [];\n for (const candidate of guidance.models) {\n if (typeof candidate !== \"string\") {\n throw guidanceError(`${label} model patterns must be strings`);\n }\n const pattern = candidate.trim();\n if (!pattern || pattern.length > MAX_MODEL_PATTERN_CHARS || !pattern.includes(\"/\")) {\n throw guidanceError(\n `${label} model pattern ${JSON.stringify(candidate)} must be a provider/model glob of at most ${MAX_MODEL_PATTERN_CHARS} characters`,\n );\n }\n if (CONTROL_CHARACTER.test(pattern)) {\n throw guidanceError(`${label} model patterns must not contain control characters`);\n }\n if (!models.includes(pattern)) models.push(pattern);\n }\n if (typeof guidance.content !== \"string\" || !guidance.content.trim()) {\n throw guidanceError(`${label} content must be a non-empty string`);\n }\n const content = guidance.content.trim();\n if (content.length > MAX_FABRIC_MODEL_GUIDANCE_CONTENT_CHARS) {\n throw guidanceError(\n `${label} content exceeds ${MAX_FABRIC_MODEL_GUIDANCE_CONTENT_CHARS} characters`,\n );\n }\n const placement = guidance.placement ?? \"append\";\n if (placement !== \"append\" && placement !== \"replace\") {\n throw guidanceError(`${label} placement must be append or replace`);\n }\n const slot = guidance.slot === undefined\n ? undefined\n : normalizedIdentifier(guidance.slot, \"slot\", MAX_SLOT_CHARS);\n if (placement === \"replace\" && !slot) {\n throw guidanceError(`${label} replacement guidance requires a slot`);\n }\n if (placement === \"append\" && slot) {\n throw guidanceError(`${label} append guidance must not declare a slot`);\n }\n return {\n label,\n models,\n content,\n targets: normalizeTargets(guidance.targets),\n placement,\n ...(slot ? { slot } : {}),\n };\n};\n\nexport const parseFabricOwnedModelGuidance = (value: unknown): FabricOwnedModelGuidance[] => {\n if (!Array.isArray(value) || value.length > MAX_FABRIC_MODEL_GUIDANCE_REGISTRATIONS) return [];\n try {\n const parsed = value.map((candidate) => {\n if (!candidate || typeof candidate !== \"object\" || Array.isArray(candidate)) {\n throw guidanceError(\"serialized owner must be an object\");\n }\n const record = candidate as Partial<FabricOwnedModelGuidance>;\n const normalized = normalizeFabricModelGuidance(record as FabricModelGuidance);\n if (\n typeof record.componentId !== \"string\" ||\n !record.componentId.trim() ||\n typeof record.component !== \"string\" ||\n !record.component.trim() ||\n !Number.isSafeInteger(record.revision) ||\n (record.revision ?? 0) < 1\n ) {\n throw guidanceError(\"serialized owner metadata is incomplete\");\n }\n return {\n ...normalized,\n componentId: record.componentId.trim(),\n component: record.component.trim(),\n revision: record.revision!,\n };\n });\n if (parsed.reduce((sum, entry) => sum + entry.content.length, 0) >\n MAX_FABRIC_MODEL_GUIDANCE_SNAPSHOT_CHARS) return [];\n return parsed;\n } catch {\n return [];\n }\n};\n\nexport const fabricModelGuidanceInfo = (\n guidance: NormalizedFabricModelGuidance,\n): FabricModelGuidanceInfo => ({\n label: guidance.label,\n models: [...guidance.models],\n targets: [...guidance.targets],\n placement: guidance.placement,\n ...(guidance.slot ? { slot: guidance.slot } : {}),\n contentChars: guidance.content.length,\n contentHash: stableJsonHash(guidance.content),\n});\n\nconst wildcardMatch = (pattern: string, value: string): boolean => {\n let expression = \"^\";\n for (const character of pattern) {\n if (character === \"*\") expression += \".*\";\n else if (character === \"?\") expression += \".\";\n else expression += REGEX_CHARACTER.test(character) ? `\\\\${character}` : character;\n }\n return new RegExp(`${expression}$`, \"u\").test(value);\n};\n\nconst fabricModelGuidanceMatches = (\n guidance: NormalizedFabricModelGuidance,\n model: string,\n target: FabricModelGuidanceTarget,\n): boolean =>\n guidance.targets.includes(target) && guidance.models.some((pattern) => wildcardMatch(pattern, model));\n\nconst sourceInfo = (guidance: FabricOwnedModelGuidance) => ({\n componentId: guidance.componentId,\n component: guidance.component,\n label: guidance.label,\n placement: guidance.placement,\n ...(guidance.slot ? { slot: guidance.slot } : {}),\n contentHash: stableJsonHash(guidance.content),\n});\n\nexport const resolveFabricModelGuidance = (\n guidance: readonly FabricOwnedModelGuidance[],\n options: {\n model?: string;\n target: FabricModelGuidanceTarget;\n defaults?: readonly FabricGuidanceDefaultSlot[];\n includeSlots?: boolean;\n },\n): FabricResolvedModelGuidance => {\n const includeSlots = options.includeSlots !== false;\n const matching = options.model\n ? guidance.filter((entry) => fabricModelGuidanceMatches(entry, options.model!, options.target))\n : [];\n const replacements = new Map<string, FabricOwnedModelGuidance[]>();\n const additions: FabricOwnedModelGuidance[] = [];\n for (const entry of matching) {\n if (entry.placement === \"append\") {\n additions.push(entry);\n continue;\n }\n if (!includeSlots || !entry.slot) continue;\n const existing = replacements.get(entry.slot) ?? [];\n existing.push(entry);\n replacements.set(entry.slot, existing);\n }\n\n const defaultSlots = options.defaults ?? [];\n const slotOrder = [\n ...defaultSlots.map((entry) => entry.slot),\n ...[...replacements.keys()]\n .filter((slot) => !defaultSlots.some((entry) => entry.slot === slot))\n .sort(compareStableText),\n ];\n const slotSections: string[] = [];\n const sources: FabricResolvedModelGuidance[\"sources\"] = [];\n if (includeSlots) {\n for (const slot of slotOrder) {\n const candidates = replacements.get(slot) ?? [];\n if (candidates.length > 1) {\n const owners = candidates\n .map((entry) => `${entry.componentId}:${entry.label}`)\n .sort(compareStableText)\n .join(\", \");\n throw new Error(\n `Fabric guidance slot ${slot} has multiple replacements for ${options.model ?? \"the current model\"}: ${owners}`,\n );\n }\n const replacement = candidates[0];\n if (replacement) {\n slotSections.push(replacement.content);\n sources.push(sourceInfo(replacement));\n continue;\n }\n const fallback = defaultSlots.find((entry) => entry.slot === slot)?.content.trim();\n if (fallback) slotSections.push(fallback);\n }\n }\n\n additions.sort(compareFabricOwnedModelGuidance);\n for (const addition of additions) sources.push(sourceInfo(addition));\n const appendSections = additions.map((entry) => entry.content);\n const slotText = slotSections.join(\"\\n\\n\");\n const appendText = appendSections.join(\"\\n\\n\");\n const resolvedChars = slotText.length + appendText.length +\n (slotText && appendText ? 2 : 0);\n if (resolvedChars > MAX_FABRIC_MODEL_GUIDANCE_TOTAL_CHARS) {\n throw new Error(\n `Resolved Fabric model guidance exceeds ${MAX_FABRIC_MODEL_GUIDANCE_TOTAL_CHARS} characters for ${options.model ?? \"the current model\"}`,\n );\n }\n return {\n slotText,\n appendText,\n sources,\n digest: stableJsonHash({\n model: options.model,\n target: options.target,\n slots: slotSections,\n additions: sources,\n }),\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }