@chances-ai/engine 28.0.0 → 30.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/agents/index.js +1 -1
  2. package/dist/ai/adapters/ai-sdk-stream.js +15 -0
  3. package/dist/ai/adapters/ai-sdk-stream.js.map +1 -1
  4. package/dist/ai/adapters/ai-sdk.js +1 -1
  5. package/dist/ai/adapters/ai-sdk.js.map +1 -1
  6. package/dist/ai/setup.d.ts +1 -1
  7. package/dist/ai/setup.js +1 -1
  8. package/dist/ai/types.d.ts +13 -1
  9. package/dist/ai/types.d.ts.map +1 -1
  10. package/dist/core/engine.d.ts +17 -3
  11. package/dist/core/engine.d.ts.map +1 -1
  12. package/dist/core/engine.js +49 -3
  13. package/dist/core/engine.js.map +1 -1
  14. package/dist/core/task-tool.d.ts +1 -1
  15. package/dist/core/task-tool.js +1 -1
  16. package/dist/core/workspace-query.d.ts +1 -1
  17. package/dist/core/workspace-query.js +1 -1
  18. package/dist/hashline/apply.d.ts +9 -0
  19. package/dist/hashline/apply.d.ts.map +1 -0
  20. package/dist/hashline/apply.js +523 -0
  21. package/dist/hashline/apply.js.map +1 -0
  22. package/dist/hashline/block.d.ts +25 -0
  23. package/dist/hashline/block.d.ts.map +1 -0
  24. package/dist/hashline/block.js +71 -0
  25. package/dist/hashline/block.js.map +1 -0
  26. package/dist/hashline/format.d.ts +106 -0
  27. package/dist/hashline/format.d.ts.map +1 -0
  28. package/dist/hashline/format.js +191 -0
  29. package/dist/hashline/format.js.map +1 -0
  30. package/dist/hashline/fs.d.ts +87 -0
  31. package/dist/hashline/fs.d.ts.map +1 -0
  32. package/dist/hashline/fs.js +123 -0
  33. package/dist/hashline/fs.js.map +1 -0
  34. package/dist/hashline/index.d.ts +27 -0
  35. package/dist/hashline/index.d.ts.map +1 -0
  36. package/dist/hashline/index.js +27 -0
  37. package/dist/hashline/index.js.map +1 -0
  38. package/dist/hashline/input.d.ts +101 -0
  39. package/dist/hashline/input.d.ts.map +1 -0
  40. package/dist/hashline/input.js +378 -0
  41. package/dist/hashline/input.js.map +1 -0
  42. package/dist/hashline/messages.d.ts +87 -0
  43. package/dist/hashline/messages.d.ts.map +1 -0
  44. package/dist/hashline/messages.js +94 -0
  45. package/dist/hashline/messages.js.map +1 -0
  46. package/dist/hashline/mismatch.d.ts +45 -0
  47. package/dist/hashline/mismatch.d.ts.map +1 -0
  48. package/dist/hashline/mismatch.js +118 -0
  49. package/dist/hashline/mismatch.js.map +1 -0
  50. package/dist/hashline/normalize.d.ts +22 -0
  51. package/dist/hashline/normalize.d.ts.map +1 -0
  52. package/dist/hashline/normalize.js +31 -0
  53. package/dist/hashline/normalize.js.map +1 -0
  54. package/dist/hashline/parser.d.ts +24 -0
  55. package/dist/hashline/parser.d.ts.map +1 -0
  56. package/dist/hashline/parser.js +295 -0
  57. package/dist/hashline/parser.js.map +1 -0
  58. package/dist/hashline/patcher.d.ts +111 -0
  59. package/dist/hashline/patcher.d.ts.map +1 -0
  60. package/dist/hashline/patcher.js +332 -0
  61. package/dist/hashline/patcher.js.map +1 -0
  62. package/dist/hashline/recovery.d.ts +41 -0
  63. package/dist/hashline/recovery.d.ts.map +1 -0
  64. package/dist/hashline/recovery.js +175 -0
  65. package/dist/hashline/recovery.js.map +1 -0
  66. package/dist/hashline/snapshots.d.ts +62 -0
  67. package/dist/hashline/snapshots.d.ts.map +1 -0
  68. package/dist/hashline/snapshots.js +127 -0
  69. package/dist/hashline/snapshots.js.map +1 -0
  70. package/dist/hashline/tokenizer.d.ts +66 -0
  71. package/dist/hashline/tokenizer.d.ts.map +1 -0
  72. package/dist/hashline/tokenizer.js +408 -0
  73. package/dist/hashline/tokenizer.js.map +1 -0
  74. package/dist/hashline/types.d.ts +117 -0
  75. package/dist/hashline/types.d.ts.map +1 -0
  76. package/dist/hashline/types.js +13 -0
  77. package/dist/hashline/types.js.map +1 -0
  78. package/dist/local-vault/index.d.ts +1 -1
  79. package/dist/local-vault/index.js +1 -1
  80. package/dist/lsp/index.d.ts +1 -1
  81. package/dist/lsp/index.js +1 -1
  82. package/dist/lsp/types.d.ts +2 -2
  83. package/dist/mcp/host.d.ts +3 -3
  84. package/dist/mcp/load-mcp-host.d.ts +4 -4
  85. package/dist/mcp/load-mcp-host.js +4 -4
  86. package/dist/mcp/oauth/provider.d.ts.map +1 -1
  87. package/dist/mcp/oauth/provider.js +10 -1
  88. package/dist/mcp/oauth/provider.js.map +1 -1
  89. package/dist/plugin-api/index.d.ts +10 -2
  90. package/dist/plugin-api/index.d.ts.map +1 -1
  91. package/dist/plugin-api/index.js +15 -0
  92. package/dist/plugin-api/index.js.map +1 -1
  93. package/dist/tools/approval.d.ts +1 -1
  94. package/dist/tools/approval.js +1 -1
  95. package/dist/tools/builtins/_hashline-fs.d.ts +16 -0
  96. package/dist/tools/builtins/_hashline-fs.d.ts.map +1 -0
  97. package/dist/tools/builtins/_hashline-fs.js +62 -0
  98. package/dist/tools/builtins/_hashline-fs.js.map +1 -0
  99. package/dist/tools/builtins/_image.d.ts +26 -0
  100. package/dist/tools/builtins/_image.d.ts.map +1 -0
  101. package/dist/tools/builtins/_image.js +76 -0
  102. package/dist/tools/builtins/_image.js.map +1 -0
  103. package/dist/tools/builtins/_login-shell.d.ts +17 -0
  104. package/dist/tools/builtins/_login-shell.d.ts.map +1 -0
  105. package/dist/tools/builtins/_login-shell.js +66 -0
  106. package/dist/tools/builtins/_login-shell.js.map +1 -0
  107. package/dist/tools/builtins/_notebook.d.ts +15 -0
  108. package/dist/tools/builtins/_notebook.d.ts.map +1 -0
  109. package/dist/tools/builtins/_notebook.js +81 -0
  110. package/dist/tools/builtins/_notebook.js.map +1 -0
  111. package/dist/tools/builtins/_pdf.d.ts +19 -0
  112. package/dist/tools/builtins/_pdf.d.ts.map +1 -0
  113. package/dist/tools/builtins/_pdf.js +42 -0
  114. package/dist/tools/builtins/_pdf.js.map +1 -0
  115. package/dist/tools/builtins/_shared.d.ts +11 -0
  116. package/dist/tools/builtins/_shared.d.ts.map +1 -1
  117. package/dist/tools/builtins/_shared.js +40 -1
  118. package/dist/tools/builtins/_shared.js.map +1 -1
  119. package/dist/tools/builtins/ast-edit.d.ts +18 -0
  120. package/dist/tools/builtins/ast-edit.d.ts.map +1 -0
  121. package/dist/tools/builtins/ast-edit.js +109 -0
  122. package/dist/tools/builtins/ast-edit.js.map +1 -0
  123. package/dist/tools/builtins/ast-grep.d.ts +6 -0
  124. package/dist/tools/builtins/ast-grep.d.ts.map +1 -0
  125. package/dist/tools/builtins/ast-grep.js +67 -0
  126. package/dist/tools/builtins/ast-grep.js.map +1 -0
  127. package/dist/tools/builtins/bash.d.ts.map +1 -1
  128. package/dist/tools/builtins/bash.js +13 -2
  129. package/dist/tools/builtins/bash.js.map +1 -1
  130. package/dist/tools/builtins/edit.d.ts.map +1 -1
  131. package/dist/tools/builtins/edit.js +112 -31
  132. package/dist/tools/builtins/edit.js.map +1 -1
  133. package/dist/tools/builtins/lsp.js +1 -1
  134. package/dist/tools/builtins/pty.d.ts +1 -1
  135. package/dist/tools/builtins/read.d.ts.map +1 -1
  136. package/dist/tools/builtins/read.js +187 -11
  137. package/dist/tools/builtins/read.js.map +1 -1
  138. package/dist/tools/builtins.d.ts.map +1 -1
  139. package/dist/tools/builtins.js +4 -0
  140. package/dist/tools/builtins.js.map +1 -1
  141. package/dist/tools/file-lock.d.ts +8 -0
  142. package/dist/tools/file-lock.d.ts.map +1 -1
  143. package/dist/tools/file-lock.js +22 -0
  144. package/dist/tools/file-lock.js.map +1 -1
  145. package/dist/tools/index.d.ts +1 -1
  146. package/dist/tools/index.d.ts.map +1 -1
  147. package/dist/tools/index.js.map +1 -1
  148. package/dist/tools/types.d.ts +27 -1
  149. package/dist/tools/types.d.ts.map +1 -1
  150. package/dist/tools/types.js.map +1 -1
  151. package/package.json +8 -3
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Pure data types shared across the hashline parser, applier, and patcher.
3
+ * Nothing in this file references a filesystem, agent runtime, or schema
4
+ * library — keep it that way.
5
+ *
6
+ * Ported from oh-my-pi `packages/hashline/src/types.ts` (7.9 task 09). The
7
+ * line-anchored patch language + content-hash anchoring + delimiter-balance
8
+ * auto-repair design is oh-my-pi's; chances-cli changes are confined to the
9
+ * hash function (cross-runtime, see `format.ts`), the integrity check (exact
10
+ * snapshot-text equality, see `patcher.ts`), and the FS seam (`fs.ts`).
11
+ */
12
+ /** A line-number anchor (1-indexed). */
13
+ export interface Anchor {
14
+ line: number;
15
+ }
16
+ /** Where an `insert` edit should land relative to existing content. */
17
+ export type Cursor = {
18
+ kind: "bof";
19
+ } | {
20
+ kind: "eof";
21
+ } | {
22
+ kind: "before_anchor";
23
+ anchor: Anchor;
24
+ } | {
25
+ kind: "after_anchor";
26
+ anchor: Anchor;
27
+ };
28
+ /**
29
+ * A single low-level edit produced by the parser and consumed by the applier.
30
+ * Multi-line replacements decompose to one `insert` per replacement line plus
31
+ * one `delete` per consumed line. Replacement payloads are tagged so the
32
+ * applier can distinguish literal insertion from new content for a deleted
33
+ * line.
34
+ */
35
+ export type Edit = {
36
+ kind: "insert";
37
+ cursor: Cursor;
38
+ text: string;
39
+ lineNum: number;
40
+ index: number;
41
+ mode?: "replacement";
42
+ } | {
43
+ kind: "delete";
44
+ anchor: Anchor;
45
+ lineNum: number;
46
+ index: number;
47
+ oldAssertion?: string;
48
+ } | {
49
+ /**
50
+ * Deferred block edit (`replace block N:` / `delete block N`). The exact
51
+ * line span is unknown at parse time — it is computed by
52
+ * {@link resolveBlockEdits} once file text + path (→ language) are
53
+ * available, then expanded into concrete edits: a non-empty `payloads`
54
+ * (from `replace block`) becomes the same `replacement` inserts + deletes
55
+ * that `replace start..end:` produces; an empty `payloads` (from `delete
56
+ * block`) becomes a pure range deletion. `applyEdits` never sees this
57
+ * variant.
58
+ */
59
+ kind: "block";
60
+ anchor: Anchor;
61
+ payloads: string[];
62
+ lineNum: number;
63
+ index: number;
64
+ };
65
+ /** Result of applying a parsed set of edits to a text body. */
66
+ export interface ApplyResult {
67
+ /** Post-edit text body. */
68
+ text: string;
69
+ /** First line number (1-indexed) that changed, or `undefined` for a no-op apply. */
70
+ firstChangedLine?: number;
71
+ /** Diagnostic warnings collected by the parser, patcher, or recovery. */
72
+ warnings?: string[];
73
+ }
74
+ /** A parsed `[A..B]` line range. */
75
+ export interface ParsedRange {
76
+ start: Anchor;
77
+ end: Anchor;
78
+ }
79
+ /** Optional hints for {@link splitPatchInput}. */
80
+ export interface SplitOptions {
81
+ /** Resolves absolute paths inside hashline headers to cwd-relative form. */
82
+ cwd?: string;
83
+ /**
84
+ * Fallback path used when the input lacks a `¶PATH` header but contains
85
+ * recognizable hashline operations. Lets streaming previews work before
86
+ * the model has written the header.
87
+ */
88
+ path?: string;
89
+ }
90
+ /**
91
+ * Resolved 1-indexed inclusive line span of a `replace block N:` target.
92
+ */
93
+ export interface BlockSpan {
94
+ /** First line of the block (1-indexed, inclusive). */
95
+ start: number;
96
+ /** Last line of the block (1-indexed, inclusive). */
97
+ end: number;
98
+ }
99
+ /** Request handed to a {@link BlockResolver} to resolve one `replace block N:` anchor. */
100
+ export interface BlockResolverRequest {
101
+ /** Target file path (used to infer language by extension). */
102
+ path: string;
103
+ /** Full text the block must be resolved against (the snapshot the tag names). */
104
+ text: string;
105
+ /** 1-indexed line the block must begin on. */
106
+ line: number;
107
+ }
108
+ /**
109
+ * Resolves a `replace block N:` anchor to the line span of the syntactic block
110
+ * that begins on line N. Returns `null` when no block can be resolved
111
+ * (unrecognized language, blank/out-of-range line, no node begins there, or the
112
+ * resolved subtree has a syntax error). Pure seam: the hashline core declares
113
+ * the contract; the host injects a tree-sitter-backed implementation (in
114
+ * chances-cli, `native.blockRangeAt` — task 02 wave-2).
115
+ */
116
+ export type BlockResolver = (request: BlockResolverRequest) => BlockSpan | null;
117
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hashline/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wCAAwC;AACxC,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,MAAM,IAAI,GACZ;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACzF;IACE;;;;;;;;;OASG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,0FAA0F;AAC1F,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,SAAS,GAAG,IAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Pure data types shared across the hashline parser, applier, and patcher.
3
+ * Nothing in this file references a filesystem, agent runtime, or schema
4
+ * library — keep it that way.
5
+ *
6
+ * Ported from oh-my-pi `packages/hashline/src/types.ts` (7.9 task 09). The
7
+ * line-anchored patch language + content-hash anchoring + delimiter-balance
8
+ * auto-repair design is oh-my-pi's; chances-cli changes are confined to the
9
+ * hash function (cross-runtime, see `format.ts`), the integrity check (exact
10
+ * snapshot-text equality, see `patcher.ts`), and the FS seam (`fs.ts`).
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hashline/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (3.7) `@chances-ai/local-vault` — encrypted credential store.
2
+ * (3.7) `@chances-ai/engine/local-vault` — encrypted credential store.
3
3
  *
