deepclause-sdk 0.1.0 → 0.1.2

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 (142) hide show
  1. package/README.md +83 -12
  2. package/dist/agent.d.ts +14 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +117 -9
  5. package/dist/agent.js.map +1 -1
  6. package/dist/cli/config.d.ts +86 -26
  7. package/dist/cli/config.d.ts.map +1 -1
  8. package/dist/cli/config.js +15 -0
  9. package/dist/cli/config.js.map +1 -1
  10. package/dist/cli/index.js +38 -0
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/cli/repl.d.ts +27 -0
  13. package/dist/cli/repl.d.ts.map +1 -1
  14. package/dist/cli/repl.js +191 -5
  15. package/dist/cli/repl.js.map +1 -1
  16. package/dist/cli/run.d.ts.map +1 -1
  17. package/dist/cli/run.js +16 -0
  18. package/dist/cli/run.js.map +1 -1
  19. package/dist/cli/visualize.d.ts +4 -0
  20. package/dist/cli/visualize.d.ts.map +1 -1
  21. package/dist/cli/visualize.js +29 -4
  22. package/dist/cli/visualize.js.map +1 -1
  23. package/dist/prolog/bridge.d.ts +3 -1
  24. package/dist/prolog/bridge.d.ts.map +1 -1
  25. package/dist/prolog/bridge.js +2 -0
  26. package/dist/prolog/bridge.js.map +1 -1
  27. package/dist/prolog/loader.d.ts +32 -0
  28. package/dist/prolog/loader.d.ts.map +1 -1
  29. package/dist/prolog/loader.js +87 -0
  30. package/dist/prolog/loader.js.map +1 -1
  31. package/dist/prolog-src/deepclause_mi.pl +1217 -120
  32. package/dist/repl/agent.d.ts +33 -1
  33. package/dist/repl/agent.d.ts.map +1 -1
  34. package/dist/repl/agent.js +91 -8
  35. package/dist/repl/agent.js.map +1 -1
  36. package/dist/repl/backend.d.ts +31 -0
  37. package/dist/repl/backend.d.ts.map +1 -1
  38. package/dist/repl/backend.js +122 -77
  39. package/dist/repl/backend.js.map +1 -1
  40. package/dist/repl/harness-tools.d.ts +49 -2
  41. package/dist/repl/harness-tools.d.ts.map +1 -1
  42. package/dist/repl/harness-tools.js +87 -7
  43. package/dist/repl/harness-tools.js.map +1 -1
  44. package/dist/repl/imagegen.d.ts +29 -0
  45. package/dist/repl/imagegen.d.ts.map +1 -0
  46. package/dist/repl/imagegen.js +84 -0
  47. package/dist/repl/imagegen.js.map +1 -0
  48. package/dist/repl/index.d.ts +20 -2
  49. package/dist/repl/index.d.ts.map +1 -1
  50. package/dist/repl/index.js +6 -0
  51. package/dist/repl/index.js.map +1 -1
  52. package/dist/repl/model-resolver.d.ts +59 -0
  53. package/dist/repl/model-resolver.d.ts.map +1 -0
  54. package/dist/repl/model-resolver.js +156 -0
  55. package/dist/repl/model-resolver.js.map +1 -0
  56. package/dist/repl/render.d.ts +36 -2
  57. package/dist/repl/render.d.ts.map +1 -1
  58. package/dist/repl/render.js +175 -17
  59. package/dist/repl/render.js.map +1 -1
  60. package/dist/repl/session.d.ts +129 -4
  61. package/dist/repl/session.d.ts.map +1 -1
  62. package/dist/repl/session.js +380 -17
  63. package/dist/repl/session.js.map +1 -1
  64. package/dist/repl/tool-arguments.d.ts +36 -0
  65. package/dist/repl/tool-arguments.d.ts.map +1 -0
  66. package/dist/repl/tool-arguments.js +123 -0
  67. package/dist/repl/tool-arguments.js.map +1 -0
  68. package/dist/repl/toolset.d.ts +28 -1
  69. package/dist/repl/toolset.d.ts.map +1 -1
  70. package/dist/repl/toolset.js +52 -4
  71. package/dist/repl/toolset.js.map +1 -1
  72. package/dist/repl/tui/transcript.d.ts +2 -0
  73. package/dist/repl/tui/transcript.d.ts.map +1 -1
  74. package/dist/repl/tui/transcript.js +16 -0
  75. package/dist/repl/tui/transcript.js.map +1 -1
  76. package/dist/runner.d.ts +44 -2
  77. package/dist/runner.d.ts.map +1 -1
  78. package/dist/runner.js +293 -33
  79. package/dist/runner.js.map +1 -1
  80. package/dist/system/assets/docs/AGENT_PROMPT.md +1000 -44
  81. package/dist/system/assets/docs/DML_AUTHORING.md +96 -17
  82. package/dist/system/assets/docs/DML_REFERENCE.md +652 -39
  83. package/dist/system/assets/docs/PROLOG_SNIPPETS.md +45 -1
  84. package/dist/system/assets/docs/TASK_PROMPT.md +2 -0
  85. package/dist/system/environment.d.ts +36 -0
  86. package/dist/system/environment.d.ts.map +1 -0
  87. package/dist/system/environment.js +81 -0
  88. package/dist/system/environment.js.map +1 -0
  89. package/dist/system/runtime/shell-manager.d.ts +40 -2
  90. package/dist/system/runtime/shell-manager.d.ts.map +1 -1
  91. package/dist/system/runtime/shell-manager.js +82 -16
  92. package/dist/system/runtime/shell-manager.js.map +1 -1
  93. package/dist/system/runtime/shell-tool-events.js +25 -1
  94. package/dist/system/runtime/shell-tool-events.js.map +1 -1
  95. package/dist/types.d.ts +76 -2
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/visualize/ascii.d.ts +55 -0
  98. package/dist/visualize/ascii.d.ts.map +1 -0
  99. package/dist/visualize/ascii.js +242 -0
  100. package/dist/visualize/ascii.js.map +1 -0
  101. package/dist/visualize/display.d.ts +24 -0
  102. package/dist/visualize/display.d.ts.map +1 -0
  103. package/dist/visualize/display.js +29 -0
  104. package/dist/visualize/display.js.map +1 -0
  105. package/dist/visualize/graphics.d.ts +35 -0
  106. package/dist/visualize/graphics.d.ts.map +1 -0
  107. package/dist/visualize/graphics.js +96 -0
  108. package/dist/visualize/graphics.js.map +1 -0
  109. package/dist/visualize/image.d.ts +38 -0
  110. package/dist/visualize/image.d.ts.map +1 -0
  111. package/dist/visualize/image.js +95 -0
  112. package/dist/visualize/image.js.map +1 -0
  113. package/dist/visualize/index.d.ts +7 -0
  114. package/dist/visualize/index.d.ts.map +1 -1
  115. package/dist/visualize/index.js +9 -0
  116. package/dist/visualize/index.js.map +1 -1
  117. package/dist/visualize/raster.d.ts +23 -0
  118. package/dist/visualize/raster.d.ts.map +1 -0
  119. package/dist/visualize/raster.js +47 -0
  120. package/dist/visualize/raster.js.map +1 -0
  121. package/dist/visualize/svg.d.ts +39 -0
  122. package/dist/visualize/svg.d.ts.map +1 -0
  123. package/dist/visualize/svg.js +148 -0
  124. package/dist/visualize/svg.js.map +1 -0
  125. package/dist/visualize/transcode.d.ts +13 -0
  126. package/dist/visualize/transcode.d.ts.map +1 -0
  127. package/dist/visualize/transcode.js +40 -0
  128. package/dist/visualize/transcode.js.map +1 -0
  129. package/docs/images/repl.png +0 -0
  130. package/package.json +10 -6
  131. package/src/prolog-src/deepclause_mi.pl +1217 -120
  132. package/dist/compaction.d.ts +0 -98
  133. package/dist/compaction.d.ts.map +0 -1
  134. package/dist/compaction.js +0 -471
  135. package/dist/compaction.js.map +0 -1
  136. package/dist/repl/tools.d.ts +0 -53
  137. package/dist/repl/tools.d.ts.map +0 -1
  138. package/dist/repl/tools.js +0 -307
  139. package/dist/repl/tools.js.map +0 -1
  140. package/dist/system/assets/compactors/default-loop-compactor.dml +0 -43
  141. package/dist/system/assets/compactors/default-session-compactor.dml +0 -30
  142. package/dist/system/assets/docs/META_PROMPT.md +0 -68
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Image generation over pi's image models.
3
+ *
4
+ * Implements the injectable `ImageBackend` used by `task(…, media(X))`. It reuses
5
+ * pi's credential store and model catalog (the same one the chat backend uses),
6
+ * picks the first available image model unless one is configured, and writes the
7
+ * result into the workspace media directory. No separate API keys.
8
+ */
9
+ import * as fs from 'fs/promises';
10
+ import * as path from 'path';
11
+ import { openPiRuntime } from './backend.js';
12
+ const EXT_BY_MIME = {
13
+ 'image/png': 'png',
14
+ 'image/jpeg': 'jpg',
15
+ 'image/webp': 'webp',
16
+ 'image/gif': 'gif',
17
+ };
18
+ function parseModelRef(ref) {
19
+ if (!ref) {
20
+ return undefined;
21
+ }
22
+ const match = ref.match(/^([^:/]+)[:/](.+)$/);
23
+ return match ? { provider: match[1], id: match[2] } : undefined;
24
+ }
25
+ /** List the ids of available image models (for diagnostics / `/gen`). */
26
+ export async function listImageModels(handle) {
27
+ const runtime = handle.runtime;
28
+ if (typeof runtime.getAvailableOfType !== 'function') {
29
+ return [];
30
+ }
31
+ const models = (await runtime.getAvailableOfType('image'));
32
+ return models.map((m) => (m.provider && m.id ? `${m.provider}:${m.id}` : String(m)));
33
+ }
34
+ /**
35
+ * Build a pi-backed image generator, or undefined when the installed pi runtime
36
+ * cannot generate images (no image-capable provider / missing API).
37
+ */
38
+ export async function createPiImageBackend(options) {
39
+ const handle = await openPiRuntime({
40
+ agentDir: options.agentDir,
41
+ modelsPath: options.modelsPath ?? undefined,
42
+ authPath: options.authPath,
43
+ });
44
+ const runtime = handle.runtime;
45
+ if (typeof runtime.getAvailableOfType !== 'function' || typeof runtime.generateImages !== 'function') {
46
+ return undefined;
47
+ }
48
+ const dir = options.dir ?? '.deepclause/media';
49
+ return {
50
+ async generate(request) {
51
+ const available = (await runtime.getAvailableOfType('image'));
52
+ if (available.length === 0) {
53
+ throw new Error('no image model is available — check that a provider with image generation is signed in');
54
+ }
55
+ const wanted = parseModelRef(options.model);
56
+ let model = available[0];
57
+ if (wanted && typeof runtime.getModelOfType === 'function') {
58
+ const found = runtime.getModelOfType('image', wanted.provider, wanted.id);
59
+ if (found) {
60
+ model = found;
61
+ }
62
+ }
63
+ const input = [{ type: 'text', text: request.prompt }];
64
+ for (const ref of request.refs ?? []) {
65
+ const abs = path.resolve(options.workspacePath, ref.path);
66
+ const bytes = await fs.readFile(abs);
67
+ input.push({ type: 'image', data: bytes.toString('base64'), mimeType: ref.mimeType });
68
+ }
69
+ const result = await runtime.generateImages(model, { input }, request.signal ? { signal: request.signal } : undefined);
70
+ const image = (result.output ?? []).find((part) => part.type === 'image' && part.data);
71
+ if (!image?.data) {
72
+ throw new Error(result.errorMessage || 'image generation returned no image');
73
+ }
74
+ const mimeType = image.mimeType ?? 'image/png';
75
+ const ext = EXT_BY_MIME[mimeType] ?? 'png';
76
+ const rel = path.posix.join(dir, `image-${Date.now()}.${ext}`);
77
+ const abs = path.resolve(options.workspacePath, rel);
78
+ await fs.mkdir(path.dirname(abs), { recursive: true });
79
+ await fs.writeFile(abs, Buffer.from(image.data, 'base64'));
80
+ return { path: rel, mimeType };
81
+ },
82
+ };
83
+ }
84
+ //# sourceMappingURL=imagegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imagegen.js","sourceRoot":"","sources":["../../src/repl/imagegen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,GAA2B;IAC1C,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,KAAK;CACnB,CAAC;AAcF,SAAS,aAAa,CAAC,GAAuB;IAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAuB;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAA8C,CAAC;IACxG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA8B;IACvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACrG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,mBAAmB,CAAC;IAE/C,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAA+B;YAC5C,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,kBAAmB,CAAC,OAAO,CAAC,CAAmC,CAAC;YACjG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAY,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1E,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,GAAG,KAAK,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAmC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACvF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAe,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxH,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,oCAAoC,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,WAAW,CAAC;YAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -5,14 +5,17 @@
5
5
  * used by the CLI (and, later, by pi). M1 implements goal mode, loading, and
