open-multi-agent-kit 0.80.6 → 0.80.7

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 (981) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +22 -14
  3. package/dist/cli/config-selector.d.ts +1 -1
  4. package/dist/cli/config-selector.d.ts.map +1 -1
  5. package/dist/cli/config-selector.js +1 -1
  6. package/dist/cli/config-selector.js.map +1 -1
  7. package/dist/config.d.ts +1 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +9 -8
  10. package/dist/config.js.map +1 -1
  11. package/dist/core/agent-session.d.ts +45 -6
  12. package/dist/core/agent-session.d.ts.map +1 -1
  13. package/dist/core/agent-session.js +197 -13
  14. package/dist/core/agent-session.js.map +1 -1
  15. package/dist/core/auth-storage.d.ts +4 -1
  16. package/dist/core/auth-storage.d.ts.map +1 -1
  17. package/dist/core/auth-storage.js +5 -5
  18. package/dist/core/auth-storage.js.map +1 -1
  19. package/dist/core/bash-executor.d.ts.map +1 -1
  20. package/dist/core/bash-executor.js +1 -1
  21. package/dist/core/bash-executor.js.map +1 -1
  22. package/dist/core/command-safety.d.ts +11 -0
  23. package/dist/core/command-safety.d.ts.map +1 -0
  24. package/dist/core/command-safety.js +528 -0
  25. package/dist/core/command-safety.js.map +1 -0
  26. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  27. package/dist/core/compaction/branch-summarization.js +14 -4
  28. package/dist/core/compaction/branch-summarization.js.map +1 -1
  29. package/dist/core/compaction/compaction.d.ts +18 -1
  30. package/dist/core/compaction/compaction.d.ts.map +1 -1
  31. package/dist/core/compaction/compaction.js +80 -42
  32. package/dist/core/compaction/compaction.js.map +1 -1
  33. package/dist/core/compaction/pruner-policy.d.ts +84 -0
  34. package/dist/core/compaction/pruner-policy.d.ts.map +1 -0
  35. package/dist/core/compaction/pruner-policy.js +273 -0
  36. package/dist/core/compaction/pruner-policy.js.map +1 -0
  37. package/dist/core/context-graph-identity-resolution.d.ts +114 -0
  38. package/dist/core/context-graph-identity-resolution.d.ts.map +1 -0
  39. package/dist/core/context-graph-identity-resolution.js +127 -0
  40. package/dist/core/context-graph-identity-resolution.js.map +1 -0
  41. package/dist/core/context-graph-memory-store.d.ts +153 -0
  42. package/dist/core/context-graph-memory-store.d.ts.map +1 -0
  43. package/dist/core/context-graph-memory-store.js +377 -0
  44. package/dist/core/context-graph-memory-store.js.map +1 -0
  45. package/dist/core/context-graph-ontology-generation.d.ts +104 -0
  46. package/dist/core/context-graph-ontology-generation.d.ts.map +1 -0
  47. package/dist/core/context-graph-ontology-generation.js +135 -0
  48. package/dist/core/context-graph-ontology-generation.js.map +1 -0
  49. package/dist/core/context-graph-ontology-registry.d.ts +766 -0
  50. package/dist/core/context-graph-ontology-registry.d.ts.map +1 -0
  51. package/dist/core/context-graph-ontology-registry.js +1133 -0
  52. package/dist/core/context-graph-ontology-registry.js.map +1 -0
  53. package/dist/core/context-graph-policy.d.ts +68 -0
  54. package/dist/core/context-graph-policy.d.ts.map +1 -0
  55. package/dist/core/context-graph-policy.js +221 -0
  56. package/dist/core/context-graph-policy.js.map +1 -0
  57. package/dist/core/context-graph-reasoning.d.ts +130 -0
  58. package/dist/core/context-graph-reasoning.d.ts.map +1 -0
  59. package/dist/core/context-graph-reasoning.js +442 -0
  60. package/dist/core/context-graph-reasoning.js.map +1 -0
  61. package/dist/core/context-graph-retrieval.d.ts +120 -0
  62. package/dist/core/context-graph-retrieval.d.ts.map +1 -0
  63. package/dist/core/context-graph-retrieval.js +288 -0
  64. package/dist/core/context-graph-retrieval.js.map +1 -0
  65. package/dist/core/contract-verification.d.ts +78 -0
  66. package/dist/core/contract-verification.d.ts.map +1 -0
  67. package/dist/core/contract-verification.js +110 -0
  68. package/dist/core/contract-verification.js.map +1 -0
  69. package/dist/core/exact-cache-policy.d.ts +100 -0
  70. package/dist/core/exact-cache-policy.d.ts.map +1 -0
  71. package/dist/core/exact-cache-policy.js +175 -0
  72. package/dist/core/exact-cache-policy.js.map +1 -0
  73. package/dist/core/exec.d.ts +2 -0
  74. package/dist/core/exec.d.ts.map +1 -1
  75. package/dist/core/exec.js +1 -0
  76. package/dist/core/exec.js.map +1 -1
  77. package/dist/core/export-html/template.js +2 -2
  78. package/dist/core/extensions/builtin/command-safety-gate.d.ts +77 -0
  79. package/dist/core/extensions/builtin/command-safety-gate.d.ts.map +1 -0
  80. package/dist/core/extensions/builtin/command-safety-gate.js +147 -0
  81. package/dist/core/extensions/builtin/command-safety-gate.js.map +1 -0
  82. package/dist/core/extensions/loader.d.ts +4 -4
  83. package/dist/core/extensions/loader.d.ts.map +1 -1
  84. package/dist/core/extensions/loader.js +94 -56
  85. package/dist/core/extensions/loader.js.map +1 -1
  86. package/dist/core/extensions/runner.d.ts.map +1 -1
  87. package/dist/core/extensions/runner.js +1 -1
  88. package/dist/core/extensions/runner.js.map +1 -1
  89. package/dist/core/extensions/types.d.ts +38 -10
  90. package/dist/core/extensions/types.d.ts.map +1 -1
  91. package/dist/core/extensions/types.js.map +1 -1
  92. package/dist/core/freedom/banner.d.ts +14 -0
  93. package/dist/core/freedom/banner.d.ts.map +1 -0
  94. package/dist/core/freedom/banner.js +22 -0
  95. package/dist/core/freedom/banner.js.map +1 -0
  96. package/dist/core/freedom/config.d.ts +27 -0
  97. package/dist/core/freedom/config.d.ts.map +1 -0
  98. package/dist/core/freedom/config.js +216 -0
  99. package/dist/core/freedom/config.js.map +1 -0
  100. package/dist/core/freedom/index.d.ts +23 -0
  101. package/dist/core/freedom/index.d.ts.map +1 -0
  102. package/dist/core/freedom/index.js +19 -0
  103. package/dist/core/freedom/index.js.map +1 -0
  104. package/dist/core/freedom/policy.d.ts +42 -0
  105. package/dist/core/freedom/policy.d.ts.map +1 -0
  106. package/dist/core/freedom/policy.js +47 -0
  107. package/dist/core/freedom/policy.js.map +1 -0
  108. package/dist/core/freedom/safety-floor.d.ts +73 -0
  109. package/dist/core/freedom/safety-floor.d.ts.map +1 -0
  110. package/dist/core/freedom/safety-floor.js +275 -0
  111. package/dist/core/freedom/safety-floor.js.map +1 -0
  112. package/dist/core/harness-control-events.d.ts +13 -1
  113. package/dist/core/harness-control-events.d.ts.map +1 -1
  114. package/dist/core/harness-control-events.js +216 -41
  115. package/dist/core/harness-control-events.js.map +1 -1
  116. package/dist/core/harness-control-replay.d.ts +7 -2
  117. package/dist/core/harness-control-replay.d.ts.map +1 -1
  118. package/dist/core/harness-control-replay.js +36 -4
  119. package/dist/core/harness-control-replay.js.map +1 -1
  120. package/dist/core/headroom-middleware.d.ts +35 -0
  121. package/dist/core/headroom-middleware.d.ts.map +1 -0
  122. package/dist/core/headroom-middleware.js +166 -0
  123. package/dist/core/headroom-middleware.js.map +1 -0
  124. package/dist/core/hook-inventory.d.ts +23 -0
  125. package/dist/core/hook-inventory.d.ts.map +1 -0
  126. package/dist/core/hook-inventory.js +50 -0
  127. package/dist/core/hook-inventory.js.map +1 -0
  128. package/dist/core/lean-context-middleware.d.ts +12 -0
  129. package/dist/core/lean-context-middleware.d.ts.map +1 -0
  130. package/dist/core/lean-context-middleware.js +87 -0
  131. package/dist/core/lean-context-middleware.js.map +1 -0
  132. package/dist/core/lean-context-policy.d.ts +45 -0
  133. package/dist/core/lean-context-policy.d.ts.map +1 -0
  134. package/dist/core/lean-context-policy.js +108 -0
  135. package/dist/core/lean-context-policy.js.map +1 -0
  136. package/dist/core/loadout-access-policy.d.ts +41 -0
  137. package/dist/core/loadout-access-policy.d.ts.map +1 -0
  138. package/dist/core/loadout-access-policy.js +182 -0
  139. package/dist/core/loadout-access-policy.js.map +1 -0
  140. package/dist/core/loadout-runtime.d.ts +84 -0
  141. package/dist/core/loadout-runtime.d.ts.map +1 -0
  142. package/dist/core/loadout-runtime.js +157 -0
  143. package/dist/core/loadout-runtime.js.map +1 -0
  144. package/dist/core/loadouts.d.ts +147 -0
  145. package/dist/core/loadouts.d.ts.map +1 -0
  146. package/dist/core/loadouts.js +442 -0
  147. package/dist/core/loadouts.js.map +1 -0
  148. package/dist/core/mcp-inventory.d.ts +34 -0
  149. package/dist/core/mcp-inventory.d.ts.map +1 -1
  150. package/dist/core/mcp-inventory.js +53 -1
  151. package/dist/core/mcp-inventory.js.map +1 -1
  152. package/dist/core/mcp-presets.d.ts +57 -0
  153. package/dist/core/mcp-presets.d.ts.map +1 -0
  154. package/dist/core/mcp-presets.js +81 -0
  155. package/dist/core/mcp-presets.js.map +1 -0
  156. package/dist/core/model-registry.d.ts +1 -0
  157. package/dist/core/model-registry.d.ts.map +1 -1
  158. package/dist/core/model-registry.js +40 -17
  159. package/dist/core/model-registry.js.map +1 -1
  160. package/dist/core/model-resolver.d.ts.map +1 -1
  161. package/dist/core/model-resolver.js +1 -0
  162. package/dist/core/model-resolver.js.map +1 -1
  163. package/dist/core/native-adoption-benchmark.d.ts +166 -0
  164. package/dist/core/native-adoption-benchmark.d.ts.map +1 -0
  165. package/dist/core/native-adoption-benchmark.js +624 -0
  166. package/dist/core/native-adoption-benchmark.js.map +1 -0
  167. package/dist/core/observability-trace.d.ts +80 -0
  168. package/dist/core/observability-trace.d.ts.map +1 -0
  169. package/dist/core/observability-trace.js +140 -0
  170. package/dist/core/observability-trace.js.map +1 -0
  171. package/dist/core/orchestration/checkpoint.d.ts +83 -0
  172. package/dist/core/orchestration/checkpoint.d.ts.map +1 -0
  173. package/dist/core/orchestration/checkpoint.js +152 -0
  174. package/dist/core/orchestration/checkpoint.js.map +1 -0
  175. package/dist/core/orchestration/errors.d.ts +74 -0
  176. package/dist/core/orchestration/errors.d.ts.map +1 -0
  177. package/dist/core/orchestration/errors.js +52 -0
  178. package/dist/core/orchestration/errors.js.map +1 -0
  179. package/dist/core/orchestration/merge-queue.d.ts +121 -0
  180. package/dist/core/orchestration/merge-queue.d.ts.map +1 -0
  181. package/dist/core/orchestration/merge-queue.js +149 -0
  182. package/dist/core/orchestration/merge-queue.js.map +1 -0
  183. package/dist/core/orchestration/recovery.d.ts +106 -0
  184. package/dist/core/orchestration/recovery.d.ts.map +1 -0
  185. package/dist/core/orchestration/recovery.js +110 -0
  186. package/dist/core/orchestration/recovery.js.map +1 -0
  187. package/dist/core/orchestration/replay-ledger.d.ts +76 -0
  188. package/dist/core/orchestration/replay-ledger.d.ts.map +1 -0
  189. package/dist/core/orchestration/replay-ledger.js +395 -0
  190. package/dist/core/orchestration/replay-ledger.js.map +1 -0
  191. package/dist/core/orchestration/scheduler-state.d.ts +78 -0
  192. package/dist/core/orchestration/scheduler-state.d.ts.map +1 -0
  193. package/dist/core/orchestration/scheduler-state.js +185 -0
  194. package/dist/core/orchestration/scheduler-state.js.map +1 -0
  195. package/dist/core/orchestration/scheduler-store.d.ts +309 -0
  196. package/dist/core/orchestration/scheduler-store.d.ts.map +1 -0
  197. package/dist/core/orchestration/scheduler-store.js +368 -0
  198. package/dist/core/orchestration/scheduler-store.js.map +1 -0
  199. package/dist/core/orchestration/sqlite-scheduler-store.d.ts +57 -0
  200. package/dist/core/orchestration/sqlite-scheduler-store.d.ts.map +1 -0
  201. package/dist/core/orchestration/sqlite-scheduler-store.js +528 -0
  202. package/dist/core/orchestration/sqlite-scheduler-store.js.map +1 -0
  203. package/dist/core/orchestration/transaction-coordinator.d.ts +217 -0
  204. package/dist/core/orchestration/transaction-coordinator.d.ts.map +1 -0
  205. package/dist/core/orchestration/transaction-coordinator.js +281 -0
  206. package/dist/core/orchestration/transaction-coordinator.js.map +1 -0
  207. package/dist/core/orchestration/verification-contract.d.ts +197 -0
  208. package/dist/core/orchestration/verification-contract.d.ts.map +1 -0
  209. package/dist/core/orchestration/verification-contract.js +145 -0
  210. package/dist/core/orchestration/verification-contract.js.map +1 -0
  211. package/dist/core/package-composition.d.ts +68 -0
  212. package/dist/core/package-composition.d.ts.map +1 -0
  213. package/dist/core/package-composition.js +304 -0
  214. package/dist/core/package-composition.js.map +1 -0
  215. package/dist/core/package-gallery.d.ts +124 -0
  216. package/dist/core/package-gallery.d.ts.map +1 -0
  217. package/dist/core/package-gallery.js +392 -0
  218. package/dist/core/package-gallery.js.map +1 -0
  219. package/dist/core/package-manager.d.ts +69 -0
  220. package/dist/core/package-manager.d.ts.map +1 -1
  221. package/dist/core/package-manager.js +367 -69
  222. package/dist/core/package-manager.js.map +1 -1
  223. package/dist/core/package-procurement.d.ts +268 -0
  224. package/dist/core/package-procurement.d.ts.map +1 -0
  225. package/dist/core/package-procurement.js +697 -0
  226. package/dist/core/package-procurement.js.map +1 -0
  227. package/dist/core/package-trial-runtime.d.ts +75 -0
  228. package/dist/core/package-trial-runtime.d.ts.map +1 -0
  229. package/dist/core/package-trial-runtime.js +73 -0
  230. package/dist/core/package-trial-runtime.js.map +1 -0
  231. package/dist/core/package-trial-sandbox.d.ts +27 -0
  232. package/dist/core/package-trial-sandbox.d.ts.map +1 -0
  233. package/dist/core/package-trial-sandbox.js +102 -0
  234. package/dist/core/package-trial-sandbox.js.map +1 -0
  235. package/dist/core/policy-overlays-runtime.d.ts +141 -0
  236. package/dist/core/policy-overlays-runtime.d.ts.map +1 -0
  237. package/dist/core/policy-overlays-runtime.js +720 -0
  238. package/dist/core/policy-overlays-runtime.js.map +1 -0
  239. package/dist/core/read-anchor-registry.d.ts +27 -0
  240. package/dist/core/read-anchor-registry.d.ts.map +1 -0
  241. package/dist/core/read-anchor-registry.js +103 -0
  242. package/dist/core/read-anchor-registry.js.map +1 -0
  243. package/dist/core/read-anchors.d.ts +110 -0
  244. package/dist/core/read-anchors.d.ts.map +1 -0
  245. package/dist/core/read-anchors.js +193 -0
  246. package/dist/core/read-anchors.js.map +1 -0
  247. package/dist/core/read-content-cache.d.ts +22 -0
  248. package/dist/core/read-content-cache.d.ts.map +1 -0
  249. package/dist/core/read-content-cache.js +79 -0
  250. package/dist/core/read-content-cache.js.map +1 -0
  251. package/dist/core/recovery-checkpoint.d.ts +196 -0
  252. package/dist/core/recovery-checkpoint.d.ts.map +1 -0
  253. package/dist/core/recovery-checkpoint.js +382 -0
  254. package/dist/core/recovery-checkpoint.js.map +1 -0
  255. package/dist/core/resolve-config-value.d.ts +1 -1
  256. package/dist/core/resolve-config-value.d.ts.map +1 -1
  257. package/dist/core/resolve-config-value.js +30 -2
  258. package/dist/core/resolve-config-value.js.map +1 -1
  259. package/dist/core/resource-loader.d.ts +23 -21
  260. package/dist/core/resource-loader.d.ts.map +1 -1
  261. package/dist/core/resource-loader.js +93 -15
  262. package/dist/core/resource-loader.js.map +1 -1
  263. package/dist/core/sandbox/backend.d.ts +25 -0
  264. package/dist/core/sandbox/backend.d.ts.map +1 -0
  265. package/dist/core/sandbox/backend.js +150 -0
  266. package/dist/core/sandbox/backend.js.map +1 -0
  267. package/dist/core/sandbox/env.d.ts +6 -0
  268. package/dist/core/sandbox/env.d.ts.map +1 -0
  269. package/dist/core/sandbox/env.js +46 -0
  270. package/dist/core/sandbox/env.js.map +1 -0
  271. package/dist/core/sandbox/path-resolver.d.ts +4 -0
  272. package/dist/core/sandbox/path-resolver.d.ts.map +1 -0
  273. package/dist/core/sandbox/path-resolver.js +44 -0
  274. package/dist/core/sandbox/path-resolver.js.map +1 -0
  275. package/dist/core/sandbox/policy.d.ts +87 -0
  276. package/dist/core/sandbox/policy.d.ts.map +1 -0
  277. package/dist/core/sandbox/policy.js +280 -0
  278. package/dist/core/sandbox/policy.js.map +1 -0
  279. package/dist/core/sandbox/spawn.d.ts +20 -0
  280. package/dist/core/sandbox/spawn.d.ts.map +1 -0
  281. package/dist/core/sandbox/spawn.js +80 -0
  282. package/dist/core/sandbox/spawn.js.map +1 -0
  283. package/dist/core/sdk.d.ts +83 -4
  284. package/dist/core/sdk.d.ts.map +1 -1
  285. package/dist/core/sdk.js +143 -55
  286. package/dist/core/sdk.js.map +1 -1
  287. package/dist/core/semantic-cache-policy.d.ts +45 -0
  288. package/dist/core/semantic-cache-policy.d.ts.map +1 -0
  289. package/dist/core/semantic-cache-policy.js +220 -0
  290. package/dist/core/semantic-cache-policy.js.map +1 -0
  291. package/dist/core/session-digest.d.ts +57 -0
  292. package/dist/core/session-digest.d.ts.map +1 -0
  293. package/dist/core/session-digest.js +193 -0
  294. package/dist/core/session-digest.js.map +1 -0
  295. package/dist/core/session-manager.d.ts +2 -2
  296. package/dist/core/session-manager.d.ts.map +1 -1
  297. package/dist/core/session-manager.js +5 -4
  298. package/dist/core/session-manager.js.map +1 -1
  299. package/dist/core/settings-manager.d.ts +14 -0
  300. package/dist/core/settings-manager.d.ts.map +1 -1
  301. package/dist/core/settings-manager.js +43 -2
  302. package/dist/core/settings-manager.js.map +1 -1
  303. package/dist/core/system-prompt.d.ts.map +1 -1
  304. package/dist/core/system-prompt.js +25 -7
  305. package/dist/core/system-prompt.js.map +1 -1
  306. package/dist/core/telemetry.d.ts.map +1 -1
  307. package/dist/core/telemetry.js +1 -1
  308. package/dist/core/telemetry.js.map +1 -1
  309. package/dist/core/timings.d.ts +1 -1
  310. package/dist/core/timings.d.ts.map +1 -1
  311. package/dist/core/timings.js +2 -2
  312. package/dist/core/timings.js.map +1 -1
  313. package/dist/core/tools/bash.d.ts +28 -3
  314. package/dist/core/tools/bash.d.ts.map +1 -1
  315. package/dist/core/tools/bash.js +53 -10
  316. package/dist/core/tools/bash.js.map +1 -1
  317. package/dist/core/tools/edit.d.ts +12 -0
  318. package/dist/core/tools/edit.d.ts.map +1 -1
  319. package/dist/core/tools/edit.js +24 -0
  320. package/dist/core/tools/edit.js.map +1 -1
  321. package/dist/core/tools/find.d.ts +3 -0
  322. package/dist/core/tools/find.d.ts.map +1 -1
  323. package/dist/core/tools/find.js +3 -0
  324. package/dist/core/tools/find.js.map +1 -1
  325. package/dist/core/tools/grep.d.ts +3 -0
  326. package/dist/core/tools/grep.d.ts.map +1 -1
  327. package/dist/core/tools/grep.js +4 -1
  328. package/dist/core/tools/grep.js.map +1 -1
  329. package/dist/core/tools/index.d.ts +1 -1
  330. package/dist/core/tools/index.d.ts.map +1 -1
  331. package/dist/core/tools/index.js.map +1 -1
  332. package/dist/core/tools/ls.d.ts +3 -0
  333. package/dist/core/tools/ls.d.ts.map +1 -1
  334. package/dist/core/tools/ls.js +3 -0
  335. package/dist/core/tools/ls.js.map +1 -1
  336. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  337. package/dist/core/tools/output-accumulator.js +1 -1
  338. package/dist/core/tools/output-accumulator.js.map +1 -1
  339. package/dist/core/tools/read.d.ts +13 -0
  340. package/dist/core/tools/read.d.ts.map +1 -1
  341. package/dist/core/tools/read.js +29 -2
  342. package/dist/core/tools/read.js.map +1 -1
  343. package/dist/core/tools/write.d.ts +3 -0
  344. package/dist/core/tools/write.d.ts.map +1 -1
  345. package/dist/core/tools/write.js +3 -0
  346. package/dist/core/tools/write.js.map +1 -1
  347. package/dist/index.d.ts +19 -4
  348. package/dist/index.d.ts.map +1 -1
  349. package/dist/index.js +17 -2
  350. package/dist/index.js.map +1 -1
  351. package/dist/main.d.ts.map +1 -1
  352. package/dist/main.js +4 -6
  353. package/dist/main.js.map +1 -1
  354. package/dist/migrations.d.ts.map +1 -1
  355. package/dist/migrations.js +1 -1
  356. package/dist/migrations.js.map +1 -1
  357. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts +28 -0
  358. package/dist/modes/interactive/components/control-panel-gradient-motion.d.ts.map +1 -0
  359. package/dist/modes/interactive/components/control-panel-gradient-motion.js +146 -0
  360. package/dist/modes/interactive/components/control-panel-gradient-motion.js.map +1 -0
  361. package/dist/modes/interactive/components/control-panel-gradient.d.ts +27 -0
  362. package/dist/modes/interactive/components/control-panel-gradient.d.ts.map +1 -0
  363. package/dist/modes/interactive/components/control-panel-gradient.js +127 -0
  364. package/dist/modes/interactive/components/control-panel-gradient.js.map +1 -0
  365. package/dist/modes/interactive/components/control-panel.d.ts +28 -1
  366. package/dist/modes/interactive/components/control-panel.d.ts.map +1 -1
  367. package/dist/modes/interactive/components/control-panel.js +153 -3
  368. package/dist/modes/interactive/components/control-panel.js.map +1 -1
  369. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  370. package/dist/modes/interactive/components/earendil-announcement.js +1 -1
  371. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  372. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  373. package/dist/modes/interactive/components/extension-editor.js +1 -1
  374. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  375. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  376. package/dist/modes/interactive/components/footer.js +8 -0
  377. package/dist/modes/interactive/components/footer.js.map +1 -1
  378. package/dist/modes/interactive/components/mcp-selector.d.ts +2 -0
  379. package/dist/modes/interactive/components/mcp-selector.d.ts.map +1 -1
  380. package/dist/modes/interactive/components/mcp-selector.js +18 -1
  381. package/dist/modes/interactive/components/mcp-selector.js.map +1 -1
  382. package/dist/modes/interactive/components/model-selector-state.d.ts +101 -0
  383. package/dist/modes/interactive/components/model-selector-state.d.ts.map +1 -0
  384. package/dist/modes/interactive/components/model-selector-state.js +261 -0
  385. package/dist/modes/interactive/components/model-selector-state.js.map +1 -0
  386. package/dist/modes/interactive/components/model-selector.d.ts +44 -10
  387. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  388. package/dist/modes/interactive/components/model-selector.js +163 -110
  389. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  390. package/dist/modes/interactive/components/theme-selector.d.ts +1 -0
  391. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  392. package/dist/modes/interactive/components/theme-selector.js +10 -1
  393. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  394. package/dist/modes/interactive/interactive-mode.d.ts +4 -2
  395. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  396. package/dist/modes/interactive/interactive-mode.js +61 -13
  397. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  398. package/dist/modes/interactive/theme/omk-blackboard.json +91 -0
  399. package/dist/modes/interactive/theme/omk-freedom-grid.json +91 -0
  400. package/dist/modes/interactive/theme/omk-neon-ops.json +90 -0
  401. package/dist/modes/interactive/theme/omk-slate-light.json +91 -0
  402. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  403. package/dist/modes/interactive/theme/theme.js +14 -0
  404. package/dist/modes/interactive/theme/theme.js.map +1 -1
  405. package/dist/modes/print-mode.d.ts +2 -2
  406. package/dist/modes/print-mode.d.ts.map +1 -1
  407. package/dist/modes/print-mode.js +2 -2
  408. package/dist/modes/print-mode.js.map +1 -1
  409. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  410. package/dist/modes/rpc/rpc-mode.js +4 -0
  411. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  412. package/dist/package-manager-cli.d.ts.map +1 -1
  413. package/dist/package-manager-cli.js +114 -49
  414. package/dist/package-manager-cli.js.map +1 -1
  415. package/dist/utils/clipboard-image.d.ts.map +1 -1
  416. package/dist/utils/clipboard-image.js +1 -1
  417. package/dist/utils/clipboard-image.js.map +1 -1
  418. package/dist/utils/omk-user-agent.d.ts +2 -0
  419. package/dist/utils/omk-user-agent.d.ts.map +1 -0
  420. package/dist/utils/{pi-user-agent.js → omk-user-agent.js} +2 -2
  421. package/dist/utils/omk-user-agent.js.map +1 -0
  422. package/dist/utils/tools-manager.d.ts.map +1 -1
  423. package/dist/utils/tools-manager.js +1 -1
  424. package/dist/utils/tools-manager.js.map +1 -1
  425. package/dist/utils/version-check.d.ts +5 -5
  426. package/dist/utils/version-check.d.ts.map +1 -1
  427. package/dist/utils/version-check.js +8 -11
  428. package/dist/utils/version-check.js.map +1 -1
  429. package/dist/utils/windows-self-update.d.ts.map +1 -1
  430. package/dist/utils/windows-self-update.js +1 -1
  431. package/dist/utils/windows-self-update.js.map +1 -1
  432. package/docs/packages.md +47 -6
  433. package/docs/prompt-templates.md +2 -0
  434. package/docs/usage.md +16 -6
  435. package/examples/README.md +1 -1
  436. package/examples/extensions/README.md +11 -11
  437. package/examples/extensions/auto-commit-on-exit.ts +6 -6
  438. package/examples/extensions/bash-spawn-hook.ts +4 -4
  439. package/examples/extensions/bookmark.ts +5 -5
  440. package/examples/extensions/border-status-editor.ts +7 -7
  441. package/examples/extensions/built-in-tool-renderer.ts +6 -6
  442. package/examples/extensions/claude-rules.ts +4 -4
  443. package/examples/extensions/commands.ts +5 -5
  444. package/examples/extensions/confirm-destructive.ts +3 -3
  445. package/examples/extensions/custom-compaction.ts +3 -3
  446. package/examples/extensions/custom-footer.ts +2 -2
  447. package/examples/extensions/custom-header.ts +5 -5
  448. package/examples/extensions/custom-provider-anthropic/index.ts +4 -4
  449. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  450. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  451. package/examples/extensions/custom-provider-gitlab-duo/index.ts +3 -3
  452. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  453. package/examples/extensions/dirty-repo-guard.ts +7 -7
  454. package/examples/extensions/doom-overlay/README.md +3 -3
  455. package/examples/extensions/doom-overlay/doom/build.sh +2 -2
  456. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +1 -1
  457. package/examples/extensions/doom-overlay/index.ts +3 -3
  458. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  459. package/examples/extensions/dynamic-resources/index.ts +2 -2
  460. package/examples/extensions/dynamic-tools.ts +4 -4
  461. package/examples/extensions/event-bus.ts +8 -8
  462. package/examples/extensions/file-trigger.ts +3 -3
  463. package/examples/extensions/git-checkpoint.ts +7 -7
  464. package/examples/extensions/git-merge-and-resolve.ts +14 -14
  465. package/examples/extensions/github-issue-autocomplete.ts +6 -6
  466. package/examples/extensions/gondolin/index.ts +16 -16
  467. package/examples/extensions/gondolin/package-lock.json +2 -2
  468. package/examples/extensions/gondolin/package.json +1 -1
  469. package/examples/extensions/handoff.ts +2 -2
  470. package/examples/extensions/hello.ts +2 -2
  471. package/examples/extensions/hidden-thinking-label.ts +4 -4
  472. package/examples/extensions/inline-bash.ts +5 -5
  473. package/examples/extensions/input-transform-streaming.ts +5 -5
  474. package/examples/extensions/input-transform.ts +5 -5
  475. package/examples/extensions/interactive-shell.ts +3 -3
  476. package/examples/extensions/mac-system-theme.ts +5 -5
  477. package/examples/extensions/message-renderer.ts +4 -4
  478. package/examples/extensions/minimal-mode.ts +9 -9
  479. package/examples/extensions/modal-editor.ts +3 -3
  480. package/examples/extensions/model-status.ts +3 -3
  481. package/examples/extensions/notify.ts +5 -5
  482. package/examples/extensions/overlay-qa-tests.ts +20 -20
  483. package/examples/extensions/overlay-test.ts +3 -3
  484. package/examples/extensions/permission-gate.ts +2 -2
  485. package/examples/extensions/pirate.ts +4 -4
  486. package/examples/extensions/plan-mode/index.ts +22 -22
  487. package/examples/extensions/preset.ts +30 -30
  488. package/examples/extensions/prompt-customizer.ts +3 -3
  489. package/examples/extensions/protected-paths.ts +2 -2
  490. package/examples/extensions/provider-payload.ts +5 -5
  491. package/examples/extensions/qna.ts +2 -2
  492. package/examples/extensions/question.ts +2 -2
  493. package/examples/extensions/questionnaire.ts +2 -2
  494. package/examples/extensions/rainbow-editor.ts +3 -3
  495. package/examples/extensions/reload-runtime.ts +4 -4
  496. package/examples/extensions/rpc-demo.ts +10 -10
  497. package/examples/extensions/sandbox/index.ts +17 -17
  498. package/examples/extensions/sandbox/package-lock.json +2 -2
  499. package/examples/extensions/sandbox/package.json +1 -1
  500. package/examples/extensions/send-user-message.ts +13 -13
  501. package/examples/extensions/session-name.ts +4 -4
  502. package/examples/extensions/shutdown-command.ts +10 -10
  503. package/examples/extensions/snake.ts +3 -3
  504. package/examples/extensions/space-invaders.ts +3 -3
  505. package/examples/extensions/ssh.ts +12 -12
  506. package/examples/extensions/status-line.ts +4 -4
  507. package/examples/extensions/structured-output.ts +2 -2
  508. package/examples/extensions/subagent/README.md +13 -13
  509. package/examples/extensions/subagent/agents.ts +2 -2
  510. package/examples/extensions/subagent/index.ts +53 -21
  511. package/examples/extensions/summarize.ts +2 -2
  512. package/examples/extensions/system-prompt-header.ts +3 -3
  513. package/examples/extensions/tic-tac-toe.ts +15 -15
  514. package/examples/extensions/timed-confirm.ts +4 -4
  515. package/examples/extensions/titlebar-spinner.ts +9 -9
  516. package/examples/extensions/todo.ts +5 -5
  517. package/examples/extensions/tool-override.ts +5 -5
  518. package/examples/extensions/tools.ts +10 -10
  519. package/examples/extensions/trigger-compact.ts +3 -3
  520. package/examples/extensions/truncated-tool.ts +3 -3
  521. package/examples/extensions/widget-placement.ts +2 -2
  522. package/examples/extensions/with-deps/index.ts +2 -2
  523. package/examples/extensions/with-deps/package-lock.json +2 -2
  524. package/examples/extensions/with-deps/package.json +1 -1
  525. package/examples/extensions/working-indicator.ts +7 -7
  526. package/examples/extensions/working-message-test.ts +3 -3
  527. package/examples/sdk/01-minimal.ts +1 -1
  528. package/examples/sdk/03-custom-prompt.ts +1 -1
  529. package/examples/sdk/04-skills.ts +1 -1
  530. package/examples/sdk/05-tools.ts +1 -1
  531. package/examples/sdk/06-extensions.ts +11 -11
  532. package/examples/sdk/07-context-files.ts +2 -0
  533. package/examples/sdk/08-prompt-templates.ts +1 -1
  534. package/examples/sdk/09-api-keys-and-oauth.ts +2 -2
  535. package/examples/sdk/README.md +2 -2
  536. package/node_modules/@earendil-works/omk-agent-core/README.md +488 -0
  537. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts +24 -0
  538. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.d.ts.map +1 -0
  539. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js +553 -0
  540. package/node_modules/@earendil-works/omk-agent-core/dist/agent-loop.js.map +1 -0
  541. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts +118 -0
  542. package/node_modules/@earendil-works/omk-agent-core/dist/agent.d.ts.map +1 -0
  543. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js +402 -0
  544. package/node_modules/@earendil-works/omk-agent-core/dist/agent.js.map +1 -0
  545. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts +95 -0
  546. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.d.ts.map +1 -0
  547. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js +996 -0
  548. package/node_modules/@earendil-works/omk-agent-core/dist/harness/agent-harness.js.map +1 -0
  549. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts +53 -0
  550. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
  551. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js +175 -0
  552. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -0
  553. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts +117 -0
  554. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -0
  555. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js +568 -0
  556. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/compaction.js.map +1 -0
  557. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts +25 -0
  558. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.d.ts.map +1 -0
  559. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js +131 -0
  560. package/node_modules/@earendil-works/omk-agent-core/dist/harness/compaction/utils.js.map +1 -0
  561. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts +51 -0
  562. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.d.ts.map +1 -0
  563. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js +510 -0
  564. package/node_modules/@earendil-works/omk-agent-core/dist/harness/env/nodejs.js.map +1 -0
  565. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts +51 -0
  566. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.d.ts.map +1 -0
  567. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js +102 -0
  568. package/node_modules/@earendil-works/omk-agent-core/dist/harness/messages.js.map +1 -0
  569. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts +48 -0
  570. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.d.ts.map +1 -0
  571. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js +230 -0
  572. package/node_modules/@earendil-works/omk-agent-core/dist/harness/prompt-templates.js.map +1 -0
  573. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts +26 -0
  574. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -0
  575. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js +101 -0
  576. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-repo.js.map +1 -0
  577. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts +36 -0
  578. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -0
  579. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js +273 -0
  580. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/jsonl-storage.js.map +1 -0
  581. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts +18 -0
  582. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -0
  583. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js +42 -0
  584. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-repo.js.map +1 -0
  585. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts +25 -0
  586. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -0
  587. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js +114 -0
  588. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/memory-storage.js.map +1 -0
  589. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts +11 -0
  590. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -0
  591. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js +39 -0
  592. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/repo-utils.js.map +1 -0
  593. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts +33 -0
  594. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.d.ts.map +1 -0
  595. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js +210 -0
  596. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/session.js.map +1 -0
  597. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts +2 -0
  598. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.d.ts.map +1 -0
  599. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js +50 -0
  600. package/node_modules/@earendil-works/omk-agent-core/dist/harness/session/uuid.js.map +1 -0
  601. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts +44 -0
  602. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.d.ts.map +1 -0
  603. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js +311 -0
  604. package/node_modules/@earendil-works/omk-agent-core/dist/harness/skills.js.map +1 -0
  605. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts +3 -0
  606. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.d.ts.map +1 -0
  607. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js +30 -0
  608. package/node_modules/@earendil-works/omk-agent-core/dist/harness/system-prompt.js.map +1 -0
  609. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts +616 -0
  610. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.d.ts.map +1 -0
  611. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js +94 -0
  612. package/node_modules/@earendil-works/omk-agent-core/dist/harness/types.js.map +1 -0
  613. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts +14 -0
  614. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -0
  615. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js +126 -0
  616. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/shell-output.js.map +1 -0
  617. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts +70 -0
  618. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.d.ts.map +1 -0
  619. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js +297 -0
  620. package/node_modules/@earendil-works/omk-agent-core/dist/harness/utils/truncate.js.map +1 -0
  621. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts +20 -0
  622. package/node_modules/@earendil-works/omk-agent-core/dist/index.d.ts.map +1 -0
  623. package/node_modules/@earendil-works/omk-agent-core/dist/index.js +25 -0
  624. package/node_modules/@earendil-works/omk-agent-core/dist/index.js.map +1 -0
  625. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts +3 -0
  626. package/node_modules/@earendil-works/omk-agent-core/dist/node.d.ts.map +1 -0
  627. package/node_modules/@earendil-works/omk-agent-core/dist/node.js +3 -0
  628. package/node_modules/@earendil-works/omk-agent-core/dist/node.js.map +1 -0
  629. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts +69 -0
  630. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.d.ts.map +1 -0
  631. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js +278 -0
  632. package/node_modules/@earendil-works/omk-agent-core/dist/proxy.js.map +1 -0
  633. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts +393 -0
  634. package/node_modules/@earendil-works/omk-agent-core/dist/types.d.ts.map +1 -0
  635. package/node_modules/@earendil-works/omk-agent-core/dist/types.js +2 -0
  636. package/node_modules/@earendil-works/omk-agent-core/dist/types.js.map +1 -0
  637. package/node_modules/@earendil-works/omk-agent-core/package.json +60 -0
  638. package/node_modules/@earendil-works/omk-ai/README.md +1389 -0
  639. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts +20 -0
  640. package/node_modules/@earendil-works/omk-ai/dist/api-registry.d.ts.map +1 -0
  641. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js +44 -0
  642. package/node_modules/@earendil-works/omk-ai/dist/api-registry.js.map +1 -0
  643. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts +5 -0
  644. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.d.ts.map +1 -0
  645. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js +6 -0
  646. package/node_modules/@earendil-works/omk-ai/dist/bedrock-provider.js.map +1 -0
  647. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts +3 -0
  648. package/node_modules/@earendil-works/omk-ai/dist/cli.d.ts.map +1 -0
  649. package/node_modules/@earendil-works/omk-ai/dist/cli.js +130 -0
  650. package/node_modules/@earendil-works/omk-ai/dist/cli.js.map +1 -0
  651. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts +20 -0
  652. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.d.ts.map +1 -0
  653. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js +199 -0
  654. package/node_modules/@earendil-works/omk-ai/dist/env-api-keys.js.map +1 -0
  655. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts +10 -0
  656. package/node_modules/@earendil-works/omk-ai/dist/image-models.d.ts.map +1 -0
  657. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts +515 -0
  658. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.d.ts.map +1 -0
  659. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js +517 -0
  660. package/node_modules/@earendil-works/omk-ai/dist/image-models.generated.js.map +1 -0
  661. package/node_modules/@earendil-works/omk-ai/dist/image-models.js +23 -0
  662. package/node_modules/@earendil-works/omk-ai/dist/image-models.js.map +1 -0
  663. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts +14 -0
  664. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.d.ts.map +1 -0
  665. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js +22 -0
  666. package/node_modules/@earendil-works/omk-ai/dist/images-api-registry.js.map +1 -0
  667. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts +4 -0
  668. package/node_modules/@earendil-works/omk-ai/dist/images.d.ts.map +1 -0
  669. package/node_modules/@earendil-works/omk-ai/dist/images.js +16 -0
  670. package/node_modules/@earendil-works/omk-ai/dist/images.js.map +1 -0
  671. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts +33 -0
  672. package/node_modules/@earendil-works/omk-ai/dist/index.d.ts.map +1 -0
  673. package/node_modules/@earendil-works/omk-ai/dist/index.js +21 -0
  674. package/node_modules/@earendil-works/omk-ai/dist/index.js.map +1 -0
  675. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts +18 -0
  676. package/node_modules/@earendil-works/omk-ai/dist/models.d.ts.map +1 -0
  677. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts +18762 -0
  678. package/node_modules/@earendil-works/omk-ai/dist/models.generated.d.ts.map +1 -0
  679. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js +17197 -0
  680. package/node_modules/@earendil-works/omk-ai/dist/models.generated.js.map +1 -0
  681. package/node_modules/@earendil-works/omk-ai/dist/models.js +78 -0
  682. package/node_modules/@earendil-works/omk-ai/dist/models.js.map +1 -0
  683. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts +2 -0
  684. package/node_modules/@earendil-works/omk-ai/dist/oauth.d.ts.map +1 -0
  685. package/node_modules/@earendil-works/omk-ai/dist/oauth.js +2 -0
  686. package/node_modules/@earendil-works/omk-ai/dist/oauth.js.map +1 -0
  687. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts +39 -0
  688. package/node_modules/@earendil-works/omk-ai/dist/provider-network.d.ts.map +1 -0
  689. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js +170 -0
  690. package/node_modules/@earendil-works/omk-ai/dist/provider-network.js.map +1 -0
  691. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts +38 -0
  692. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.d.ts.map +1 -0
  693. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js +826 -0
  694. package/node_modules/@earendil-works/omk-ai/dist/providers/amazon-bedrock.js.map +1 -0
  695. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts +77 -0
  696. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.d.ts.map +1 -0
  697. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js +1123 -0
  698. package/node_modules/@earendil-works/omk-ai/dist/providers/anthropic.js.map +1 -0
  699. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts +15 -0
  700. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.d.ts.map +1 -0
  701. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js +221 -0
  702. package/node_modules/@earendil-works/omk-ai/dist/providers/azure-openai-responses.js.map +1 -0
  703. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts +13 -0
  704. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.d.ts.map +1 -0
  705. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js +26 -0
  706. package/node_modules/@earendil-works/omk-ai/dist/providers/cloudflare.js.map +1 -0
  707. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts +56 -0
  708. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.d.ts.map +1 -0
  709. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js +368 -0
  710. package/node_modules/@earendil-works/omk-ai/dist/providers/faux.js.map +1 -0
  711. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts +8 -0
  712. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.d.ts.map +1 -0
  713. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js +29 -0
  714. package/node_modules/@earendil-works/omk-ai/dist/providers/github-copilot-headers.js.map +1 -0
  715. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts +70 -0
  716. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.d.ts.map +1 -0
  717. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js +331 -0
  718. package/node_modules/@earendil-works/omk-ai/dist/providers/google-shared.js.map +1 -0
  719. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts +15 -0
  720. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.d.ts.map +1 -0
  721. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js +442 -0
  722. package/node_modules/@earendil-works/omk-ai/dist/providers/google-vertex.js.map +1 -0
  723. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts +13 -0
  724. package/node_modules/@earendil-works/omk-ai/dist/providers/google.d.ts.map +1 -0
  725. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js +402 -0
  726. package/node_modules/@earendil-works/omk-ai/dist/providers/google.js.map +1 -0
  727. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts +3 -0
  728. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.d.ts.map +1 -0
  729. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js +128 -0
  730. package/node_modules/@earendil-works/omk-ai/dist/providers/images/openrouter.js.map +1 -0
  731. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts +4 -0
  732. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
  733. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js +34 -0
  734. package/node_modules/@earendil-works/omk-ai/dist/providers/images/register-builtins.js.map +1 -0
  735. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts +25 -0
  736. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.d.ts.map +1 -0
  737. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js +534 -0
  738. package/node_modules/@earendil-works/omk-ai/dist/providers/mistral.js.map +1 -0
  739. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts +30 -0
  740. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.d.ts.map +1 -0
  741. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js +1171 -0
  742. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-codex-responses.js.map +1 -0
  743. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts +19 -0
  744. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.d.ts.map +1 -0
  745. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js +977 -0
  746. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-completions.js.map +1 -0
  747. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts +11 -0
  748. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
  749. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js +22 -0
  750. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-prompt-cache.js.map +1 -0
  751. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts +18 -0
  752. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.d.ts.map +1 -0
  753. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js +496 -0
  754. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses-shared.js.map +1 -0
  755. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts +13 -0
  756. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.d.ts.map +1 -0
  757. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js +233 -0
  758. package/node_modules/@earendil-works/omk-ai/dist/providers/openai-responses.js.map +1 -0
  759. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts +35 -0
  760. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.d.ts.map +1 -0
  761. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js +254 -0
  762. package/node_modules/@earendil-works/omk-ai/dist/providers/register-builtins.js.map +1 -0
  763. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts +8 -0
  764. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.d.ts.map +1 -0
  765. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js +42 -0
  766. package/node_modules/@earendil-works/omk-ai/dist/providers/simple-options.js.map +1 -0
  767. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts +13 -0
  768. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.d.ts.map +1 -0
  769. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js +82 -0
  770. package/node_modules/@earendil-works/omk-ai/dist/providers/tool-schema.js.map +1 -0
  771. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts +8 -0
  772. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.d.ts.map +1 -0
  773. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js +184 -0
  774. package/node_modules/@earendil-works/omk-ai/dist/providers/transform-messages.js.map +1 -0
  775. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts +4 -0
  776. package/node_modules/@earendil-works/omk-ai/dist/session-resources.d.ts.map +1 -0
  777. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js +22 -0
  778. package/node_modules/@earendil-works/omk-ai/dist/session-resources.js.map +1 -0
  779. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts +8 -0
  780. package/node_modules/@earendil-works/omk-ai/dist/stream.d.ts.map +1 -0
  781. package/node_modules/@earendil-works/omk-ai/dist/stream.js +77 -0
  782. package/node_modules/@earendil-works/omk-ai/dist/stream.js.map +1 -0
  783. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts +570 -0
  784. package/node_modules/@earendil-works/omk-ai/dist/types.d.ts.map +1 -0
  785. package/node_modules/@earendil-works/omk-ai/dist/types.js +2 -0
  786. package/node_modules/@earendil-works/omk-ai/dist/types.js.map +1 -0
  787. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts +6 -0
  788. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.d.ts.map +1 -0
  789. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js +34 -0
  790. package/node_modules/@earendil-works/omk-ai/dist/utils/abort-signals.js.map +1 -0
  791. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts +19 -0
  792. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.d.ts.map +1 -0
  793. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js +25 -0
  794. package/node_modules/@earendil-works/omk-ai/dist/utils/diagnostics.js.map +1 -0
  795. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts +21 -0
  796. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.d.ts.map +1 -0
  797. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js +81 -0
  798. package/node_modules/@earendil-works/omk-ai/dist/utils/event-stream.js.map +1 -0
  799. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts +3 -0
  800. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.d.ts.map +1 -0
  801. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js +14 -0
  802. package/node_modules/@earendil-works/omk-ai/dist/utils/hash.js.map +1 -0
  803. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts +2 -0
  804. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.d.ts.map +1 -0
  805. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js +8 -0
  806. package/node_modules/@earendil-works/omk-ai/dist/utils/headers.js.map +1 -0
  807. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts +16 -0
  808. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.d.ts.map +1 -0
  809. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js +113 -0
  810. package/node_modules/@earendil-works/omk-ai/dist/utils/json-parse.js.map +1 -0
  811. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts +10 -0
  812. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.d.ts.map +1 -0
  813. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js +97 -0
  814. package/node_modules/@earendil-works/omk-ai/dist/utils/node-http-proxy.js.map +1 -0
  815. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts +25 -0
  816. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.d.ts.map +1 -0
  817. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js +335 -0
  818. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/anthropic.js.map +1 -0
  819. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts +21 -0
  820. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
  821. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js +56 -0
  822. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/device-code.js.map +1 -0
  823. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts +30 -0
  824. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -0
  825. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js +280 -0
  826. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/github-copilot.js.map +1 -0
  827. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts +58 -0
  828. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.d.ts.map +1 -0
  829. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js +122 -0
  830. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/index.js.map +1 -0
  831. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts +3 -0
  832. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.d.ts.map +1 -0
  833. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js +105 -0
  834. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/oauth-page.js.map +1 -0
  835. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts +43 -0
  836. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -0
  837. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js +487 -0
  838. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/openai-codex.js.map +1 -0
  839. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts +13 -0
  840. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.d.ts.map +1 -0
  841. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js +31 -0
  842. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/pkce.js.map +1 -0
  843. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts +64 -0
  844. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.d.ts.map +1 -0
  845. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js +2 -0
  846. package/node_modules/@earendil-works/omk-ai/dist/utils/oauth/types.js.map +1 -0
  847. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts +57 -0
  848. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.d.ts.map +1 -0
  849. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js +154 -0
  850. package/node_modules/@earendil-works/omk-ai/dist/utils/overflow.js.map +1 -0
  851. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts +22 -0
  852. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.d.ts.map +1 -0
  853. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js +26 -0
  854. package/node_modules/@earendil-works/omk-ai/dist/utils/sanitize-unicode.js.map +1 -0
  855. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts +17 -0
  856. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.d.ts.map +1 -0
  857. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js +21 -0
  858. package/node_modules/@earendil-works/omk-ai/dist/utils/typebox-helpers.js.map +1 -0
  859. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts +18 -0
  860. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.d.ts.map +1 -0
  861. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js +281 -0
  862. package/node_modules/@earendil-works/omk-ai/dist/utils/validation.js.map +1 -0
  863. package/node_modules/@earendil-works/omk-ai/package.json +106 -0
  864. package/node_modules/@earendil-works/omk-tui/README.md +791 -0
  865. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts +54 -0
  866. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.d.ts.map +1 -0
  867. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js +632 -0
  868. package/node_modules/@earendil-works/omk-tui/dist/autocomplete.js.map +1 -0
  869. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts +22 -0
  870. package/node_modules/@earendil-works/omk-tui/dist/components/box.d.ts.map +1 -0
  871. package/node_modules/@earendil-works/omk-tui/dist/components/box.js +104 -0
  872. package/node_modules/@earendil-works/omk-tui/dist/components/box.js.map +1 -0
  873. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts +22 -0
  874. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.d.ts.map +1 -0
  875. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js +35 -0
  876. package/node_modules/@earendil-works/omk-tui/dist/components/cancellable-loader.js.map +1 -0
  877. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts +249 -0
  878. package/node_modules/@earendil-works/omk-tui/dist/components/editor.d.ts.map +1 -0
  879. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js +1857 -0
  880. package/node_modules/@earendil-works/omk-tui/dist/components/editor.js.map +1 -0
  881. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts +28 -0
  882. package/node_modules/@earendil-works/omk-tui/dist/components/image.d.ts.map +1 -0
  883. package/node_modules/@earendil-works/omk-tui/dist/components/image.js +89 -0
  884. package/node_modules/@earendil-works/omk-tui/dist/components/image.js.map +1 -0
  885. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts +37 -0
  886. package/node_modules/@earendil-works/omk-tui/dist/components/input.d.ts.map +1 -0
  887. package/node_modules/@earendil-works/omk-tui/dist/components/input.js +378 -0
  888. package/node_modules/@earendil-works/omk-tui/dist/components/input.js.map +1 -0
  889. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts +31 -0
  890. package/node_modules/@earendil-works/omk-tui/dist/components/loader.d.ts.map +1 -0
  891. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js +69 -0
  892. package/node_modules/@earendil-works/omk-tui/dist/components/loader.js.map +1 -0
  893. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts +96 -0
  894. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.d.ts.map +1 -0
  895. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js +644 -0
  896. package/node_modules/@earendil-works/omk-tui/dist/components/markdown.js.map +1 -0
  897. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts +50 -0
  898. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.d.ts.map +1 -0
  899. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js +159 -0
  900. package/node_modules/@earendil-works/omk-tui/dist/components/select-list.js.map +1 -0
  901. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts +50 -0
  902. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.d.ts.map +1 -0
  903. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js +185 -0
  904. package/node_modules/@earendil-works/omk-tui/dist/components/settings-list.js.map +1 -0
  905. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts +12 -0
  906. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.d.ts.map +1 -0
  907. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js +23 -0
  908. package/node_modules/@earendil-works/omk-tui/dist/components/spacer.js.map +1 -0
  909. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts +19 -0
  910. package/node_modules/@earendil-works/omk-tui/dist/components/text.d.ts.map +1 -0
  911. package/node_modules/@earendil-works/omk-tui/dist/components/text.js +89 -0
  912. package/node_modules/@earendil-works/omk-tui/dist/components/text.js.map +1 -0
  913. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts +13 -0
  914. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.d.ts.map +1 -0
  915. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js +51 -0
  916. package/node_modules/@earendil-works/omk-tui/dist/components/truncated-text.js.map +1 -0
  917. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts +39 -0
  918. package/node_modules/@earendil-works/omk-tui/dist/editor-component.d.ts.map +1 -0
  919. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js +2 -0
  920. package/node_modules/@earendil-works/omk-tui/dist/editor-component.js.map +1 -0
  921. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts +16 -0
  922. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.d.ts.map +1 -0
  923. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js +110 -0
  924. package/node_modules/@earendil-works/omk-tui/dist/fuzzy.js.map +1 -0
  925. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts +23 -0
  926. package/node_modules/@earendil-works/omk-tui/dist/index.d.ts.map +1 -0
  927. package/node_modules/@earendil-works/omk-tui/dist/index.js +32 -0
  928. package/node_modules/@earendil-works/omk-tui/dist/index.js.map +1 -0
  929. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts +212 -0
  930. package/node_modules/@earendil-works/omk-tui/dist/keybindings.d.ts.map +1 -0
  931. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js +252 -0
  932. package/node_modules/@earendil-works/omk-tui/dist/keybindings.js.map +1 -0
  933. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts +184 -0
  934. package/node_modules/@earendil-works/omk-tui/dist/keys.d.ts.map +1 -0
  935. package/node_modules/@earendil-works/omk-tui/dist/keys.js +1173 -0
  936. package/node_modules/@earendil-works/omk-tui/dist/keys.js.map +1 -0
  937. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts +28 -0
  938. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.d.ts.map +1 -0
  939. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js +44 -0
  940. package/node_modules/@earendil-works/omk-tui/dist/kill-ring.js.map +1 -0
  941. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts +3 -0
  942. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.d.ts.map +1 -0
  943. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js +53 -0
  944. package/node_modules/@earendil-works/omk-tui/dist/native-modifiers.js.map +1 -0
  945. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts +50 -0
  946. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.d.ts.map +1 -0
  947. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js +361 -0
  948. package/node_modules/@earendil-works/omk-tui/dist/stdin-buffer.js.map +1 -0
  949. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts +90 -0
  950. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.d.ts.map +1 -0
  951. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js +366 -0
  952. package/node_modules/@earendil-works/omk-tui/dist/terminal-image.js.map +1 -0
  953. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts +113 -0
  954. package/node_modules/@earendil-works/omk-tui/dist/terminal.d.ts.map +1 -0
  955. package/node_modules/@earendil-works/omk-tui/dist/terminal.js +472 -0
  956. package/node_modules/@earendil-works/omk-tui/dist/terminal.js.map +1 -0
  957. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts +242 -0
  958. package/node_modules/@earendil-works/omk-tui/dist/tui.d.ts.map +1 -0
  959. package/node_modules/@earendil-works/omk-tui/dist/tui.js +1221 -0
  960. package/node_modules/@earendil-works/omk-tui/dist/tui.js.map +1 -0
  961. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts +17 -0
  962. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.d.ts.map +1 -0
  963. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js +25 -0
  964. package/node_modules/@earendil-works/omk-tui/dist/undo-stack.js.map +1 -0
  965. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts +84 -0
  966. package/node_modules/@earendil-works/omk-tui/dist/utils.d.ts.map +1 -0
  967. package/node_modules/@earendil-works/omk-tui/dist/utils.js +1032 -0
  968. package/node_modules/@earendil-works/omk-tui/dist/utils.js.map +1 -0
  969. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts +25 -0
  970. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.d.ts.map +1 -0
  971. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js +96 -0
  972. package/node_modules/@earendil-works/omk-tui/dist/word-navigation.js.map +1 -0
  973. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  974. package/node_modules/@earendil-works/omk-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  975. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  976. package/node_modules/@earendil-works/omk-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  977. package/node_modules/@earendil-works/omk-tui/package.json +47 -0
  978. package/package.json +22 -6
  979. package/dist/utils/pi-user-agent.d.ts +0 -2
  980. package/dist/utils/pi-user-agent.d.ts.map +0 -1
  981. package/dist/utils/pi-user-agent.js.map +0 -1
