deepclause-sdk 0.0.89 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/README.md +481 -941
  2. package/dist/agent.d.ts +19 -2
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +75 -21
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/config.d.ts +385 -178
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +161 -188
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.d.ts +3 -2
  11. package/dist/cli/index.d.ts.map +1 -1
  12. package/dist/cli/index.js +85 -411
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/login.d.ts +29 -0
  15. package/dist/cli/login.d.ts.map +1 -0
  16. package/dist/cli/login.js +184 -0
  17. package/dist/cli/login.js.map +1 -0
  18. package/dist/cli/readline.d.ts +6 -0
  19. package/dist/cli/readline.d.ts.map +1 -0
  20. package/dist/cli/readline.js +15 -0
  21. package/dist/cli/readline.js.map +1 -0
  22. package/dist/cli/repl-bin.d.ts +9 -0
  23. package/dist/cli/repl-bin.d.ts.map +1 -0
  24. package/dist/cli/repl-bin.js +16 -0
  25. package/dist/cli/repl-bin.js.map +1 -0
  26. package/dist/cli/repl.d.ts +216 -0
  27. package/dist/cli/repl.d.ts.map +1 -0
  28. package/dist/cli/repl.js +1392 -0
  29. package/dist/cli/repl.js.map +1 -0
  30. package/dist/cli/run.d.ts +17 -18
  31. package/dist/cli/run.d.ts.map +1 -1
  32. package/dist/cli/run.js +202 -183
  33. package/dist/cli/run.js.map +1 -1
  34. package/dist/cli/set-backend.d.ts +53 -0
  35. package/dist/cli/set-backend.d.ts.map +1 -0
  36. package/dist/cli/set-backend.js +259 -0
  37. package/dist/cli/set-backend.js.map +1 -0
  38. package/dist/cli/visualize.d.ts +42 -0
  39. package/dist/cli/visualize.d.ts.map +1 -0
  40. package/dist/cli/visualize.js +150 -0
  41. package/dist/cli/visualize.js.map +1 -0
  42. package/dist/compiler.d.ts +5 -52
  43. package/dist/compiler.d.ts.map +1 -1
  44. package/dist/compiler.js +4 -768
  45. package/dist/compiler.js.map +1 -1
  46. package/dist/index.d.ts +27 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +18 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/prolog/bridge.d.ts +5 -1
  51. package/dist/prolog/bridge.d.ts.map +1 -1
  52. package/dist/prolog/bridge.js +10 -1
  53. package/dist/prolog/bridge.js.map +1 -1
  54. package/dist/prolog-src/deepclause_analysis.pl +10 -2
  55. package/dist/prolog-src/deepclause_mi.pl +2440 -49
  56. package/dist/repl/agent.d.ts +90 -0
  57. package/dist/repl/agent.d.ts.map +1 -0
  58. package/dist/repl/agent.js +410 -0
  59. package/dist/repl/agent.js.map +1 -0
  60. package/dist/repl/auth.d.ts +45 -0
  61. package/dist/repl/auth.d.ts.map +1 -0
  62. package/dist/repl/auth.js +116 -0
  63. package/dist/repl/auth.js.map +1 -0
  64. package/dist/repl/backend.d.ts +321 -0
  65. package/dist/repl/backend.d.ts.map +1 -0
  66. package/dist/repl/backend.js +415 -0
  67. package/dist/repl/backend.js.map +1 -0
  68. package/dist/repl/compaction.d.ts +122 -0
  69. package/dist/repl/compaction.d.ts.map +1 -0
  70. package/dist/repl/compaction.js +318 -0
  71. package/dist/repl/compaction.js.map +1 -0
  72. package/dist/repl/export.d.ts +30 -0
  73. package/dist/repl/export.d.ts.map +1 -0
  74. package/dist/repl/export.js +23 -0
  75. package/dist/repl/export.js.map +1 -0
  76. package/dist/repl/frames.d.ts +21 -0
  77. package/dist/repl/frames.d.ts.map +1 -0
  78. package/dist/repl/frames.js +79 -0
  79. package/dist/repl/frames.js.map +1 -0
  80. package/dist/repl/harness-tools.d.ts +99 -0
  81. package/dist/repl/harness-tools.d.ts.map +1 -0
  82. package/dist/repl/harness-tools.js +192 -0
  83. package/dist/repl/harness-tools.js.map +1 -0
  84. package/dist/repl/highlight.d.ts +30 -0
  85. package/dist/repl/highlight.d.ts.map +1 -0
  86. package/dist/repl/highlight.js +285 -0
  87. package/dist/repl/highlight.js.map +1 -0
  88. package/dist/repl/history.d.ts +234 -0
  89. package/dist/repl/history.d.ts.map +1 -0
  90. package/dist/repl/history.js +661 -0
  91. package/dist/repl/history.js.map +1 -0
  92. package/dist/repl/imagegen.d.ts +29 -0
  93. package/dist/repl/imagegen.d.ts.map +1 -0
  94. package/dist/repl/imagegen.js +84 -0
  95. package/dist/repl/imagegen.js.map +1 -0
  96. package/dist/repl/index.d.ts +130 -0
  97. package/dist/repl/index.d.ts.map +1 -0
  98. package/dist/repl/index.js +112 -0
  99. package/dist/repl/index.js.map +1 -0
  100. package/dist/repl/judge.d.ts +51 -0
  101. package/dist/repl/judge.d.ts.map +1 -0
  102. package/dist/repl/judge.js +58 -0
  103. package/dist/repl/judge.js.map +1 -0
  104. package/dist/repl/markdown.d.ts +25 -0
  105. package/dist/repl/markdown.d.ts.map +1 -0
  106. package/dist/repl/markdown.js +103 -0
  107. package/dist/repl/markdown.js.map +1 -0
  108. package/dist/repl/model-resolver.d.ts +59 -0
  109. package/dist/repl/model-resolver.d.ts.map +1 -0
  110. package/dist/repl/model-resolver.js +156 -0
  111. package/dist/repl/model-resolver.js.map +1 -0
  112. package/dist/repl/picker.d.ts +34 -0
  113. package/dist/repl/picker.d.ts.map +1 -0
  114. package/dist/repl/picker.js +81 -0
  115. package/dist/repl/picker.js.map +1 -0
  116. package/dist/repl/project-context.d.ts +16 -0
  117. package/dist/repl/project-context.d.ts.map +1 -0
  118. package/dist/repl/project-context.js +23 -0
  119. package/dist/repl/project-context.js.map +1 -0
  120. package/dist/repl/render.d.ts +187 -0
  121. package/dist/repl/render.d.ts.map +1 -0
  122. package/dist/repl/render.js +808 -0
  123. package/dist/repl/render.js.map +1 -0
  124. package/dist/repl/session.d.ts +424 -0
  125. package/dist/repl/session.d.ts.map +1 -0
  126. package/dist/repl/session.js +1473 -0
  127. package/dist/repl/session.js.map +1 -0
  128. package/dist/repl/status.d.ts +100 -0
  129. package/dist/repl/status.d.ts.map +1 -0
  130. package/dist/repl/status.js +218 -0
  131. package/dist/repl/status.js.map +1 -0
  132. package/dist/repl/tools.d.ts +53 -0
  133. package/dist/repl/tools.d.ts.map +1 -0
  134. package/dist/repl/tools.js +307 -0
  135. package/dist/repl/tools.js.map +1 -0
  136. package/dist/repl/toolset.d.ts +32 -0
  137. package/dist/repl/toolset.d.ts.map +1 -0
  138. package/dist/repl/toolset.js +82 -0
  139. package/dist/repl/toolset.js.map +1 -0
  140. package/dist/repl/tui/editor.d.ts +17 -0
  141. package/dist/repl/tui/editor.d.ts.map +1 -0
  142. package/dist/repl/tui/editor.js +39 -0
  143. package/dist/repl/tui/editor.js.map +1 -0
  144. package/dist/repl/tui/status-bar.d.ts +26 -0
  145. package/dist/repl/tui/status-bar.d.ts.map +1 -0
  146. package/dist/repl/tui/status-bar.js +47 -0
  147. package/dist/repl/tui/status-bar.js.map +1 -0
  148. package/dist/repl/tui/theme.d.ts +30 -0
  149. package/dist/repl/tui/theme.d.ts.map +1 -0
  150. package/dist/repl/tui/theme.js +81 -0
  151. package/dist/repl/tui/theme.js.map +1 -0
  152. package/dist/repl/tui/transcript.d.ts +41 -0
  153. package/dist/repl/tui/transcript.d.ts.map +1 -0
  154. package/dist/repl/tui/transcript.js +139 -0
  155. package/dist/repl/tui/transcript.js.map +1 -0
  156. package/dist/runner.d.ts +143 -13
  157. package/dist/runner.d.ts.map +1 -1
  158. package/dist/runner.js +532 -290
  159. package/dist/runner.js.map +1 -1
  160. package/dist/sdk.d.ts.map +1 -1
  161. package/dist/sdk.js +0 -32
  162. package/dist/sdk.js.map +1 -1
  163. package/dist/system/assets/docs/AGENT_PROMPT.md +1447 -0
  164. package/dist/system/assets/docs/DML_AUTHORING.md +195 -0
  165. package/dist/system/assets/docs/DML_REFERENCE.md +344 -72
  166. package/dist/system/assets/docs/HARNESS_EXAMPLES.md +172 -0
  167. package/dist/system/assets/docs/HARNESS_PATTERNS.md +562 -0
  168. package/dist/system/assets/docs/META_PROMPT.md +68 -0
  169. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +117 -0
  170. package/dist/system/assets/index.d.ts +9 -17
  171. package/dist/system/assets/index.d.ts.map +1 -1
  172. package/dist/system/assets/index.js +26 -85
  173. package/dist/system/assets/index.js.map +1 -1
  174. package/dist/system/runtime/agentvm-manager.d.ts +9 -2
  175. package/dist/system/runtime/agentvm-manager.d.ts.map +1 -1
  176. package/dist/system/runtime/agentvm-manager.js +70 -44
  177. package/dist/system/runtime/agentvm-manager.js.map +1 -1
  178. package/dist/system/runtime/media.d.ts +23 -0
  179. package/dist/system/runtime/media.d.ts.map +1 -0
  180. package/dist/system/runtime/media.js +55 -0
  181. package/dist/system/runtime/media.js.map +1 -0
  182. package/dist/system/runtime/shell-limits.d.ts +21 -0
  183. package/dist/system/runtime/shell-limits.d.ts.map +1 -0
  184. package/dist/system/runtime/shell-limits.js +39 -0
  185. package/dist/system/runtime/shell-limits.js.map +1 -0
  186. package/dist/system/runtime/shell-manager.d.ts +8 -3
  187. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  188. package/dist/system/runtime/shell-manager.js +56 -39
  189. package/dist/system/runtime/shell-manager.js.map +1 -1
  190. package/dist/system/runtime/shell-tool-events.js +5 -0
  191. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  192. package/dist/system/runtime/token-usage.d.ts +2 -0
  193. package/dist/system/runtime/token-usage.d.ts.map +1 -1
  194. package/dist/system/runtime/token-usage.js +7 -0
  195. package/dist/system/runtime/token-usage.js.map +1 -1
  196. package/dist/tools.d.ts +3 -21
  197. package/dist/tools.d.ts.map +1 -1
  198. package/dist/tools.js +14 -168
  199. package/dist/tools.js.map +1 -1
  200. package/dist/types.d.ts +136 -119
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/validate.d.ts +19 -0
  203. package/dist/validate.d.ts.map +1 -0
  204. package/dist/validate.js +338 -0
  205. package/dist/validate.js.map +1 -0
  206. package/dist/visualize/ascii.d.ts +55 -0
  207. package/dist/visualize/ascii.d.ts.map +1 -0
  208. package/dist/visualize/ascii.js +242 -0
  209. package/dist/visualize/ascii.js.map +1 -0
  210. package/dist/visualize/display.d.ts +24 -0
  211. package/dist/visualize/display.d.ts.map +1 -0
  212. package/dist/visualize/display.js +29 -0
  213. package/dist/visualize/display.js.map +1 -0
  214. package/dist/visualize/graphics.d.ts +35 -0
  215. package/dist/visualize/graphics.d.ts.map +1 -0
  216. package/dist/visualize/graphics.js +96 -0
  217. package/dist/visualize/graphics.js.map +1 -0
  218. package/dist/visualize/image.d.ts +38 -0
  219. package/dist/visualize/image.d.ts.map +1 -0
  220. package/dist/visualize/image.js +95 -0
  221. package/dist/visualize/image.js.map +1 -0
  222. package/dist/visualize/index.d.ts +59 -0
  223. package/dist/visualize/index.d.ts.map +1 -0
  224. package/dist/visualize/index.js +198 -0
  225. package/dist/visualize/index.js.map +1 -0
  226. package/dist/visualize/raster.d.ts +23 -0
  227. package/dist/visualize/raster.d.ts.map +1 -0
  228. package/dist/visualize/raster.js +47 -0
  229. package/dist/visualize/raster.js.map +1 -0
  230. package/dist/visualize/svg.d.ts +39 -0
  231. package/dist/visualize/svg.d.ts.map +1 -0
  232. package/dist/visualize/svg.js +148 -0
  233. package/dist/visualize/svg.js.map +1 -0
  234. package/dist/visualize/transcode.d.ts +13 -0
  235. package/dist/visualize/transcode.d.ts.map +1 -0
  236. package/dist/visualize/transcode.js +40 -0
  237. package/dist/visualize/transcode.js.map +1 -0
  238. package/docs/images/repl.png +0 -0
  239. package/package.json +19 -15
  240. package/src/prolog-src/deepclause_analysis.pl +10 -2
  241. package/src/prolog-src/deepclause_mi.pl +2440 -49
  242. package/dist/cli/commands.d.ts +0 -42
  243. package/dist/cli/commands.d.ts.map +0 -1
  244. package/dist/cli/commands.js +0 -246
  245. package/dist/cli/commands.js.map +0 -1
  246. package/dist/cli/compile.d.ts +0 -99
  247. package/dist/cli/compile.d.ts.map +0 -1
  248. package/dist/cli/compile.js +0 -363
  249. package/dist/cli/compile.js.map +0 -1
  250. package/dist/cli/default-skills.d.ts +0 -10
  251. package/dist/cli/default-skills.d.ts.map +0 -1
  252. package/dist/cli/default-skills.js +0 -206
  253. package/dist/cli/default-skills.js.map +0 -1
  254. package/dist/cli/interactive.d.ts +0 -2
  255. package/dist/cli/interactive.d.ts.map +0 -1
  256. package/dist/cli/interactive.js +0 -20
  257. package/dist/cli/interactive.js.map +0 -1
  258. package/dist/cli/mcp.d.ts +0 -56
  259. package/dist/cli/mcp.d.ts.map +0 -1
  260. package/dist/cli/mcp.js +0 -138
  261. package/dist/cli/mcp.js.map +0 -1
  262. package/dist/cli/prompt.d.ts +0 -2
  263. package/dist/cli/prompt.d.ts.map +0 -1
  264. package/dist/cli/prompt.js +0 -2
  265. package/dist/cli/prompt.js.map +0 -1
  266. package/dist/cli/search.d.ts +0 -19
  267. package/dist/cli/search.d.ts.map +0 -1
  268. package/dist/cli/search.js +0 -189
  269. package/dist/cli/search.js.map +0 -1
  270. package/dist/cli/tool-args.d.ts +0 -2
  271. package/dist/cli/tool-args.d.ts.map +0 -1
  272. package/dist/cli/tool-args.js +0 -39
  273. package/dist/cli/tool-args.js.map +0 -1
  274. package/dist/cli/tools.d.ts +0 -36
  275. package/dist/cli/tools.d.ts.map +0 -1
  276. package/dist/cli/tools.js +0 -229
  277. package/dist/cli/tools.js.map +0 -1
  278. package/dist/cli/tui/index.d.ts +0 -22
  279. package/dist/cli/tui/index.d.ts.map +0 -1
  280. package/dist/cli/tui/index.js +0 -29
  281. package/dist/cli/tui/index.js.map +0 -1
  282. package/dist/cli/tui.d.ts +0 -167
  283. package/dist/cli/tui.d.ts.map +0 -1
  284. package/dist/cli/tui.js +0 -5228
  285. package/dist/cli/tui.js.map +0 -1
  286. package/dist/compiler_prompt.d.ts +0 -20
  287. package/dist/compiler_prompt.d.ts.map +0 -1
  288. package/dist/compiler_prompt.js +0 -870
  289. package/dist/compiler_prompt.js.map +0 -1
  290. package/dist/deepclause-cli.skill +0 -0
  291. package/dist/prolog-src/deepclause_mi.pl.bak +0 -570
  292. package/dist/system/assets/docs/CONDUCTOR_PROMPT.md +0 -105
  293. package/dist/system/assets/docs/DML_COMPILER_PROMPT.md +0 -700
  294. package/dist/system/assets/docs/TUI.md +0 -150
  295. package/dist/system/assets/recipes/deepclause-coding-workflow/SKILL.md +0 -100
  296. package/dist/system/assets/skills/conductor.dml +0 -76
  297. package/dist/system/assets/skills/deep-planner.dml +0 -412
  298. package/dist/system/assets/skills/plan.dml +0 -429
  299. package/dist/system/assets/skills/security-planner.dml +0 -337
  300. package/dist/system/assets/skills/skill-creator.dml +0 -187
  301. package/dist/system/runtime/catalog-recipes.d.ts +0 -24
  302. package/dist/system/runtime/catalog-recipes.d.ts.map +0 -1
  303. package/dist/system/runtime/catalog-recipes.js +0 -273
  304. package/dist/system/runtime/catalog-recipes.js.map +0 -1
  305. package/dist/system/runtime/catalog-skills.d.ts +0 -50
  306. package/dist/system/runtime/catalog-skills.d.ts.map +0 -1
  307. package/dist/system/runtime/catalog-skills.js +0 -152
  308. package/dist/system/runtime/catalog-skills.js.map +0 -1
  309. package/dist/system/runtime/conductor.d.ts +0 -105
  310. package/dist/system/runtime/conductor.d.ts.map +0 -1
  311. package/dist/system/runtime/conductor.js +0 -732
  312. package/dist/system/runtime/conductor.js.map +0 -1
  313. package/dist/system/runtime/console-capture.d.ts +0 -9
  314. package/dist/system/runtime/console-capture.d.ts.map +0 -1
  315. package/dist/system/runtime/console-capture.js +0 -67
  316. package/dist/system/runtime/console-capture.js.map +0 -1
  317. package/dist/system/runtime/dml-executor.d.ts +0 -52
  318. package/dist/system/runtime/dml-executor.d.ts.map +0 -1
  319. package/dist/system/runtime/dml-executor.js +0 -203
  320. package/dist/system/runtime/dml-executor.js.map +0 -1
  321. package/dist/system/runtime/runtime-tools.d.ts +0 -31
  322. package/dist/system/runtime/runtime-tools.d.ts.map +0 -1
  323. package/dist/system/runtime/runtime-tools.js +0 -312
  324. package/dist/system/runtime/runtime-tools.js.map +0 -1
  325. package/dist/system/runtime/skill-creator.d.ts +0 -38
  326. package/dist/system/runtime/skill-creator.d.ts.map +0 -1
  327. package/dist/system/runtime/skill-creator.js +0 -763
  328. package/dist/system/runtime/skill-creator.js.map +0 -1
  329. package/src/prolog-src/deepclause_mi.pl.bak +0 -570
