@withbuddi/buddi 0.1.0-pre.19 → 0.1.0-pre.20

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 (222) hide show
  1. package/README.md +1 -1
  2. package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
  3. package/node_modules/@buddi/cli/dist/commands.js +1 -1
  4. package/node_modules/@buddi/cli/dist/commands.js.map +1 -1
  5. package/node_modules/@buddi/cli/dist/main.d.ts.map +1 -1
  6. package/node_modules/@buddi/cli/dist/main.js +12 -2
  7. package/node_modules/@buddi/cli/dist/main.js.map +1 -1
  8. package/node_modules/@buddi/cli/dist/status.d.ts +10 -0
  9. package/node_modules/@buddi/cli/dist/status.d.ts.map +1 -1
  10. package/node_modules/@buddi/cli/dist/status.js +4 -0
  11. package/node_modules/@buddi/cli/dist/status.js.map +1 -1
  12. package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
  13. package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
  14. package/node_modules/@buddi/core/dist/agents/catalog.js +7 -1
  15. package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
  16. package/node_modules/@buddi/core/dist/provider-accounts.d.ts +7 -1
  17. package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
  18. package/node_modules/@buddi/core/dist/provider-accounts.js +14 -1
  19. package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
  20. package/node_modules/@buddi/core/dist/provider.d.ts +6 -0
  21. package/node_modules/@buddi/core/dist/provider.d.ts.map +1 -1
  22. package/node_modules/@buddi/core/dist/provider.js.map +1 -1
  23. package/node_modules/@buddi/core/migrations/046_ollama_device_key.sql +7 -0
  24. package/node_modules/@buddi/core/migrations/047_reported_context_windows.sql +5 -0
  25. package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
  26. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts +24 -11
  27. package/node_modules/@buddi/gateway/dist/codex-accounts.d.ts.map +1 -1
  28. package/node_modules/@buddi/gateway/dist/codex-accounts.js +151 -215
  29. package/node_modules/@buddi/gateway/dist/codex-accounts.js.map +1 -1
  30. package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
  31. package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
  32. package/node_modules/@buddi/gateway/dist/index.js +1 -0
  33. package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
  34. package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts +87 -0
  35. package/node_modules/@buddi/gateway/dist/ollama-accounts.d.ts.map +1 -0
  36. package/node_modules/@buddi/gateway/dist/ollama-accounts.js +179 -0
  37. package/node_modules/@buddi/gateway/dist/ollama-accounts.js.map +1 -0
  38. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +47 -1
  39. package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts.map +1 -1
  40. package/node_modules/@buddi/gateway/dist/provider-accounts.js +182 -25
  41. package/node_modules/@buddi/gateway/dist/provider-accounts.js.map +1 -1
  42. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  43. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js +10 -3
  44. package/node_modules/@buddi/gateway/dist/surfaces/context-budget.js.map +1 -1
  45. package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
  46. package/node_modules/@buddi/gateway/dist/web/server.js +16 -13
  47. package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
  48. package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
  49. package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
  50. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts +55 -0
  51. package/node_modules/@buddi/runtime/dist/codex-direct.d.ts.map +1 -0
  52. package/node_modules/@buddi/runtime/dist/codex-direct.js +334 -0
  53. package/node_modules/@buddi/runtime/dist/codex-direct.js.map +1 -0
  54. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts +66 -0
  55. package/node_modules/@buddi/runtime/dist/codex-oauth.d.ts.map +1 -0
  56. package/node_modules/@buddi/runtime/dist/codex-oauth.js +210 -0
  57. package/node_modules/@buddi/runtime/dist/codex-oauth.js.map +1 -0
  58. package/node_modules/@buddi/runtime/dist/codex-profile.d.ts +19 -0
  59. package/node_modules/@buddi/runtime/dist/codex-profile.d.ts.map +1 -0
  60. package/node_modules/@buddi/runtime/dist/codex-profile.js +99 -0
  61. package/node_modules/@buddi/runtime/dist/codex-profile.js.map +1 -0
  62. package/node_modules/@buddi/runtime/dist/context-window.d.ts.map +1 -1
  63. package/node_modules/@buddi/runtime/dist/context-window.js +4 -0
  64. package/node_modules/@buddi/runtime/dist/context-window.js.map +1 -1
  65. package/node_modules/@buddi/runtime/dist/delegate.d.ts +24 -0
  66. package/node_modules/@buddi/runtime/dist/delegate.d.ts.map +1 -1
  67. package/node_modules/@buddi/runtime/dist/delegate.js +87 -11
  68. package/node_modules/@buddi/runtime/dist/delegate.js.map +1 -1
  69. package/node_modules/@buddi/runtime/dist/index.d.ts +4 -4
  70. package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
  71. package/node_modules/@buddi/runtime/dist/index.js +5 -5
  72. package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
  73. package/node_modules/@buddi/runtime/dist/loop.d.ts +7 -0
  74. package/node_modules/@buddi/runtime/dist/loop.d.ts.map +1 -1
  75. package/node_modules/@buddi/runtime/dist/loop.js +48 -8
  76. package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
  77. package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts +52 -0
  78. package/node_modules/@buddi/runtime/dist/ollama-signing.d.ts.map +1 -0
  79. package/node_modules/@buddi/runtime/dist/ollama-signing.js +154 -0
  80. package/node_modules/@buddi/runtime/dist/ollama-signing.js.map +1 -0
  81. package/node_modules/@buddi/runtime/dist/openai.d.ts.map +1 -1
  82. package/node_modules/@buddi/runtime/dist/openai.js +21 -7
  83. package/node_modules/@buddi/runtime/dist/openai.js.map +1 -1
  84. package/node_modules/@buddi/runtime/dist/provider-models.d.ts +2 -0
  85. package/node_modules/@buddi/runtime/dist/provider-models.d.ts.map +1 -1
  86. package/node_modules/@buddi/runtime/dist/provider-models.js +8 -3
  87. package/node_modules/@buddi/runtime/dist/provider-models.js.map +1 -1
  88. package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
  89. package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
  90. package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
  91. package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
  92. package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
  93. package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
  94. package/package.json +2 -2
  95. package/packages/cli/dist/.tsbuildinfo +1 -1
  96. package/packages/cli/dist/commands.js +1 -1
  97. package/packages/cli/dist/commands.js.map +1 -1
  98. package/packages/cli/dist/main.d.ts.map +1 -1
  99. package/packages/cli/dist/main.js +12 -2
  100. package/packages/cli/dist/main.js.map +1 -1
  101. package/packages/cli/dist/status.d.ts +10 -0
  102. package/packages/cli/dist/status.d.ts.map +1 -1
  103. package/packages/cli/dist/status.js +4 -0
  104. package/packages/cli/dist/status.js.map +1 -1
  105. package/packages/core/dist/.tsbuildinfo +1 -1
  106. package/packages/core/dist/agents/catalog.d.ts.map +1 -1
  107. package/packages/core/dist/agents/catalog.js +7 -1
  108. package/packages/core/dist/agents/catalog.js.map +1 -1
  109. package/packages/core/dist/provider-accounts.d.ts +7 -1
  110. package/packages/core/dist/provider-accounts.d.ts.map +1 -1
  111. package/packages/core/dist/provider-accounts.js +14 -1
  112. package/packages/core/dist/provider-accounts.js.map +1 -1
  113. package/packages/core/dist/provider.d.ts +6 -0
  114. package/packages/core/dist/provider.d.ts.map +1 -1
  115. package/packages/core/dist/provider.js.map +1 -1
  116. package/packages/core/migrations/046_ollama_device_key.sql +7 -0
  117. package/packages/core/migrations/047_reported_context_windows.sql +5 -0
  118. package/packages/gateway/dist/.tsbuildinfo +1 -1
  119. package/packages/gateway/dist/codex-accounts.d.ts +24 -11
  120. package/packages/gateway/dist/codex-accounts.d.ts.map +1 -1
  121. package/packages/gateway/dist/codex-accounts.js +151 -215
  122. package/packages/gateway/dist/codex-accounts.js.map +1 -1
  123. package/packages/gateway/dist/index.d.ts +1 -0
  124. package/packages/gateway/dist/index.d.ts.map +1 -1
  125. package/packages/gateway/dist/index.js +1 -0
  126. package/packages/gateway/dist/index.js.map +1 -1
  127. package/packages/gateway/dist/ollama-accounts.d.ts +87 -0
  128. package/packages/gateway/dist/ollama-accounts.d.ts.map +1 -0
  129. package/packages/gateway/dist/ollama-accounts.js +179 -0
  130. package/packages/gateway/dist/ollama-accounts.js.map +1 -0
  131. package/packages/gateway/dist/provider-accounts.d.ts +47 -1
  132. package/packages/gateway/dist/provider-accounts.d.ts.map +1 -1
  133. package/packages/gateway/dist/provider-accounts.js +182 -25
  134. package/packages/gateway/dist/provider-accounts.js.map +1 -1
  135. package/packages/gateway/dist/surfaces/context-budget.d.ts.map +1 -1
  136. package/packages/gateway/dist/surfaces/context-budget.js +10 -3
  137. package/packages/gateway/dist/surfaces/context-budget.js.map +1 -1
  138. package/packages/gateway/dist/web/server.d.ts.map +1 -1
  139. package/packages/gateway/dist/web/server.js +16 -13
  140. package/packages/gateway/dist/web/server.js.map +1 -1
  141. package/packages/install/dist/.tsbuildinfo +1 -1
  142. package/packages/runtime/dist/.tsbuildinfo +1 -1
  143. package/packages/runtime/dist/codex-direct.d.ts +55 -0
  144. package/packages/runtime/dist/codex-direct.d.ts.map +1 -0
  145. package/packages/runtime/dist/codex-direct.js +334 -0
  146. package/packages/runtime/dist/codex-direct.js.map +1 -0
  147. package/packages/runtime/dist/codex-oauth.d.ts +66 -0
  148. package/packages/runtime/dist/codex-oauth.d.ts.map +1 -0
  149. package/packages/runtime/dist/codex-oauth.js +210 -0
  150. package/packages/runtime/dist/codex-oauth.js.map +1 -0
  151. package/packages/runtime/dist/codex-profile.d.ts +19 -0
  152. package/packages/runtime/dist/codex-profile.d.ts.map +1 -0
  153. package/packages/runtime/dist/codex-profile.js +99 -0
  154. package/packages/runtime/dist/codex-profile.js.map +1 -0
  155. package/packages/runtime/dist/context-window.d.ts.map +1 -1
  156. package/packages/runtime/dist/context-window.js +4 -0
  157. package/packages/runtime/dist/context-window.js.map +1 -1
  158. package/packages/runtime/dist/delegate.d.ts +24 -0
  159. package/packages/runtime/dist/delegate.d.ts.map +1 -1
  160. package/packages/runtime/dist/delegate.js +87 -11
  161. package/packages/runtime/dist/delegate.js.map +1 -1
  162. package/packages/runtime/dist/index.d.ts +4 -4
  163. package/packages/runtime/dist/index.d.ts.map +1 -1
  164. package/packages/runtime/dist/index.js +5 -5
  165. package/packages/runtime/dist/index.js.map +1 -1
  166. package/packages/runtime/dist/loop.d.ts +7 -0
  167. package/packages/runtime/dist/loop.d.ts.map +1 -1
  168. package/packages/runtime/dist/loop.js +48 -8
  169. package/packages/runtime/dist/loop.js.map +1 -1
  170. package/packages/runtime/dist/ollama-signing.d.ts +52 -0
  171. package/packages/runtime/dist/ollama-signing.d.ts.map +1 -0
  172. package/packages/runtime/dist/ollama-signing.js +154 -0
  173. package/packages/runtime/dist/ollama-signing.js.map +1 -0
  174. package/packages/runtime/dist/openai.d.ts.map +1 -1
  175. package/packages/runtime/dist/openai.js +21 -7
  176. package/packages/runtime/dist/openai.js.map +1 -1
  177. package/packages/runtime/dist/provider-models.d.ts +2 -0
  178. package/packages/runtime/dist/provider-models.d.ts.map +1 -1
  179. package/packages/runtime/dist/provider-models.js +8 -3
  180. package/packages/runtime/dist/provider-models.js.map +1 -1
  181. package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
  182. package/packages/tools/browser/dist/.tsbuildinfo +1 -1
  183. package/packages/tools/email/dist/.tsbuildinfo +1 -1
  184. package/packages/tools/host/dist/.tsbuildinfo +1 -1
  185. package/packages/tools/memory/dist/.tsbuildinfo +1 -1
  186. package/packages/tools/web/dist/.tsbuildinfo +1 -1
  187. package/packages/web/dist/assets/index-BRc5auXm.js +123 -0
  188. package/packages/web/dist/assets/{index-B727JQsO.css → index-DwUpotTR.css} +1 -1
  189. package/packages/web/dist/index.html +2 -2
  190. package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts +0 -20
  191. package/node_modules/@buddi/runtime/dist/codex-app-server.d.ts.map +0 -1
  192. package/node_modules/@buddi/runtime/dist/codex-app-server.js +0 -172
  193. package/node_modules/@buddi/runtime/dist/codex-app-server.js.map +0 -1
  194. package/node_modules/@buddi/runtime/dist/codex-policy.d.ts +0 -6
  195. package/node_modules/@buddi/runtime/dist/codex-policy.d.ts.map +0 -1
  196. package/node_modules/@buddi/runtime/dist/codex-policy.js +0 -79
  197. package/node_modules/@buddi/runtime/dist/codex-policy.js.map +0 -1
  198. package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts +0 -34
  199. package/node_modules/@buddi/runtime/dist/codex-rpc.d.ts.map +0 -1
  200. package/node_modules/@buddi/runtime/dist/codex-rpc.js +0 -152
  201. package/node_modules/@buddi/runtime/dist/codex-rpc.js.map +0 -1
  202. package/node_modules/@buddi/runtime/dist/codex-session.d.ts +0 -30
  203. package/node_modules/@buddi/runtime/dist/codex-session.d.ts.map +0 -1
  204. package/node_modules/@buddi/runtime/dist/codex-session.js +0 -169
  205. package/node_modules/@buddi/runtime/dist/codex-session.js.map +0 -1
  206. package/packages/runtime/dist/codex-app-server.d.ts +0 -20
  207. package/packages/runtime/dist/codex-app-server.d.ts.map +0 -1
  208. package/packages/runtime/dist/codex-app-server.js +0 -172
  209. package/packages/runtime/dist/codex-app-server.js.map +0 -1
  210. package/packages/runtime/dist/codex-policy.d.ts +0 -6
  211. package/packages/runtime/dist/codex-policy.d.ts.map +0 -1
  212. package/packages/runtime/dist/codex-policy.js +0 -79
  213. package/packages/runtime/dist/codex-policy.js.map +0 -1
  214. package/packages/runtime/dist/codex-rpc.d.ts +0 -34
  215. package/packages/runtime/dist/codex-rpc.d.ts.map +0 -1
  216. package/packages/runtime/dist/codex-rpc.js +0 -152
  217. package/packages/runtime/dist/codex-rpc.js.map +0 -1
  218. package/packages/runtime/dist/codex-session.d.ts +0 -30
  219. package/packages/runtime/dist/codex-session.d.ts.map +0 -1
  220. package/packages/runtime/dist/codex-session.js +0 -169
  221. package/packages/runtime/dist/codex-session.js.map +0 -1
  222. package/packages/web/dist/assets/index-OA0xgibo.js +0 -123