6
6
  * reset; prompt mode / freeze / export are filled in by later milestones.
7
7
  */
8
- import type { DMLEvent, LLMBackend, MemoryMessage, ToolDefinition, ToolPolicy } from '../types.js';
8
+ import type { DMLEvent, ImageBackend, LLMBackend, MemoryMessage, ToolDefinition, ToolPolicy } from '../types.js';
9
9
  import type { FrameKind } from '../types.js';
10
- import { DMLSession, type DMLQueryOptions } from './session.js';
10
+ import { DMLSession, type DMLQueryOptions, type DiagramResult } from './session.js';
11
11
  import type { HarnessExportOptions, HarnessExportResult } from './export.js';
12
12
  import { type JevJudgeOptions } from './judge.js';
13
13
  import type { HistoryOptions } from './history.js';
14
14
  import type { JudgeSelection } from '../judge/types.js';
15
15
  import type { CompactionSettings } from './compaction.js';
16
+ import type { DiagramMode } from '../visualize/index.js';
17
+ import type { ModelResolver } from './model-resolver.js';
18
+ import type { ExecutionBackendKind } from '../system/runtime/shell-manager.js';
16
19
  export type RunOpts = DMLQueryOptions;
17
20
  /** Goal-mode events are DMLEvents today; kept as a named alias for the API. */