4
4
  * Public surface: `createLocalVault(opts?) -> Promise<LocalVault>`.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (3.7) `@chances-ai/local-vault` — encrypted credential store.
2
+ * (3.7) `@chances-ai/engine/local-vault` — encrypted credential store.
3
3
  *
4
4
  * Public surface: `createLocalVault(opts?) -> Promise<LocalVault>`.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (4.2) Public surface of `@chances-ai/lsp`.
2
+ * (4.2) Public surface of `@chances-ai/engine/lsp`.
3
3
  *
4
4
  * Kept narrow — the tool wrapper imports `LspHost` + `loadLspHost`
5
5
  * via type-only references, plus the error class for diagnostics.
package/dist/lsp/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (4.2) Public surface of `@chances-ai/lsp`.
2
+ * (4.2) Public surface of `@chances-ai/engine/lsp`.
3
3
  *
4
4
  * Kept narrow — the tool wrapper imports `LspHost` + `loadLspHost`
5
5
  * via type-only references, plus the error class for diagnostics.
@@ -3,8 +3,8 @@
3
3
  * runtime can round-trip them without coupling to vscode-languageserver-protocol.
4
4
  */
5
5
  /** One language-server entry. Identical shape to `LspServerConfig` in
6
- * `@chances-ai/config` — re-declared here to keep the lsp package
7
- * boundary-clean (importing the type from `@chances-ai/config` is
6
+ * `@chances-ai/runtime/config` — re-declared here to keep the lsp package
7
+ * boundary-clean (importing the type from `@chances-ai/runtime/config` is
8
8
  * allowed at the value layer too). */
9
9
  export interface LspServerConfig {
10
10
  command: string;
@@ -8,7 +8,7 @@ import { ChancesOAuthClientProvider } from "./oauth/provider.js";
8
8
  import { LoopbackCallbackServer } from "./oauth/callback-server.js";
9
9
  /**
10
10
  * (3.7) Narrow vault surface the host depends on. Mirrored from
11
- * `@chances-ai/local-vault#LocalVault` so this package does NOT hard-import
11
+ * `@chances-ai/engine/local-vault#LocalVault` so this package does NOT hard-import
12
12
  * the optional peer (which is loaded via computed specifier in
13
13
  * `loadMcp({withVault})` — see `index.ts`).
14
14
  */
@@ -33,7 +33,7 @@ export interface McpHostOptions {
33
33
  * Identity the host announces to each MCP server during the initialize
34
34
  * handshake. Callers (the CLI) thread `{ name: pkg.name, version: pkg.version }`
35
35
  * read from their own `package.json` — keeping the version read out of
36
- * `@chances-ai/mcp` itself avoids the unverified "Bun embeds a transitive
36
+ * `@chances-ai/engine/mcp` itself avoids the unverified "Bun embeds a transitive
37
37
  * workspace JSON import" path under `bun build --compile`. When omitted,
38
38
  * the library falls back to a `0.0.0-dev` default.
39
39
  */
@@ -43,7 +43,7 @@ export interface McpHostOptions {
43
43
  * servers; absent means OAuth servers fail with a clear "vault
44
44
  * unavailable" message and the rest keep working. Routed in by
45
45
  * `loadMcp({withVault: true})` — see `index.ts`. `apps/cli` never
46
- * imports `@chances-ai/local-vault` directly (boundary decision).
46
+ * imports `@chances-ai/engine/local-vault` directly (boundary decision).
47
47
  */
48
48
  vault?: LocalVaultLike;
49
49
  /**
@@ -1,19 +1,19 @@
1
1
  /**
2
2
  * (3.7) `loadMcpHost({withVault})` — boot-time factory for `McpHost` that
3
- * lazily resolves `@chances-ai/local-vault` ONLY when the caller asks for
3
+ * lazily resolves `@chances-ai/engine/local-vault` ONLY when the caller asks for
4
4
  * a vault. Keeps the cold-start budget intact when no OAuth-configured
5
5
  * MCP server is present (`apps/cli/src/boot/load-runtime.ts` passes
6
6
  * `withVault: needsOAuth`).
7
7
  *
8
8
  * **Boundary decision (codex Round-1 NICE).** `apps/cli` MUST NOT import
9
- * `@chances-ai/local-vault` directly — the only `app → local-vault` edge
9
+ * `@chances-ai/engine/local-vault` directly — the only `app → local-vault` edge
10
10
  * would force dependency-cruiser to permit a new boundary rule. Routing
11
11
  * vault creation through this factory keeps the graph clean: only
12
- * `@chances-ai/mcp` reaches into the vault package.
12
+ * `@chances-ai/engine/mcp` reaches into the vault package.
13
13
  *
14
14
  * **`bun build --compile` story.** The vault specifier is COMPUTED
15
15
  * (`["@chances-ai", "local-vault"].join("/")`) so Bun's bundler doesn't
16
- * statically resolve it. A binary built without `@chances-ai/local-vault`
16
+ * statically resolve it. A binary built without `@chances-ai/engine/local-vault`
17
17
  * in node_modules still compiles cleanly — at runtime, the dynamic
18
18
  * import fails, we log a clear diagnostic, and OAuth-configured MCP
19
19
  * servers individually fail with the same diagnostic (the non-OAuth
@@ -1,19 +1,19 @@
1
1
  /**
2
2
  * (3.7) `loadMcpHost({withVault})` — boot-time factory for `McpHost` that
3
- * lazily resolves `@chances-ai/local-vault` ONLY when the caller asks for
3
+ * lazily resolves `@chances-ai/engine/local-vault` ONLY when the caller asks for
4
4
  * a vault. Keeps the cold-start budget intact when no OAuth-configured
5
5
  * MCP server is present (`apps/cli/src/boot/load-runtime.ts` passes
6
6
  * `withVault: needsOAuth`).
7
7
  *
8
8
  * **Boundary decision (codex Round-1 NICE).** `apps/cli` MUST NOT import
9
- * `@chances-ai/local-vault` directly — the only `app → local-vault` edge
9
+ * `@chances-ai/engine/local-vault` directly — the only `app → local-vault` edge
10
10
  * would force dependency-cruiser to permit a new boundary rule. Routing
11
11
  * vault creation through this factory keeps the graph clean: only
12
- * `@chances-ai/mcp` reaches into the vault package.
12
+ * `@chances-ai/engine/mcp` reaches into the vault package.
13
13
  *
14
14
  * **`bun build --compile` story.** The vault specifier is COMPUTED
15
15
  * (`["@chances-ai", "local-vault"].join("/")`) so Bun's bundler doesn't
16
- * statically resolve it. A binary built without `@chances-ai/local-vault`
16
+ * statically resolve it. A binary built without `@chances-ai/engine/local-vault`
17
17
  * in node_modules still compiles cleanly — at runtime, the dynamic
18
18
  * import fails, we log a clear diagnostic, and OAuth-configured MCP
19
19
  * servers individually fail with the same diagnostic (the non-OAuth
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/mcp/oauth/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/mcp/oauth/provider.ts"],"names":[],"mappings":"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"}
@@ -106,7 +106,16 @@ export class ChancesOAuthClientProvider {
106
106
  }
107
107
  }
108
108
  get clientMetadata() {
109
- return CHANCES_CLIENT_METADATA;
109
+ // (7.16 A2) DCR must register the SAME loopback redirect_uri the authorize
110
+ // step will send, or the IdP rejects the authorization (`invalid
111
+ // redirect_uri` / unregistered). The login flow binds the callback server
112
+ // BEFORE the SDK's auth() drives registration (apps/cli mcp login), so the
113
+ // URL is available here. When unbound (refresh-only flows never re-register)
114
+ // we fall back to the empty list the SDK tolerates.
115
+ const url = this.redirectUrl;
116
+ if (!url)
117
+ return CHANCES_CLIENT_METADATA;
118
+ return { ...CHANCES_CLIENT_METADATA, redirect_uris: [url.toString()] };
110
119
  }
111
120
  /** SDK contract: a 32-byte base64url string. Independent of the PKCE
112
121
  * verifier (codex Round-1 MUST-FIX #2) — state lives in the browser
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/mcp/oauth/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/mcp/oauth/provider.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { EventBus, Logger, JSONValue } from "@chances-ai/runtime";
2
2
  import type { Tool, ToolRegistry } from "../tools/index.js";
3
3
  /** Re-exported so plugin authors can write `import type { Tool } from
4
- * "@chances-ai/plugin-api"` and skip a second workspace dep. The types still
5
- * physically live in `@chances-ai/tools`. */
4
+ * "@chances-ai/engine/plugin-api"` and skip a second workspace dep. The types still
5
+ * physically live in `@chances-ai/engine/tools`. */
6
6
  export type { Tool, ToolCategory, ToolContext, ToolResult } from "../tools/index.js";
7
7
  /**
8
8
  * Hooks let plugins observe/mutate the turn lifecycle. Built-in features use the
@@ -72,6 +72,11 @@ export interface SlashCommand {
72
72
  /** (5.10 A3) Alternate names. Reserved metadata — alias *matching* is not yet
73
73
  * wired into the typeahead (additive; lands when a command needs it). */
74
74
  aliases?: string[];
75
+ /** (7.16 W2.2) Opt OUT of the universal `/<cmd> ?` / `/<cmd> help` per-command
76
+ * help interception (see {@link PluginHost.dispatchSlash}). Set this on
77
+ * commands whose first arg is genuinely freeform — e.g. MCP prompt commands,
78
+ * where `?`/`help` may be a real prompt argument the user wants to pass. */
79
+ rawArgs?: boolean;
75
80
  /** Optional return value is displayed by the dispatcher (TUI info line, CLI
76
81
  * stdout). Commands that emit their own output via `ctx.bus`/`ctx.logger`
77
82
  * can return void. Return a {@link SlashRunResult} to submit a model turn
@@ -90,6 +95,9 @@ export declare function parseSlashInput(line: string): {
90
95
  name: string;
91
96
  args: string[];
92
97
  };
98
+ /** (7.16 W2.2) One-command help block, shown by the `/<cmd> ?` shortcut. Lists
99
+ * the invocation (with its argument hint), the description, and any aliases. */
100
+ export declare function formatSlashHelp(cmd: SlashCommand): string;
93
101
  export interface SlashDispatchResult {
94
102
  /** True when a command was found and ran (even if it threw or returned an error string). */
95
103
  ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin-api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;oDAEoD;AACpD,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAErF;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,KAAK,OAAO,KACpD,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;0DAEsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;8EAC0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;oDACgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;6EACyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;gFAG4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;+BAO2B;IAC3B,GAAG,CACD,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,YAAY,GAChB,MAAM,GAAG,IAAI,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;CAC7E;AAED;;;sDAGsD;AACtD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAG9E;AAED;iFACiF;AACjF,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAIzD;AAED,MAAM,WAAW,mBAAmB;IAClC,4FAA4F;IAC5F,EAAE,EAAE,OAAO,CAAC;IACZ,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;+EAC2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvF,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAClD;;4DAEwD;IACxD,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,SAAS,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,6FAA6F;AAC7F,qBAAa,UAAU;IAQnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IATzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2D;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D;0DACsD;gBAEnC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,YAAY,YAAA;IAGvC;;;+DAG2D;IAC3D,OAAO,CAAC,OAAO;IAyCf;;;;OAIG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnC,OAAO,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7G,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIpD,aAAa,IAAI,YAAY,EAAE;IAI/B;;;;;;;;;;OAUG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4B/G;;+BAE2B;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAS/B"}
@@ -6,6 +6,14 @@ export function parseSlashInput(line) {
6
6
  const parts = line.replace(/^\//, "").trim().split(/\s+/).filter(Boolean);
7
7
  return { name: parts[0] ?? "", args: parts.slice(1) };
8
8
  }
9
+ /** (7.16 W2.2) One-command help block, shown by the `/<cmd> ?` shortcut. Lists
10
+ * the invocation (with its argument hint), the description, and any aliases. */
11
+ export function formatSlashHelp(cmd) {
12
+ const lines = [`/${cmd.name}${cmd.argumentHint ? ` ${cmd.argumentHint}` : ""}`, ` ${cmd.description}`];
13
+ if (cmd.aliases?.length)
14
+ lines.push(` aliases: ${cmd.aliases.map((a) => `/${a}`).join(", ")}`);
15
+ return lines.join("\n");
16
+ }
9
17
  /** Identity helper that gives plugin authors type inference. */
10
18
  export function definePlugin(plugin) {
11
19
  return plugin;
@@ -115,6 +123,13 @@ export class PluginHost {
115
123
  const cmd = this.commands.get(name);
116
124
  if (!cmd)
117
125
  return { ok: false };
126
+ // (7.16 W2.2) `/<cmd> ?` / `/<cmd> help` is a universal "what does this do"
127
+ // shortcut, handled here so every command gets it for free (and both the
128
+ // chat and `-p` dispatch paths share one implementation). Skipped for
129
+ // `rawArgs` commands, whose first token is real input, not a help request.
130
+ if (!cmd.rawArgs && args.length === 1 && (args[0] === "?" || args[0] === "help")) {
131
+ return { ok: true, output: formatSlashHelp(cmd) };
132
+ }
118
133
  try {
119
134
  const ctx = { ...this.context(), openModal: tui?.openModal };
120
135
  const result = await cmd.run(args, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin-api/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ToolCategory } from "@chances-ai/runtime/config";
2
2
  import type { ApprovalMode, ToolTier } from "@chances-ai/runtime";
3
3
  /**
4
4
  * (5.3) Pure tier logic backing the session approval modes. Lives in
5
- * `@chances-ai/tools` (next to the gate, its only consumer) rather than in
5
+ * `@chances-ai/engine/tools` (next to the gate, its only consumer) rather than in
6
6
  * config/runtime so the tables sit beside the code that reads them; the bare
7
7
  * `ApprovalMode`/`ToolTier` type unions live in `@chances-ai/runtime` to avoid
8
8
  * a config↔runtime import cycle (codex 5.3 Round-1 MUST-FIX #3). See
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * (5.3) Pure tier logic backing the session approval modes. Lives in
3
- * `@chances-ai/tools` (next to the gate, its only consumer) rather than in
3
+ * `@chances-ai/engine/tools` (next to the gate, its only consumer) rather than in
4
4
  * config/runtime so the tables sit beside the code that reads them; the bare
5
5
  * `ApprovalMode`/`ToolTier` type unions live in `@chances-ai/runtime` to avoid
6
6
  * a config↔runtime import cycle (codex 5.3 Round-1 MUST-FIX #3). See
@@ -0,0 +1,16 @@
1
+ import { type BlockResolver, Filesystem, type WriteResult } from "../../hashline/index.js";
2
+ import type { ToolContext } from "../types.js";
3
+ /** Disk-backed hashline {@link Filesystem} bound to one tool-call's context. */
4
+ export declare class EngineToolFs extends Filesystem {
5
+ private readonly ctx;
6
+ constructor(ctx: ToolContext);
7
+ readText(path: string): Promise<string>;
8
+ preflightWrite(path: string): Promise<void>;
9
+ writeText(path: string, content: string): Promise<WriteResult>;
10
+ /** Lexical resolve — MUST equal the `read` tool's snapshot key (see
11
+ * `hashlineSnapshotKey`) so a tag minted by read resolves on edit. */
12
+ canonicalPath(path: string): string;
13
+ }
14
+ /** Native-backed block resolver for `replace block N:` / `delete block N`. */
15
+ export declare function makeBlockResolver(): BlockResolver;
16
+ //# sourceMappingURL=_hashline-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_hashline-fs.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/_hashline-fs.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,aAAa,EAAE,UAAU,EAAiB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,gFAAgF;AAChF,qBAAa,YAAa,SAAQ,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,WAAW;IAI9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ7E;0EACsE;IAC7D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG7C;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,IAAI,aAAa,CAUjD"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Engine-side bridges between the pure hashline core and the live workspace:
3
+ *
4
+ * - {@link EngineToolFs} — a hashline {@link Filesystem} whose writes route
5
+ * through `guardWrite` (realpath jail + protected-path floor) + atomic
6
+ * temp-then-rename + fs-scan cache invalidation, and whose `canonicalPath`
7
+ * matches the `read` tool's snapshot key so tags resolve.
8
+ * - {@link makeBlockResolver} — a {@link BlockResolver} backed by the native
9
+ * tree-sitter `blockRangeAt` (task 02 wave-2), capability-gated per call
10
+ * (R1-S6): a slim native build / parse failure resolves to `null`, which the
11
+ * patcher turns into a "use `replace N..M:`" error rather than crashing.
12
+ */
13
+ import { existsSync, readFileSync } from "node:fs";
14
+ import { dirname } from "node:path";
15
+ import { native } from "@chances-ai/native";
16
+ import { Filesystem, NotFoundError } from "../../hashline/index.js";
17
+ import { guardWrite, hashlineSnapshotKey, writeFileAtomic } from "./_shared.js";
18
+ /** Disk-backed hashline {@link Filesystem} bound to one tool-call's context. */
19
+ export class EngineToolFs extends Filesystem {
20
+ ctx;
21
+ constructor(ctx) {
22
+ super();
23
+ this.ctx = ctx;
24
+ }
25
+ async readText(path) {
26
+ const abs = hashlineSnapshotKey(this.ctx, path);
27
+ if (!existsSync(abs))
28
+ throw new NotFoundError(path);
29
+ return readFileSync(abs, "utf8");
30
+ }
31
+ async preflightWrite(path) {
32
+ // Fail-closed BEFORE any section commits: a jail escape / protected path
33
+ // throws here so a multi-section batch lands nothing (all-or-nothing).
34
+ guardWrite(this.ctx, path);
35
+ }
36
+ async writeText(path, content) {
37
+ const real = guardWrite(this.ctx, path);
38
+ writeFileAtomic(real, content);
39
+ // Keep grep/glob/ast within the same turn consistent ([10.4]).
40
+ native.invalidateFsScanCache(dirname(real));
41
+ return { text: content };
42
+ }
43
+ /** Lexical resolve — MUST equal the `read` tool's snapshot key (see
44
+ * `hashlineSnapshotKey`) so a tag minted by read resolves on edit. */
45
+ canonicalPath(path) {
46
+ return hashlineSnapshotKey(this.ctx, path);
47
+ }
48
+ }
49
+ /** Native-backed block resolver for `replace block N:` / `delete block N`. */
50
+ export function makeBlockResolver() {
51
+ return ({ path, text, line }) => {
52
+ try {
53
+ const range = native.blockRangeAt({ code: text, path, line });
54
+ return range ? { start: range.startLine, end: range.endLine } : null;
55
+ }
56
+ catch {
57
+ // AST_UNAVAILABLE (slim native) or any parse failure → unresolved.
58
+ return null;
59
+ }
60
+ };
61
+ }
62
+ //# sourceMappingURL=_hashline-fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_hashline-fs.js","sourceRoot":"","sources":["../../../src/tools/builtins/_hashline-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAsB,UAAU,EAAE,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAE1G,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhF,gFAAgF;AAChF,MAAM,OAAO,YAAa,SAAQ,UAAU;IACb;IAA7B,YAA6B,GAAgB;QAC3C,KAAK,EAAE,CAAC;QADmB,QAAG,GAAH,GAAG,CAAa;IAE7C,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,IAAY;QAClC,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,IAAY;QACxC,yEAAyE;QACzE,uEAAuE;QACvE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEQ,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,+DAA+D;QAC/D,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;0EACsE;IAC7D,aAAa,CAAC,IAAY;QACjC,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Image handling for the `read` tool (7.9 [5.5], "image done fully"). Detects
3
+ * image files by magic bytes, then resizes/re-encodes them to a vision token
4
+ * budget via `sharp` (a LAZY optional peer — absent ⇒ a clear install hint, the
5
+ * tool degrades, nothing else breaks). The Rust image path noted in decision
6
+ * 5.5 is a task-02 third-wave follow-up; sharp lands the feature now.
7
+ */
8
+ import type { ToolImagePart } from "../types.js";
9
+ /** Magic-byte → MIME sniffer for the formats we support. Returns null for non-images. */
10
+ export declare function sniffImageMime(buf: Buffer): string | null;
11
+ export type ImageReadResult = {
12
+ ok: true;
13
+ output: string;
14
+ images: ToolImagePart[];
15
+ } | {
16
+ ok: false;
17
+ output: string;
18
+ };
19
+ /**
20
+ * Read `buf` (already sniffed as `mime`) into a vision-ready {@link ToolImagePart}.
21
+ * Resizes the long edge to {@link MAX_EDGE} (never enlarges) so the encoded image
22
+ * fits a sane token budget; returns base64 bytes + MIME. Without the `sharp`
23
+ * peer, returns an actionable `ok:false` instead of shipping a multi-MB original.
24
+ */
25
+ export declare function readImageAsParts(buf: Buffer, displayPath: string, mime: string): Promise<ImageReadResult>;
26
+ //# sourceMappingURL=_image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_image.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/_image.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgBjD,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYzD;AAmBD,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,GACrD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC/G"}