@@ -0,0 +1,116 @@
1
+ /**
2
+ * pi login/logout, ported to a plain terminal.
3
+ *
4
+ * This is the headless equivalent of pi's `/login`: enumerate providers with
5
+ * their auth methods and configured status, run `runtime.login(provider, type,
6
+ * interaction)` (which persists the credential), and render the auth
7
+ * events (`auth_url`, `device_code`, `progress`, `info`) that the flow emits.
8
+ *
9
+ * The interaction is a superset of pi-ai's `AuthInteraction`; the shapes are
10
+ * re-declared structurally so this module does not depend on pi-ai types.
11
+ */
12
+ import * as readline from 'readline';
13
+ function ask(question) {
14
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
15
+ return new Promise((resolve) => {
16
+ rl.question(question, (answer) => {
17
+ rl.close();
18
+ resolve(answer);
19
+ });
20
+ });
21
+ }
22
+ function renderAuthEvent(event) {
23
+ if (event.type === 'auth_url' && event.url) {
24
+ console.log(`\nOpen this URL to authorize:\n ${event.url}`);
25
+ if (event.instructions)
26
+ console.log(event.instructions);
27
+ }
28
+ else if (event.type === 'device_code') {
29
+ console.log(`\nVisit ${event.verificationUri} and enter code: ${event.userCode}`);
30
+ }
31
+ else if (event.message) {
32
+ console.log(event.message);
33
+ }
34
+ for (const link of event.links ?? []) {
35
+ console.log(` ${link.label ?? link.url}: ${link.url}`);
36
+ }
37
+ }
38
+ /** Port of pi's login dialog to a plain terminal (readline + stdout). */
39
+ export function createTerminalAuthInteraction() {
40
+ return {
41
+ async prompt(prompt) {
42
+ if (prompt.options && prompt.options.length > 0) {
43
+ const lines = prompt.options.map((option, index) => {
44
+ const description = option.description ? ` — ${option.description}` : '';
45
+ return ` ${index + 1}. ${option.label}${description}`;
46
+ });
47
+ const answer = await ask(`${prompt.message}\n${lines.join('\n')}\n> `);
48
+ const byIndex = Number(answer.trim()) - 1;
49
+ if (Number.isInteger(byIndex) && prompt.options[byIndex]) {
50
+ return prompt.options[byIndex].id;
51
+ }
52
+ const byId = prompt.options.find((option) => option.id === answer.trim());
53
+ return byId ? byId.id : answer.trim();
54
+ }
55
+ const placeholder = prompt.placeholder ? ` (${prompt.placeholder})` : '';
56
+ return ask(`${prompt.message}${placeholder}\n> `);
57
+ },
58
+ notify: renderAuthEvent,
59
+ };
60
+ }
61
+ /** Interaction that answers every prompt with a fixed API key. */
62
+ export function apiKeyInteraction(apiKey) {
63
+ return {
64
+ prompt: async () => apiKey,
65
+ notify: (event) => {
66
+ if (event.message)
67
+ console.log(event.message);
68
+ },
69
+ };
70
+ }
71
+ /**
72
+ * Providers that support login, one entry per auth method (mirrors pi's
73
+ * `getLoginProviderOptions`).
74
+ */
75
+ export function listLoginProviders(handle, options = {}) {
76
+ const status = new Map(handle.listProviders().map((provider) => [provider.id, provider]));
77
+ const out = [];
78
+ for (const provider of handle.runtime.getProviders()) {
79
+ const info = status.get(provider.id);
80
+ const configured = info?.configured ?? handle.hasAuth(provider.id);
81
+ const source = info?.label ?? info?.source;
82
+ const subscription = provider.auth?.oauth?.isSubscription === true;
83
+ const base = { id: provider.id, name: provider.name ?? provider.id, configured, source, subscription };
84
+ if ((!options.authType || options.authType === 'oauth') && provider.auth?.oauth) {
85
+ out.push({ ...base, authType: 'oauth' });
86
+ }
87
+ if ((!options.authType || options.authType === 'api_key') && provider.auth?.apiKey) {
88
+ out.push({ ...base, authType: 'api_key' });
89
+ }
90
+ }
91
+ return out.sort((a, b) => a.name.localeCompare(b.name) || a.authType.localeCompare(b.authType));
92
+ }
93
+ /**
94
+ * Run pi's login for a provider. `type` selects the auth method when a provider
95
+ * offers both; otherwise the only available method is used. `apiKey` short-
96
+ * circuits the interaction.
97
+ */
98
+ export async function loginToProvider(handle, providerId, options) {
99
+ if (options.apiKey) {
100
+ await handle.login(providerId, apiKeyInteraction(options.apiKey), 'api_key');
101
+ return;
102
+ }
103
+ const types = listLoginProviders(handle)
104
+ .filter((provider) => provider.id === providerId)
105
+ .map((provider) => provider.authType);
106
+ const type = options.type ?? (types.includes('api_key') ? 'api_key' : types[0]);
107
+ if (!type) {
108
+ throw new Error(`provider '${providerId}' has no login method`);
109
+ }
110
+ await handle.login(providerId, options.interaction, type);
111
+ }
112
+ /** Remove a stored credential (pi `/logout`). */
113
+ export async function logoutProvider(handle, providerId) {
114
+ await handle.logout(providerId);
115
+ }
116
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/repl/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * Backend resolution for the REPL (M5).
3
+ *
4
+ * `env` uses the SDK's provider/API-key backend (unchanged). `pi` reuses pi's
5
+ * own model registry and credential store so the REPL runs against the model
6
+ * configured in pi, without asking for API keys or writing provider env vars.
7
+ *
8
+ * The pi packages are optional peers and loaded with a dynamic import only when
9
+ * the pi backend is selected.
10
+ */
11
+ import type { LLMBackend } from '../types.js';
12
+ export type BackendKind = 'env' | 'pi';
13
+ export interface PiBackendConfig {
14
+ kind?: BackendKind;
15
+ agentDir?: string;
16
+ modelsPath?: string | null;
17
+ authPath?: string | null;
18
+ model?: string;
19
+ /** Requested thinking level for reasoning models (see `ThinkingLevel`). */
20
+ thinkingLevel?: string;
21
+ }
22
+ export interface ResolvedBackendPaths {
23
+ agentDir: string;
24
+ modelsPath: string;
25
+ authPath: string;
26
+ model?: string;
27
+ }
28
+ /** Minimal structural view of pi's ModelRegistry used by the adapter. */
29
+ export interface PiModelLike {
30
+ provider: string;
31
+ id: string;
32
+ api?: string;
33
+ /** Whether the model accepts a thinking/reasoning level. */
34
+ reasoning?: boolean;
35
+ /** Model compatibility flags (e.g. `supportsTemperature`). */
36
+ compat?: {
37
+ supportsTemperature?: boolean;
38
+ [key: string]: unknown;
39
+ };
40
+ /** Catalog price, USD per 1M tokens. */
41
+ cost?: {
42
+ input?: number;
43
+ output?: number;
44
+ cacheRead?: number;
45
+ cacheWrite?: number;
46
+ };
47
+ /** Model context window in tokens. */
48
+ contextWindow?: number;
49
+ /** Maximum output tokens. */
50
+ maxTokens?: number;
51
+ /** Maps pi thinking levels to provider values; `null` marks a level unsupported. */
52
+ thinkingLevelMap?: Partial<Record<ThinkingLevel, string | null>>;
53
+ }
54
+ /** pi's thinking levels, in ascending effort order. */
55
+ export type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
56
+ export declare const THINKING_LEVELS: readonly ThinkingLevel[];
57
+ /** Levels a model accepts: reasoning models expose all but explicitly-unsupported ones. */
58
+ export declare function supportedThinkingLevels(model: PiModelLike): ThinkingLevel[];
59
+ /**
60
+ * Validate a requested thinking level against the model. Returns the level to
61
+ * pass through (or `undefined` for the provider default) plus a warning when a
62
+ * request had to be dropped.
63
+ */
64
+ export declare function resolveThinkingLevel(model: PiModelLike, requested?: string): {
65
+ level?: ThinkingLevel;
66
+ supported: ThinkingLevel[];
67
+ warning?: string;
68
+ };
69
+ export interface PiCompletionRequest {
70
+ systemPrompt?: string;
71
+ messages: unknown[];
72
+ tools?: unknown[];
73
+ }
74
+ export interface PiCompletionResult {
75
+ content: Array<{
76
+ type: 'text';
77
+ text: string;
78
+ } | {
79
+ type: 'toolCall';
80
+ id: string;
81
+ name: string;
82
+ arguments: Record<string, unknown>;
83
+ }>;
84
+ usage: {
85
+ input: number;
86
+ output: number;
87
+ totalTokens: number;
88
+ cacheRead?: number;
89
+ cacheWrite?: number;
90
+ reasoning?: number;
91
+ };
92
+ stopReason: 'stop' | 'toolUse' | 'length' | 'error' | 'aborted';
93
+ errorMessage?: string;
94
+ }
95
+ export interface PiStreamEventLike {
96
+ type: string;
97
+ delta?: string;
98
+ }
99
+ export interface PiStreamLike extends AsyncIterable<PiStreamEventLike> {
100
+ result(): Promise<PiCompletionResult>;
101
+ }
102
+ export interface PiRegistryLike {
103
+ getAvailable(): PiModelLike[];
104
+ find?(provider: string, modelId: string): PiModelLike | undefined;
105
+ hasConfiguredAuth(model: PiModelLike): boolean;
106
+ complete(model: PiModelLike, context: PiCompletionRequest, options: unknown): Promise<PiCompletionResult>;
107
+ /** Streaming API; when present, `complete` forwards text/thinking deltas. */
108
+ streamSimple?(model: PiModelLike, context: PiCompletionRequest, options: unknown): PiStreamLike;
109
+ }
110
+ /** Resolve pi's agent dir, models.json, and auth.json paths. */
111
+ export declare function resolvePiPaths(config: PiBackendConfig, defaults: {
112
+ agentDir: string;
113
+ }): ResolvedBackendPaths;
114
+ /** Select the pi model to use, honoring an explicit provider/model request. */
115
+ export declare function selectPiModel(registry: PiRegistryLike, requested?: string): PiModelLike;
116
+ /**
117
+ * Wrap a pi registry + model as an SDK `LLMBackend`. Reused by the extension
118
+ * embedding, which passes its live registry.
119
+ *
120
+ * `thinkingLevel` is forwarded to the provider only for reasoning models and
121
+ * non-`off` levels, so provider defaults are preserved for every other model.
122
+ */
123
+ export declare function createPiAdapter(registry: PiRegistryLike, model: PiModelLike, maxTokens?: number, thinkingLevel?: string): {
124
+ backend: LLMBackend;
125
+ registry: PiRegistryLike;
126
+ modelId: string;
127
+ provider: string;
128
+ contextWindow?: number;
129
+ maxTokens: number;
130
+ reasoning: boolean;
131
+ thinkingLevel?: ThinkingLevel;
132
+ supportedThinkingLevels: ThinkingLevel[];
133
+ warning?: string;
134
+ };
135
+ export interface CreatePiBackendOptions extends PiBackendConfig {
136
+ maxTokens?: number;
137
+ /** Injected registry (used by tests and by a pi embedding). */
138
+ modelRegistry?: PiRegistryLike;
139
+ }
140
+ /** Structural view of pi's runtime used for setup/catalog/auth operations. */
141
+ export interface PiRuntimeLike {
142
+ getProviders(): Array<{
143
+ id: string;
144
+ name?: string;
145
+ auth?: {
146
+ apiKey?: unknown;
147
+ oauth?: {
148
+ isSubscription?: boolean;
149
+ };
150
+ };
151
+ }>;
152
+ getProvider(providerId: string): {
153
+ id: string;
154
+ name?: string;
155
+ auth?: {
156
+ apiKey?: unknown;
157
+ oauth?: {
158
+ isSubscription?: boolean;
159
+ };
160
+ };
161
+ } | undefined;
162
+ getModels(providerId?: string): PiModelLike[];
163
+ hasConfiguredAuth(providerId: string): boolean;
164
+ getProviderAuthStatus(providerId: string): {
165
+ configured: boolean;
166
+ label?: string;
167
+ source?: string;
168
+ };
169
+ isUsingOAuth(providerId: string): boolean;
170
+ listCredentials(options?: unknown): Promise<Array<{
171
+ providerId: string;
172
+ type: string;
173
+ }>>;
174
+ login(providerId: string, type: string, interaction: unknown, options?: unknown): Promise<unknown>;
175
+ logout(providerId: string, options?: unknown): Promise<void>;
176
+ /** Image models whose provider has complete auth (ModelRuntime). */
177
+ getAvailableOfType?(type: string, providerId?: string): Promise<Array<unknown>>;
178
+ /** Runtime lookup of one image model. */
179
+ getModelOfType?(type: string, providerId: string, modelId: string): unknown;
180
+ /** Generate images with a resolved pi image model. */
181
+ generateImages?(model: unknown, context: unknown, options?: unknown): Promise<{
182
+ output?: Array<{
183
+ type: string;
184
+ data?: string;
185
+ mimeType?: string;
186
+ text?: string;
187
+ }>;
188
+ errorMessage?: string;
189
+ }>;
190
+ }
191
+ export interface PiProviderInfo {
192
+ id: string;
193
+ name: string;
194
+ apiKey: boolean;
195
+ oauth: boolean;
196
+ configured: boolean;
197
+ source?: string;
198
+ label?: string;
199
+ }
200
+ export interface PiModelInfo {
201
+ provider: string;
202
+ id: string;
203
+ name: string;
204
+ reasoning: boolean;
205
+ contextWindow?: number;
206
+ maxTokens?: number;
207
+ /** Thinking levels the model accepts (empty/undefined for non-reasoning). */
208
+ supportedThinkingLevels?: ThinkingLevel[];
209
+ }
210
+ /** Build the catalog `PiModelInfo` (with reasoning levels) from a raw model. */
211
+ export declare function toPiModelInfo(model: PiModelLike & {
212
+ name?: string;
213
+ }): PiModelInfo;
214
+ export interface PiAuthPromptLike {
215
+ signal?: AbortSignal;
216
+ type: 'text' | 'secret' | 'select' | 'manual_code';
217
+ message: string;
218
+ placeholder?: string;
219
+ options?: ReadonlyArray<{
220
+ id: string;
221
+ label: string;
222
+ description?: string;
223
+ }>;
224
+ }
225
+ export interface PiAuthEventLike {
226
+ type: 'info' | 'auth_url' | 'device_code' | 'progress';
227
+ message?: string;
228
+ url?: string;
229
+ instructions?: string;
230
+ userCode?: string;
231
+ verificationUri?: string;
232
+ links?: ReadonlyArray<{
233
+ url: string;
234
+ label?: string;
235
+ }>;
236
+ }
237
+ export interface PiAuthInteractionLike {
238
+ signal?: AbortSignal;
239
+ prompt(prompt: PiAuthPromptLike): Promise<string>;
240
+ notify(event: PiAuthEventLike): void;
241
+ }
242
+ /** List providers from a pi runtime with auth capability/status. */
243
+ export declare function listPiProviders(runtime: PiRuntimeLike): PiProviderInfo[];
244
+ /** List chat models from a pi runtime, optionally filtered by provider. */
245
+ export declare function listPiModels(runtime: PiRuntimeLike, providerId?: string): PiModelInfo[];
246
+ /** A pi runtime handle: the model registry plus catalog/auth operations. */
247
+ export interface PiRuntimeHandle {
248
+ registry: PiRegistryLike;
249
+ runtime: PiRuntimeLike;
250
+ listProviders(): PiProviderInfo[];
251
+ listModels(providerId?: string): PiModelInfo[];
252
+ hasAuth(providerId: string): boolean;
253
+ isUsingOAuth(providerId: string): boolean;
254
+ listCredentials(): Promise<Array<{
255
+ providerId: string;
256
+ type: string;
257
+ }>>;
258
+ login(providerId: string, interaction: PiAuthInteractionLike, type?: 'api_key' | 'oauth'): Promise<void>;
259
+ logout(providerId: string): Promise<void>;
260
+ }
261
+ /** Whether the pi dependency resolves (it is a required dependency of the SDK). */
262
+ export declare function isPiPackageAvailable(): boolean;
263
+ /**
264
+ * Open a pi runtime using an existing install's credential store and model
265
+ * catalog. This is the setup entry point used by `set-backend pi`; it does not
266
+ * require the pi CLI or a pre-existing pi session.
267
+ */
268
+ export declare function openPiRuntime(options?: CreatePiBackendOptions): Promise<PiRuntimeHandle>;
269
+ /** Resolved pi backend plus the model capabilities the UI/config needs. */
270
+ export interface PiBackendInfo {
271
+ backend: LLMBackend;
272
+ /** The pi registry, for resolving `with_model/2` scopes. */
273
+ registry: PiRegistryLike;
274
+ modelId: string;
275
+ provider: string;
276
+ contextWindow?: number;
277
+ maxTokens: number;
278
+ reasoning: boolean;
279
+ thinkingLevel?: ThinkingLevel;
280
+ supportedThinkingLevels: ThinkingLevel[];
281
+ /** Set when a requested thinking level was unsupported and dropped. */
282
+ warning?: string;
283
+ }
284
+ /**
285
+ * Build an `LLMBackend` from pi's credential store. Throws a clear error when
286
+ * the pi packages are not installed.
287
+ */
288
+ export declare function createPiBackend(options?: CreatePiBackendOptions): Promise<PiBackendInfo>;
289
+ export interface ResolveBackendOptions {
290
+ kind?: BackendKind;
291
+ model?: string;
292
+ provider?: string;
293
+ maxTokens?: number;
294
+ agentDir?: string;
295
+ modelsPath?: string | null;
296
+ authPath?: string | null;
297
+ thinkingLevel?: string;
298
+ }
299
+ export interface ResolvedBackend {
300
+ kind: BackendKind;
301
+ /** Injected backend for pi; undefined for env (the runner builds it). */
302
+ llmBackend?: LLMBackend;
303
+ provider: string;
304
+ /** Bare model id. */
305
+ model: string;
306
+ /** `provider/model` (pi) or bare id (env), for display/persistence. */
307
+ modelId: string;
308
+ /** pi model capabilities (undefined for env). */
309
+ contextWindow?: number;
310
+ reasoning?: boolean;
311
+ thinkingLevel?: ThinkingLevel;
312
+ /** pi registry, for resolving `with_model/2` (pi backend only). */
313
+ registry?: PiRegistryLike;
314
+ }
315
+ /**
316
+ * Resolve the shared pi/env model backend used by both `deepclause run` and the
317
+ * REPL. `pi` (the default) returns an injected `LLMBackend`; `env` returns the
318
+ * provider/model so the runner builds the SDK provider backend.
319
+ */
320
+ export declare function resolveLlmBackend(options?: ResolveBackendOptions): Promise<ResolvedBackend>;
321
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/repl/backend.ts"],"names":[],"mappings":"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"}