@intentic/sandbox-contract 1.240.0 → 1.243.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +52 -16
  2. package/dist/agent-catalog.d.ts +5 -28
  3. package/dist/agent-catalog.d.ts.map +1 -1
  4. package/dist/agent-catalog.js +21 -157
  5. package/dist/agent-catalog.js.map +1 -1
  6. package/dist/agent-run-model.d.ts +3 -2
  7. package/dist/agent-run-model.d.ts.map +1 -1
  8. package/dist/agent-run-model.js +9 -6
  9. package/dist/agent-run-model.js.map +1 -1
  10. package/dist/agent-runtimes.d.ts +27 -0
  11. package/dist/agent-runtimes.d.ts.map +1 -0
  12. package/dist/agent-runtimes.js +113 -0
  13. package/dist/agent-runtimes.js.map +1 -0
  14. package/dist/approvals-execution.d.ts +11 -0
  15. package/dist/approvals-execution.d.ts.map +1 -0
  16. package/dist/approvals-execution.js +44 -0
  17. package/dist/approvals-execution.js.map +1 -0
  18. package/dist/arrival.d.ts +151 -0
  19. package/dist/arrival.d.ts.map +1 -0
  20. package/dist/arrival.js +56 -0
  21. package/dist/arrival.js.map +1 -0
  22. package/dist/card-status.d.ts +5 -0
  23. package/dist/card-status.d.ts.map +1 -0
  24. package/dist/card-status.js +74 -0
  25. package/dist/card-status.js.map +1 -0
  26. package/dist/chores/chores.d.ts.map +1 -1
  27. package/dist/chores/chores.js +1 -1
  28. package/dist/chores/chores.js.map +1 -1
  29. package/dist/command-classes.d.ts +0 -1
  30. package/dist/command-classes.d.ts.map +1 -1
  31. package/dist/command-classes.js +9 -2
  32. package/dist/command-classes.js.map +1 -1
  33. package/dist/command-run.d.ts +10 -0
  34. package/dist/command-run.d.ts.map +1 -0
  35. package/dist/command-run.js +46 -0
  36. package/dist/command-run.js.map +1 -0
  37. package/dist/contracts/agent.contract.d.ts +991 -771
  38. package/dist/contracts/agent.contract.d.ts.map +1 -1
  39. package/dist/contracts/agents.contract.d.ts +345 -337
  40. package/dist/contracts/agents.contract.d.ts.map +1 -1
  41. package/dist/contracts/agents.contract.js +20 -2
  42. package/dist/contracts/agents.contract.js.map +1 -1
  43. package/dist/contracts/approvals.contract.d.ts +99 -0
  44. package/dist/contracts/approvals.contract.d.ts.map +1 -0
  45. package/dist/contracts/approvals.contract.js +32 -0
  46. package/dist/contracts/approvals.contract.js.map +1 -0
  47. package/dist/contracts/ci.contract.d.ts +1 -4
  48. package/dist/contracts/ci.contract.d.ts.map +1 -1
  49. package/dist/contracts/ci.contract.js +1 -9
  50. package/dist/contracts/ci.contract.js.map +1 -1
  51. package/dist/contracts/claude.contract.d.ts +9 -0
  52. package/dist/contracts/claude.contract.d.ts.map +1 -1
  53. package/dist/contracts/cursor.contract.d.ts +6 -0
  54. package/dist/contracts/cursor.contract.d.ts.map +1 -1
  55. package/dist/contracts/git.contract.d.ts +63 -1
  56. package/dist/contracts/git.contract.d.ts.map +1 -1
  57. package/dist/contracts/git.contract.js +22 -4
  58. package/dist/contracts/git.contract.js.map +1 -1
  59. package/dist/contracts/grok.contract.d.ts +3 -0
  60. package/dist/contracts/grok.contract.d.ts.map +1 -1
  61. package/dist/contracts/keys.contract.d.ts +81 -0
  62. package/dist/contracts/keys.contract.d.ts.map +1 -0
  63. package/dist/contracts/keys.contract.js +51 -0
  64. package/dist/contracts/keys.contract.js.map +1 -0
  65. package/dist/contracts/panels.contract.d.ts +7 -0
  66. package/dist/contracts/panels.contract.d.ts.map +1 -1
  67. package/dist/contracts/prepush.contract.js +2 -2
  68. package/dist/contracts/providers.contract.d.ts +2 -0
  69. package/dist/contracts/providers.contract.d.ts.map +1 -1
  70. package/dist/contracts/runner.contract.d.ts +84 -86
  71. package/dist/contracts/runner.contract.d.ts.map +1 -1
  72. package/dist/contracts/safety.contract.d.ts +35 -0
  73. package/dist/contracts/safety.contract.d.ts.map +1 -0
  74. package/dist/contracts/safety.contract.js +32 -0
  75. package/dist/contracts/safety.contract.js.map +1 -0
  76. package/dist/contracts/sessions.contract.d.ts +73 -337
  77. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  78. package/dist/contracts/settings.contract.d.ts +30 -32
  79. package/dist/contracts/settings.contract.d.ts.map +1 -1
  80. package/dist/contracts/system.contract.d.ts +139 -337
  81. package/dist/contracts/system.contract.d.ts.map +1 -1
  82. package/dist/contracts/translator.contract.d.ts +31 -3
  83. package/dist/contracts/translator.contract.d.ts.map +1 -1
  84. package/dist/contracts/usage.contract.d.ts +29 -20
  85. package/dist/contracts/usage.contract.d.ts.map +1 -1
  86. package/dist/contracts/usage.contract.js +13 -0
  87. package/dist/contracts/usage.contract.js.map +1 -1
  88. package/dist/contracts/workspace.contract.d.ts +8 -0
  89. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  90. package/dist/conversation-ids.d.ts +2 -0
  91. package/dist/conversation-ids.d.ts.map +1 -1
  92. package/dist/conversation-ids.js +8 -0
  93. package/dist/conversation-ids.js.map +1 -1
  94. package/dist/credential-material.d.ts +1 -0
  95. package/dist/credential-material.d.ts.map +1 -1
  96. package/dist/credential-material.js +24 -2
  97. package/dist/credential-material.js.map +1 -1
  98. package/dist/definition.d.ts +51 -93
  99. package/dist/definition.d.ts.map +1 -1
  100. package/dist/definition.js +6 -28
  101. package/dist/definition.js.map +1 -1
  102. package/dist/events.d.ts +1831 -2285
  103. package/dist/events.d.ts.map +1 -1
  104. package/dist/events.js +155 -55
  105. package/dist/events.js.map +1 -1
  106. package/dist/history-state.d.ts.map +1 -1
  107. package/dist/history-state.js +1 -0
  108. package/dist/history-state.js.map +1 -1
  109. package/dist/index.d.ts +1959 -1903
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +20 -5
  112. package/dist/index.js.map +1 -1
  113. package/dist/ingress-protocol.d.ts +13 -1
  114. package/dist/ingress-protocol.d.ts.map +1 -1
  115. package/dist/ingress-protocol.js +19 -0
  116. package/dist/ingress-protocol.js.map +1 -1
  117. package/dist/mentions.d.ts +3 -0
  118. package/dist/mentions.d.ts.map +1 -0
  119. package/dist/mentions.js +13 -0
  120. package/dist/mentions.js.map +1 -0
  121. package/dist/needs-action.d.ts +7 -0
  122. package/dist/needs-action.d.ts.map +1 -0
  123. package/dist/needs-action.js +3 -0
  124. package/dist/needs-action.js.map +1 -0
  125. package/dist/overlay-lint.d.ts +7 -0
  126. package/dist/overlay-lint.d.ts.map +1 -0
  127. package/dist/overlay-lint.js +68 -0
  128. package/dist/overlay-lint.js.map +1 -0
  129. package/dist/owner-ticket.d.ts +18 -0
  130. package/dist/owner-ticket.d.ts.map +1 -0
  131. package/dist/owner-ticket.js +51 -0
  132. package/dist/owner-ticket.js.map +1 -0
  133. package/dist/plan-pools.d.ts +13 -0
  134. package/dist/plan-pools.d.ts.map +1 -0
  135. package/dist/plan-pools.js +31 -0
  136. package/dist/plan-pools.js.map +1 -0
  137. package/dist/provider-specs.d.ts +228 -0
  138. package/dist/provider-specs.d.ts.map +1 -0
  139. package/dist/provider-specs.js +124 -0
  140. package/dist/provider-specs.js.map +1 -0
  141. package/dist/quick-model.d.ts.map +1 -1
  142. package/dist/quick-model.js +2 -1
  143. package/dist/quick-model.js.map +1 -1
  144. package/dist/runner-protocol.js +2 -2
  145. package/dist/runner-protocol.js.map +1 -1
  146. package/dist/runtime-state.d.ts +2 -2
  147. package/dist/runtime-state.d.ts.map +1 -1
  148. package/dist/runtime-state.js +1 -1
  149. package/dist/runtime-state.js.map +1 -1
  150. package/dist/safety-policy.d.ts +49 -0
  151. package/dist/safety-policy.d.ts.map +1 -0
  152. package/dist/safety-policy.js +52 -0
  153. package/dist/safety-policy.js.map +1 -0
  154. package/dist/schemas/agent.d.ts +21 -3
  155. package/dist/schemas/agent.d.ts.map +1 -1
  156. package/dist/schemas/agent.js +18 -8
  157. package/dist/schemas/agent.js.map +1 -1
  158. package/dist/schemas/agents.d.ts +19 -0
  159. package/dist/schemas/agents.d.ts.map +1 -1
  160. package/dist/schemas/agents.js +15 -0
  161. package/dist/schemas/agents.js.map +1 -1
  162. package/dist/schemas/approvals.d.ts +241 -0
  163. package/dist/schemas/approvals.d.ts.map +1 -0
  164. package/dist/schemas/approvals.js +63 -0
  165. package/dist/schemas/approvals.js.map +1 -0
  166. package/dist/schemas/automations.d.ts +5 -0
  167. package/dist/schemas/automations.d.ts.map +1 -1
  168. package/dist/schemas/ci.d.ts +5 -9
  169. package/dist/schemas/ci.d.ts.map +1 -1
  170. package/dist/schemas/ci.js +3 -10
  171. package/dist/schemas/ci.js.map +1 -1
  172. package/dist/schemas/computers.d.ts +40 -5
  173. package/dist/schemas/computers.d.ts.map +1 -1
  174. package/dist/schemas/computers.js +16 -5
  175. package/dist/schemas/computers.js.map +1 -1
  176. package/dist/schemas/environment.d.ts +11 -131
  177. package/dist/schemas/environment.d.ts.map +1 -1
  178. package/dist/schemas/environment.js +5 -42
  179. package/dist/schemas/environment.js.map +1 -1
  180. package/dist/schemas/git-history.d.ts +4 -0
  181. package/dist/schemas/git-history.d.ts.map +1 -1
  182. package/dist/schemas/git.d.ts +179 -0
  183. package/dist/schemas/git.d.ts.map +1 -1
  184. package/dist/schemas/git.js +39 -1
  185. package/dist/schemas/git.js.map +1 -1
  186. package/dist/schemas/panels.d.ts +21 -0
  187. package/dist/schemas/panels.d.ts.map +1 -1
  188. package/dist/schemas/panels.js +5 -0
  189. package/dist/schemas/panels.js.map +1 -1
  190. package/dist/schemas/plan-limits.d.ts +50 -3
  191. package/dist/schemas/plan-limits.d.ts.map +1 -1
  192. package/dist/schemas/plan-limits.js +11 -6
  193. package/dist/schemas/plan-limits.js.map +1 -1
  194. package/dist/schemas/provider-oauth.d.ts +6 -0
  195. package/dist/schemas/provider-oauth.d.ts.map +1 -1
  196. package/dist/schemas/provider-subscriptions.d.ts +2 -1
  197. package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
  198. package/dist/schemas/provider-subscriptions.js +2 -1
  199. package/dist/schemas/provider-subscriptions.js.map +1 -1
  200. package/dist/schemas/settings.d.ts +29 -16
  201. package/dist/schemas/settings.d.ts.map +1 -1
  202. package/dist/schemas/settings.js +13 -20
  203. package/dist/schemas/settings.js.map +1 -1
  204. package/dist/schemas/system.d.ts +3 -0
  205. package/dist/schemas/system.d.ts.map +1 -1
  206. package/dist/schemas/system.js +5 -1
  207. package/dist/schemas/system.js.map +1 -1
  208. package/dist/schemas/workspace-repos.d.ts +14 -0
  209. package/dist/schemas/workspace-repos.d.ts.map +1 -1
  210. package/dist/schemas/workspace-repos.js +5 -0
  211. package/dist/schemas/workspace-repos.js.map +1 -1
  212. package/dist/schemas/workspace-tree.d.ts +1 -0
  213. package/dist/schemas/workspace-tree.d.ts.map +1 -1
  214. package/dist/schemas/workspace-tree.js +3 -0
  215. package/dist/schemas/workspace-tree.js.map +1 -1
  216. package/dist/transcript-fold.d.ts +31 -0
  217. package/dist/transcript-fold.d.ts.map +1 -0
  218. package/dist/transcript-fold.js +457 -0
  219. package/dist/transcript-fold.js.map +1 -0
  220. package/dist/workspace-state.d.ts +20 -3
  221. package/dist/workspace-state.d.ts.map +1 -1
  222. package/dist/workspace-state.js +22 -2
  223. package/dist/workspace-state.js.map +1 -1
  224. package/package.json +27 -5
  225. package/src/agent-catalog.test.ts +1 -1
  226. package/src/agent-catalog.ts +76 -555
  227. package/src/agent-run-model.test.ts +31 -15
  228. package/src/agent-run-model.ts +26 -12
  229. package/src/agent-runtimes.ts +419 -0
  230. package/src/approvals-execution.ts +96 -0
  231. package/src/arrival.ts +160 -0
  232. package/src/capability-ledger.test.ts +6 -4
  233. package/src/card-status.ts +93 -0
  234. package/src/chores/chores.ts +6 -3
  235. package/src/command-classes.test.ts +25 -0
  236. package/src/command-classes.ts +47 -5
  237. package/src/command-run.ts +78 -0
  238. package/src/contract-lock.test.ts +1 -1
  239. package/src/contract-lock.ts +2 -2
  240. package/src/contracts/agents.contract.ts +35 -2
  241. package/src/contracts/approvals.contract.ts +37 -0
  242. package/src/contracts/ci.contract.ts +0 -13
  243. package/src/contracts/git.contract.ts +28 -3
  244. package/src/contracts/keys.contract.ts +79 -0
  245. package/src/contracts/prepush.contract.ts +3 -3
  246. package/src/contracts/safety.contract.ts +48 -0
  247. package/src/contracts/usage.contract.ts +22 -0
  248. package/src/conversation-ids.test.ts +31 -1
  249. package/src/conversation-ids.ts +37 -3
  250. package/src/credential-material.test.ts +69 -1
  251. package/src/credential-material.ts +86 -5
  252. package/src/definition.ts +25 -53
  253. package/src/events.ts +374 -173
  254. package/src/history-state.ts +6 -0
  255. package/src/index.ts +24 -5
  256. package/src/ingress-protocol.ts +52 -1
  257. package/src/mentions.test.ts +22 -0
  258. package/src/mentions.ts +25 -0
  259. package/src/needs-action.ts +14 -0
  260. package/src/overlay-lint.test.ts +89 -0
  261. package/src/overlay-lint.ts +116 -0
  262. package/src/owner-ticket.test.ts +54 -0
  263. package/src/owner-ticket.ts +102 -0
  264. package/src/plan-pools.test.ts +71 -0
  265. package/src/plan-pools.ts +92 -0
  266. package/src/provider-specs.test.ts +130 -0
  267. package/src/provider-specs.ts +352 -0
  268. package/src/quick-model.ts +9 -5
  269. package/src/runner-protocol.ts +2 -2
  270. package/src/runtime-state.ts +6 -6
  271. package/src/safety-policy.ts +165 -0
  272. package/src/schemas/agent.ts +62 -17
  273. package/src/schemas/agents.ts +71 -0
  274. package/src/schemas/approvals.ts +174 -0
  275. package/src/schemas/ci.ts +19 -26
  276. package/src/schemas/computers.ts +91 -15
  277. package/src/schemas/environment.ts +21 -100
  278. package/src/schemas/git.ts +121 -6
  279. package/src/schemas/issues.ts +1 -1
  280. package/src/schemas/panels.ts +20 -0
  281. package/src/schemas/plan-limits.ts +58 -11
  282. package/src/schemas/provider-subscriptions.ts +7 -2
  283. package/src/schemas/settings.ts +67 -93
  284. package/src/schemas/system.ts +12 -1
  285. package/src/schemas/workspace-repos.ts +9 -0
  286. package/src/schemas/workspace-tree.ts +11 -0
  287. package/src/transcript-fold.test.ts +493 -0
  288. package/src/transcript-fold.ts +655 -0
  289. package/src/workspace-state.test.ts +77 -29
  290. package/src/workspace-state.ts +99 -31
  291. package/dist/contracts/drafts.contract.d.ts +0 -57
  292. package/dist/contracts/drafts.contract.d.ts.map +0 -1
  293. package/dist/contracts/drafts.contract.js +0 -32
  294. package/dist/contracts/drafts.contract.js.map +0 -1
  295. package/dist/definition-action.d.ts +0 -7
  296. package/dist/definition-action.d.ts.map +0 -1
  297. package/dist/definition-action.js +0 -3
  298. package/dist/definition-action.js.map +0 -1
  299. package/dist/publish-drafts.d.ts +0 -7
  300. package/dist/publish-drafts.d.ts.map +0 -1
  301. package/dist/publish-drafts.js +0 -20
  302. package/dist/publish-drafts.js.map +0 -1
  303. package/dist/schemas/drafts.d.ts +0 -84
  304. package/dist/schemas/drafts.d.ts.map +0 -1
  305. package/dist/schemas/drafts.js +0 -44
  306. package/dist/schemas/drafts.js.map +0 -1
  307. package/src/contracts/drafts.contract.ts +0 -35
  308. package/src/definition-action.ts +0 -8
  309. package/src/publish-drafts.ts +0 -59
  310. package/src/schemas/drafts.ts +0 -108
