pi-fabric 0.97.0 → 0.99.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.
Files changed (180) hide show
  1. package/THIRD_PARTY_NOTICES.md +5 -4
  2. package/dist/agents/manager.d.ts.map +1 -1
  3. package/dist/agents/request.d.ts.map +1 -1
  4. package/dist/agents/types.d.ts +3 -0
  5. package/dist/agents/types.d.ts.map +1 -1
  6. package/dist/agents.js +3 -3
  7. package/dist/chunks/{chunk-JCV54SSP.js → chunk-27ORW5EK.js} +41 -22
  8. package/dist/chunks/chunk-27ORW5EK.js.map +7 -0
  9. package/dist/chunks/{chunk-D5GNTBV6.js → chunk-7HQKBGTL.js} +2 -2
  10. package/dist/chunks/{chunk-5WUW727L.js → chunk-7WEYUJCF.js} +5 -3
  11. package/dist/chunks/chunk-7WEYUJCF.js.map +7 -0
  12. package/dist/chunks/{chunk-LNLQ2LX3.js → chunk-ASU53MOT.js} +2 -2
  13. package/dist/chunks/{chunk-V3PIO7QL.js → chunk-BUQZBG6O.js} +3 -43
  14. package/dist/chunks/chunk-BUQZBG6O.js.map +7 -0
  15. package/dist/chunks/{chunk-6K5SRGW6.js → chunk-C2DIKAOE.js} +4 -4
  16. package/dist/chunks/{chunk-FJSHRHOR.js → chunk-CPSPZGK4.js} +6 -6
  17. package/dist/chunks/{chunk-UBPFGMDQ.js → chunk-CXQF35XB.js} +4 -4
  18. package/dist/chunks/{chunk-F72MAIQY.js → chunk-EQIGYLVB.js} +34 -1
  19. package/dist/chunks/chunk-EQIGYLVB.js.map +7 -0
  20. package/dist/chunks/{chunk-IYJO7JRQ.js → chunk-G2X6PZXX.js} +2 -2
  21. package/dist/chunks/{chunk-3SIXBW6A.js → chunk-H4YYLQTX.js} +2 -2
  22. package/dist/chunks/{chunk-CSJSHBAT.js → chunk-I5VN6D5T.js} +48 -21
  23. package/dist/chunks/chunk-I5VN6D5T.js.map +7 -0
  24. package/dist/chunks/{chunk-YC3QQDZ3.js → chunk-IPHEM6RY.js} +2 -2
  25. package/dist/chunks/{chunk-VRYEGVHR.js → chunk-J7ZQERKA.js} +11 -8
  26. package/dist/chunks/chunk-J7ZQERKA.js.map +7 -0
  27. package/dist/chunks/{chunk-D4B4CCTA.js → chunk-JHQDS6YP.js} +2 -2
  28. package/dist/chunks/{chunk-OINADFEF.js → chunk-JWWGWUP7.js} +5 -5
  29. package/dist/chunks/{chunk-WXSELMFV.js → chunk-KFPUVFDS.js} +5 -5
  30. package/dist/chunks/{chunk-EPAFGT2M.js → chunk-LH2PGXSZ.js} +5 -1
  31. package/dist/chunks/{chunk-EPAFGT2M.js.map → chunk-LH2PGXSZ.js.map} +2 -2
  32. package/dist/chunks/{chunk-X3IRR7CV.js → chunk-M25A5R3F.js} +2 -2
  33. package/dist/chunks/chunk-MNTJX4U7.js +760 -0
  34. package/dist/chunks/chunk-MNTJX4U7.js.map +7 -0
  35. package/dist/chunks/{chunk-754HA6KO.js → chunk-NRLDV5R3.js} +7 -2
  36. package/dist/chunks/chunk-NRLDV5R3.js.map +7 -0
  37. package/dist/chunks/chunk-O4A5UOXU.js +44 -0
  38. package/dist/chunks/chunk-O4A5UOXU.js.map +7 -0
  39. package/dist/chunks/{chunk-QKNEM4RQ.js → chunk-OCKOHMUF.js} +247 -71
  40. package/dist/chunks/chunk-OCKOHMUF.js.map +7 -0
  41. package/dist/chunks/{chunk-VQGO4P7C.js → chunk-QIW7QMFI.js} +2 -2
  42. package/dist/chunks/{chunk-B4HECUJI.js → chunk-RUEKYUNR.js} +2 -2
  43. package/dist/chunks/{chunk-EBWMC3OO.js → chunk-RZHXYLOY.js} +2 -2
  44. package/dist/chunks/chunk-SDDBEBM4.js +162 -0
  45. package/dist/chunks/chunk-SDDBEBM4.js.map +7 -0
  46. package/dist/chunks/{chunk-2LBC6TTP.js → chunk-UGMLWBVF.js} +390 -228
  47. package/dist/chunks/chunk-UGMLWBVF.js.map +7 -0
  48. package/dist/chunks/{chunk-KBHITFTO.js → chunk-VRAGOMN4.js} +3 -1
  49. package/dist/chunks/chunk-VRAGOMN4.js.map +7 -0
  50. package/dist/chunks/{chunk-OUAC6O5C.js → chunk-WK25T5ST.js} +12 -12
  51. package/dist/chunks/{chunk-G2F2RDZI.js → chunk-YAPDV6LO.js} +2 -2
  52. package/dist/chunks/{chunk-Q5BMTL6A.js → chunk-YIEK7FH2.js} +4 -4
  53. package/dist/chunks/{chunk-KS44WKJJ.js → chunk-Z45SUO4B.js} +2 -2
  54. package/dist/commands/fabric.d.ts.map +1 -1
  55. package/dist/compaction/hook.js +6 -6
  56. package/dist/components/configuration.js +2 -2
  57. package/dist/config.d.ts +11 -0
  58. package/dist/config.d.ts.map +1 -1
  59. package/dist/core/action-registry.js +7 -7
  60. package/dist/core/file-lock.d.ts +4 -0
  61. package/dist/core/file-lock.d.ts.map +1 -1
  62. package/dist/core/provider-operations.js +162 -51
  63. package/dist/core/provider-operations.js.map +2 -2
  64. package/dist/core/shell-timing.d.ts +11 -0
  65. package/dist/core/shell-timing.d.ts.map +1 -0
  66. package/dist/entropy/index.js +12 -10
  67. package/dist/entropy/pool-store.d.ts +3 -1
  68. package/dist/entropy/pool-store.d.ts.map +1 -1
  69. package/dist/fabric-runtime-state.d.ts.map +1 -1
  70. package/dist/fabric-runtime-state.js +137 -47
  71. package/dist/fabric-runtime-state.js.map +4 -4
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +119 -53
  74. package/dist/index.js.map +3 -3
  75. package/dist/jev/observation.js +5 -5
  76. package/dist/jev.js +8 -8
  77. package/dist/memory/digest.js +2 -2
  78. package/dist/memory/discovery.js +6 -6
  79. package/dist/memory/file-worker.js +9 -9
  80. package/dist/memory/fs-source.d.ts +12 -0
  81. package/dist/memory/fs-source.d.ts.map +1 -0
  82. package/dist/memory/normalize.js +5 -5
  83. package/dist/memory/search.js +7 -7
  84. package/dist/memory/worker-provider.js +10 -10
  85. package/dist/memory.d.ts +2 -0
  86. package/dist/memory.d.ts.map +1 -1
  87. package/dist/memory.js +15 -9
  88. package/dist/memory.js.map +1 -1
  89. package/dist/prewalk/messages.d.ts +1 -1
  90. package/dist/prewalk/messages.d.ts.map +1 -1
  91. package/dist/protocol.d.ts +12 -0
  92. package/dist/protocol.d.ts.map +1 -1
  93. package/dist/protocol.js +3 -1
  94. package/dist/providers/agents-actions.d.ts.map +1 -1
  95. package/dist/providers/agents-message-router.d.ts.map +1 -1
  96. package/dist/providers/agents-provider.d.ts.map +1 -1
  97. package/dist/providers/jev-provider.js +8 -8
  98. package/dist/providers/memory-provider.js +9 -9
  99. package/dist/providers/prewalk-provider.d.ts +3 -3
  100. package/dist/providers/prewalk-provider.d.ts.map +1 -1
  101. package/dist/residency/host.js +9 -9
  102. package/dist/residency/pi-entry.js +9 -9
  103. package/dist/runtime/core-override-guest-types.js +2 -2
  104. package/dist/runtime/guest-types.d.ts +1 -1
  105. package/dist/runtime/guest-types.d.ts.map +1 -1
  106. package/dist/runtime/guest-types.js +1 -1
  107. package/dist/runtime/monty-runtime.js +1 -1
  108. package/dist/runtime/typescript-kernel.js +2 -2
  109. package/dist/runtime-state-builtins.d.ts.map +1 -1
  110. package/dist/ui/conversation.d.ts +2 -1
  111. package/dist/ui/conversation.d.ts.map +1 -1
  112. package/dist/ui/conversation.js +41 -37
  113. package/dist/ui/conversation.js.map +2 -2
  114. package/dist/ui/dashboard.js +10 -8
  115. package/dist/ui/dashboard.js.map +1 -1
  116. package/dist/ui/fabric-model-selector.d.ts +3 -0
  117. package/dist/ui/fabric-model-selector.d.ts.map +1 -1
  118. package/dist/ui/settings.js +2 -2
  119. package/dist/ui/shell-tasks.d.ts +2 -1
  120. package/dist/ui/shell-tasks.d.ts.map +1 -1
  121. package/dist/ui/shell-tasks.js +169 -81
  122. package/dist/ui/shell-tasks.js.map +3 -3
  123. package/dist/ui/structured.d.ts.map +1 -1
  124. package/dist/verified/generated/authority-kernel.js +188 -81
  125. package/dist/verified/generated/kernel.js +547 -265
  126. package/dist/verified/generated/lifecycle-kernel.d.ts +1 -1
  127. package/dist/verified/generated/lifecycle-kernel.js +172 -125
  128. package/dist/verified/generated/manifest.json +11 -11
  129. package/dist/verified/generated/provider-kernel.js +160 -52
  130. package/dist/verified/generated/storage-kernel.js +238 -69
  131. package/dist/worker/options.d.ts.map +1 -1
  132. package/dist/worker/options.js +9 -0
  133. package/dist/worker/options.js.map +2 -2
  134. package/dist/worker.js +2 -1
  135. package/dist/worker.js.map +2 -2
  136. package/docs/background-tasks.md +33 -0
  137. package/docs/configuration.md +20 -0
  138. package/docs/entropy.md +13 -0
  139. package/docs/interface.md +2 -0
  140. package/docs/memory-recall.md +21 -0
  141. package/docs/provider-capabilities.md +1 -1
  142. package/docs/verified-kernels.md +10 -6
  143. package/package.json +1 -1
  144. package/proofs/lifecycle-spec.bend +4 -4
  145. package/proofs/lifecycle-types.d.ts +1 -1
  146. package/proofs/lifecycle.bend +6 -6
  147. package/scripts/test-verified-kernels.mjs +3 -3
  148. package/scripts/verified-kernels.mjs +53 -13
  149. package/skillsets/typescript/fabric-exec/references/agents.md +2 -0
  150. package/dist/chunks/chunk-2LBC6TTP.js.map +0 -7
  151. package/dist/chunks/chunk-4E63LJDD.js +0 -468
  152. package/dist/chunks/chunk-4E63LJDD.js.map +0 -7
  153. package/dist/chunks/chunk-5WUW727L.js.map +0 -7
  154. package/dist/chunks/chunk-754HA6KO.js.map +0 -7
  155. package/dist/chunks/chunk-CSJSHBAT.js.map +0 -7
  156. package/dist/chunks/chunk-F72MAIQY.js.map +0 -7
  157. package/dist/chunks/chunk-JCV54SSP.js.map +0 -7
  158. package/dist/chunks/chunk-KBHITFTO.js.map +0 -7
  159. package/dist/chunks/chunk-QKNEM4RQ.js.map +0 -7
  160. package/dist/chunks/chunk-V3PIO7QL.js.map +0 -7
  161. package/dist/chunks/chunk-VRYEGVHR.js.map +0 -7
  162. /package/dist/chunks/{chunk-D5GNTBV6.js.map → chunk-7HQKBGTL.js.map} +0 -0
  163. /package/dist/chunks/{chunk-LNLQ2LX3.js.map → chunk-ASU53MOT.js.map} +0 -0
  164. /package/dist/chunks/{chunk-6K5SRGW6.js.map → chunk-C2DIKAOE.js.map} +0 -0
  165. /package/dist/chunks/{chunk-FJSHRHOR.js.map → chunk-CPSPZGK4.js.map} +0 -0
  166. /package/dist/chunks/{chunk-UBPFGMDQ.js.map → chunk-CXQF35XB.js.map} +0 -0
  167. /package/dist/chunks/{chunk-IYJO7JRQ.js.map → chunk-G2X6PZXX.js.map} +0 -0
  168. /package/dist/chunks/{chunk-3SIXBW6A.js.map → chunk-H4YYLQTX.js.map} +0 -0
  169. /package/dist/chunks/{chunk-YC3QQDZ3.js.map → chunk-IPHEM6RY.js.map} +0 -0
  170. /package/dist/chunks/{chunk-D4B4CCTA.js.map → chunk-JHQDS6YP.js.map} +0 -0
  171. /package/dist/chunks/{chunk-OINADFEF.js.map → chunk-JWWGWUP7.js.map} +0 -0
  172. /package/dist/chunks/{chunk-WXSELMFV.js.map → chunk-KFPUVFDS.js.map} +0 -0
  173. /package/dist/chunks/{chunk-X3IRR7CV.js.map → chunk-M25A5R3F.js.map} +0 -0
  174. /package/dist/chunks/{chunk-VQGO4P7C.js.map → chunk-QIW7QMFI.js.map} +0 -0
  175. /package/dist/chunks/{chunk-B4HECUJI.js.map → chunk-RUEKYUNR.js.map} +0 -0
  176. /package/dist/chunks/{chunk-EBWMC3OO.js.map → chunk-RZHXYLOY.js.map} +0 -0
  177. /package/dist/chunks/{chunk-OUAC6O5C.js.map → chunk-WK25T5ST.js.map} +0 -0
  178. /package/dist/chunks/{chunk-G2F2RDZI.js.map → chunk-YAPDV6LO.js.map} +0 -0
  179. /package/dist/chunks/{chunk-Q5BMTL6A.js.map → chunk-YIEK7FH2.js.map} +0 -0
  180. /package/dist/chunks/{chunk-KS44WKJJ.js.map → chunk-Z45SUO4B.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/ui/fabric-model-selector.ts"],
4
- "sourcesContent": ["import type { Theme } from \"@earendil-works/pi-coding-agent\";\nimport {\n Container,\n type Focusable,\n fuzzyFilter,\n getKeybindings,\n Input,\n Spacer,\n Text,\n} from \"@earendil-works/pi-tui\";\nimport { INHERIT_VALUE, modelKey, sortByLastUsed, type ModelLike, type ModelSource } from \"./model-picker.js\";\n\n/** A single pickable row in the Fabric model selector. */\ninterface ModelEntry {\n /** Value persisted to fabric.json: \"Inherit\" or `provider/id`. */\n value: string;\n /** Main text shown for the row (the model id, or \"Inherit\"). */\n id: string;\n /** Provider badge shown after the id; empty for the Inherit row. */\n provider: string;\n /** Human-readable name shown in the footer line. */\n name: string;\n /** Whether this is a real model (vs. the Inherit sentinel). */\n isModel: boolean;\n}\n\nexport interface FabricModelSelectorChoice {\n value: string;\n label: string;\n description: string;\n current: boolean;\n}\n\nexport interface FabricModelSelectorOptions {\n theme: Theme;\n source: ModelSource;\n /** The currently configured canonical model key or \"Inherit\". */\n currentValue: string;\n onSelect: (value: string) => void;\n onCancel: () => void;\n /** Header line above the search input. Defaults to the global-default wording. */\n headerText?: string;\n /** Label shown for the unset/default row. Defaults to Inherit. */\n inheritLabel?: string;\n /** Description shown for the unset/default row's footer name. */\n inheritName?: string;\n}\n\n/**\n * A /model-style searchable model picker adapted for Fabric: same look\n * (search input, list with `[provider]` badges and a \u2713 on\n * the current row, scroll indicator, and a \"Model Name:\" footer) but it writes\n * the Fabric default-model setting instead of the host's default model, and\n * pins an unset/default row on top. Order respects pi-model-sort (most recently\n * used first); search filters by fuzzy match and re-sorts by recency, matching\n * pi-model-sort's patched /model behavior.\n */\nexport class FabricModelSelector extends Container implements Focusable {\n private readonly theme: Theme;\n private readonly allEntries: ModelEntry[];\n private filteredEntries: ModelEntry[];\n private readonly lastUsed: Record<string, number>;\n private readonly currentKey: string | null;\n private readonly currentValue: string;\n private selectedIndex = 0;\n private readonly searchInput: Input;\n private readonly listContainer = new Container();\n private readonly onSelectCallback: (value: string) => void;\n private readonly onCancelCallback: () => void;\n private readonly headerText: string;\n private readonly inheritLabel: string;\n private readonly inheritName: string;\n private _focused = false;\n\n constructor(options: FabricModelSelectorOptions) {\n super();\n this.theme = options.theme;\n this.lastUsed = options.source.lastUsed;\n this.currentValue = options.currentValue;\n this.currentKey = options.currentValue === INHERIT_VALUE ? null : options.currentValue;\n this.onSelectCallback = options.onSelect;\n this.onCancelCallback = options.onCancel;\n this.headerText =\n options.headerText ??\n \"Default model for Fabric agents and actors. Pick Inherit to use the host session's model.\";\n this.inheritLabel = options.inheritLabel ?? INHERIT_VALUE;\n this.inheritName = options.inheritName ?? \"Use the host session's default model\";\n\n this.allEntries = this.buildEntries(options.source.models);\n this.filteredEntries = this.allEntries;\n const current = this.allEntries.findIndex((entry) => entry.value === this.currentValue);\n this.selectedIndex = current >= 0 ? current : 0;\n\n this.addChild(\n new Text(\n this.theme.fg(\"muted\", this.headerText),\n 0,\n 0,\n ),\n );\n this.addChild(new Spacer(1));\n this.searchInput = new Input();\n this.searchInput.focused = true;\n this.searchInput.onSubmit = () => {\n const entry = this.filteredEntries[this.selectedIndex];\n if (entry) this.handleSelect(entry);\n };\n this.addChild(this.searchInput);\n this.addChild(new Spacer(1));\n this.addChild(this.listContainer);\n this.addChild(new Spacer(1));\n this.updateList();\n }\n\n get focused(): boolean {\n return this._focused;\n }\n\n set focused(value: boolean) {\n this._focused = value;\n this.searchInput.focused = value;\n }\n\n handleInput(keyData: string): void {\n const kb = getKeybindings();\n if (kb.matches(keyData, \"tui.select.up\")) {\n if (this.filteredEntries.length === 0) return;\n this.selectedIndex =\n this.selectedIndex === 0 ? this.filteredEntries.length - 1 : this.selectedIndex - 1;\n this.updateList();\n } else if (kb.matches(keyData, \"tui.select.down\")) {\n if (this.filteredEntries.length === 0) return;\n this.selectedIndex =\n this.selectedIndex === this.filteredEntries.length - 1 ? 0 : this.selectedIndex + 1;\n this.updateList();\n } else if (kb.matches(keyData, \"tui.select.confirm\")) {\n const entry = this.filteredEntries[this.selectedIndex];\n if (entry) this.handleSelect(entry);\n } else if (kb.matches(keyData, \"tui.select.cancel\")) {\n this.onCancelCallback();\n } else {\n this.searchInput.handleInput(keyData);\n this.filterModels(this.searchInput.getValue());\n }\n }\n\n rpcChoices(): FabricModelSelectorChoice[] {\n return this.allEntries.map((entry) => ({\n value: entry.value,\n label: entry.id,\n description: entry.isModel ? `${entry.provider} \u00B7 ${entry.name}` : entry.name,\n current: entry.value === this.currentValue,\n }));\n }\n\n selectRpc(value: string): boolean {\n const entry = this.allEntries.find((candidate) => candidate.value === value);\n if (!entry) return false;\n this.handleSelect(entry);\n return true;\n }\n\n private handleSelect(entry: ModelEntry): void {\n this.onSelectCallback(entry.value);\n }\n\n private buildEntries(models: ModelLike[]): ModelEntry[] {\n const sorted = sortByLastUsed(models, this.lastUsed, this.currentKey);\n const inherit: ModelEntry = {\n value: INHERIT_VALUE,\n id: this.inheritLabel,\n provider: \"\",\n name: this.inheritName,\n isModel: false,\n };\n const modelEntries: ModelEntry[] = sorted.map((model) => ({\n value: modelKey(model.provider, model.id),\n id: model.id,\n provider: model.provider,\n name: model.name ?? model.id,\n isModel: true,\n }));\n return [inherit, ...modelEntries];\n }\n\n /** Filter by fuzzy match, then re-sort by recency (mirrors pi-model-sort). */\n private sortEntries(entries: ModelEntry[]): ModelEntry[] {\n const inherit = entries.find((entry) => !entry.isModel);\n const models = entries.filter((entry) => entry.isModel);\n const sorted = sortByLastUsed(\n models.map((entry) => ({ provider: entry.provider, id: entry.id, entry })),\n this.lastUsed,\n this.currentKey,\n ).map((item) => item.entry);\n return inherit ? [inherit, ...sorted] : sorted;\n }\n\n private filterModels(query: string): void {\n const matches = query.trim()\n ? fuzzyFilter(this.allEntries, query, (entry) => this.searchText(entry))\n : this.allEntries;\n this.filteredEntries = this.sortEntries(matches);\n const current = this.filteredEntries.findIndex((entry) => entry.value === this.currentValue);\n this.selectedIndex =\n current >= 0\n ? current\n : Math.min(this.selectedIndex, Math.max(0, this.filteredEntries.length - 1));\n this.updateList();\n }\n\n /** Mirrors getModelSelectorSearchText from pi's /model selector. */\n private searchText(entry: ModelEntry): string {\n if (!entry.isModel) return `${entry.id} ${entry.name}`;\n return `${entry.provider} ${entry.provider}/${entry.id} ${entry.provider} ${entry.id} ${entry.name}`;\n }\n\n private updateList(): void {\n this.listContainer.clear();\n const maxVisible = 10;\n const total = this.filteredEntries.length;\n const startIndex = Math.max(\n 0,\n Math.min(this.selectedIndex - Math.floor(maxVisible / 2), total - maxVisible),\n );\n const endIndex = Math.min(startIndex + maxVisible, total);\n for (let i = startIndex; i < endIndex; i++) {\n const entry = this.filteredEntries[i];\n if (!entry) continue;\n const isSelected = i === this.selectedIndex;\n const isCurrent = entry.value === this.currentValue;\n const badge = entry.provider ? ` ${this.theme.fg(\"muted\", `[${entry.provider}]`)}` : \"\";\n const check = isCurrent ? this.theme.fg(\"success\", \" \u2713\") : \"\";\n const line = isSelected\n ? `${this.theme.fg(\"accent\", \"\\u2192 \")}${this.theme.fg(\"accent\", entry.id)}${badge}${check}`\n : ` ${entry.id}${badge}${check}`;\n this.listContainer.addChild(new Text(line, 0, 0));\n }\n if (startIndex > 0 || endIndex < total) {\n this.listContainer.addChild(\n new Text(this.theme.fg(\"muted\", ` (${this.selectedIndex + 1}/${total})`), 0, 0),\n );\n }\n if (total === 0) {\n this.listContainer.addChild(new Text(this.theme.fg(\"muted\", \" No matching models\"), 0, 0));\n } else {\n const selected = this.filteredEntries[this.selectedIndex];\n this.listContainer.addChild(new Spacer(1));\n this.listContainer.addChild(\n new Text(\n this.theme.fg(\"muted\", ` Model Name: ${selected ? selected.name : \"\"}`),\n 0,\n 0,\n ),\n );\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }