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.
- package/README.md +481 -941
- package/dist/agent.d.ts +19 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +75 -21
- package/dist/agent.js.map +1 -1
- package/dist/cli/config.d.ts +385 -178
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +161 -188
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.d.ts +3 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +85 -411
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/login.d.ts +29 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/login.js +184 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/readline.d.ts +6 -0
- package/dist/cli/readline.d.ts.map +1 -0
- package/dist/cli/readline.js +15 -0
- package/dist/cli/readline.js.map +1 -0
- package/dist/cli/repl-bin.d.ts +9 -0
- package/dist/cli/repl-bin.d.ts.map +1 -0
- package/dist/cli/repl-bin.js +16 -0
- package/dist/cli/repl-bin.js.map +1 -0
- package/dist/cli/repl.d.ts +216 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +1392 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/run.d.ts +17 -18
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +202 -183
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/set-backend.d.ts +53 -0
- package/dist/cli/set-backend.d.ts.map +1 -0
- package/dist/cli/set-backend.js +259 -0
- package/dist/cli/set-backend.js.map +1 -0
- package/dist/cli/visualize.d.ts +42 -0
- package/dist/cli/visualize.d.ts.map +1 -0
- package/dist/cli/visualize.js +150 -0
- package/dist/cli/visualize.js.map +1 -0
- package/dist/compiler.d.ts +5 -52
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +4 -768
- package/dist/compiler.js.map +1 -1
- package/dist/index.d.ts +27 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/prolog/bridge.d.ts +5 -1
- package/dist/prolog/bridge.d.ts.map +1 -1
- package/dist/prolog/bridge.js +10 -1
- package/dist/prolog/bridge.js.map +1 -1
- package/dist/prolog-src/deepclause_analysis.pl +10 -2
- package/dist/prolog-src/deepclause_mi.pl +2440 -49
- package/dist/repl/agent.d.ts +90 -0
- package/dist/repl/agent.d.ts.map +1 -0
- package/dist/repl/agent.js +410 -0
- package/dist/repl/agent.js.map +1 -0
- package/dist/repl/auth.d.ts +45 -0
- package/dist/repl/auth.d.ts.map +1 -0
- package/dist/repl/auth.js +116 -0
- package/dist/repl/auth.js.map +1 -0
- package/dist/repl/backend.d.ts +321 -0
- package/dist/repl/backend.d.ts.map +1 -0
- package/dist/repl/backend.js +415 -0
- package/dist/repl/backend.js.map +1 -0
- package/dist/repl/compaction.d.ts +122 -0
- package/dist/repl/compaction.d.ts.map +1 -0
- package/dist/repl/compaction.js +318 -0
- package/dist/repl/compaction.js.map +1 -0
- package/dist/repl/export.d.ts +30 -0
- package/dist/repl/export.d.ts.map +1 -0
- package/dist/repl/export.js +23 -0
- package/dist/repl/export.js.map +1 -0
- package/dist/repl/frames.d.ts +21 -0
- package/dist/repl/frames.d.ts.map +1 -0
- package/dist/repl/frames.js +79 -0
- package/dist/repl/frames.js.map +1 -0
- package/dist/repl/harness-tools.d.ts +99 -0
- package/dist/repl/harness-tools.d.ts.map +1 -0
- package/dist/repl/harness-tools.js +192 -0
- package/dist/repl/harness-tools.js.map +1 -0
- package/dist/repl/highlight.d.ts +30 -0
- package/dist/repl/highlight.d.ts.map +1 -0
- package/dist/repl/highlight.js +285 -0
- package/dist/repl/highlight.js.map +1 -0
- package/dist/repl/history.d.ts +234 -0
- package/dist/repl/history.d.ts.map +1 -0
- package/dist/repl/history.js +661 -0
- package/dist/repl/history.js.map +1 -0
- package/dist/repl/imagegen.d.ts +29 -0
- package/dist/repl/imagegen.d.ts.map +1 -0
- package/dist/repl/imagegen.js +84 -0
- package/dist/repl/imagegen.js.map +1 -0
- package/dist/repl/index.d.ts +130 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +112 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/judge.d.ts +51 -0
- package/dist/repl/judge.d.ts.map +1 -0
- package/dist/repl/judge.js +58 -0
- package/dist/repl/judge.js.map +1 -0
- package/dist/repl/markdown.d.ts +25 -0
- package/dist/repl/markdown.d.ts.map +1 -0
- package/dist/repl/markdown.js +103 -0
- package/dist/repl/markdown.js.map +1 -0
- package/dist/repl/model-resolver.d.ts +59 -0
- package/dist/repl/model-resolver.d.ts.map +1 -0
- package/dist/repl/model-resolver.js +156 -0
- package/dist/repl/model-resolver.js.map +1 -0
- package/dist/repl/picker.d.ts +34 -0
- package/dist/repl/picker.d.ts.map +1 -0
- package/dist/repl/picker.js +81 -0
- package/dist/repl/picker.js.map +1 -0
- package/dist/repl/project-context.d.ts +16 -0
- package/dist/repl/project-context.d.ts.map +1 -0
- package/dist/repl/project-context.js +23 -0
- package/dist/repl/project-context.js.map +1 -0
- package/dist/repl/render.d.ts +187 -0
- package/dist/repl/render.d.ts.map +1 -0
- package/dist/repl/render.js +808 -0
- package/dist/repl/render.js.map +1 -0
- package/dist/repl/session.d.ts +424 -0
- package/dist/repl/session.d.ts.map +1 -0
- package/dist/repl/session.js +1473 -0
- package/dist/repl/session.js.map +1 -0
- package/dist/repl/status.d.ts +100 -0
- package/dist/repl/status.d.ts.map +1 -0
- package/dist/repl/status.js +218 -0
- package/dist/repl/status.js.map +1 -0
- package/dist/repl/tools.d.ts +53 -0
- package/dist/repl/tools.d.ts.map +1 -0
- package/dist/repl/tools.js +307 -0
- package/dist/repl/tools.js.map +1 -0
- package/dist/repl/toolset.d.ts +32 -0
- package/dist/repl/toolset.d.ts.map +1 -0
- package/dist/repl/toolset.js +82 -0
- package/dist/repl/toolset.js.map +1 -0
- package/dist/repl/tui/editor.d.ts +17 -0
- package/dist/repl/tui/editor.d.ts.map +1 -0
- package/dist/repl/tui/editor.js +39 -0
- package/dist/repl/tui/editor.js.map +1 -0
- package/dist/repl/tui/status-bar.d.ts +26 -0
- package/dist/repl/tui/status-bar.d.ts.map +1 -0
- package/dist/repl/tui/status-bar.js +47 -0
- package/dist/repl/tui/status-bar.js.map +1 -0
- package/dist/repl/tui/theme.d.ts +30 -0
- package/dist/repl/tui/theme.d.ts.map +1 -0
- package/dist/repl/tui/theme.js +81 -0
- package/dist/repl/tui/theme.js.map +1 -0
- package/dist/repl/tui/transcript.d.ts +41 -0
- package/dist/repl/tui/transcript.d.ts.map +1 -0
- package/dist/repl/tui/transcript.js +139 -0
- package/dist/repl/tui/transcript.js.map +1 -0
- package/dist/runner.d.ts +143 -13
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +532 -290
- package/dist/runner.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +0 -32
- package/dist/sdk.js.map +1 -1
- package/dist/system/assets/docs/AGENT_PROMPT.md +1447 -0
- package/dist/system/assets/docs/DML_AUTHORING.md +195 -0
- package/dist/system/assets/docs/DML_REFERENCE.md +344 -72
- package/dist/system/assets/docs/HARNESS_EXAMPLES.md +172 -0
- package/dist/system/assets/docs/HARNESS_PATTERNS.md +562 -0
- package/dist/system/assets/docs/META_PROMPT.md +68 -0
- package/dist/system/assets/docs/PROLOG_SNIPPETS.md +117 -0
- package/dist/system/assets/index.d.ts +9 -17
- package/dist/system/assets/index.d.ts.map +1 -1
- package/dist/system/assets/index.js +26 -85
- package/dist/system/assets/index.js.map +1 -1
- package/dist/system/runtime/agentvm-manager.d.ts +9 -2
- package/dist/system/runtime/agentvm-manager.d.ts.map +1 -1
- package/dist/system/runtime/agentvm-manager.js +70 -44
- package/dist/system/runtime/agentvm-manager.js.map +1 -1
- package/dist/system/runtime/media.d.ts +23 -0
- package/dist/system/runtime/media.d.ts.map +1 -0
- package/dist/system/runtime/media.js +55 -0
- package/dist/system/runtime/media.js.map +1 -0
- package/dist/system/runtime/shell-limits.d.ts +21 -0
- package/dist/system/runtime/shell-limits.d.ts.map +1 -0
- package/dist/system/runtime/shell-limits.js +39 -0
- package/dist/system/runtime/shell-limits.js.map +1 -0
- package/dist/system/runtime/shell-manager.d.ts +8 -3
- package/dist/system/runtime/shell-manager.d.ts.map +1 -1
- package/dist/system/runtime/shell-manager.js +56 -39
- package/dist/system/runtime/shell-manager.js.map +1 -1
- package/dist/system/runtime/shell-tool-events.js +5 -0
- package/dist/system/runtime/shell-tool-events.js.map +1 -1
- package/dist/system/runtime/token-usage.d.ts +2 -0
- package/dist/system/runtime/token-usage.d.ts.map +1 -1
- package/dist/system/runtime/token-usage.js +7 -0
- package/dist/system/runtime/token-usage.js.map +1 -1
- package/dist/tools.d.ts +3 -21
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +14 -168
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +136 -119
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts +19 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +338 -0
- package/dist/validate.js.map +1 -0
- package/dist/visualize/ascii.d.ts +55 -0
- package/dist/visualize/ascii.d.ts.map +1 -0
- package/dist/visualize/ascii.js +242 -0
- package/dist/visualize/ascii.js.map +1 -0
- package/dist/visualize/display.d.ts +24 -0
- package/dist/visualize/display.d.ts.map +1 -0
- package/dist/visualize/display.js +29 -0
- package/dist/visualize/display.js.map +1 -0
- package/dist/visualize/graphics.d.ts +35 -0
- package/dist/visualize/graphics.d.ts.map +1 -0
- package/dist/visualize/graphics.js +96 -0
- package/dist/visualize/graphics.js.map +1 -0
- package/dist/visualize/image.d.ts +38 -0
- package/dist/visualize/image.d.ts.map +1 -0
- package/dist/visualize/image.js +95 -0
- package/dist/visualize/image.js.map +1 -0
- package/dist/visualize/index.d.ts +59 -0
- package/dist/visualize/index.d.ts.map +1 -0
- package/dist/visualize/index.js +198 -0
- package/dist/visualize/index.js.map +1 -0
- package/dist/visualize/raster.d.ts +23 -0
- package/dist/visualize/raster.d.ts.map +1 -0
- package/dist/visualize/raster.js +47 -0
- package/dist/visualize/raster.js.map +1 -0
- package/dist/visualize/svg.d.ts +39 -0
- package/dist/visualize/svg.d.ts.map +1 -0
- package/dist/visualize/svg.js +148 -0
- package/dist/visualize/svg.js.map +1 -0
- package/dist/visualize/transcode.d.ts +13 -0
- package/dist/visualize/transcode.d.ts.map +1 -0
- package/dist/visualize/transcode.js +40 -0
- package/dist/visualize/transcode.js.map +1 -0
- package/docs/images/repl.png +0 -0
- package/package.json +19 -15
- package/src/prolog-src/deepclause_analysis.pl +10 -2
- package/src/prolog-src/deepclause_mi.pl +2440 -49
- package/dist/cli/commands.d.ts +0 -42
- package/dist/cli/commands.d.ts.map +0 -1
- package/dist/cli/commands.js +0 -246
- package/dist/cli/commands.js.map +0 -1
- package/dist/cli/compile.d.ts +0 -99
- package/dist/cli/compile.d.ts.map +0 -1
- package/dist/cli/compile.js +0 -363
- package/dist/cli/compile.js.map +0 -1
- package/dist/cli/default-skills.d.ts +0 -10
- package/dist/cli/default-skills.d.ts.map +0 -1
- package/dist/cli/default-skills.js +0 -206
- package/dist/cli/default-skills.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -2
- package/dist/cli/interactive.d.ts.map +0 -1
- package/dist/cli/interactive.js +0 -20
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli/mcp.d.ts +0 -56
- package/dist/cli/mcp.d.ts.map +0 -1
- package/dist/cli/mcp.js +0 -138
- package/dist/cli/mcp.js.map +0 -1
- package/dist/cli/prompt.d.ts +0 -2
- package/dist/cli/prompt.d.ts.map +0 -1
- package/dist/cli/prompt.js +0 -2
- package/dist/cli/prompt.js.map +0 -1
- package/dist/cli/search.d.ts +0 -19
- package/dist/cli/search.d.ts.map +0 -1
- package/dist/cli/search.js +0 -189
- package/dist/cli/search.js.map +0 -1
- package/dist/cli/tool-args.d.ts +0 -2
- package/dist/cli/tool-args.d.ts.map +0 -1
- package/dist/cli/tool-args.js +0 -39
- package/dist/cli/tool-args.js.map +0 -1
- package/dist/cli/tools.d.ts +0 -36
- package/dist/cli/tools.d.ts.map +0 -1
- package/dist/cli/tools.js +0 -229
- package/dist/cli/tools.js.map +0 -1
- package/dist/cli/tui/index.d.ts +0 -22
- package/dist/cli/tui/index.d.ts.map +0 -1
- package/dist/cli/tui/index.js +0 -29
- package/dist/cli/tui/index.js.map +0 -1
- package/dist/cli/tui.d.ts +0 -167
- package/dist/cli/tui.d.ts.map +0 -1
- package/dist/cli/tui.js +0 -5228
- package/dist/cli/tui.js.map +0 -1
- package/dist/compiler_prompt.d.ts +0 -20
- package/dist/compiler_prompt.d.ts.map +0 -1
- package/dist/compiler_prompt.js +0 -870
- package/dist/compiler_prompt.js.map +0 -1
- package/dist/deepclause-cli.skill +0 -0
- package/dist/prolog-src/deepclause_mi.pl.bak +0 -570
- package/dist/system/assets/docs/CONDUCTOR_PROMPT.md +0 -105
- package/dist/system/assets/docs/DML_COMPILER_PROMPT.md +0 -700
- package/dist/system/assets/docs/TUI.md +0 -150
- package/dist/system/assets/recipes/deepclause-coding-workflow/SKILL.md +0 -100
- package/dist/system/assets/skills/conductor.dml +0 -76
- package/dist/system/assets/skills/deep-planner.dml +0 -412
- package/dist/system/assets/skills/plan.dml +0 -429
- package/dist/system/assets/skills/security-planner.dml +0 -337
- package/dist/system/assets/skills/skill-creator.dml +0 -187
- package/dist/system/runtime/catalog-recipes.d.ts +0 -24
- package/dist/system/runtime/catalog-recipes.d.ts.map +0 -1
- package/dist/system/runtime/catalog-recipes.js +0 -273
- package/dist/system/runtime/catalog-recipes.js.map +0 -1
- package/dist/system/runtime/catalog-skills.d.ts +0 -50
- package/dist/system/runtime/catalog-skills.d.ts.map +0 -1
- package/dist/system/runtime/catalog-skills.js +0 -152
- package/dist/system/runtime/catalog-skills.js.map +0 -1
- package/dist/system/runtime/conductor.d.ts +0 -105
- package/dist/system/runtime/conductor.d.ts.map +0 -1
- package/dist/system/runtime/conductor.js +0 -732
- package/dist/system/runtime/conductor.js.map +0 -1
- package/dist/system/runtime/console-capture.d.ts +0 -9
- package/dist/system/runtime/console-capture.d.ts.map +0 -1
- package/dist/system/runtime/console-capture.js +0 -67
- package/dist/system/runtime/console-capture.js.map +0 -1
- package/dist/system/runtime/dml-executor.d.ts +0 -52
- package/dist/system/runtime/dml-executor.d.ts.map +0 -1
- package/dist/system/runtime/dml-executor.js +0 -203
- package/dist/system/runtime/dml-executor.js.map +0 -1
- package/dist/system/runtime/runtime-tools.d.ts +0 -31
- package/dist/system/runtime/runtime-tools.d.ts.map +0 -1
- package/dist/system/runtime/runtime-tools.js +0 -312
- package/dist/system/runtime/runtime-tools.js.map +0 -1
- package/dist/system/runtime/skill-creator.d.ts +0 -38
- package/dist/system/runtime/skill-creator.d.ts.map +0 -1
- package/dist/system/runtime/skill-creator.js +0 -763
- package/dist/system/runtime/skill-creator.js.map +0 -1
- 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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"}
|