package/README.md CHANGED
@@ -10,9 +10,13 @@ mismatch is a type error rather than a runtime surprise.
10
10
 
11
11
  - Declare the contracts, one file per subject area (`src/contracts/`).
12
12
  - Declare the wire shapes those contracts are built from, one module per subject area (`src/schemas/`).
13
- - Declare the event union the daemon pushes over SSE (`src/events.ts`).
13
+ - Declare the event union the daemon pushes over SSE (`src/events.ts`), and the transcript a turn becomes: the
14
+ rows, the patches that change them and the facts about a turn that `/agent/attach` carries.
14
15
  - Hold the small pieces of logic that BOTH sides must agree on rather than each deciding: the chore book,
15
- hostname and tunnel-id rules, session naming, terminal protocol, workspace state, runtime state.
16
+ hostname and tunnel-id rules, session naming, terminal protocol, workspace state, runtime state, and the two
17
+ things every surface that waits on a daemon-run command needs (`src/command-run.ts`): the loop that follows a
18
+ `CommandRun` to its verdict, and the words over a settled one, so the card in the app and the notification on
19
+ a phone say the same thing about the same push.
16
20
  - Define workflow designs and immutable run snapshots, including full model/account/harness pins, per-step spend
17
21
  ceilings, pinned repository bases, bounded report previews, and complete-report artifact paths.