@@ -1,5 +1,5 @@
1
1
  import type { CodexProfile, Vault } from '@buddi/core';
2
- import { type CodexSession, type CompletionRequest, type CompletionResponse, type AccountModels } from '@buddi/runtime';
2
+ import { CodexOAuthProtocol, type AccountModels, type CompletionRequest, type CompletionResponse, type HttpTransport } from '@buddi/runtime';
3
3
  export interface CodexLoginView {
4
4
  state: 'pending' | 'connected' | 'cancelled' | 'failed';
5
5
  verificationUrl?: string;
@@ -15,38 +15,51 @@ export interface CodexAccountAccess {
15
15
  check(): Promise<void>;
16
16
  }
17
17
  /**
18
- * Owns only native account sessions, not permission decisions or tool execution.
19
- * Operations on one account are exclusive; other accounts remain independent.
20
- * The gateway must hold a cross-process account lock for each operation.
18
+ * ChatGPT subscription accounts: buddi's own device sign-in, the refresh of
19
+ * the vault envelope, and the calls that use it. Operations on one account are
20
+ * exclusive; other accounts stay independent. The gateway holds a
21
+ * cross-process account lock around each operation, which is what makes the
22
+ * single-use refresh token safe to rotate.
21
23
  */
22
24
  export declare class CodexAccounts {
23
25
  #private;
24
26
  readonly deps: {
25
27
  vault: Vault;
26
- open?: (credential: string | null) => Promise<CodexSession>;
28
+ protocol?: CodexOAuthProtocol;
29
+ transport?: HttpTransport;
30
+ now?: () => number;
27
31
  loginTimeoutMs?: number;
28
32
  };
33
+ readonly protocol: CodexOAuthProtocol;
34
+ readonly now: () => number;
29
35
  constructor(deps: {
30
36
  vault: Vault;
31
- open?: (credential: string | null) => Promise<CodexSession>;
37
+ protocol?: CodexOAuthProtocol;
38
+ transport?: HttpTransport;
39
+ now?: () => number;
32
40
  loginTimeoutMs?: number;
33
41
  });
34
42
  view(id: string): CodexLoginView | null;
35
43
  cancel(id: string): Promise<void>;
36
44
  forget(id: string): void;
37
- /** No credential is loaded for sign-in, so reconnect cannot reuse another login. */
45
+ /**
46
+ * Device sign-in: the owner opens the link, types the code on openai.com,
47
+ * and buddi polls in the background. Nothing is written to the vault until
48
+ * the tokens are in hand and the account is rechecked, so a cancelled or
49
+ * failed reconnect keeps the old credential.
50
+ */
38
51
  login(access: CodexAccountAccess): Promise<{
39
52
  view: CodexLoginView;
40
53
  finished: Promise<void>;
41
54
  }>;
42
55
  complete(access: CodexAccountAccess, model: string, request: CompletionRequest): Promise<CompletionResponse>;
56
+ models(access: CodexAccountAccess): Promise<AccountModels>;
43
57
  /**
44
58
  * Stage this account's credential in a private profile and hand it to `use`,
45
- * which runs its own native child (the image plugin's `codex exec`). The
46
- * same exclusivity, recheck and refresh-save as a completion; the profile is
47
- * removed afterwards whatever happened.
59
+ * which runs its own native child (the image plugin's `codex exec`). A
60
+ * refresh the child made is saved back; the profile is removed afterwards
61
+ * whatever happened.
48
62
  */
49
63
  withProfile<T>(access: CodexAccountAccess, use: (profile: CodexProfile) => Promise<T>): Promise<T>;
50
- models(access: CodexAccountAccess): Promise<AccountModels>;
51
64
  }
52
65
  //# sourceMappingURL=codex-accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-accounts.d.ts","sourceRoot":"","sources":["../src/codex-accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAEL,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EACpD,KAAK,aAAa,EACjC,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,aAAa;;IAGZ,QAAQ,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;gBAJoB,IAAI,EAAE;QACzB,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IACD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IACjC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUxB,oFAAoF;IAC9E,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAoF7F,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0BlH;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBlG,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;CAqCjE"}
1
+ {"version":3,"file":"codex-accounts.d.ts","sourceRoot":"","sources":["../src/codex-accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAAoB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAC1G,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAKD;;;;;;GAMG;AACH,qBAAa,aAAa;;IAKZ,QAAQ,CAAC,IAAI,EAAE;QACzB,KAAK,EAAE,KAAK,CAAC;QACb,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IARD,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;gBACN,IAAI,EAAE;QACzB,KAAK,EAAE,KAAK,CAAC;QACb,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAID,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IACjC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAoCxB;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IA6D7F,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS5G,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOhE;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAkBzG"}
@@ -1,270 +1,206 @@
1
- import { createCodexAppServerAdapter, initializeCodex, openCodexSession, assertCodexIsolation, stageCodexProfile, modelOptions, } from '@buddi/runtime';
1
+ import { CodexOAuthProtocol, createCodexDirectAdapter, listCodexModels, readCodexTokens, stageCodexProfile, } from '@buddi/runtime';
2
+ const REFRESH_SKEW_MS = 5 * 60_000;
3
+ const SAVE_FAILED = 'Could not save ChatGPT credentials securely. Check the host vault and reconnect.';
2
4
  /**
3
- * Owns only native account sessions, not permission decisions or tool execution.
4
- * Operations on one account are exclusive; other accounts remain independent.
5
- * The gateway must hold a cross-process account lock for each operation.
5
+ * ChatGPT subscription accounts: buddi's own device sign-in, the refresh of
6
+ * the vault envelope, and the calls that use it. Operations on one account are
7
+ * exclusive; other accounts stay independent. The gateway holds a
8
+ * cross-process account lock around each operation, which is what makes the
9
+ * single-use refresh token safe to rotate.
6
10
  */
7
11
  export class CodexAccounts {
8
12
  deps;
9
13
  #active = new Map();
10
14
  #logins = new Map();
15
+ protocol;
16
+ now;
11
17
  constructor(deps) {
12
18
  this.deps = deps;
19
+ this.now = deps.now ?? Date.now;
20
+ this.protocol = deps.protocol ?? new CodexOAuthProtocol(deps.transport, this.now);
13
21
  }
14
22
  view(id) { return this.#logins.get(id) ?? null; }
15
23
  async cancel(id) { await this.#active.get(id)?.cancel(); }
16
24
  forget(id) { this.#logins.delete(id); }
17
25
  #reserve(id, cancel) {
18
26
  if (this.#active.has(id))
19
- throw new Error('This Codex account is busy. Finish or cancel its current operation first.');
27
+ throw new Error('This ChatGPT account is busy. Finish or cancel its current operation first.');
20
28
  this.#active.set(id, { cancel });
21
29
  }
22
- async #open(access, credential) {
30
+ /** Run `work` holding the account; `cancel` aborts it. */
31
+ async #exclusive(id, work) {
32
+ const controller = new AbortController();
33
+ let finish;
34
+ const finished = new Promise(resolve => { finish = resolve; });
35
+ this.#reserve(id, async () => { controller.abort(); await finished; });
36
+ try {
37
+ return await work(controller.signal);
38
+ }
39
+ finally {
40
+ this.#active.delete(id);
41
+ finish();
42
+ }
43
+ }
44
+ /**
45
+ * The account's tokens, refreshed when they expire within five minutes. A
46
+ * durable `refreshing` marker is written first so a crash or a failed save
47
+ * never lets another process replay a consumed refresh token.
48
+ */
49
+ async #credential(access) {
50
+ const raw = await this.deps.vault.get(access.secretRef);
51
+ if (!raw)
52
+ throw new Error('Connect this ChatGPT subscription account first.');
53
+ const tokens = readCodexTokens(raw);
54
+ if (tokens.state !== 'ready')
55
+ throw new Error('ChatGPT token refresh was interrupted or failed. Reconnect this account.');
56
+ if (tokens.expiresAt > this.now() + REFRESH_SKEW_MS)
57
+ return tokens;
23
58
  await access.check();
24
- return (this.deps.open ?? openCodexSession)(credential);
59
+ await this.deps.vault.set(access.secretRef, JSON.stringify({ ...tokens, state: 'refreshing' }));
60
+ let rotated;
61
+ try {
62
+ rotated = await this.protocol.refresh(tokens);
63
+ }
64
+ catch {
65
+ throw new Error('ChatGPT token refresh failed. Reconnect this account.');
66
+ }
67
+ try {
68
+ await this.deps.vault.set(access.secretRef, JSON.stringify(rotated));
69
+ }
70
+ catch {
71
+ throw new Error('ChatGPT credentials rotated but could not be saved. Reconnect this account.');
72
+ }
73
+ return rotated;
25
74
  }
26
- /** No credential is loaded for sign-in, so reconnect cannot reuse another login. */
75
+ /**
76
+ * Device sign-in: the owner opens the link, types the code on openai.com,
77
+ * and buddi polls in the background. Nothing is written to the vault until
78
+ * the tokens are in hand and the account is rechecked, so a cancelled or
79
+ * failed reconnect keeps the old credential.
80
+ */
27
81
  async login(access) {
28
- let session;
29
82
  let cancelled = false;
30
- let finish;
31
- const finished = new Promise((resolve) => { finish = resolve; });
32
- let cleanup;
33
- let timer;
34
- let removeListener = () => { };
35
- let removeClose = () => { };
36
- let loginId;
37
- let earlyCompletion;
38
83
  let committing = false;
39
- const end = (state, message) => {
40
- if (cleanup)
41
- return cleanup;
42
- cleanup = (async () => {
43
- clearTimeout(timer);
44
- removeListener();
45
- removeClose();
46
- try {
47
- if (session) {
48
- await session.rpc.close();
49
- if (state === 'connected' && !cancelled) {
50
- const credential = await session.credential();
51
- if (!credential)
52
- throw new Error('No subscription credential was saved.');
53
- await access.check();
54
- if (cancelled)
55
- throw new Error('Sign-in cancelled.');
56
- committing = true;
57
- await this.deps.vault.set(access.secretRef, credential);
58
- }
59
- }
60
- this.#logins.set(access.id, { state: cancelled ? 'cancelled' : state, message });
61
- }
62
- catch {
63
- this.#logins.set(access.id, { state: 'failed', message: 'Could not finish sign-in securely. Check the host vault and reconnect.' });
64
- }
65
- finally {
66
- try {
67
- await session?.dispose();
68
- }
69
- finally {
70
- this.#active.delete(access.id);
71
- finish();
72
- }
73
- }
74
- })();
75
- // Login completion is asynchronous. Surface a sanitized state, not an
76
- // unhandled rejection containing filesystem/authentication details.
77
- void cleanup.catch(() => { this.#logins.set(access.id, { state: 'failed', message: 'Native session cleanup failed. Check the host.' }); });
78
- return cleanup;
79
- };
84
+ let wake;
85
+ let finish;
86
+ const finished = new Promise(resolve => { finish = resolve; });
87
+ const release = () => { this.#active.delete(access.id); finish(); };
80
88
  this.#reserve(access.id, async () => {
81
- if (committing) {
82
- await cleanup;
83
- return;
89
+ if (!committing) {
90
+ cancelled = true;
91
+ wake?.();
84
92
  }
85
- cancelled = true;
86
- if (session && loginId)
87
- await session.rpc.request('account/login/cancel', { loginId }).catch(() => { });
88
- await end('cancelled');
93
+ await finished;
89
94
  });
95
+ let start;
90
96
  try {
91
- session = await this.#open(access, null);
92
- if (cancelled) {
93
- await session.dispose();
97
+ await access.check();
98
+ start = await this.protocol.startDevice();
99
+ if (cancelled)
94
100
  throw new Error('Sign-in cancelled.');
95
- }
96
- await initializeCodex(session.rpc);
97
- await assertCodexIsolation(session.rpc, session.cwd);
98
- removeClose = session.rpc.onClose(() => { void end('failed', 'Codex sign-in process closed.'); });
99
- removeListener = session.rpc.onMessage(message => {
100
- if (message.method !== 'account/login/completed')
101
- return;
102
- const result = message.params;
103
- if (!loginId) {
104
- earlyCompletion = result;
105
- return;
106
- }
107
- if (result.loginId !== loginId)
108
- return;
109
- void end(result.success ? 'connected' : 'failed', result.success ? undefined : 'Sign-in did not complete. Try again.');
110
- });
111
- const result = await session.rpc.request('account/login/start', { type: 'chatgptDeviceCode' });
112
- if (result.type !== 'chatgptDeviceCode' || typeof result.loginId !== 'string' ||
113
- result.verificationUrl !== 'https://auth.openai.com/codex/device' ||
114
- typeof result.userCode !== 'string' || !/^[A-Za-z0-9-]{4,32}$/.test(result.userCode)) {
115
- throw new Error('Codex returned an unsupported device sign-in response.');
116
- }
117
- loginId = result.loginId;
118
- if (cancelled || cleanup)
119
- throw new Error('Sign-in ended before the device challenge was ready.');
120
- const timeout = this.deps.loginTimeoutMs ?? 5 * 60_000;
121
- const view = { state: 'pending', verificationUrl: result.verificationUrl, userCode: result.userCode,
122
- expiresAt: new Date(Date.now() + timeout).toISOString() };
123
- this.#logins.set(access.id, view);
124
- timer = setTimeout(() => { cancelled = true; void end('cancelled', 'Sign-in timed out. Start again.'); }, timeout);
125
- timer.unref();
126
- if (earlyCompletion?.loginId === loginId)
127
- void end(earlyCompletion.success ? 'connected' : 'failed');
128
- return { view, finished };
129
101
  }
130
102
  catch (error) {
131
- await end('failed', 'Could not start Codex sign-in. Check the installed client and host vault.');
103
+ const message = error instanceof Error && /ChatGPT|Device code|cancelled/.test(error.message) ? error.message : 'Could not start ChatGPT sign-in. Check the host vault and try again.';
104
+ this.#logins.set(access.id, { state: cancelled ? 'cancelled' : 'failed', message });
105
+ release();
132
106
  throw error;
133
107
  }
134
- }
135
- async complete(access, model, request) {
136
- let session;
137
- const controller = new AbortController();
138
- let finish;
139
- const finished = new Promise((resolve) => { finish = resolve; });
140
- this.#reserve(access.id, async () => { controller.abort(); await session?.rpc.close(); await finished; });
141
- try {
142
- const credential = await this.deps.vault.get(access.secretRef);
143
- if (!credential)
144
- throw new Error('Connect this Codex subscription account first.');
145
- session = await this.#open(access, credential);
146
- const signal = request.signal ? AbortSignal.any([request.signal, controller.signal]) : controller.signal;
147
- return await createCodexAppServerAdapter({ model, cwd: session.cwd, connect: () => session.rpc }).complete({ ...request, signal });
148
- }
149
- finally {
108
+ const deadline = Math.min(start.expiresAt, this.now() + (this.deps.loginTimeoutMs ?? 15 * 60_000));
109
+ const view = { state: 'pending', verificationUrl: start.verificationUrl, userCode: start.userCode, expiresAt: new Date(deadline).toISOString() };
110
+ this.#logins.set(access.id, view);
111
+ const end = (state, message) => {
112
+ this.#logins.set(access.id, { state: cancelled && state !== 'connected' ? 'cancelled' : state, ...(message ? { message } : {}) });
113
+ };
114
+ const sleep = (ms) => new Promise(resolve => {
115
+ const timer = setTimeout(resolve, Math.max(0, Math.min(ms, deadline - this.now())));
116
+ timer.unref?.();
117
+ wake = () => { clearTimeout(timer); resolve(); };
118
+ });
119
+ const poll = async () => {
120
+ let interval = start.intervalMs;
150
121
  try {
151
- if (session) {
152
- await session.rpc.close();
153
- const refreshed = await session.credential();
154
- if (refreshed && !controller.signal.aborted) {
155
- await access.check();
156
- await this.deps.vault.set(access.secretRef, refreshed);
122
+ for (;;) {
123
+ await sleep(interval);
124
+ if (cancelled)
125
+ return end('cancelled', 'Sign-in cancelled.');
126
+ if (this.now() >= deadline)
127
+ return end('failed', 'Sign-in timed out. Start again.');
128
+ const result = await this.protocol.pollDevice(start.deviceAuthId, start.userCode);
129
+ if (cancelled)
130
+ return end('cancelled', 'Sign-in cancelled.');
131
+ if (result === 'pending')
132
+ continue;
133
+ if (result === 'slow_down') {
134
+ interval += 5_000;
135
+ continue;
136
+ }
137
+ if ('denied' in result)
138
+ return end('failed', result.denied);
139
+ const tokens = await this.protocol.exchange(result);
140
+ await access.check().catch(() => { throw new Error('This account was changed or disabled during sign-in. Start again.'); });
141
+ if (cancelled)
142
+ return end('cancelled', 'Sign-in cancelled.');
143
+ committing = true;
144
+ try {
145
+ await this.deps.vault.set(access.secretRef, JSON.stringify(tokens));
157
146
  }
147
+ catch {
148
+ return end('failed', SAVE_FAILED);
149
+ }
150
+ return end('connected');
158
151
  }
159
152
  }
153
+ catch (error) {
154
+ end('failed', error instanceof Error && /ChatGPT|account|Start/.test(error.message) ? error.message : 'Sign-in did not complete. Try again.');
155
+ }
160
156
  finally {
161
- try {
162
- await session?.dispose();
163
- }
164
- finally {
165
- this.#active.delete(access.id);
166
- finish();
167
- }
157
+ release();
168
158
  }
169
- }
159
+ };
160
+ void poll();
161
+ return { view, finished };
162
+ }
163
+ async complete(access, model, request) {
164
+ return this.#exclusive(access.id, async (abort) => {
165
+ const tokens = await this.#credential(access);
166
+ const signal = request.signal ? AbortSignal.any([request.signal, abort]) : abort;
167
+ return createCodexDirectAdapter({ model, accessToken: tokens.accessToken, accountId: tokens.accountId, ...(this.deps.transport ? { transport: this.deps.transport } : {}) })
168
+ .complete({ ...request, signal });
169
+ });
170
+ }
171
+ async models(access) {
172
+ return this.#exclusive(access.id, async () => {
173
+ const tokens = await this.#credential(access);
174
+ return listCodexModels({ accessToken: tokens.accessToken, accountId: tokens.accountId, ...(this.deps.transport ? { transport: this.deps.transport } : {}) });
175
+ });
170
176
  }
171
177
  /**
172
178
  * Stage this account's credential in a private profile and hand it to `use`,
173
- * which runs its own native child (the image plugin's `codex exec`). The
174
- * same exclusivity, recheck and refresh-save as a completion; the profile is
175
- * removed afterwards whatever happened.
179
+ * which runs its own native child (the image plugin's `codex exec`). A
180
+ * refresh the child made is saved back; the profile is removed afterwards
181
+ * whatever happened.
176
182
  */
177
183
  async withProfile(access, use) {
178
- let finish;
179
- const finished = new Promise((resolve) => { finish = resolve; });
180
- let cancelled = false;
181
- this.#reserve(access.id, async () => { cancelled = true; await finished; });
182
- let staged;
183
- try {
184
- const credential = await this.deps.vault.get(access.secretRef);
185
- if (!credential)
186
- throw new Error('Connect this Codex subscription account first.');
184
+ return this.#exclusive(access.id, async (abort) => {
185
+ const tokens = await this.#credential(access);
187
186
  await access.check();
188
- staged = await stageCodexProfile(credential);
189
- return await use({ home: staged.home, env: staged.env });
190
- }
191
- finally {
187
+ const staged = await stageCodexProfile(tokens);
192
188
  try {
193
- if (staged) {
194
- const refreshed = await staged.credential().catch(() => null);
195
- if (refreshed && !cancelled) {
196
- await access.check();
197
- await this.deps.vault.set(access.secretRef, refreshed);
198
- }
199
- }
189
+ return await use({ home: staged.home, env: staged.env });
200
190
  }
201
191
  finally {
202
192
  try {
203
- await staged?.dispose();
204
- }
205
- finally {
206
- this.#active.delete(access.id);
207
- finish();
208
- }
209
- }
210
- }
211
- }
212
- async models(access) {
213
- let session;
214
- let cancelled = false;
215
- let finish;
216
- const finished = new Promise(resolve => { finish = resolve; });
217
- this.#reserve(access.id, async () => { cancelled = true; await session?.rpc.close(); await finished; });
218
- const timer = setTimeout(() => { cancelled = true; void session?.rpc.close().catch(() => { }); }, 20_000);
219
- try {
220
- const credential = await this.deps.vault.get(access.secretRef);
221
- if (!credential)
222
- throw new Error('Connect this Codex subscription account first.');
223
- session = await this.#open(access, credential);
224
- if (cancelled)
225
- throw new Error('Model discovery cancelled.');
226
- await initializeCodex(session.rpc);
227
- const models = [];
228
- const seen = new Set();
229
- let cursor;
230
- for (let page = 0; page < 10; page++) {
231
- const result = await session.rpc.request('model/list', { includeHidden: false, limit: 100, ...(cursor ? { cursor } : {}) });
232
- if (!Array.isArray(result.data))
233
- throw new Error('Invalid native model list.');
234
- models.push(...modelOptions(result.data, true));
235
- if (models.length > 1000)
236
- return { models: models.slice(0, 1000), truncated: true };
237
- if (!result.nextCursor)
238
- return { models: [...new Map(models.map(m => [m.id, m])).values()], truncated: false };
239
- if (typeof result.nextCursor !== 'string' || result.nextCursor.length > 2048 || seen.has(result.nextCursor))
240
- throw new Error('Invalid native model pagination.');
241
- cursor = result.nextCursor;
242
- seen.add(cursor);
243
- }
244
- return { models, truncated: true };
245
- }
246
- finally {
247
- clearTimeout(timer);
248
- try {
249
- if (session) {
250
- await session.rpc.close();
251
- const refreshed = await session.credential();
252
- if (refreshed && !cancelled) {
193
+ const after = await staged.credential().catch(() => null);
194
+ if (after && !abort.aborted && (after.accessToken !== tokens.accessToken || after.refreshToken !== tokens.refreshToken)) {
253
195
  await access.check();
254
- await this.deps.vault.set(access.secretRef, refreshed);
196
+ await this.deps.vault.set(access.secretRef, JSON.stringify(after));
255
197
  }
256
198
  }
257
- }
258
- finally {
259
- try {
260
- await session?.dispose();
261
- }
262
199
  finally {
263
- this.#active.delete(access.id);
264
- finish();
200
+ await staged.dispose();
265
201
  }
266
202
  }
267
- }
203
+ });
268
204
  }
269
205
  }
270
206
  //# sourceMappingURL=codex-accounts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-accounts.js","sourceRoot":"","sources":["../src/codex-accounts.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAEvG,YAAY,GACb,MAAM,gBAAgB,CAAC;AAexB;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAGH;IAFrB,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;IACzD,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,YAAqB,IAIpB;QAJoB,SAAI,GAAJ,IAAI,CAIxB;IAAG,CAAC;IACL,IAAI,CAAC,EAAU,IAA2B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,MAAM,CAAC,EAAU,IAAmB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,CAAC,EAAU,IAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAU,EAAE,MAA2B;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QACvH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,MAA0B,EAAE,UAAyB;QAC/D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,KAAK,CAAC,MAA0B;QACpC,IAAI,OAAiC,CAAC;QACtC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAmB,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,OAAkC,CAAC;QACvC,IAAI,KAAgD,CAAC;QACrD,IAAI,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,IAAI,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC3B,IAAI,OAA2B,CAAC;QAChC,IAAI,eAAoE,CAAC;QACzE,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,KAA8B,EAAE,OAAgB,EAAE,EAAE;YAC/D,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;YAC5B,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;gBACpB,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAC,cAAc,EAAE,CAAC;gBAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,CAAC;oBACH,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC1B,IAAI,KAAK,KAAK,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;4BACxC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;4BAC9C,IAAI,CAAC,UAAU;gCAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;4BAC1E,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;4BACrB,IAAI,SAAS;gCAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;4BACrD,UAAU,GAAG,IAAI,CAAC;4BAClB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;wBAC1D,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,wEAAwE,EAAE,CAAC,CAAC;gBACtI,CAAC;wBAAS,CAAC;oBACT,IAAI,CAAC;wBAAC,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC;oBAAC,CAAC;4BACzB,CAAC;wBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAAC,MAAM,EAAE,CAAC;oBAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,sEAAsE;YACtE,oEAAoE;YACpE,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3I,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAClC,IAAI,UAAU,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC1C,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvG,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,SAAS,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAAC,CAAC;YAClF,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACrD,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,yBAAyB;oBAAE,OAAO;gBACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiD,CAAC;gBACzE,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,eAAe,GAAG,MAAM,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;oBAAE,OAAO;gBACvC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;YACzH,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAE5F,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAC3E,MAAM,CAAC,eAAe,KAAK,sCAAsC;gBACjE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvF,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,IAAI,SAAS,IAAI,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,MAAM,CAAC;YACvD,MAAM,IAAI,GAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACjH,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnH,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,eAAe,EAAE,OAAO,KAAK,OAAO;gBAAE,KAAK,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACrG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,CAAC,QAAQ,EAAE,2EAA2E,CAAC,CAAC;YACjG,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA0B,EAAE,KAAa,EAAE,OAA0B;QAClF,IAAI,OAAiC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,MAAmB,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnF,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACzG,OAAO,MAAM,2BAA2B,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtI,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7C,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC5C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;wBACrB,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC;oBAAC,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC;gBAAC,CAAC;wBAAS,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM,EAAE,CAAC;gBAAC,CAAC;YAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAI,MAA0B,EAAE,GAA0C;QACzF,IAAI,MAAmB,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAiE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC9D,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;wBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;wBAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAAC,CAAC;gBAChH,CAAC;YACH,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC;oBAAC,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;gBAAC,CAAC;wBAAS,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM,EAAE,CAAC;gBAAC,CAAC;YAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA0B;QACrC,IAAI,OAAiC,CAAC;QACtC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,MAAmB,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,MAAM,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,KAAK,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACzG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnF,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,IAAI,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC7D,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,IAAI,MAA0B,CAAC;YAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAqD,CAAC;gBAChL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI;oBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACpF,IAAI,CAAC,MAAM,CAAC,UAAU;oBAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBAC/G,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACjK,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;gBAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC7C,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;wBAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;wBAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAAC,CAAC;gBAChH,CAAC;YACH,CAAC;oBAAS,CAAC;gBAAC,IAAI,CAAC;oBAAC,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC;gBAAC,CAAC;wBAAS,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM,EAAE,CAAC;gBAAC,CAAC;YAAC,CAAC;QACvG,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"codex-accounts.js","sourceRoot":"","sources":["../src/codex-accounts.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export { MCP_REQUEST_KINDS, throughMcp } from './mcp/requests.js';
21
21
  export { currentVersion, readUpgradeFile, type UpgradeFile } from './web/version.js';
22
22
  export { supervisorCall, type SupervisorReply } from './web/service.js';
23
23
  export { readAgentAttention, type AgentAttention, type AttentionSnapshot } from './web/attention.js';
24
+ export { readOllamaDevices, connectedLine } from './ollama-accounts.js';
24
25
  export { createHttpTransport, defaultHttpTransport, TransportError, type HttpTransport, type TransportRequest, type TransportResponse, } from '@buddi/runtime';
25
26
  export { main as runChatCli, parseArgs as parseChatArgs } from './cli.js';
26
27
  export { main as runAgentsCli, parseAgentsArgs } from './agents-cli.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMrG,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMxE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -23,6 +23,7 @@ export { MCP_REQUEST_KINDS, throughMcp } from './mcp/requests.js';
23
23
  export { currentVersion, readUpgradeFile } from './web/version.js';
24
24
  export { supervisorCall } from './web/service.js';
25
25
  export { readAgentAttention } from './web/attention.js';
26
+ export { readOllamaDevices, connectedLine } from './ollama-accounts.js';
26
27
  // The one outbound HTTP transport (packages/runtime/src/transport.ts), re-exported
27
28
  // because the CLI depends on the gateway and not on the runtime — and every
28
29
  // outbound call in this repo has to be able to reach it. `scripts/check-boundaries.mjs`
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAA+C,MAAM,oBAAoB,CAAC;AAErG,mFAAmF;AACnF,4EAA4E;AAC5E,wFAAwF;AACxF,qEAAqE;AACrE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GAIf,MAAM,gBAAgB,CAAC;AAExB,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,0FAA0F;AAC1F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,qFAAqF;AACrF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAoB,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAA+C,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE,mFAAmF;AACnF,4EAA4E;AAC5E,wFAAwF;AACxF,qEAAqE;AACrE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,GAIf,MAAM,gBAAgB,CAAC;AAExB,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,0FAA0F;AAC1F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}