@@ -0,0 +1,392 @@
1
+ import { existsSync, realpathSync } from "node:fs";
2
+ import { isAbsolute, relative, resolve, sep } from "node:path";
3
+ import { validateExactNpmVersion, validateGitRef, } from "./package-procurement.js";
4
+ const RESOURCE_ORDER = ["extension", "skill", "prompt", "theme"];
5
+ const CAPABILITY_ORDER = [
6
+ "tools",
7
+ "commands",
8
+ "hooks",
9
+ "provider",
10
+ "ui",
11
+ "compaction",
12
+ ];
13
+ const IMAGE_EXTENSIONS = [".png", ".jpg", ".jpeg", ".gif", ".webp"];
14
+ const FACET_ALIASES = {
15
+ extension: "extension",
16
+ extensions: "extension",
17
+ skill: "skill",
18
+ skills: "skill",
19
+ prompt: "prompt",
20
+ prompts: "prompt",
21
+ theme: "theme",
22
+ themes: "theme",
23
+ };
24
+ function isRecord(value) {
25
+ return typeof value === "object" && value !== null && !Array.isArray(value);
26
+ }
27
+ function toStringArray(value) {
28
+ if (!Array.isArray(value))
29
+ return [];
30
+ return value
31
+ .filter((item) => typeof item === "string")
32
+ .map((item) => item.trim())
33
+ .filter(Boolean);
34
+ }
35
+ function toOptionalString(value) {
36
+ if (typeof value !== "string")
37
+ return undefined;
38
+ const trimmed = value.trim();
39
+ return trimmed.length > 0 ? trimmed : undefined;
40
+ }
41
+ function readManifestRecord(pkgJson) {
42
+ if (!isRecord(pkgJson))
43
+ return null;
44
+ if (isRecord(pkgJson.omk))
45
+ return { key: "omk", manifest: pkgJson.omk };
46
+ if (isRecord(pkgJson.pi))
47
+ return { key: "pi", manifest: pkgJson.pi };
48
+ return null;
49
+ }
50
+ export function normalizeGalleryManifest(pkgJson) {
51
+ const source = readManifestRecord(pkgJson);
52
+ if (!source)
53
+ return null;
54
+ return {
55
+ manifestKey: source.key,
56
+ extensions: toStringArray(source.manifest.extensions),
57
+ skills: toStringArray(source.manifest.skills),
58
+ prompts: toStringArray(source.manifest.prompts),
59
+ themes: toStringArray(source.manifest.themes),
60
+ video: toOptionalString(source.manifest.video),
61
+ image: toOptionalString(source.manifest.image),
62
+ description: toOptionalString(source.manifest.description),
63
+ };
64
+ }
65
+ export function hasGalleryKeyword(pkgJson) {
66
+ if (!isRecord(pkgJson) || !Array.isArray(pkgJson.keywords))
67
+ return false;
68
+ return pkgJson.keywords.some((keyword) => keyword === "omk-package" || keyword === "pi-package");
69
+ }
70
+ function hasManifestResources(manifest, type) {
71
+ if (!manifest)
72
+ return false;
73
+ if (type === "extension")
74
+ return manifest.extensions.length > 0;
75
+ if (type === "skill")
76
+ return manifest.skills.length > 0;
77
+ if (type === "prompt")
78
+ return manifest.prompts.length > 0;
79
+ return manifest.themes.length > 0;
80
+ }
81
+ export function resolveGalleryTypeFacet(facet) {
82
+ if (!facet)
83
+ return undefined;
84
+ return FACET_ALIASES[facet.trim().toLowerCase()];
85
+ }
86
+ export function classifyGalleryResourceTypes(manifest, conventionDirs = []) {
87
+ const types = new Set();
88
+ for (const type of RESOURCE_ORDER) {
89
+ if (hasManifestResources(manifest, type))
90
+ types.add(type);
91
+ }
92
+ for (const dir of conventionDirs) {
93
+ const firstSegment = dir.trim().replace(/\\/g, "/").split("/").filter(Boolean)[0];
94
+ const type = resolveGalleryTypeFacet(firstSegment);
95
+ if (type)
96
+ types.add(type);
97
+ }
98
+ return RESOURCE_ORDER.filter((type) => types.has(type));
99
+ }
100
+ export function filterGalleryEntriesByType(entries, facet) {
101
+ if (facet === undefined)
102
+ return [...entries];
103
+ const type = resolveGalleryTypeFacet(facet);
104
+ if (!type)
105
+ return [];
106
+ return entries.filter((entry) => entry.resourceTypes.includes(type));
107
+ }
108
+ function parseAllowedGalleryUrl(url) {
109
+ if (!url)
110
+ return null;
111
+ if (/[\s\u0000-\u001f\u007f]/.test(url))
112
+ return null;
113
+ try {
114
+ const parsed = new URL(url);
115
+ if (parsed.protocol !== "https:")
116
+ return null;
117
+ if (parsed.username || parsed.password)
118
+ return null;
119
+ if (parsed.port)
120
+ return null;
121
+ return parsed;
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ }
127
+ export function isValidGalleryVideoUrl(url) {
128
+ const parsed = parseAllowedGalleryUrl(url);
129
+ return parsed ? parsed.pathname.toLowerCase().endsWith(".mp4") : false;
130
+ }
131
+ export function isValidGalleryImageUrl(url) {
132
+ const parsed = parseAllowedGalleryUrl(url);
133
+ return parsed ? IMAGE_EXTENSIONS.some((extension) => parsed.pathname.toLowerCase().endsWith(extension)) : false;
134
+ }
135
+ export function selectGalleryPreview(input) {
136
+ if (isValidGalleryVideoUrl(input.video))
137
+ return { kind: "video", url: input.video };
138
+ if (isValidGalleryImageUrl(input.image))
139
+ return { kind: "image", url: input.image };
140
+ if (input.resourceTypes.includes("theme")) {
141
+ const marker = input.themeName?.trim() || "theme";
142
+ return { kind: "generated-theme", marker };
143
+ }
144
+ return null;
145
+ }
146
+ function isPathInsideRoot(root, candidate) {
147
+ const rel = relative(root, candidate);
148
+ return rel === "" || (rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
149
+ }
150
+ function realpathIfPossible(path) {
151
+ try {
152
+ return realpathSync(path);
153
+ }
154
+ catch {
155
+ return resolve(path);
156
+ }
157
+ }
158
+ export function isPathInsideRootByRealpath(packageRoot, candidatePath) {
159
+ const root = resolve(packageRoot);
160
+ const candidate = resolve(candidatePath);
161
+ if (!isPathInsideRoot(root, candidate))
162
+ return false;
163
+ if (!existsSync(candidate))
164
+ return true;
165
+ return isPathInsideRoot(realpathIfPossible(root), realpathIfPossible(candidate));
166
+ }
167
+ export function resolveManifestEntryInsideRoot(packageRoot, entry, baseDir = packageRoot) {
168
+ const trimmed = entry.trim();
169
+ if (!trimmed || isAbsolute(trimmed))
170
+ return undefined;
171
+ const root = resolve(packageRoot);
172
+ const base = resolve(baseDir);
173
+ if (!isPathInsideRootByRealpath(root, base))
174
+ return undefined;
175
+ const candidate = resolve(base, trimmed);
176
+ if (!isPathInsideRootByRealpath(root, candidate))
177
+ return undefined;
178
+ return (relative(root, candidate) || ".").replace(/\\/g, "/");
179
+ }
180
+ export function filterManifestEntriesInsideRoot(packageRoot, entries) {
181
+ const safeEntries = [];
182
+ for (const entry of entries) {
183
+ const safeEntry = resolveManifestEntryInsideRoot(packageRoot, entry);
184
+ if (safeEntry && safeEntry !== ".") {
185
+ safeEntries.push(safeEntry);
186
+ }
187
+ }
188
+ return safeEntries;
189
+ }
190
+ function requireNonEmpty(value, label) {
191
+ const trimmed = value.trim();
192
+ if (!trimmed)
193
+ throw new Error(`${label} must not be empty`);
194
+ return trimmed;
195
+ }
196
+ function buildGallerySource(source) {
197
+ if (source.kind === "npm") {
198
+ const name = requireNonEmpty(source.name, "npm package name");
199
+ const versionVerdict = validateExactNpmVersion(source.version);
200
+ if (!versionVerdict.ok) {
201
+ throw new Error(`Gallery npm installs require an exact pinned version for ${name}. ${versionVerdict.message}.`);
202
+ }
203
+ return { kind: "npm", source: `npm:${name}@${versionVerdict.version}` };
204
+ }
205
+ if (source.kind === "git") {
206
+ const repo = requireNonEmpty(source.repo, "git repository").replace(/^git:/, "");
207
+ const refVerdict = validateGitRef(source.ref);
208
+ if (!refVerdict.ok) {
209
+ throw new Error(`Gallery git installs require a full commit SHA for ${repo}. ${refVerdict.message}.`);
210
+ }
211
+ return { kind: "git", source: `git:${repo}@${refVerdict.commit}` };
212
+ }
213
+ return { kind: "local", source: requireNonEmpty(source.path, "local path") };
214
+ }
215
+ export function buildGalleryInstallSpec(input, hasExtension, options = {}) {
216
+ const source = buildGallerySource(input);
217
+ const localFlag = options.local ? " -l" : "";
218
+ return {
219
+ kind: source.kind,
220
+ source: source.source,
221
+ installCommand: `omk install ${source.source}${localFlag}`,
222
+ tryEphemeralCommand: `omk -e ${source.source}`,
223
+ trust: hasExtension ? "code-execution" : "declarative",
224
+ };
225
+ }
226
+ function stripComments(sourceText, stripStrings) {
227
+ let output = "";
228
+ let index = 0;
229
+ while (index < sourceText.length) {
230
+ const current = sourceText[index];
231
+ const next = sourceText[index + 1];
232
+ if (current === "/" && next === "/") {
233
+ index += 2;
234
+ while (index < sourceText.length && sourceText[index] !== "\n")
235
+ index += 1;
236
+ output += "\n";
237
+ index += 1;
238
+ continue;
239
+ }
240
+ if (current === "/" && next === "*") {
241
+ index += 2;
242
+ while (index < sourceText.length && !(sourceText[index] === "*" && sourceText[index + 1] === "/"))
243
+ index += 1;
244
+ index += 2;
245
+ output += " ";
246
+ continue;
247
+ }
248
+ if (stripStrings && (current === '"' || current === "'" || current === "`")) {
249
+ const quote = current;
250
+ index += 1;
251
+ while (index < sourceText.length) {
252
+ if (sourceText[index] === "\\") {
253
+ index += 2;
254
+ continue;
255
+ }
256
+ if (sourceText[index] === quote) {
257
+ index += 1;
258
+ break;
259
+ }
260
+ index += 1;
261
+ }
262
+ output += " ";
263
+ continue;
264
+ }
265
+ output += current;
266
+ index += 1;
267
+ }
268
+ return output;
269
+ }
270
+ function capabilityOrder(badge) {
271
+ return CAPABILITY_ORDER.indexOf(badge);
272
+ }
273
+ export function inferExtensionCapabilityBadges(sourceText) {
274
+ const withoutComments = stripComments(sourceText, false);
275
+ const code = stripComments(sourceText, true);
276
+ const badges = new Set();
277
+ if (/\bomk\s*\.\s*registerTool\s*\(/.test(code))
278
+ badges.add("tools");
279
+ if (/\bomk\s*\.\s*registerCommand\s*\(/.test(code))
280
+ badges.add("commands");
281
+ if (/\bomk\s*\.\s*on\s*\(/.test(code) || /\bregisterHook\s*\(/.test(code))
282
+ badges.add("hooks");
283
+ if (/\bomk\s*\.\s*registerProvider\s*\(/.test(code))
284
+ badges.add("provider");
285
+ if (/\bomk\s*\.\s*(registerShortcut|registerFlag|registerMessageRenderer|registerComponent|setFooter)\s*\(/.test(code)) {
286
+ badges.add("ui");
287
+ }
288
+ if (/\bomk\s*\.\s*on\s*\(\s*(["'`])(?:session_before_compact|session_compact|context)\1/.test(withoutComments)) {
289
+ badges.add("hooks");
290
+ badges.add("compaction");
291
+ }
292
+ return [...badges].sort((left, right) => capabilityOrder(left) - capabilityOrder(right));
293
+ }
294
+ function identityKey(identity) {
295
+ if (identity.kind === "npm")
296
+ return `npm:${identity.name.trim().toLowerCase()}`;
297
+ if (identity.kind === "git") {
298
+ const repo = identity.repo
299
+ .trim()
300
+ .replace(/^git:/, "")
301
+ .replace(/\.git$/i, "")
302
+ .toLowerCase();
303
+ return `git:${repo}`;
304
+ }
305
+ return `local:${resolve(identity.path)}`;
306
+ }
307
+ export function dedupeGalleryEntries(entries) {
308
+ const seen = new Set();
309
+ const result = [];
310
+ for (const entry of entries) {
311
+ const key = identityKey(entry.identity);
312
+ if (seen.has(key))
313
+ continue;
314
+ seen.add(key);
315
+ result.push(entry);
316
+ }
317
+ return result;
318
+ }
319
+ const TRIAL_HARD_BLOCK_CAPABILITIES = new Set(["credential-read", "host-socket"]);
320
+ const CODE_EXECUTION_RESOURCES = new Set(["extension", "tool"]);
321
+ const CODE_EXECUTION_CAPABILITIES = new Set([
322
+ "browser-control",
323
+ "child-process",
324
+ "credential-read",
325
+ "filesystem-write",
326
+ "host-socket",
327
+ "network",
328
+ ]);
329
+ function pushUniqueReason(reasons, reason) {
330
+ if (!reasons.includes(reason))
331
+ reasons.push(reason);
332
+ }
333
+ /**
334
+ * Classify whether a candidate package may be safely admitted to an unpromoted (ephemeral,
335
+ * sandboxed, `--ignore-scripts`) trial. Pure and deterministic: identical inputs always
336
+ * produce identical output, and no I/O is performed.
337
+ */
338
+ export function assessGalleryTrialGate(identity, review) {
339
+ const hardBlocks = review.capabilities.filter((capability) => TRIAL_HARD_BLOCK_CAPABILITIES.has(capability));
340
+ const reasons = [];
341
+ if (!review.pinned)
342
+ pushUniqueReason(reasons, "exact-pin-required");
343
+ if (hardBlocks.length > 0)
344
+ pushUniqueReason(reasons, `capability-hard-block: ${hardBlocks.join(",")}`);
345
+ if (review.licenseVerdict === "reject")
346
+ pushUniqueReason(reasons, "license-blocked");
347
+ if (review.lifecycleVerdict === "reject")
348
+ pushUniqueReason(reasons, "lifecycle-scripts-blocked");
349
+ if (review.pathCompatibility === "pi-hardcoded")
350
+ pushUniqueReason(reasons, "pi-hardcoded-paths");
351
+ if (review.adoption === "reject") {
352
+ for (const reason of review.rejectedReasons)
353
+ pushUniqueReason(reasons, reason);
354
+ }
355
+ const blocked = !review.pinned ||
356
+ hardBlocks.length > 0 ||
357
+ review.licenseVerdict === "reject" ||
358
+ review.lifecycleVerdict === "reject" ||
359
+ review.pathCompatibility === "pi-hardcoded" ||
360
+ review.adoption === "reject";
361
+ return {
362
+ outcome: blocked ? "blocked" : "admitted",
363
+ identity: identityKey(identity),
364
+ adoption: review.adoption,
365
+ pinned: review.pinned,
366
+ reasons,
367
+ };
368
+ }
369
+ export function deriveGalleryInstallTrustFromReview(review) {
370
+ const expectedResources = review.candidate?.expectedResources ?? [];
371
+ if (expectedResources.some((resource) => CODE_EXECUTION_RESOURCES.has(resource)))
372
+ return "code-execution";
373
+ if (review.capabilities.some((capability) => CODE_EXECUTION_CAPABILITIES.has(capability)))
374
+ return "code-execution";
375
+ return "declarative";
376
+ }
377
+ export function buildGalleryInstallSpecFromReview(input, review, options = {}) {
378
+ const spec = buildGalleryInstallSpec(input, false, options);
379
+ const gate = assessGalleryTrialGate(galleryIdentityFromInstallSource(input), review);
380
+ if (gate.outcome === "blocked") {
381
+ throw new Error(`Gallery trial blocked for ${gate.identity}: ${gate.reasons.join(", ")}`);
382
+ }
383
+ return { ...spec, trust: deriveGalleryInstallTrustFromReview(review) };
384
+ }
385
+ function galleryIdentityFromInstallSource(input) {
386
+ if (input.kind === "npm")
387
+ return { kind: "npm", name: input.name };
388
+ if (input.kind === "git")
389
+ return { kind: "git", repo: input.repo, ref: input.ref };
390
+ return { kind: "local", path: input.path };
391
+ }
392
+ //# sourceMappingURL=package-gallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-gallery.js","sourceRoot":"","sources":["../../src/core/package-gallery.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, realpathSync } from \"node:fs\";\nimport { isAbsolute, relative, resolve, sep } from \"node:path\";\nimport {\n\ttype Adoption,\n\ttype GateVerdict,\n\ttype PathCompatibility,\n\tvalidateExactNpmVersion,\n\tvalidateGitRef,\n} from \"./package-procurement.ts\";\n\nexport type GalleryResourceType = \"extension\" | \"skill\" | \"prompt\" | \"theme\";\nexport type GalleryManifestKey = \"omk\" | \"pi\";\nexport type GalleryInstallSourceKind = \"npm\" | \"git\" | \"local\";\nexport type GalleryInstallTrust = \"code-execution\" | \"declarative\";\nexport type GalleryPreviewKind = \"video\" | \"image\" | \"generated-theme\";\nexport type ExtensionCapabilityBadge = \"tools\" | \"commands\" | \"hooks\" | \"provider\" | \"ui\" | \"compaction\";\n\nexport interface NormalizedGalleryManifest {\n\tmanifestKey: GalleryManifestKey;\n\textensions: string[];\n\tskills: string[];\n\tprompts: string[];\n\tthemes: string[];\n\tvideo: string | undefined;\n\timage: string | undefined;\n\tdescription: string | undefined;\n}\n\nexport interface GalleryTypedEntry {\n\tresourceTypes: readonly GalleryResourceType[];\n}\n\nexport interface GalleryPreviewInput {\n\tvideo?: string;\n\timage?: string;\n\tresourceTypes: readonly GalleryResourceType[];\n\tthemeName?: string;\n}\n\nexport interface GalleryPreviewSelection {\n\tkind: GalleryPreviewKind;\n\turl?: string;\n\tmarker?: string;\n}\n\nexport type GalleryInstallSource =\n\t| { kind: \"npm\"; name: string; version?: string }\n\t| { kind: \"git\"; repo: string; ref?: string }\n\t| { kind: \"local\"; path: string };\n\nexport interface GalleryInstallOptions {\n\tlocal?: boolean;\n}\n\nexport interface GalleryInstallSpec {\n\tkind: GalleryInstallSourceKind;\n\tsource: string;\n\tinstallCommand: string;\n\ttryEphemeralCommand: string;\n\ttrust: GalleryInstallTrust;\n}\n\nexport type GalleryEntryIdentity =\n\t| { kind: \"npm\"; name: string }\n\t| { kind: \"git\"; repo: string; ref?: string }\n\t| { kind: \"local\"; path: string };\n\nexport interface GalleryEntryWithIdentity {\n\tidentity: GalleryEntryIdentity;\n}\n\nconst RESOURCE_ORDER: readonly GalleryResourceType[] = [\"extension\", \"skill\", \"prompt\", \"theme\"];\nconst CAPABILITY_ORDER: readonly ExtensionCapabilityBadge[] = [\n\t\"tools\",\n\t\"commands\",\n\t\"hooks\",\n\t\"provider\",\n\t\"ui\",\n\t\"compaction\",\n];\nconst IMAGE_EXTENSIONS = [\".png\", \".jpg\", \".jpeg\", \".gif\", \".webp\"] as const;\n\nconst FACET_ALIASES: Readonly<Record<string, GalleryResourceType>> = {\n\textension: \"extension\",\n\textensions: \"extension\",\n\tskill: \"skill\",\n\tskills: \"skill\",\n\tprompt: \"prompt\",\n\tprompts: \"prompt\",\n\ttheme: \"theme\",\n\tthemes: \"theme\",\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction toStringArray(value: unknown): string[] {\n\tif (!Array.isArray(value)) return [];\n\treturn value\n\t\t.filter((item): item is string => typeof item === \"string\")\n\t\t.map((item) => item.trim())\n\t\t.filter(Boolean);\n}\n\nfunction toOptionalString(value: unknown): string | undefined {\n\tif (typeof value !== \"string\") return undefined;\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction readManifestRecord(pkgJson: unknown): { key: GalleryManifestKey; manifest: Record<string, unknown> } | null {\n\tif (!isRecord(pkgJson)) return null;\n\tif (isRecord(pkgJson.omk)) return { key: \"omk\", manifest: pkgJson.omk };\n\tif (isRecord(pkgJson.pi)) return { key: \"pi\", manifest: pkgJson.pi };\n\treturn null;\n}\n\nexport function normalizeGalleryManifest(pkgJson: unknown): NormalizedGalleryManifest | null {\n\tconst source = readManifestRecord(pkgJson);\n\tif (!source) return null;\n\n\treturn {\n\t\tmanifestKey: source.key,\n\t\textensions: toStringArray(source.manifest.extensions),\n\t\tskills: toStringArray(source.manifest.skills),\n\t\tprompts: toStringArray(source.manifest.prompts),\n\t\tthemes: toStringArray(source.manifest.themes),\n\t\tvideo: toOptionalString(source.manifest.video),\n\t\timage: toOptionalString(source.manifest.image),\n\t\tdescription: toOptionalString(source.manifest.description),\n\t};\n}\n\nexport function hasGalleryKeyword(pkgJson: unknown): boolean {\n\tif (!isRecord(pkgJson) || !Array.isArray(pkgJson.keywords)) return false;\n\treturn pkgJson.keywords.some((keyword) => keyword === \"omk-package\" || keyword === \"pi-package\");\n}\n\nfunction hasManifestResources(manifest: NormalizedGalleryManifest | null, type: GalleryResourceType): boolean {\n\tif (!manifest) return false;\n\tif (type === \"extension\") return manifest.extensions.length > 0;\n\tif (type === \"skill\") return manifest.skills.length > 0;\n\tif (type === \"prompt\") return manifest.prompts.length > 0;\n\treturn manifest.themes.length > 0;\n}\n\nexport function resolveGalleryTypeFacet(facet: string | undefined): GalleryResourceType | undefined {\n\tif (!facet) return undefined;\n\treturn FACET_ALIASES[facet.trim().toLowerCase()];\n}\n\nexport function classifyGalleryResourceTypes(\n\tmanifest: NormalizedGalleryManifest | null,\n\tconventionDirs: readonly string[] = [],\n): GalleryResourceType[] {\n\tconst types = new Set<GalleryResourceType>();\n\tfor (const type of RESOURCE_ORDER) {\n\t\tif (hasManifestResources(manifest, type)) types.add(type);\n\t}\n\tfor (const dir of conventionDirs) {\n\t\tconst firstSegment = dir.trim().replace(/\\\\/g, \"/\").split(\"/\").filter(Boolean)[0];\n\t\tconst type = resolveGalleryTypeFacet(firstSegment);\n\t\tif (type) types.add(type);\n\t}\n\treturn RESOURCE_ORDER.filter((type) => types.has(type));\n}\n\nexport function filterGalleryEntriesByType<T extends GalleryTypedEntry>(\n\tentries: readonly T[],\n\tfacet: string | undefined,\n): T[] {\n\tif (facet === undefined) return [...entries];\n\tconst type = resolveGalleryTypeFacet(facet);\n\tif (!type) return [];\n\treturn entries.filter((entry) => entry.resourceTypes.includes(type));\n}\n\nfunction parseAllowedGalleryUrl(url: string | undefined): URL | null {\n\tif (!url) return null;\n\tif (/[\\s\\u0000-\\u001f\\u007f]/.test(url)) return null;\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tif (parsed.protocol !== \"https:\") return null;\n\t\tif (parsed.username || parsed.password) return null;\n\t\tif (parsed.port) return null;\n\t\treturn parsed;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nexport function isValidGalleryVideoUrl(url: string | undefined): boolean {\n\tconst parsed = parseAllowedGalleryUrl(url);\n\treturn parsed ? parsed.pathname.toLowerCase().endsWith(\".mp4\") : false;\n}\n\nexport function isValidGalleryImageUrl(url: string | undefined): boolean {\n\tconst parsed = parseAllowedGalleryUrl(url);\n\treturn parsed ? IMAGE_EXTENSIONS.some((extension) => parsed.pathname.toLowerCase().endsWith(extension)) : false;\n}\n\nexport function selectGalleryPreview(input: GalleryPreviewInput): GalleryPreviewSelection | null {\n\tif (isValidGalleryVideoUrl(input.video)) return { kind: \"video\", url: input.video };\n\tif (isValidGalleryImageUrl(input.image)) return { kind: \"image\", url: input.image };\n\tif (input.resourceTypes.includes(\"theme\")) {\n\t\tconst marker = input.themeName?.trim() || \"theme\";\n\t\treturn { kind: \"generated-theme\", marker };\n\t}\n\treturn null;\n}\n\nfunction isPathInsideRoot(root: string, candidate: string): boolean {\n\tconst rel = relative(root, candidate);\n\treturn rel === \"\" || (rel !== \"..\" && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));\n}\n\nfunction realpathIfPossible(path: string): string {\n\ttry {\n\t\treturn realpathSync(path);\n\t} catch {\n\t\treturn resolve(path);\n\t}\n}\n\nexport function isPathInsideRootByRealpath(packageRoot: string, candidatePath: string): boolean {\n\tconst root = resolve(packageRoot);\n\tconst candidate = resolve(candidatePath);\n\tif (!isPathInsideRoot(root, candidate)) return false;\n\tif (!existsSync(candidate)) return true;\n\treturn isPathInsideRoot(realpathIfPossible(root), realpathIfPossible(candidate));\n}\n\nexport function resolveManifestEntryInsideRoot(\n\tpackageRoot: string,\n\tentry: string,\n\tbaseDir = packageRoot,\n): string | undefined {\n\tconst trimmed = entry.trim();\n\tif (!trimmed || isAbsolute(trimmed)) return undefined;\n\tconst root = resolve(packageRoot);\n\tconst base = resolve(baseDir);\n\tif (!isPathInsideRootByRealpath(root, base)) return undefined;\n\tconst candidate = resolve(base, trimmed);\n\tif (!isPathInsideRootByRealpath(root, candidate)) return undefined;\n\treturn (relative(root, candidate) || \".\").replace(/\\\\/g, \"/\");\n}\n\nexport function filterManifestEntriesInsideRoot(packageRoot: string, entries: readonly string[]): string[] {\n\tconst safeEntries: string[] = [];\n\tfor (const entry of entries) {\n\t\tconst safeEntry = resolveManifestEntryInsideRoot(packageRoot, entry);\n\t\tif (safeEntry && safeEntry !== \".\") {\n\t\t\tsafeEntries.push(safeEntry);\n\t\t}\n\t}\n\treturn safeEntries;\n}\n\nfunction requireNonEmpty(value: string, label: string): string {\n\tconst trimmed = value.trim();\n\tif (!trimmed) throw new Error(`${label} must not be empty`);\n\treturn trimmed;\n}\n\nfunction buildGallerySource(source: GalleryInstallSource): { kind: GalleryInstallSourceKind; source: string } {\n\tif (source.kind === \"npm\") {\n\t\tconst name = requireNonEmpty(source.name, \"npm package name\");\n\t\tconst versionVerdict = validateExactNpmVersion(source.version);\n\t\tif (!versionVerdict.ok) {\n\t\t\tthrow new Error(\n\t\t\t\t`Gallery npm installs require an exact pinned version for ${name}. ${versionVerdict.message}.`,\n\t\t\t);\n\t\t}\n\t\treturn { kind: \"npm\", source: `npm:${name}@${versionVerdict.version}` };\n\t}\n\tif (source.kind === \"git\") {\n\t\tconst repo = requireNonEmpty(source.repo, \"git repository\").replace(/^git:/, \"\");\n\t\tconst refVerdict = validateGitRef(source.ref);\n\t\tif (!refVerdict.ok) {\n\t\t\tthrow new Error(`Gallery git installs require a full commit SHA for ${repo}. ${refVerdict.message}.`);\n\t\t}\n\t\treturn { kind: \"git\", source: `git:${repo}@${refVerdict.commit}` };\n\t}\n\treturn { kind: \"local\", source: requireNonEmpty(source.path, \"local path\") };\n}\n\nexport function buildGalleryInstallSpec(\n\tinput: GalleryInstallSource,\n\thasExtension: boolean,\n\toptions: GalleryInstallOptions = {},\n): GalleryInstallSpec {\n\tconst source = buildGallerySource(input);\n\tconst localFlag = options.local ? \" -l\" : \"\";\n\treturn {\n\t\tkind: source.kind,\n\t\tsource: source.source,\n\t\tinstallCommand: `omk install ${source.source}${localFlag}`,\n\t\ttryEphemeralCommand: `omk -e ${source.source}`,\n\t\ttrust: hasExtension ? \"code-execution\" : \"declarative\",\n\t};\n}\n\nfunction stripComments(sourceText: string, stripStrings: boolean): string {\n\tlet output = \"\";\n\tlet index = 0;\n\twhile (index < sourceText.length) {\n\t\tconst current = sourceText[index];\n\t\tconst next = sourceText[index + 1];\n\t\tif (current === \"/\" && next === \"/\") {\n\t\t\tindex += 2;\n\t\t\twhile (index < sourceText.length && sourceText[index] !== \"\\n\") index += 1;\n\t\t\toutput += \"\\n\";\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (current === \"/\" && next === \"*\") {\n\t\t\tindex += 2;\n\t\t\twhile (index < sourceText.length && !(sourceText[index] === \"*\" && sourceText[index + 1] === \"/\")) index += 1;\n\t\t\tindex += 2;\n\t\t\toutput += \" \";\n\t\t\tcontinue;\n\t\t}\n\t\tif (stripStrings && (current === '\"' || current === \"'\" || current === \"`\")) {\n\t\t\tconst quote = current;\n\t\t\tindex += 1;\n\t\t\twhile (index < sourceText.length) {\n\t\t\t\tif (sourceText[index] === \"\\\\\") {\n\t\t\t\t\tindex += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (sourceText[index] === quote) {\n\t\t\t\t\tindex += 1;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t\toutput += \" \";\n\t\t\tcontinue;\n\t\t}\n\t\toutput += current;\n\t\tindex += 1;\n\t}\n\treturn output;\n}\n\nfunction capabilityOrder(badge: ExtensionCapabilityBadge): number {\n\treturn CAPABILITY_ORDER.indexOf(badge);\n}\n\nexport function inferExtensionCapabilityBadges(sourceText: string): ExtensionCapabilityBadge[] {\n\tconst withoutComments = stripComments(sourceText, false);\n\tconst code = stripComments(sourceText, true);\n\tconst badges = new Set<ExtensionCapabilityBadge>();\n\n\tif (/\\bomk\\s*\\.\\s*registerTool\\s*\\(/.test(code)) badges.add(\"tools\");\n\tif (/\\bomk\\s*\\.\\s*registerCommand\\s*\\(/.test(code)) badges.add(\"commands\");\n\tif (/\\bomk\\s*\\.\\s*on\\s*\\(/.test(code) || /\\bregisterHook\\s*\\(/.test(code)) badges.add(\"hooks\");\n\tif (/\\bomk\\s*\\.\\s*registerProvider\\s*\\(/.test(code)) badges.add(\"provider\");\n\tif (\n\t\t/\\bomk\\s*\\.\\s*(registerShortcut|registerFlag|registerMessageRenderer|registerComponent|setFooter)\\s*\\(/.test(code)\n\t) {\n\t\tbadges.add(\"ui\");\n\t}\n\tif (/\\bomk\\s*\\.\\s*on\\s*\\(\\s*([\"'`])(?:session_before_compact|session_compact|context)\\1/.test(withoutComments)) {\n\t\tbadges.add(\"hooks\");\n\t\tbadges.add(\"compaction\");\n\t}\n\n\treturn [...badges].sort((left, right) => capabilityOrder(left) - capabilityOrder(right));\n}\n\nfunction identityKey(identity: GalleryEntryIdentity): string {\n\tif (identity.kind === \"npm\") return `npm:${identity.name.trim().toLowerCase()}`;\n\tif (identity.kind === \"git\") {\n\t\tconst repo = identity.repo\n\t\t\t.trim()\n\t\t\t.replace(/^git:/, \"\")\n\t\t\t.replace(/\\.git$/i, \"\")\n\t\t\t.toLowerCase();\n\t\treturn `git:${repo}`;\n\t}\n\treturn `local:${resolve(identity.path)}`;\n}\n\nexport function dedupeGalleryEntries<T extends GalleryEntryWithIdentity>(entries: readonly T[]): T[] {\n\tconst seen = new Set<string>();\n\tconst result: T[] = [];\n\tfor (const entry of entries) {\n\t\tconst key = identityKey(entry.identity);\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tresult.push(entry);\n\t}\n\treturn result;\n}\n\n/**\n * Procurement-derived safe-gate outcome for an unpromoted (ephemeral trial) gallery install.\n *\n * Closes G9: gallery trust is derived from capability scan and procurement verdicts, not\n * from manifest claims. A trial is \"admitted\" only when the source is exact-pinned, carries\n * no hard-block capability (credential reads, host sockets), and passed explicit license,\n * lifecycle, and path-compatibility gates. Procurement rejection reasons are surfaced\n * verbatim so callers can show why an unpromoted trial would be blocked.\n */\nexport type GalleryTrialGateOutcome = \"admitted\" | \"blocked\";\n\nexport interface GalleryTrialGateStatus {\n\treadonly outcome: GalleryTrialGateOutcome;\n\treadonly identity: string;\n\treadonly adoption: Adoption;\n\treadonly pinned: boolean;\n\treadonly reasons: readonly string[];\n}\n\n/**\n * Structural subset of a procurement review consumed by the trial gate. The full procurement\n * review (`ProcurementReview`) satisfies this shape, so callers may pass `procureCandidate(...)`\n * output directly; tests can construct focused reviews without the full procurement input.\n */\nexport interface GalleryTrialGateReview {\n\treadonly pinned: boolean;\n\treadonly capabilities: readonly string[];\n\treadonly adoption: Adoption;\n\treadonly rejectedReasons: readonly string[];\n\treadonly licenseVerdict?: GateVerdict;\n\treadonly lifecycleVerdict?: GateVerdict;\n\treadonly pathCompatibility?: PathCompatibility;\n\treadonly candidate?: { readonly expectedResources?: readonly string[] };\n}\n\nconst TRIAL_HARD_BLOCK_CAPABILITIES: ReadonlySet<string> = new Set([\"credential-read\", \"host-socket\"]);\nconst CODE_EXECUTION_RESOURCES: ReadonlySet<string> = new Set([\"extension\", \"tool\"]);\nconst CODE_EXECUTION_CAPABILITIES: ReadonlySet<string> = new Set([\n\t\"browser-control\",\n\t\"child-process\",\n\t\"credential-read\",\n\t\"filesystem-write\",\n\t\"host-socket\",\n\t\"network\",\n]);\n\nfunction pushUniqueReason(reasons: string[], reason: string): void {\n\tif (!reasons.includes(reason)) reasons.push(reason);\n}\n\n/**\n * Classify whether a candidate package may be safely admitted to an unpromoted (ephemeral,\n * sandboxed, `--ignore-scripts`) trial. Pure and deterministic: identical inputs always\n * produce identical output, and no I/O is performed.\n */\nexport function assessGalleryTrialGate(\n\tidentity: GalleryEntryIdentity,\n\treview: GalleryTrialGateReview,\n): GalleryTrialGateStatus {\n\tconst hardBlocks = review.capabilities.filter((capability) => TRIAL_HARD_BLOCK_CAPABILITIES.has(capability));\n\tconst reasons: string[] = [];\n\tif (!review.pinned) pushUniqueReason(reasons, \"exact-pin-required\");\n\tif (hardBlocks.length > 0) pushUniqueReason(reasons, `capability-hard-block: ${hardBlocks.join(\",\")}`);\n\tif (review.licenseVerdict === \"reject\") pushUniqueReason(reasons, \"license-blocked\");\n\tif (review.lifecycleVerdict === \"reject\") pushUniqueReason(reasons, \"lifecycle-scripts-blocked\");\n\tif (review.pathCompatibility === \"pi-hardcoded\") pushUniqueReason(reasons, \"pi-hardcoded-paths\");\n\tif (review.adoption === \"reject\") {\n\t\tfor (const reason of review.rejectedReasons) pushUniqueReason(reasons, reason);\n\t}\n\n\tconst blocked =\n\t\t!review.pinned ||\n\t\thardBlocks.length > 0 ||\n\t\treview.licenseVerdict === \"reject\" ||\n\t\treview.lifecycleVerdict === \"reject\" ||\n\t\treview.pathCompatibility === \"pi-hardcoded\" ||\n\t\treview.adoption === \"reject\";\n\n\treturn {\n\t\toutcome: blocked ? \"blocked\" : \"admitted\",\n\t\tidentity: identityKey(identity),\n\t\tadoption: review.adoption,\n\t\tpinned: review.pinned,\n\t\treasons,\n\t};\n}\n\nexport function deriveGalleryInstallTrustFromReview(review: GalleryTrialGateReview): GalleryInstallTrust {\n\tconst expectedResources = review.candidate?.expectedResources ?? [];\n\tif (expectedResources.some((resource) => CODE_EXECUTION_RESOURCES.has(resource))) return \"code-execution\";\n\tif (review.capabilities.some((capability) => CODE_EXECUTION_CAPABILITIES.has(capability))) return \"code-execution\";\n\treturn \"declarative\";\n}\n\nexport function buildGalleryInstallSpecFromReview(\n\tinput: GalleryInstallSource,\n\treview: GalleryTrialGateReview,\n\toptions: GalleryInstallOptions = {},\n): GalleryInstallSpec {\n\tconst spec = buildGalleryInstallSpec(input, false, options);\n\tconst gate = assessGalleryTrialGate(galleryIdentityFromInstallSource(input), review);\n\tif (gate.outcome === \"blocked\") {\n\t\tthrow new Error(`Gallery trial blocked for ${gate.identity}: ${gate.reasons.join(\", \")}`);\n\t}\n\treturn { ...spec, trust: deriveGalleryInstallTrustFromReview(review) };\n}\n\nfunction galleryIdentityFromInstallSource(input: GalleryInstallSource): GalleryEntryIdentity {\n\tif (input.kind === \"npm\") return { kind: \"npm\", name: input.name };\n\tif (input.kind === \"git\") return { kind: \"git\", repo: input.repo, ref: input.ref };\n\treturn { kind: \"local\", path: input.path };\n}\n"]}
@@ -1,4 +1,27 @@
1
+ import { type TrialAuditRecord } from "./package-trial-runtime.ts";
2
+ import type { SandboxBackendStatus, SandboxPathResolver, SandboxPolicy } from "./sandbox/policy.ts";
1
3
  import type { SettingsManager } from "./settings-manager.ts";
4
+ export declare function buildGitDependencyInstallArgs(hasConfiguredNpmCommand: boolean, allowScripts?: boolean): string[];
5
+ export declare function buildNpmInstallArgs(packageManagerName: string, specs: string[], installRoot: string, allowScripts?: boolean): string[];
6
+ /**
7
+ * Exact-match membership for npm install units. Returns true only when the install unit is non-empty and
8
+ * EVERY top-level spec is listed (by `npm:<name>` identity or `npm:<spec>`). Mixed/partial lists stay false
9
+ * so a single unlisted spec keeps the whole install fail-closed under --ignore-scripts.
10
+ */
11
+ export declare function isNpmInstallAllowed(specs: string[], allowList: readonly string[]): boolean;
12
+ /** Exact-match membership for a git install unit by `git:<host>/<path>` identity or `...@<ref>` spec. */
13
+ export declare function isGitInstallAllowed(source: {
14
+ host: string;
15
+ path: string;
16
+ ref?: string;
17
+ }, allowList: readonly string[]): boolean;
18
+ export type InstallAllowScriptResolution = {
19
+ ok: true;
20
+ entry: string;
21
+ } | {
22
+ ok: false;
23
+ expected: string[];
24
+ };
2
25
  export interface PathMetadata {
3
26
  source: string;
4
27
  scope: SourceScope;
@@ -44,9 +67,11 @@ export interface PackageManager {
44
67
  resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;
45
68
  install(source: string, options?: {
46
69
  local?: boolean;
70
+ resolvedCommit?: string;
47
71
  }): Promise<void>;
48
72
  installAndPersist(source: string, options?: {
49
73
  local?: boolean;
74
+ resolvedCommit?: string;
50
75
  }): Promise<void>;
51
76
  remove(source: string, options?: {
52
77
  local?: boolean;
@@ -67,12 +92,22 @@ export interface PackageManager {
67
92
  local?: boolean;
68
93
  }): boolean;
69
94
  setProgressCallback(callback: ProgressCallback | undefined): void;
95
+ cleanupTemporaryTrialInstalls(): void;
70
96
  getInstalledPath(source: string, scope: "user" | "project"): string | undefined;
97
+ resolveInstallAllowScriptEntry(source: string, requested: string): InstallAllowScriptResolution;
98
+ }
99
+ export interface PackageTrialRuntimeOptions {
100
+ readonly policy: SandboxPolicy;
101
+ readonly backend?: SandboxBackendStatus;
102
+ readonly resolver?: SandboxPathResolver;
103
+ readonly env?: () => NodeJS.ProcessEnv;
104
+ readonly onAudit?: (record: TrialAuditRecord) => void;
71
105
  }
72
106
  interface PackageManagerOptions {
73
107
  cwd: string;
74
108
  agentDir: string;
75
109
  settingsManager: SettingsManager;
110
+ trialRuntime?: PackageTrialRuntimeOptions;
76
111
  }
77
112
  type SourceScope = "user" | "project" | "temporary";
78
113
  export declare function getExtensionTempFolder(agentDir: string): string;
@@ -80,11 +115,14 @@ export declare class DefaultPackageManager implements PackageManager {
80
115
  private cwd;
81
116
  private agentDir;
82
117
  private settingsManager;
118
+ private trialRuntime;
119
+ private trialCleanups;
83
120
  private globalNpmRoot;
84
121
  private globalNpmRootCommandKey;
85
122
  private progressCallback;
86
123
  constructor(options: PackageManagerOptions);
87
124
  setProgressCallback(callback: ProgressCallback | undefined): void;
125
+ cleanupTemporaryTrialInstalls(): void;
88
126
  addSourceToSettings(source: string, options?: {
89
127
  local?: boolean;
90
128
  }): boolean;
@@ -94,6 +132,7 @@ export declare class DefaultPackageManager implements PackageManager {
94
132
  getInstalledPath(source: string, scope: "user" | "project"): string | undefined;
95
133
  private emitProgress;
96
134
  private withProgress;
135
+ private cleanupTrialInstall;
97
136
  resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;
98
137
  resolveExtensionSources(sources: string[], options?: {
99
138
  local?: boolean;
@@ -102,10 +141,27 @@ export declare class DefaultPackageManager implements PackageManager {
102
141
  listConfiguredPackages(): ConfiguredPackage[];
103
142
  install(source: string, options?: {
104
143
  local?: boolean;
144
+ resolvedCommit?: string;
105
145
  }): Promise<void>;
106
146
  installAndPersist(source: string, options?: {
107
147
  local?: boolean;
148
+ resolvedCommit?: string;
108
149
  }): Promise<void>;
150
+ /**
151
+ * Procurement admission gate for explicit installs (and installAndPersist via install()).
152
+ *
153
+ * Pure check: no fetch, clone, npm install, or other dependency-install side effect. It reuses the
154
+ * native procurement validators (`validateExactNpmVersion`, `validateGitRef`) so the installer never
155
+ * runs against an unpinned, mutable, or range/dist-tag source. Rules:
156
+ * - non-local npm packages must carry an exact pinned version (no missing/range/wildcard/dist-tag);
157
+ * - git packages must use a full commit SHA, or a tag anchored to a reviewed resolved commit SHA
158
+ * supplied through `options.resolvedCommit`.
159
+ * Local sources are exempt so local development paths keep working unchanged.
160
+ *
161
+ * Only the explicit install/persist entry point is gated. resolve()'s auto-install of
162
+ * already-configured packages is intentionally left unchanged so existing settings keep loading.
163
+ */
164
+ private assertInstallAdmission;
109
165
  remove(source: string, options?: {
110
166
  local?: boolean;
111
167
  }): Promise<void>;
@@ -122,6 +178,7 @@ export declare class DefaultPackageManager implements PackageManager {
122
178
  private warnPackageSourceFailure;
123
179
  private resolveLocalExtensionSource;
124
180
  private installParsedSource;
181
+ private installTemporaryTrialSource;
125
182
  private getPackageSourceString;
126
183
  private getSourceMatchKeyForInput;
127
184
  private getSourceMatchKeyForSettings;
@@ -155,10 +212,21 @@ export declare class DefaultPackageManager implements PackageManager {
155
212
  private parseNpmSpec;
156
213
  private getNpmCommand;
157
214
  private getPackageManagerName;
215
+ private getTrialPackageManagerName;
158
216
  private runNpmCommand;
159
217
  private getGitDependencyInstallArgs;
160
218
  private runNpmCommandSync;
161
219
  private getNpmInstallArgs;
220
+ private shouldAllowNpmInstallScripts;
221
+ private shouldAllowGitInstallScripts;
222
+ private logInstallScriptDecision;
223
+ /**
224
+ * Validate a CLI `--allow-scripts <name>` value against an install source and return the canonical allowlist
225
+ * entry to persist. Exact match only; an unrelated name yields `{ ok: false, expected }` so the CLI can abort
226
+ * and print the manual settings example.
227
+ */
228
+ resolveInstallAllowScriptEntry(source: string, requested: string): InstallAllowScriptResolution;
229
+ private installTemporaryNpmTrial;
162
230
  private installNpm;
163
231
  private uninstallNpm;
164
232
  private installGit;
@@ -172,6 +240,7 @@ export declare class DefaultPackageManager implements PackageManager {
172
240
  private getNpmInstallRoot;
173
241
  private getGlobalNpmRoot;
174
242
  private getPnpmGlobalPackagePath;
243
+ private getTemporaryNpmInstallRoot;
175
244
  private getManagedNpmInstallPath;
176
245
  private getLegacyGlobalNpmInstallPath;
177
246
  private getNpmInstallPath;