18
22
 
@@ -25,14 +29,26 @@ mismatch is a type error rather than a runtime surprise.
25
29
  proximity in a shared file. `schemas/internal.ts` is the exception and is not re-exported from the index: it
26
30
  holds the id and ref primitives several modules are written in, which are vocabulary rather than shapes either
27
31
  side of the wire sends.
28
- - [src/events.ts](src/events.ts): what the daemon pushes, and when.
32
+ - [src/events.ts](src/events.ts): what the daemon pushes, and when. It also holds the transcript wire: a
33
+ `TranscriptRow` (a speaker's bubble, a notice, a card), a `TranscriptPatch` (append, replace, drop, more text or
34
+ thinking, a tool's progress), a `TurnFact` (the event kinds that are about the turn rather than its words:
35
+ session, worktree, usage, error...) and the `AttachFrame` union a window follows a run through.
36
+ - [src/transcript-fold.ts](src/transcript-fold.ts), its own entry point (`@intentic/sandbox-contract/transcript-fold`):
37
+ THE fold from a turn's frames to its rows, and the patches each frame is worth. The daemon runs it inside every
38
+ run, the demo runs it over its recording, and the browser only applies the patches it emits, so there is one
39
+ opinion about what a turn looks like. Its notices (a stop, a refusal, a landing, a routed tier) are written
40
+ here too. [src/card-status.ts](src/card-status.ts) is how a card settles: raised `pending`, and given its
41
+ status by the reply that released it or by the stop that cancelled it.
29
42
  - [src/workspace-state.ts](src/workspace-state.ts) and [src/runtime-state.ts](src/runtime-state.ts): which