18
21
  export type DMLQueryEvent = DMLEvent;
@@ -44,6 +47,12 @@ export interface HarnessReplOptions {
44
47
  maxModelCalls?: number;
45
48
  /** Host tool catalog text injected into the meta prompt (M5). */
46
49
  hostToolsCatalog?: string;
50
+ /**
51
+ * Effective shell backend (`agentvm`/`bwrap`/`sandbox-exec`/`clean-room`).
52
+ * Pass `toolset.environment.kind` so the harness `require_sandbox` check and
53
+ * the model's environment block match the toolset that will run commands.
54
+ */
55
+ executionBackend?: ExecutionBackendKind;
47
56
  /** Human-in-the-loop channel for DML `input/2` / `exec(ask_user(...))`. */
48
57
  askUser?: (prompt: string, options?: string[]) => Promise<{
49
58
  answer: string;
@@ -71,6 +80,10 @@ export interface HarnessReplOptions {
71
80
  };
72
81
  /** Active model context window, used for compaction thresholds. */
73
82
  contextWindow?: number;
83
+ /** Host image generator for `task(…, media(X))` typed outputs. */
84
+ imageBackend?: ImageBackend;
85
+ /** Resolves `with_model/2` scopes to concrete models. */
86
+ modelResolver?: ModelResolver;
74
87
  }
75
88
  export interface RollbackResult {
76
89
  ok: boolean;
@@ -86,6 +99,7 @@ export interface HarnessRepl {
86
99
  /** Load a DML file into the living module. */
87
100
  load(file: string): Promise<{
88
101
  error?: string;
102
+ warnings?: string[];
89
103
  }>;
90
104
  /** Read-only listing of the living module. */
91
105
  list(filter?: string): Promise<string>;
@@ -109,6 +123,10 @@ export interface HarnessRepl {
109
123
  afterTokens: number;
110
124
  error?: string;
111
125
  }>;
126
+ /** Generate a diagram of an entry predicate (Mermaid → ASCII tree + SVG). */
127
+ diagram(entry?: string, mode?: DiagramMode, options?: {
128
+ signal?: AbortSignal;
129
+ }): Promise<DiagramResult>;
112
130
  /** Deliver a steering message into the running authoring turn. */
113
131
  steer(text: string): void;
114
132
  dispose(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,9 @@ class HarnessReplImpl {
51
51
  compact(customInstructions) {
52
52
  return this.session.compact(customInstructions);
53
53
  }
54
+ diagram(entry, mode, options) {
55
+ return this.session.diagram(entry, mode, options);
56
+ }
54
57
  steer(text) {
55
58
  this.session.steer(text);
56
59
  }
@@ -86,6 +89,7 @@ export async function createHarnessRepl(options) {
86
89
  maxDepth: options.maxDepth,
87
90
  maxModelCalls: options.maxModelCalls,
88
91
  hostToolsCatalog: options.hostToolsCatalog,
92
+ executionBackend: options.executionBackend,
89
93
  askUser: options.askUser,
90
94
  history: options.history,
91
95
  harnessName: options.harness,
@@ -100,6 +104,8 @@ export async function createHarnessRepl(options) {
100
104
  streaming: options.streaming ?? true,
101
105
  llmBackend: options.llmBackend,
102
106
  judgeSelection,
107
+ imageBackend: options.imageBackend,
108
+ modelResolver: options.modelResolver,
103
109
  },
104
110
  });
105
111
  return new HarnessReplImpl(session);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Resolve a `with_model/2` spec (string or dict) into a concrete model profile.
3
+ *
4
+ * Two sources, matching the chat backend:
5
+ * - `PiModelResolver` — pi's live registry; authoritative for existence and
6
+ * auth (the default backend).
7
+ * - `EnvModelResolver` — the bundled model database (the `env` backend).
8
+ *
9
+ * Resolution happens on first use of a scope and is cached by the runner.
10
+ */
11
+ import type { ModelSpec, ResolvedModel } from '../types.js';
12
+ import { type PiRegistryLike } from './backend.js';
13
+ export declare class ModelResolutionError extends Error {
14
+ constructor(message: string);
15
+ }
16
+ /**
17
+ * Parse a raw `model_spec` value (from the Prolog payload) into a `ModelSpec`.
18
+ * Accepts `none`/`default`/empty (→ default), a string
19
+ * (`provider:model`, `provider/model`, `model`, each with an optional `#level`),
20
+ * or a `model{…}` dict.
21
+ */
22
+ export declare function parseModelSpec(raw: unknown): ModelSpec;
23
+ export interface ModelResolver {
24
+ /** Resolve + validate a non-default spec. Throws `ModelResolutionError`. */
25
+ resolve(spec: ModelSpec): Promise<ResolvedModel>;
26
+ /** A short list of available models, for error messages. */
27
+ describe(): string;
28
+ /** The models available in this session, with catalog prices. */
29
+ catalog(): ModelCatalogEntry[];
30
+ }
31
+ /** One entry of the session's model catalog, as shown to the agent. */
32
+ export interface ModelCatalogEntry {
33
+ /** `provider:model` id, usable in `with_model/2`. */
34
+ model: string;
35
+ /** USD per 1M input tokens. */
36
+ inputCost?: number;
37
+ /** USD per 1M output tokens. */
38
+ outputCost?: number;
39
+ contextWindow?: number;
40
+ }
41
+ /** Format a catalog entry as `provider:model ($in/$out per 1M)`. */
42
+ export declare function formatModelCatalogEntry(entry: ModelCatalogEntry): string;
43
+ /** Resolve against pi's live registry (existence + auth are authoritative). */
44
+ export declare class PiModelResolver implements ModelResolver {
45
+ private readonly registry;
46
+ constructor(registry: PiRegistryLike);
47
+ resolve(spec: ModelSpec): Promise<ResolvedModel>;
48
+ describe(): string;
49
+ catalog(): ModelCatalogEntry[];
50
+ }
51
+ /** Resolve against the bundled model database (the `env` backend). */
52
+ export declare class EnvModelResolver implements ModelResolver {
53
+ private readonly sessionProvider;
54
+ constructor(sessionProvider: string);
55
+ resolve(spec: ModelSpec): Promise<ResolvedModel>;
56
+ describe(): string;
57
+ catalog(): ModelCatalogEntry[];
58
+ }
59
+ //# sourceMappingURL=model-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../src/repl/model-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9F,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAmCtD;AAED,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,4DAA4D;IAC5D,QAAQ,IAAI,MAAM,CAAC;IACnB,iEAAiE;IACjE,OAAO,IAAI,iBAAiB,EAAE,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAQxE;AAED,+EAA+E;AAC/E,qBAAa,eAAgB,YAAW,aAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/C,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCtD,QAAQ,IAAI,MAAM;IAQlB,OAAO,IAAI,iBAAiB,EAAE;CAQ/B;AAED,sEAAsE;AACtE,qBAAa,gBAAiB,YAAW,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,MAAM;IAE9C,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBtD,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,iBAAiB,EAAE;CAG/B"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Resolve a `with_model/2` spec (string or dict) into a concrete model profile.
3
+ *
4
+ * Two sources, matching the chat backend:
5
+ * - `PiModelResolver` — pi's live registry; authoritative for existence and
6
+ * auth (the default backend).
7
+ * - `EnvModelResolver` — the bundled model database (the `env` backend).
8
+ *
9
+ * Resolution happens on first use of a scope and is cached by the runner.
10
+ */
11
+ import { getAllModels, lookupModel, lookupProvider } from '../system/config/model-database.js';
12
+ import { supportedThinkingLevels } from './backend.js';
13
+ export class ModelResolutionError extends Error {
14
+ constructor(message) {
15
+ super(message);
16
+ this.name = 'ModelResolutionError';
17
+ }
18
+ }
19
+ /**
20
+ * Parse a raw `model_spec` value (from the Prolog payload) into a `ModelSpec`.
21
+ * Accepts `none`/`default`/empty (→ default), a string
22
+ * (`provider:model`, `provider/model`, `model`, each with an optional `#level`),
23
+ * or a `model{…}` dict.
24
+ */
25
+ export function parseModelSpec(raw) {
26
+ if (raw === null || raw === undefined) {
27
+ return 'default';
28
+ }
29
+ if (typeof raw === 'object') {
30
+ const obj = raw;
31
+ const id = typeof obj.id === 'string' ? obj.id : undefined;
32
+ if (!id) {
33
+ return 'default';
34
+ }
35
+ return {
36
+ provider: typeof obj.provider === 'string' ? obj.provider : undefined,
37
+ id,
38
+ temperature: typeof obj.temperature === 'number' ? obj.temperature : undefined,
39
+ maxTokens: typeof obj.maxTokens === 'number' ? obj.maxTokens : undefined,
40
+ reasoning: typeof obj.reasoning === 'string' ? obj.reasoning : undefined,
41
+ };
42
+ }
43
+ const text = String(raw).trim();
44
+ if (!text || text === 'none' || text === 'default') {
45
+ return 'default';
46
+ }
47
+ let body = text;
48
+ let reasoning;
49
+ // Reasoning suffix uses the last `#` (provider/model ids may contain `:`/`/`).
50
+ const hash = body.lastIndexOf('#');
51
+ if (hash > 0) {
52
+ reasoning = body.slice(hash + 1).trim() || undefined;
53
+ body = body.slice(0, hash);
54
+ }
55
+ const sep = body.search(/[:/]/);
56
+ if (sep === -1) {
57
+ return { id: body, reasoning };
58
+ }
59
+ return { provider: body.slice(0, sep), id: body.slice(sep + 1), reasoning };
60
+ }
61
+ function trimCost(value) {
62
+ return String(Number(value.toFixed(3)));
63
+ }
64
+ /** Format a catalog entry as `provider:model ($in/$out per 1M)`. */
65
+ export function formatModelCatalogEntry(entry) {
66
+ const hasCost = typeof entry.inputCost === 'number' || typeof entry.outputCost === 'number';
67
+ if (!hasCost) {
68
+ return entry.model;
69
+ }
70
+ const input = typeof entry.inputCost === 'number' ? `$${trimCost(entry.inputCost)}` : '?';
71
+ const output = typeof entry.outputCost === 'number' ? `$${trimCost(entry.outputCost)}` : '?';
72
+ return `${entry.model} (${input}/${output} per 1M)`;
73
+ }
74
+ /** Resolve against pi's live registry (existence + auth are authoritative). */
75
+ export class PiModelResolver {
76
+ registry;
77
+ constructor(registry) {
78
+ this.registry = registry;
79
+ }
80
+ async resolve(spec) {
81
+ if (spec === 'default') {
82
+ throw new ModelResolutionError('internal: default spec resolved by the runner');
83
+ }
84
+ const available = this.registry.getAvailable();
85
+ const matches = available.filter((model) => model.id === spec.id && (spec.provider ? model.provider === spec.provider : true));
86
+ const label = spec.provider ? `${spec.provider}:${spec.id}` : spec.id;
87
+ if (matches.length === 0) {
88
+ throw new ModelResolutionError(`unknown model "${label}" — available: ${this.describe() || '(none)'}`);
89
+ }
90
+ if (matches.length > 1) {
91
+ throw new ModelResolutionError(`"${spec.id}" is ambiguous (${matches.map((m) => m.provider).join(', ')}) — use "provider:model"`);
92
+ }
93
+ const model = matches[0];
94
+ if (!this.registry.hasConfiguredAuth(model)) {
95
+ throw new ModelResolutionError(`provider "${model.provider}" is not signed in — run \`deepclause login\``);
96
+ }
97
+ return {
98
+ provider: model.provider,
99
+ id: model.id,
100
+ temperature: spec.temperature,
101
+ maxTokens: spec.maxTokens ?? model.maxTokens,
102
+ contextWindow: model.contextWindow,
103
+ reasoning: Boolean(model.reasoning),
104
+ reasoningLevel: spec.reasoning,
105
+ supportedThinkingLevels: supportedThinkingLevels(model),
106
+ };
107
+ }
108
+ describe() {
109
+ return this.registry
110
+ .getAvailable()
111
+ .map((model) => `${model.provider}:${model.id}`)
112
+ .slice(0, 12)
113
+ .join(', ');
114
+ }
115
+ catalog() {
116
+ return this.registry.getAvailable().map((model) => ({
117
+ model: `${model.provider}:${model.id}`,
118
+ inputCost: model.cost?.input,
119
+ outputCost: model.cost?.output,
120
+ contextWindow: model.contextWindow,
121
+ }));
122
+ }
123
+ }
124
+ /** Resolve against the bundled model database (the `env` backend). */
125
+ export class EnvModelResolver {
126
+ sessionProvider;
127
+ constructor(sessionProvider) {
128
+ this.sessionProvider = sessionProvider;
129
+ }
130
+ async resolve(spec) {
131
+ if (spec === 'default') {
132
+ throw new ModelResolutionError('internal: default spec resolved by the runner');
133
+ }
134
+ const provider = spec.provider ?? this.sessionProvider;
135
+ const entry = lookupModel(spec.id);
136
+ const providerEntry = lookupProvider(provider);
137
+ return {
138
+ provider,
139
+ id: spec.id,
140
+ temperature: spec.temperature,
141
+ maxTokens: spec.maxTokens ?? entry?.limit.output,
142
+ contextWindow: entry?.limit.context,
143
+ reasoning: entry?.reasoning ?? false,
144
+ reasoningLevel: spec.reasoning,
145
+ reasoningType: providerEntry?.reasoning_type ?? 'none',
146
+ reasoningBudgetMap: providerEntry?.budget_map,
147
+ };
148
+ }
149
+ describe() {
150
+ return Object.keys(getAllModels()).slice(0, 12).join(', ');
151
+ }
152
+ catalog() {
153
+ return Object.keys(getAllModels()).map((id) => ({ model: id }));
154
+ }
155
+ }
156
+ //# sourceMappingURL=model-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../../src/repl/model-resolver.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,10 @@ export interface ReplRendererOptions {
33
33
  errorSink?: (text: string) => void;
34
34
  /** Observe every event before filtering (used by the status tracker). */
35
35
  onEvent?: (event: DMLEvent) => void;
36
+ /** Workspace root, used to resolve media paths for the non-image fallback. */
37
+ workspace?: string;
38
+ /** Hand images to the OS viewer (xdg-open/open) when the terminal cannot show them. */
39
+ openImages?: boolean;
36
40
  }
37
41
  /** Human-readable wall-clock duration: `450ms`, `1.2s`, `2m05s`. */
38
42
  export declare function formatDuration(ms: number): string;
@@ -51,7 +55,10 @@ export declare class ReplRenderer {
51
55
  private width;
52
56
  private sink;
53
57
  private errorSink;
58
+ private imageSink?;
54
59
  private eventSink?;
60
+ private workspace?;
61
+ private openImages;
55
62
  /** Frame key of the currently open streamed-text region, or null. */
56
63
  private lastStreamFrame;
57
64
  /** Reasoning region key and characters shown so far (for `summary` mode). */
@@ -70,6 +77,13 @@ export declare class ReplRenderer {
70
77
  constructor(options?: ReplRendererOptions);
71
78
  /** Replace the output sinks (used when moving into a TUI transcript). */
72
79
  setSink(sink: (text: string) => void, errorSink?: (text: string) => void): void;
80
+ /**
81
+ * Route terminal-image blocks (from `image()`) into a TUI transcript. When no
82
+ * sink is set, `image()` writes the escape sequence to stdout directly.
83
+ */
84
+ setImageSink(sink?: (lines: string[]) => void): void;
85
+ /** Current rendering width in cells. */
86
+ getWidth(): number;
73
87
  /** Update the rendering width (TUI resize). */
74
88
  setWidth(width: number): void;
75
89
  /** Clean up and syntax-highlight a Prolog listing for display. */
@@ -93,7 +107,18 @@ export declare class ReplRenderer {
93
107
  write(text: string): void;
94
108
  /** Write a line to the normal sink. */
95
109
  writeLine(text?: string): void;
96
- /** Flush any buffered streamed text (e.g. an unterminated markdown line). */
110
+ /**
111
+ * Write a terminal-image block (the escape sequence plus reserved blank rows).
112
+ * In a TUI this goes to the image sink; otherwise it is written raw.
113
+ */
114
+ image(lines: string[]): void;
115
+ /**
116
+ * Render a `media` event (from `output(media(...))`): an inline terminal image
117
+ * when supported, otherwise an OSC-8 hyperlinked path (optionally opened).
118
+ */
119
+ private renderMedia;
120
+ /** Hand a file to the OS viewer (best effort, never blocks). */
121
+ private openExternal;
97
122
  flush(): void;
98
123
  writeErrorLine(text: string): void;
99
124
  /**
@@ -109,7 +134,14 @@ export declare class ReplRenderer {
109
134
  private renderTaskActivity;
110
135
  private describeTask;
111
136
  private renderToolCall;
112
- /** Up to TOOL_OUTPUT_LINES captured output lines, as tinted panel lines. */
137
+ /**
138
+ * A summary line for the captured output, plus a few of its lines.
139
+ *
140
+ * Which lines depends on where the useful end is: stdout is shown from the
141
+ * *head* (for structured output the head carries the shape — `{`, a first
142
+ * record — while the tail is arbitrary fragments), and stderr from the *tail*,
143
+ * where the diagnostic normally is. Full output is `--verbose`.
144
+ */
113
145
  private toolOutputLines;
114
146
  /** Show/hide the live model-call indicator. */
115
147
  private renderModelCall;
@@ -142,6 +174,8 @@ export declare class ReplRenderer {
142
174
  private writeReasoning;
143
175
  /** Keep a `thinking…` spinner running (restart once if the label differs). */
144
176
  private ensureThinkingSpinner;
177
+ /** Keep a live indicator on screen while a tool (e.g. bash) is running. */
178
+ private ensureToolSpinner;
145
179
  private announceReasoningTruncated;
146
180
  /** Write a streamed chunk, prefixing it with its frame label on first use. */
147
181
  private writeStream;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/repl/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/repl/render.ts"],"names":[],"mappings":"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"}