30
43
  changed file, and which moved runtime thing, makes which browser view stale. The workspace table also assigns
31
44
  each daemon-owned path its export lifecycle (`carry`, `secret`, `identity`, or `derived`), including the
32
45
  auth/session/cache/artifact roots, and marks the configuration slice the root repo TRACKS (`versioned`: the
33
46
  allowlist the git exclude rules are derived from, so a store added later is untracked until someone says
34
47
  otherwise) and the authored-content slice a workspace SEARCH may surface (`versioned` + `authored` →
35
- `SEARCHABLE_STATE_PATHS`, which iq's floor denies the rest of `.intentic` against by default). Extensions name
48
+ `SEARCHABLE_STATE_PATHS`, which iq's floor denies the rest of `.intentic` against by default). The same flag
49
+ decides what an isolated turn shares LIVE with the main tree (`SHARED_STATE_PATHS`: every untracked group, bound
50
+ in over the worktree) and what is the worktree's own checkout that reaches the main tree by landing (the
51
+ tracked `config/` slice). Extensions name
36
52
  their scratch home through `extensionRuntimeDir` rather than spelling the layout themselves. The daemon
37
53
  publishes the cause and the browser derives the consequence, so neither side keeps its own copy of the
38
54
  other's list.
@@ -41,29 +57,49 @@ mismatch is a type error rather than a runtime surprise.
41
57
  that document to the question or plan card the turn parks on (so a choice can be read beside the write-up it
42
58
  is about), and the browser draws the write's own card as prose rather than as a diff stat. Two copies of the
43
59
  rule would let a card carry a document the transcript never drew.
44
- - [src/agent-catalog.ts](src/agent-catalog.ts): what each (provider, harness) pair can actually DO, as one
45
- record per runtime: its permission axis, its MCP reach, whether it steers, and how much of the owner's system
46
- prompt it will take (`instructions`: replace, add, or nothing at all), plus whether it discovers loaded
47
- skills natively or needs their catalogue in its opening prompt. Shared because both sides act on it: the
48
- daemon composes a turn's instructions and skill discovery against it and the browser both discloses what a
49
- pair cannot do (`limitationsOf`) and names which models the system-prompt setting reaches.
60
+ - The provider vocabulary, three modules, bottom-up, and the arrow between them only points one way:
61
+ - [src/agent-runtimes.ts](src/agent-runtimes.ts): what each agentic LOOP can do, one record per runtime: its
62
+ permission axis, its MCP reach, whether it steers, and how much of the owner's system prompt it will take
63
+ (`instructions`: replace, add, or nothing at all), plus whether it discovers loaded skills natively or
64
+ needs their catalogue in its opening prompt. It names no providers at all.
65
+ - [src/provider-specs.ts](src/provider-specs.ts): **one row per provider**, and the source every other list
66
+ of providers in this repo derives from — the wire vocabulary (`NATIVE_PROVIDERS`), the picker's labels, the
67
+ access and vendor tables, the plan-limit list, the routed-provider enum and its accounts schema, the
68
+ daemon's CLIProxyAPI id map, and the web's account tabs and readiness rules. A row carries the two axes it
69
+ deliberately keeps apart: what a turn COSTS (`access`) and what the user CONNECTS (`auth`: an OAuth account
70
+ this daemon stores, a subscription the bundled translator holds, or an API key pasted into a field).
71
+ `brand` is typed against the marks in `@intentic/constants`, so a provider added without a logo does not
72
+ compile. **Adding a provider is a row here**, its brand path, and (daemon-side) one line in the provider
73
+ registry; `provider-specs.test.ts` walks the table rather than a list, so the guard covers a provider the
74
+ day it is added.
75
+ - [src/agent-catalog.ts](src/agent-catalog.ts): the shapes each surface reads that table in, plus the rules
76
+ that are about something other than a provider (the trial, the endpoint namespace, the effort and fast-mode
77
+ gates). Shared because both sides act on it: the daemon composes a turn's instructions and skill discovery
78
+ against it and the browser both discloses what a pair cannot do (`limitationsOf`) and names which models
79
+ the system-prompt setting reaches.
50
80
  - [src/chores](src/chores), the chore book: definitions, applicability gates and verdicts, shared because the
51
81
  daemon computes the signals and the browser renders the judgement.
52
- - [src/publish-drafts.ts](src/publish-drafts.ts): the drafts publisher automation, shared for the chore book's
53
- reason by its three consumers: the daemon's seeder, the recipe gallery, and the drafts routes' instant fire.
82
+ - [src/approvals-execution.ts](src/approvals-execution.ts): how an approved item gets done, the hold every
83
+ approval starts with, which platforms the daemon posts to by code, and the prompts the executing turns are
84
+ handed, shared because the daemon acts on them and the Approvals page counts the same seconds down.
54
85
  - [src/workflow-faults.ts](src/workflow-faults.ts) and [src/output-fields.ts](src/output-fields.ts): graph and
55
86
  structured-output invariants shared by the designer and daemon, including duplicate field-name rejection.
56
87
  - [src/definition.ts](src/definition.ts): the SANDBOX DEFINITION, the declarable shape of a sandbox
57
88
  (`sandbox.toml`): repositories by remote, connections by shape, secret names, the overlay as source, the
58
89
  non-default agent settings — plus the bundle manifest that embeds it, since a bundle is definition + state.
59
- Shared because the daemon derives and applies definitions and the browser renders their plans, diffs and
60
- reports; the definition never carries a credential value or an approval hash, so it is the export that is
61
- safe to publish.
90
+ Shared because the daemon derives definitions and the browser renders them and their diffs; the definition
91
+ never carries a credential value or an approval hash, so it is the export that is safe to publish. Only the
92
+ OUTBOUND half lives here; applying one is an arrival.
93
+ - [src/arrival.ts](src/arrival.ts): the ARRIVAL PIPELINE, one plan → apply → report for every artifact that can
94
+ come into a sandbox — a definition, an environment bundle, a Hermes or OpenClaw home directory. There were
95
+ three of these once, one per artifact, and the differences between them were drift rather than design (only
96
+ two of the three previewed; the credential consent was asked on opposite sides). The artifact is a parser
97
+ now and everything after it is shared, which is what lets one card render all four.
62
98
  - [src/index.ts](src/index.ts): the public surface.
63
99
  - [src/contract-lock.ts](src/contract-lock.ts) and [contract.lock.json](contract.lock.json): every exported
64
100
  schema serialized to one committed, comparable document. Regenerate with `pnpm --filter
65
101
  @intentic/sandbox-contract lock` whenever a schema changes; the test beside it fails until you do, and the
66
- repo-level prepass refuses a push whose lock *lost or changed* an existing surface without a declared
102
+ repo-level `contract-shrink` check refuses a push whose lock *lost or changed* an existing surface without a declared
67
103
  breaking change (COMPATIBILITY.md at the repo root has the whole story).
68
104
 
69
105
  ## How it fits
@@ -1,4 +1,6 @@
1
- import { type AgentHarness, type AgentProvider, type NativeProvider, type PermissionMode } from "./schemas/agent.js";
1
+ import { type AgentCapabilities } from "./agent-runtimes.js";
2
+ import { type NativeProvider, type ProviderAccess } from "./provider-specs.js";
3
+ import type { AgentHarness, AgentProvider, PermissionMode } from "./schemas/agent.js";
2
4
  import type { Model, ModelBadge } from "./schemas/provider-oauth.js";
3
5
  export interface CatalogOption {
4
6
  readonly label: string;
@@ -8,17 +10,10 @@ export declare const PROVIDERS: readonly {
8
10
  label: string;
9
11
  value: NativeProvider;
10
12
  }[];
11
- export type AccessKind = "free" | "subscription" | "key";
12
- export interface ProviderAccess {
13
- readonly kind: AccessKind;
14
- readonly requirement: string;
15
- readonly runs: string;
16
- }
17
13
  export declare const PROVIDER_ACCESS: Record<NativeProvider, ProviderAccess>;
18
14
  export declare const FREE_PROVIDERS: readonly NativeProvider[];
19
15
  export declare const isFreeProvider: (provider: AgentProvider) => boolean;
20
16
  export declare const PROVIDER_VENDOR: Record<NativeProvider, string>;
21
- export declare const ACCESS_COST: Record<AccessKind, number>;
22
17
  export declare const TRIAL_ENDPOINT_ID = "free-trial";
23
18
  export declare const TRIAL_PROVIDER = "endpoint/free-trial";
24
19
  export declare const isTrialProvider: (provider: AgentProvider) => boolean;
@@ -37,27 +32,9 @@ export declare const HARNESSES: readonly {
37
32
  label: string;
38
33
  value: AgentHarness;
39
34
  }[];
40
- export type ExecutionBackend = "shell" | "js";
41
- export interface AgentCapabilities {
42
- readonly runtime: "claude-code" | "codex" | "opencode" | "opencode-gemini" | "acp" | "pi" | "cursor";
43
- readonly steering: boolean;
44
- readonly permissions: "modes" | "plan";
45
- readonly questions: boolean;
46
- readonly mcp: "full" | "tools" | "browser" | "http" | "none";
47
- readonly execution: readonly ExecutionBackend[];
48
- readonly effort: boolean;
49
- readonly fastMode: boolean;
50
- readonly isolation: "namespace" | "cwd";
51
- readonly commands: boolean;
52
- readonly terminals: boolean;
53
- readonly recovery: boolean;
54
- readonly instructions: "replace" | "append" | "none";
55
- readonly skillDiscovery: "native" | "prompt";
56
- readonly rulebook: "hooks" | "approval" | "refuse-only" | "none";
57
- readonly secrets: "masked" | "none";
58
- }
59
- export declare const PI_PROVIDER = "pi";
35
+ export declare const harnessChoosable: (provider: AgentProvider) => boolean;
60
36
  export declare const capabilitiesOf: (provider: AgentProvider, harness: AgentHarness) => AgentCapabilities;
37
+ export declare const PI_PROVIDER = "pi";
61
38
  export declare const modesFor: (capabilities: AgentCapabilities) => readonly PermissionMode[];
62
39
  export declare const clampMode: (mode: PermissionMode, capabilities: AgentCapabilities) => PermissionMode;
63
40
  export declare const limitationsOf: (capabilities: AgentCapabilities) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"agent-catalog.d.ts","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-catalog.d.ts","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,13 @@
1
- import { NATIVE_PROVIDERS } from "./schemas/agent.js";
2
- export const PROVIDERS = [
3
- { label: "Claude Code", value: "claude" },
4
- { label: "Codex", value: "codex" },
5
- { label: "Grok", value: "grok" },
6
- { label: "Kimi Code", value: "kimi" },
7
- { label: "Google", value: "gemini" },
8
- { label: "Cursor", value: "cursor" },
9
- ];
10
- export const PROVIDER_ACCESS = {
11
- claude: { kind: "subscription", requirement: "Claude subscription", runs: "Claude Code" },
12
- codex: { kind: "subscription", requirement: "ChatGPT subscription", runs: "Codex" },
13
- grok: { kind: "subscription", requirement: "SuperGrok subscription", runs: "Grok" },
14
- kimi: { kind: "subscription", requirement: "Kimi Code subscription", runs: "Kimi Code" },
15
- gemini: { kind: "free", requirement: "Google sign-in", runs: "Gemini, Claude and GPT-OSS under Claude Code" },
16
- cursor: { kind: "subscription", requirement: "Cursor Pro subscription", runs: "Cursor Agent" },
17
- };
18
- export const FREE_PROVIDERS = NATIVE_PROVIDERS.filter((provider) => PROVIDER_ACCESS[provider].kind === "free");
1
+ import { ACP, CLAUDE_CODE, PI } from "./agent-runtimes.js";
2
+ import { PROVIDER_SPECS, providerSpec } from "./provider-specs.js";
3
+ export const PROVIDERS = PROVIDER_SPECS.map((spec) => ({
4
+ label: spec.label,
5
+ value: spec.id,
6
+ }));
7
+ export const PROVIDER_ACCESS = Object.fromEntries(PROVIDER_SPECS.map((spec) => [spec.id, spec.access]));
8
+ export const FREE_PROVIDERS = PROVIDER_SPECS.filter((spec) => spec.access.kind === "free").map((spec) => spec.id);
19
9
  export const isFreeProvider = (provider) => FREE_PROVIDERS.includes(provider);
20
- export const PROVIDER_VENDOR = {
21
- claude: "Claude",
22
- codex: "ChatGPT",
23
- grok: "xAI",
24
- kimi: "Kimi Code",
25
- gemini: "Google",
26
- cursor: "Cursor",
27
- };
28
- export const ACCESS_COST = { free: 0, subscription: 1, key: 2 };
10
+ export const PROVIDER_VENDOR = Object.fromEntries(PROVIDER_SPECS.map((spec) => [spec.id, spec.vendor]));
29
11
  export const TRIAL_ENDPOINT_ID = "free-trial";
30
12
  export const TRIAL_PROVIDER = "endpoint/free-trial";
31
13
  export const isTrialProvider = (provider) => provider === TRIAL_PROVIDER;
@@ -36,139 +18,22 @@ export const ENDPOINT_PROVIDER_PREFIX = "endpoint/";
36
18
  export const endpointProvider = (id) => `${ENDPOINT_PROVIDER_PREFIX}${id}`;
37
19
  export const isEndpointProvider = (provider) => provider.startsWith(ENDPOINT_PROVIDER_PREFIX);
38
20
  export const endpointIdOf = (provider) => isEndpointProvider(provider) ? provider.slice(ENDPOINT_PROVIDER_PREFIX.length) : undefined;
39
- export const accessFor = (provider) => PROVIDER_ACCESS[provider];
40
- export const providerLabel = (provider) => PROVIDERS.find((p) => p.value === provider)?.label ?? provider;
41
- export const PLAN_LIMIT_PROVIDERS = ["claude", "codex", "gemini", "kimi"];
21
+ export const accessFor = (provider) => providerSpec(provider)?.access;
22
+ export const providerLabel = (provider) => providerSpec(provider)?.label ?? provider;
23
+ export const PLAN_LIMIT_PROVIDERS = PROVIDER_SPECS.filter((spec) => spec.planLimits).map((spec) => spec.id);
42
24
  export const reportsPlanLimits = (provider) => PLAN_LIMIT_PROVIDERS.includes(provider);
43
25
  export const HARNESSES = [
44
26
  { label: "Native", value: "native" },
45
27
  { label: "Claude Code", value: "claude-code" },
46
28
  ];
47
- const CLAUDE_CODE = {
48
- runtime: "claude-code",
49
- steering: true,
50
- permissions: "modes",
51
- questions: true,
52
- mcp: "full",
53
- execution: ["shell", "js"],
54
- effort: true,
55
- fastMode: true,
56
- isolation: "namespace",
57
- commands: true,
58
- terminals: true,
59
- recovery: true,
60
- instructions: "replace",
61
- skillDiscovery: "native",
62
- rulebook: "hooks",
63
- secrets: "masked",
64
- };
65
- const CODEX = {
66
- runtime: "codex",
67
- steering: true,
68
- permissions: "plan",
69
- questions: true,
70
- mcp: "browser",
71
- execution: ["shell"],
72
- effort: true,
73
- fastMode: false,
74
- isolation: "namespace",
75
- commands: true,
76
- terminals: false,
77
- recovery: false,
78
- instructions: "replace",
79
- skillDiscovery: "native",
80
- rulebook: "approval",
81
- secrets: "none",
82
- };
83
- const OPENCODE = {
84
- runtime: "opencode",
85
- steering: false,
86
- permissions: "plan",
87
- questions: false,
88
- mcp: "none",
89
- execution: ["shell"],
90
- effort: false,
91
- fastMode: false,
92
- isolation: "cwd",
93
- commands: false,
94
- terminals: false,
95
- recovery: false,
96
- instructions: "append",
97
- skillDiscovery: "prompt",
98
- rulebook: "refuse-only",
99
- secrets: "none",
100
- };
101
- const OPENCODE_GEMINI = {
102
- ...OPENCODE,
103
- runtime: "opencode-gemini",
104
- };
105
- const ACP = {
106
- runtime: "acp",
107
- steering: false,
108
- permissions: "plan",
109
- questions: false,
110
- mcp: "http",
111
- execution: ["shell"],
112
- effort: false,
113
- fastMode: false,
114
- isolation: "cwd",
115
- commands: true,
116
- terminals: true,
117
- recovery: false,
118
- instructions: "none",
119
- skillDiscovery: "prompt",
120
- rulebook: "approval",
121
- secrets: "none",
122
- };
123
- export const PI_PROVIDER = "pi";
124
- const PI = {
125
- runtime: "pi",
126
- steering: true,
127
- permissions: "plan",
128
- questions: false,
129
- mcp: "none",
130
- execution: ["shell"],
131
- effort: true,
132
- fastMode: false,
133
- isolation: "cwd",
134
- commands: true,
135
- terminals: false,
136
- recovery: false,
137
- instructions: "none",
138
- skillDiscovery: "prompt",
139
- rulebook: "none",
140
- secrets: "none",
141
- };
142
- const CURSOR = {
143
- runtime: "cursor",
144
- steering: false,
145
- permissions: "plan",
146
- questions: true,
147
- mcp: "tools",
148
- execution: ["shell"],
149
- effort: true,
150
- fastMode: false,
151
- isolation: "cwd",
152
- commands: false,
153
- terminals: false,
154
- recovery: true,
155
- instructions: "append",
156
- skillDiscovery: "prompt",
157
- rulebook: "hooks",
158
- secrets: "none",
29
+ export const harnessChoosable = (provider) => {
30
+ const spec = providerSpec(provider);
31
+ return spec !== undefined && spec.runtimes.native.runtime !== spec.runtimes.claudeCode.runtime;
159
32
  };
160
33
  export const capabilitiesOf = (provider, harness) => {
161
- if (provider === "codex") {
162
- return harness === "claude-code" ? CLAUDE_CODE : CODEX;
163
- }
164
- if (provider === "grok") {
165
- return harness === "claude-code" ? CLAUDE_CODE : OPENCODE;
166
- }
167
- if (provider === "gemini") {
168
- return OPENCODE_GEMINI;
169
- }
170
- if (provider === "cursor") {
171
- return CURSOR;
34
+ const spec = providerSpec(provider);
35
+ if (spec !== undefined) {
36
+ return harness === "claude-code" ? spec.runtimes.claudeCode : spec.runtimes.native;
172
37
  }
173
38
  if (isEndpointProvider(provider)) {
174
39
  return CLAUDE_CODE;
@@ -176,8 +41,9 @@ export const capabilitiesOf = (provider, harness) => {
176
41
  if (provider === PI_PROVIDER) {
177
42
  return PI;
178
43
  }
179
- return NATIVE_PROVIDERS.includes(provider) ? CLAUDE_CODE : ACP;
44
+ return ACP;
180
45
  };
46
+ export const PI_PROVIDER = "pi";
181
47
  export const modesFor = (capabilities) => capabilities.permissions === "modes" ? ["default", "acceptEdits", "plan", "bypassPermissions"] : ["plan", "bypassPermissions"];
182
48
  export const clampMode = (mode, capabilities) => modesFor(capabilities).includes(mode) ? mode : "bypassPermissions";
183
49
  export const limitationsOf = (capabilities) => [
@@ -202,9 +68,7 @@ export const limitationsOf = (capabilities) => [
202
68
  ...(capabilities.instructions === "append" ? ["system prompt appended, not replaced"] : []),
203
69
  ...(capabilities.instructions === "none" ? ["system prompt not applied"] : []),
204
70
  ...(capabilities.rulebook === "approval" ? ["command rules apply only to calls this agent raises"] : []),
205
- ...(capabilities.rulebook === "refuse-only"
206
- ? ["command rules can refuse but not hold"]
207
- : []),
71
+ ...(capabilities.rulebook === "refuse-only" ? ["command rules can refuse but not hold"] : []),
208
72
  ...(capabilities.rulebook === "none" ? ["command rules not applied"] : []),
209
73
  ...(capabilities.secrets === "none" ? ["secrets reach the model unmasked"] : []),
210
74
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"agent-catalog.js","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-catalog.js","sourceRoot":"","sources":["../src/agent-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import { type QuickModelChoice, type QuickModelSource } from "./quick-model.js";
2
- export declare const resolveAgentRunModels: (sources: readonly QuickModelSource[], pinned: readonly string[]) => readonly QuickModelChoice[];
1
+ import { type QuickModelSource } from "./quick-model.js";
2
+ import type { AgentRunPin } from "./schemas/agent.js";
3
+ export declare const resolveAgentRunModels: (sources: readonly QuickModelSource[], pinned: readonly AgentRunPin[]) => readonly AgentRunPin[];
3
4
  //# sourceMappingURL=agent-run-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-run-model.d.ts","sourceRoot":"","sources":["../src/agent-run-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAiB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAsC5G,eAAO,MAAM,qBAAqB,YAAa,SAAS,gBAAgB,EAAE,UAAU,SAAS,MAAM,EAAE,KAAG,SAAS,gBAAgB,EAYhI,CAAC"}
1
+ {"version":3,"file":"agent-run-model.d.ts","sourceRoot":"","sources":["../src/agent-run-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA2CtD,eAAO,MAAM,qBAAqB,YAAa,SAAS,gBAAgB,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,SAAS,WAAW,EAoBhI,CAAC"}
@@ -1,10 +1,13 @@
1
- import { parsePinned, quickModelKey } from "./quick-model.js";
1
+ import { quickModelKey } from "./quick-model.js";
2
2
  export const resolveAgentRunModels = (sources, pinned) => {
3
3
  const ready = new Set(sources.filter((source) => source.ready).map((source) => source.provider));
4
- const requested = pinned.flatMap((key) => {
5
- const choice = parsePinned(key);
6
- return choice === undefined || !ready.has(choice.provider) ? [] : [choice];
7
- });
8
- return [...new Map(requested.map((choice) => [quickModelKey(choice), choice])).values()];
4
+ const requested = pinned.filter((pin) => ready.has(pin.provider));
5
+ const chain = [];
6
+ for (const pin of requested) {
7
+ if (!chain.some((held) => quickModelKey(held) === quickModelKey(pin))) {
8
+ chain.push(pin);
9
+ }
10
+ }
11
+ return chain;
9
12
  };
10
13
  //# sourceMappingURL=agent-run-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-run-model.js","sourceRoot":"","sources":["../src/agent-run-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAsC5G,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoC,EAAE,MAAyB,EAA+B,EAAE;IAClI,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAIrC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAGH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC"}
1
+ {"version":3,"file":"agent-run-model.js","sourceRoot":"","sources":["../src/agent-run-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AA4CxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoC,EAAE,MAA8B,EAA0B,EAAE;IAClI,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAIjG,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAQlE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ export type ExecutionBackend = "shell" | "js";
2
+ export interface AgentCapabilities {
3
+ readonly runtime: "claude-code" | "codex" | "opencode" | "opencode-gemini" | "acp" | "pi" | "cursor";
4
+ readonly steering: boolean;
5
+ readonly permissions: "modes" | "plan";
6
+ readonly questions: boolean;
7
+ readonly mcp: "full" | "tools" | "browser" | "http" | "none";
8
+ readonly execution: readonly ExecutionBackend[];
9
+ readonly effort: boolean;
10
+ readonly fastMode: boolean;
11
+ readonly isolation: "namespace" | "cwd";
12
+ readonly commands: boolean;
13
+ readonly terminals: boolean;
14
+ readonly recovery: boolean;
15
+ readonly instructions: "replace" | "append" | "none";
16
+ readonly skillDiscovery: "native" | "prompt";
17
+ readonly rulebook: "hooks" | "approval" | "refuse-only" | "none";
18
+ readonly secrets: "masked" | "none";
19
+ }
20
+ export declare const CLAUDE_CODE: AgentCapabilities;
21
+ export declare const CODEX: AgentCapabilities;
22
+ export declare const OPENCODE: AgentCapabilities;
23
+ export declare const OPENCODE_GEMINI: AgentCapabilities;
24
+ export declare const ACP: AgentCapabilities;
25
+ export declare const PI: AgentCapabilities;
26
+ export declare const CURSOR: AgentCapabilities;
27
+ //# sourceMappingURL=agent-runtimes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runtimes.d.ts","sourceRoot":"","sources":["../src/agent-runtimes.ts"],"names":[],"mappings":"AAwBA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,IAAI,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAS9B,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;IAErG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAI3B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;IAEvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAc5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAW7D,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAEhD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAOzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAK3B,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,KAAK,CAAC;IAExC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAG5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAsB3B,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAUrD,QAAQ,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IA2B7C,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;IAiBjE,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;CACvC;AAKD,eAAO,MAAM,WAAW,EAAE,iBAqBzB,CAAC;AAWF,eAAO,MAAM,KAAK,EAAE,iBA0BnB,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,iBA4BtB,CAAC;AAeF,eAAO,MAAM,eAAe,EAAE,iBAG7B,CAAC;AAKF,eAAO,MAAM,GAAG,EAAE,iBAuBjB,CAAC;AAOF,eAAO,MAAM,EAAE,EAAE,iBAuBhB,CAAC;AAmBF,eAAO,MAAM,MAAM,EAAE,iBA8DpB,CAAC"}
@@ -0,0 +1,113 @@
1
+ export const CLAUDE_CODE = {
2
+ runtime: "claude-code",
3
+ steering: true,
4
+ permissions: "modes",
5
+ questions: true,
6
+ mcp: "full",
7
+ execution: ["shell", "js"],
8
+ effort: true,
9
+ fastMode: true,
10
+ isolation: "namespace",
11
+ commands: true,
12
+ terminals: true,
13
+ recovery: true,
14
+ instructions: "replace",
15
+ skillDiscovery: "native",
16
+ rulebook: "hooks",
17
+ secrets: "masked",
18
+ };
19
+ export const CODEX = {
20
+ runtime: "codex",
21
+ steering: true,
22
+ permissions: "plan",
23
+ questions: true,
24
+ mcp: "browser",
25
+ execution: ["shell"],
26
+ effort: true,
27
+ fastMode: false,
28
+ isolation: "namespace",
29
+ commands: true,
30
+ terminals: false,
31
+ recovery: false,
32
+ instructions: "replace",
33
+ skillDiscovery: "native",
34
+ rulebook: "approval",
35
+ secrets: "none",
36
+ };
37
+ export const OPENCODE = {
38
+ runtime: "opencode",
39
+ steering: false,
40
+ permissions: "plan",
41
+ questions: false,
42
+ mcp: "none",
43
+ execution: ["shell"],
44
+ effort: false,
45
+ fastMode: false,
46
+ isolation: "cwd",
47
+ commands: false,
48
+ terminals: false,
49
+ recovery: false,
50
+ instructions: "append",
51
+ skillDiscovery: "prompt",
52
+ rulebook: "refuse-only",
53
+ secrets: "none",
54
+ };
55
+ export const OPENCODE_GEMINI = {
56
+ ...OPENCODE,
57
+ runtime: "opencode-gemini",
58
+ };
59
+ export const ACP = {
60
+ runtime: "acp",
61
+ steering: false,
62
+ permissions: "plan",
63
+ questions: false,
64
+ mcp: "http",
65
+ execution: ["shell"],
66
+ effort: false,
67
+ fastMode: false,
68
+ isolation: "cwd",
69
+ commands: true,
70
+ terminals: true,
71
+ recovery: false,
72
+ instructions: "none",
73
+ skillDiscovery: "prompt",
74
+ rulebook: "approval",
75
+ secrets: "none",
76
+ };
77
+ export const PI = {
78
+ runtime: "pi",
79
+ steering: true,
80
+ permissions: "plan",
81
+ questions: false,
82
+ mcp: "none",
83
+ execution: ["shell"],
84
+ effort: true,
85
+ fastMode: false,
86
+ isolation: "cwd",
87
+ commands: true,
88
+ terminals: false,
89
+ recovery: false,
90
+ instructions: "none",
91
+ skillDiscovery: "prompt",
92
+ rulebook: "none",
93
+ secrets: "none",
94
+ };
95
+ export const CURSOR = {
96
+ runtime: "cursor",
97
+ steering: false,
98
+ permissions: "plan",
99
+ questions: true,
100
+ mcp: "tools",
101
+ execution: ["shell"],
102
+ effort: true,
103
+ fastMode: false,
104
+ isolation: "cwd",
105
+ commands: false,
106
+ terminals: false,
107
+ recovery: true,
108
+ instructions: "append",
109
+ skillDiscovery: "prompt",
110
+ rulebook: "hooks",
111
+ secrets: "none",
112
+ };
113
+ //# sourceMappingURL=agent-runtimes.js.map