@wrongstack/tools 1.0.8 → 1.0.10

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 (136) hide show
  1. package/dist/_win32-resolve.d.ts +5 -0
  2. package/dist/audit.js +5 -5
  3. package/dist/bash-kill-guard.d.ts +6 -4
  4. package/dist/bash.js +2 -2
  5. package/dist/browser/index.js +1 -1
  6. package/dist/builtin.js +41 -41
  7. package/dist/{chunk-N3OTTQNC.js → chunk-2OCAAFAT.js} +44 -25
  8. package/dist/{chunk-5MP76C72.js → chunk-2UVAIS5O.js} +24 -29
  9. package/dist/{chunk-SIIOHBNY.js → chunk-3RRK33YM.js} +2 -2
  10. package/dist/{chunk-M2W36JT7.js → chunk-4CE3RKEP.js} +6 -3
  11. package/dist/{chunk-QJARSK2G.js → chunk-4SUGLJLO.js} +11 -3
  12. package/dist/{chunk-AH7J5HWL.js → chunk-5RBUYFRV.js} +15 -7
  13. package/dist/{chunk-GNLHBDFO.js → chunk-6I6RXQFG.js} +127 -196
  14. package/dist/{chunk-WKLUOXR4.js → chunk-7GOE2ZTZ.js} +2 -2
  15. package/dist/{chunk-O6AGFJBO.js → chunk-7V33PHT6.js} +49 -77
  16. package/dist/{chunk-CAF4L6KN.js → chunk-C3WP6ZOT.js} +36 -48
  17. package/dist/{chunk-KMXPP32M.js → chunk-C6ZOXNXV.js} +13 -3
  18. package/dist/{chunk-EGT5QLCB.js → chunk-D6RQZMZS.js} +123 -255
  19. package/dist/{chunk-S6CGSFLX.js → chunk-DBG7UQGK.js} +10 -3
  20. package/dist/{chunk-FI6SOIVE.js → chunk-DLZCOEVG.js} +21 -3
  21. package/dist/{chunk-NL45OWEO.js → chunk-DOAHONOS.js} +7 -12
  22. package/dist/{chunk-3LQJXJDM.js → chunk-E7A4SLKR.js} +2 -2
  23. package/dist/{chunk-JB5JLY7V.js → chunk-ENE22I5W.js} +387 -394
  24. package/dist/{chunk-5KRKL3WD.js → chunk-FCSUBTUJ.js} +112 -119
  25. package/dist/{chunk-YUK3WLHJ.js → chunk-FVSMTEO3.js} +2 -2
  26. package/dist/{chunk-SEONDNLN.js → chunk-G7CYW5EP.js} +2 -2
  27. package/dist/{chunk-TU6UVATU.js → chunk-HYHE4VNA.js} +3 -3
  28. package/dist/{chunk-HIRVCXLP.js → chunk-IE4KDAOB.js} +3 -3
  29. package/dist/{chunk-YA2ZYCJY.js → chunk-JPK2HHBK.js} +1 -1
  30. package/dist/{chunk-7E55DAFW.js → chunk-KHUCKLOR.js} +12 -7
  31. package/dist/{chunk-R3HIZVFS.js → chunk-KPDCKSN5.js} +23 -3
  32. package/dist/{chunk-B3MGJBFI.js → chunk-KS2OEZWV.js} +23 -47
  33. package/dist/{chunk-UI3ZJIG3.js → chunk-LKLIQUCW.js} +14 -8
  34. package/dist/{chunk-62OAECEQ.js → chunk-LLSFOUZF.js} +8 -8
  35. package/dist/{chunk-YZQSUL5G.js → chunk-M4ZHHCCW.js} +14 -6
  36. package/dist/{chunk-IXIS7RSG.js → chunk-MRXWOOOR.js} +29 -47
  37. package/dist/{chunk-C4DSQBTT.js → chunk-NEYUPZL6.js} +3 -3
  38. package/dist/{chunk-6XYFYLN7.js → chunk-O2MHULBO.js} +13 -8
  39. package/dist/{chunk-B62LKMWQ.js → chunk-OKZJJDOG.js} +86 -188
  40. package/dist/{chunk-HOFVYIPI.js → chunk-ON6ET5ER.js} +16 -1
  41. package/dist/{chunk-KF7GMVNU.js → chunk-OUERRFEM.js} +32 -11
  42. package/dist/{chunk-GF4JHLCO.js → chunk-PWZUHZP7.js} +2 -2
  43. package/dist/{chunk-OGQMPX3J.js → chunk-QAWI3RSK.js} +37 -81
  44. package/dist/{chunk-ZMCV3XOV.js → chunk-SPNXDTCJ.js} +29 -63
  45. package/dist/{chunk-H2VB7GCR.js → chunk-ULI2J6TX.js} +27 -14
  46. package/dist/{chunk-EMA2XENR.js → chunk-UVYRQKPZ.js} +4 -3
  47. package/dist/{chunk-MF6ZUBI7.js → chunk-V25Q6TQ7.js} +3 -3
  48. package/dist/{chunk-2NTHMZV3.js → chunk-VMJY6FYJ.js} +693 -276
  49. package/dist/{chunk-ZOUG3KKS.js → chunk-XPVYZ2S6.js} +2 -2
  50. package/dist/{chunk-5U5ULQX2.js → chunk-XZLVJD56.js} +5 -1
  51. package/dist/{chunk-HCPSVK7J.js → chunk-YKSOSI2N.js} +47 -31
  52. package/dist/codebase-index/codebase-ast-replace-tool.d.ts +5 -6
  53. package/dist/codebase-index/codebase-context-tool.d.ts +4 -6
  54. package/dist/codebase-index/codebase-impact-analysis-tool.d.ts +1 -2
  55. package/dist/codebase-index/codebase-incoming-calls-tool.d.ts +0 -2
  56. package/dist/codebase-index/codebase-index-tool.d.ts +0 -2
  57. package/dist/codebase-index/codebase-invariant-check-tool.d.ts +1 -2
  58. package/dist/codebase-index/codebase-outgoing-calls-tool.d.ts +0 -2
  59. package/dist/codebase-index/codebase-repo-map-tool.d.ts +1 -2
  60. package/dist/codebase-index/codebase-search-tool.d.ts +1 -1
  61. package/dist/codebase-index/codebase-targeted-test-tool.d.ts +1 -2
  62. package/dist/codebase-index/index.js +8 -8
  63. package/dist/codebase-index/parser-worker-script.js +3 -3
  64. package/dist/codebase-index/project-server.js +5 -5
  65. package/dist/codebase-index/worker.js +4 -4
  66. package/dist/design.js +1 -1
  67. package/dist/diff.js +1 -1
  68. package/dist/edit.js +7 -7
  69. package/dist/exec.d.ts +7 -7
  70. package/dist/exec.js +2 -2
  71. package/dist/format.js +5 -5
  72. package/dist/git.js +1 -1
  73. package/dist/glob.js +1 -1
  74. package/dist/{go-parser-VDPRQEGM.js → go-parser-Z4H6SR3R.js} +6 -3
  75. package/dist/grep.js +1 -1
  76. package/dist/index.js +45 -45
  77. package/dist/install.js +5 -5
  78. package/dist/json.d.ts +0 -1
  79. package/dist/json.js +1 -1
  80. package/dist/kanban-presence.d.ts +6 -0
  81. package/dist/kanban-serializer.d.ts +9 -1
  82. package/dist/kanban-split-task-handler.d.ts +1 -1
  83. package/dist/kanban-tool-results.d.ts +57 -2
  84. package/dist/kanban-tool-types.d.ts +16 -5
  85. package/dist/kanban.d.ts +14 -0
  86. package/dist/kanban.js +9 -1
  87. package/dist/languages/index.js +3 -3
  88. package/dist/{legacy-bridge-4T4OTSQP.js → legacy-bridge-BPT2S2F4.js} +5 -5
  89. package/dist/lint.js +5 -5
  90. package/dist/logs.js +1 -1
  91. package/dist/mode.d.ts +3 -2
  92. package/dist/mode.js +1 -1
  93. package/dist/outdated.js +2 -2
  94. package/dist/pack.js +42 -42
  95. package/dist/{parser-dispatch-4E2SDQUO.js → parser-dispatch-WG4DNBHH.js} +4 -4
  96. package/dist/patch.js +7 -7
  97. package/dist/plan.d.ts +2 -1
  98. package/dist/plan.js +3 -3
  99. package/dist/{py-parser-MAW6DHFE.js → py-parser-4PFZYAJ7.js} +3 -3
  100. package/dist/read.js +7 -7
  101. package/dist/replace.js +7 -7
  102. package/dist/search.d.ts +0 -6
  103. package/dist/search.js +1 -1
  104. package/dist/security-ast-scan-tool.d.ts +1 -2
  105. package/dist/session-shell.js +2 -2
  106. package/dist/task.d.ts +2 -1
  107. package/dist/task.js +3 -3
  108. package/dist/test.d.ts +8 -1
  109. package/dist/test.js +5 -5
  110. package/dist/todo.js +2 -2
  111. package/dist/tool-search.d.ts +2 -0
  112. package/dist/tool-search.js +1 -1
  113. package/dist/tool-tier.js +43 -43
  114. package/dist/tool-use.d.ts +2 -2
  115. package/dist/tool-use.js +1 -1
  116. package/dist/tree.js +1 -1
  117. package/dist/typecheck.js +5 -5
  118. package/dist/wasm/bash/tree-sitter-bash.wasm +0 -0
  119. package/dist/wasm/c/tree-sitter-c.wasm +0 -0
  120. package/dist/wasm/c_sharp/tree-sitter-c_sharp.wasm +0 -0
  121. package/dist/wasm/checksums.json +16 -0
  122. package/dist/wasm/cpp/tree-sitter-cpp.wasm +0 -0
  123. package/dist/wasm/elixir/tree-sitter-elixir.wasm +0 -0
  124. package/dist/wasm/go/tree-sitter-go.wasm +0 -0
  125. package/dist/wasm/java/tree-sitter-java.wasm +0 -0
  126. package/dist/wasm/kotlin/tree-sitter-kotlin.wasm +0 -0
  127. package/dist/wasm/php/tree-sitter-php.wasm +0 -0
  128. package/dist/wasm/python/tree-sitter-python.wasm +0 -0
  129. package/dist/wasm/ruby/tree-sitter-ruby.wasm +0 -0
  130. package/dist/wasm/rust/tree-sitter-rust.wasm +0 -0
  131. package/dist/wasm/swift/tree-sitter-swift.wasm +0 -0
  132. package/dist/wasm/tree-sitter-runtime.wasm +0 -0
  133. package/dist/win32.d.ts +1 -1
  134. package/dist/win32.js +3 -1
  135. package/dist/write.js +7 -7
  136. package/package.json +10 -10
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  ensureSessionShell,
8
8
  normalizeShell,
9
9
  resolveSessionShell
10
- } from "./chunk-SIIOHBNY.js";
10
+ } from "./chunk-3RRK33YM.js";
11
11
  import {
12
12
  FALLBACK_HEAD_FIELDS,
13
13
  SUMMARIZE_TOOL_INPUT_BROWSER_SRC,
@@ -30,7 +30,7 @@ import {
30
30
  } from "./chunk-FVM3O4JQ.js";
31
31
  import {
32
32
  createModeTool
33
- } from "./chunk-UI3ZJIG3.js";
33
+ } from "./chunk-LKLIQUCW.js";
34
34
  import {
35
35
  createGlobalPsSlashCommand,
36
36
  formatGlobalStatus,
@@ -46,10 +46,10 @@ import "./chunk-Z6DAKQ3U.js";
46
46
  import {
47
47
  registerBuiltinToolTier,
48
48
  selectBuiltinToolsForTier
49
- } from "./chunk-MF6ZUBI7.js";
49
+ } from "./chunk-V25Q6TQ7.js";
50
50
  import {
51
51
  builtinToolsPack
52
- } from "./chunk-YUK3WLHJ.js";
52
+ } from "./chunk-FVSMTEO3.js";
53
53
  import {
54
54
  OFF_ONLY_TOOLS,
55
55
  OPTIONAL_TOOLS,
@@ -64,7 +64,7 @@ import {
64
64
  pwshTool,
65
65
  readUrlContentTool,
66
66
  securityAstScanTool
67
- } from "./chunk-GNLHBDFO.js";
67
+ } from "./chunk-6I6RXQFG.js";
68
68
  import {
69
69
  discoverE2EProjects,
70
70
  e2ePlanTool
@@ -98,61 +98,61 @@ import {
98
98
  runDeadCodeScan,
99
99
  setContextQueryEmbedder,
100
100
  writeProjectAtlas
101
- } from "./chunk-JB5JLY7V.js";
101
+ } from "./chunk-ENE22I5W.js";
102
102
  import "./chunk-XRNN44QY.js";
103
103
  import {
104
104
  designTool
105
- } from "./chunk-IXIS7RSG.js";
105
+ } from "./chunk-MRXWOOOR.js";
106
106
  import {
107
107
  planTool
108
- } from "./chunk-O6AGFJBO.js";
108
+ } from "./chunk-7V33PHT6.js";
109
109
  import {
110
110
  taskTool
111
- } from "./chunk-B62LKMWQ.js";
111
+ } from "./chunk-OKZJJDOG.js";
112
112
  import {
113
113
  testTool
114
- } from "./chunk-KF7GMVNU.js";
114
+ } from "./chunk-OUERRFEM.js";
115
115
  import {
116
116
  installTool
117
- } from "./chunk-H2VB7GCR.js";
117
+ } from "./chunk-ULI2J6TX.js";
118
118
  import {
119
119
  auditTool
120
- } from "./chunk-HCPSVK7J.js";
120
+ } from "./chunk-YKSOSI2N.js";
121
121
  import {
122
122
  outdatedTool
123
- } from "./chunk-NL45OWEO.js";
123
+ } from "./chunk-DOAHONOS.js";
124
124
  import {
125
125
  logsTool
126
- } from "./chunk-CAF4L6KN.js";
127
- import "./chunk-YA2ZYCJY.js";
128
- import "./chunk-B3MGJBFI.js";
126
+ } from "./chunk-C3WP6ZOT.js";
127
+ import "./chunk-JPK2HHBK.js";
128
+ import "./chunk-KS2OEZWV.js";
129
129
  import {
130
130
  gitTool
131
- } from "./chunk-ZMCV3XOV.js";
131
+ } from "./chunk-SPNXDTCJ.js";
132
132
  import {
133
133
  patchTool
134
- } from "./chunk-5MP76C72.js";
134
+ } from "./chunk-2UVAIS5O.js";
135
135
  import {
136
136
  jsonTool
137
- } from "./chunk-EGT5QLCB.js";
137
+ } from "./chunk-D6RQZMZS.js";
138
138
  import {
139
139
  diffTool
140
- } from "./chunk-N3OTTQNC.js";
140
+ } from "./chunk-2OCAAFAT.js";
141
141
  import {
142
142
  DEFAULT_MAX_TREE_ENTRIES,
143
143
  MAX_TREE_OUTPUT_BYTES,
144
144
  treeTool
145
- } from "./chunk-YZQSUL5G.js";
145
+ } from "./chunk-M4ZHHCCW.js";
146
146
  import {
147
147
  lintTool
148
- } from "./chunk-R3HIZVFS.js";
148
+ } from "./chunk-KPDCKSN5.js";
149
149
  import {
150
150
  formatTool
151
- } from "./chunk-QJARSK2G.js";
151
+ } from "./chunk-4SUGLJLO.js";
152
152
  import {
153
153
  typecheckTool
154
- } from "./chunk-AH7J5HWL.js";
155
- import "./chunk-3LQJXJDM.js";
154
+ } from "./chunk-5RBUYFRV.js";
155
+ import "./chunk-E7A4SLKR.js";
156
156
  import {
157
157
  ADDITIONAL_LANGUAGE_PROFILES,
158
158
  LanguageProfileRegistry,
@@ -170,17 +170,17 @@ import {
170
170
  planLanguageOperation,
171
171
  validateCommandPlan,
172
172
  validateLanguageProfile
173
- } from "./chunk-SEONDNLN.js";
174
- import "./chunk-EMA2XENR.js";
173
+ } from "./chunk-G7CYW5EP.js";
174
+ import "./chunk-UVYRQKPZ.js";
175
175
  import {
176
176
  replaceTool
177
- } from "./chunk-KMXPP32M.js";
177
+ } from "./chunk-C6ZOXNXV.js";
178
178
  import {
179
179
  globTool
180
- } from "./chunk-HOFVYIPI.js";
180
+ } from "./chunk-ON6ET5ER.js";
181
181
  import {
182
182
  grepTool
183
- } from "./chunk-FI6SOIVE.js";
183
+ } from "./chunk-DLZCOEVG.js";
184
184
  import {
185
185
  MAX_SUBJECT_LEN,
186
186
  capSubject,
@@ -192,7 +192,7 @@ import {
192
192
  import {
193
193
  bashTool,
194
194
  checkAndBlockKillCommand
195
- } from "./chunk-5KRKL3WD.js";
195
+ } from "./chunk-FCSUBTUJ.js";
196
196
  import {
197
197
  checkExecKillCommand,
198
198
  configureDangerBypass,
@@ -204,7 +204,7 @@ import {
204
204
  isExecCommandAllowed,
205
205
  resetDangerBypass,
206
206
  resetExecPolicy
207
- } from "./chunk-OGQMPX3J.js";
207
+ } from "./chunk-QAWI3RSK.js";
208
208
  import "./chunk-BTSFTGIL.js";
209
209
  import {
210
210
  getPersistentProcessRegistry,
@@ -223,17 +223,17 @@ import {
223
223
  } from "./chunk-4SW6BXUR.js";
224
224
  import {
225
225
  searchTool
226
- } from "./chunk-62OAECEQ.js";
226
+ } from "./chunk-LLSFOUZF.js";
227
227
  import "./chunk-NBDZMMG2.js";
228
228
  import {
229
229
  todoTool
230
- } from "./chunk-S6CGSFLX.js";
230
+ } from "./chunk-DBG7UQGK.js";
231
231
  import {
232
232
  kanbanEvidenceKey,
233
233
  kanbanEvidencePointer,
234
234
  kanbanTool,
235
235
  recordKanbanVerificationEvidence
236
- } from "./chunk-2NTHMZV3.js";
236
+ } from "./chunk-VMJY6FYJ.js";
237
237
  import {
238
238
  SESSION_KANBAN_COLUMNS,
239
239
  applySessionKanbanBoardToTodos,
@@ -281,16 +281,16 @@ import {
281
281
  resolvePinnedBrowserTarget,
282
282
  safeBrowserUrl,
283
283
  shutdownBrowserTools
284
- } from "./chunk-6XYFYLN7.js";
284
+ } from "./chunk-O2MHULBO.js";
285
285
  import {
286
286
  readTool
287
- } from "./chunk-HIRVCXLP.js";
287
+ } from "./chunk-IE4KDAOB.js";
288
288
  import {
289
289
  writeTool
290
- } from "./chunk-GF4JHLCO.js";
290
+ } from "./chunk-PWZUHZP7.js";
291
291
  import {
292
292
  editTool
293
- } from "./chunk-WKLUOXR4.js";
293
+ } from "./chunk-7GOE2ZTZ.js";
294
294
  import {
295
295
  checkSyntax
296
296
  } from "./chunk-MSOAX3GC.js";
@@ -313,8 +313,8 @@ import {
313
313
  shutdownCodebaseIndexHost,
314
314
  shutdownCodebaseIndexServer,
315
315
  symbolGraphService
316
- } from "./chunk-TU6UVATU.js";
317
- import "./chunk-ZOUG3KKS.js";
316
+ } from "./chunk-HYHE4VNA.js";
317
+ import "./chunk-XPVYZ2S6.js";
318
318
  import {
319
319
  CONCEPT_RELATIONS,
320
320
  CircuitOpenError,
@@ -322,14 +322,14 @@ import {
322
322
  IndexTimeoutError,
323
323
  indexCircuitBreaker,
324
324
  resetIndexCircuitBreaker
325
- } from "./chunk-C4DSQBTT.js";
326
- import "./chunk-7E55DAFW.js";
327
- import "./chunk-M2W36JT7.js";
325
+ } from "./chunk-NEYUPZL6.js";
326
+ import "./chunk-KHUCKLOR.js";
327
+ import "./chunk-4CE3RKEP.js";
328
328
  import "./chunk-SKRMUHTU.js";
329
329
  import "./chunk-ZKC5UNGD.js";
330
330
  import "./chunk-YOHO4DVT.js";
331
331
  import "./chunk-XHSHNOAF.js";
332
- import "./chunk-5U5ULQX2.js";
332
+ import "./chunk-XZLVJD56.js";
333
333
  import "./chunk-2IAEJRLT.js";
334
334
 
335
335
  // src/next-steps-tool.ts
package/dist/install.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  installTool
3
- } from "./chunk-H2VB7GCR.js";
4
- import "./chunk-3LQJXJDM.js";
5
- import "./chunk-SEONDNLN.js";
6
- import "./chunk-EMA2XENR.js";
3
+ } from "./chunk-ULI2J6TX.js";
4
+ import "./chunk-E7A4SLKR.js";
5
+ import "./chunk-G7CYW5EP.js";
6
+ import "./chunk-UVYRQKPZ.js";
7
7
  import "./chunk-SCMRM6NL.js";
8
8
  import "./chunk-HDYUBRMF.js";
9
9
  import "./chunk-7JJFC6CT.js";
10
- import "./chunk-5U5ULQX2.js";
10
+ import "./chunk-XZLVJD56.js";
11
11
  import "./chunk-2IAEJRLT.js";
12
12
  export {
13
13
  installTool
package/dist/json.d.ts CHANGED
@@ -37,7 +37,6 @@ export interface JsonOutput {
37
37
  transform: string;
38
38
  result: unknown;
39
39
  }> | undefined;
40
- error?: string | undefined;
41
40
  }
42
41
  export declare const jsonTool: Tool<JsonInput, JsonOutput>;
43
42
  //# sourceMappingURL=json.d.ts.map
package/dist/json.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  jsonTool
3
- } from "./chunk-EGT5QLCB.js";
3
+ } from "./chunk-D6RQZMZS.js";
4
4
  import "./chunk-YJTXRH5Y.js";
5
5
  import "./chunk-2IAEJRLT.js";
6
6
  export {
@@ -6,6 +6,12 @@ interface KanbanPresenceContext {
6
6
  agentId?: string | undefined;
7
7
  agentName?: string | undefined;
8
8
  }
9
+ /**
10
+ * Presence is itself a board mutation (`mutateBoard` bumps the revision), so
11
+ * it runs only after MUTATING actions. Touching presence on reads turned every
12
+ * get_board / events poll into a write, bumping revisions and creating
13
+ * stale-write contention with the agents actually changing the board.
14
+ */
9
15
  export declare function createKanbanPresenceWrapper(projectRoot: string, input: KanbanToolInput, ctx: KanbanPresenceContext): (result: KanbanToolOutput) => Promise<KanbanToolOutput>;
10
16
  export {};
11
17
  //# sourceMappingURL=kanban-presence.d.ts.map
@@ -1,4 +1,6 @@
1
1
  import type { KanbanToolOutput } from './kanban-tool-types.js';
2
+ /** Max items of a list-shaped field replayed into the transcript. */
3
+ export declare const KANBAN_TRANSCRIPT_ITEM_CAP = 100;
2
4
  /**
3
5
  * Transcript serializer for kanban results. Every mutation returns the full
4
6
  * board so programmatic consumers (todo mirror, gates, tests) can chain off it,
@@ -7,7 +9,13 @@ import type { KanbanToolOutput } from './kanban-tool-types.js';
7
9
  * When the serialized board exceeds the cap and the action is not a
8
10
  * board-reading one, the transcript payload carries a compact summary
9
11
  * ({column → task count}, totalTasks) plus the affected `task` and `message`.
10
- * `execute()`'s return shape is unchanged — this only affects the transcript.
12
+ *
13
+ * List fields (events, tasks, boards, …) are bounded to
14
+ * KANBAN_TRANSCRIPT_ITEM_CAP items and large object payloads (snapshot,
15
+ * workbench, taskGraph) are replaced by a count summary past their byte cap;
16
+ * every cut is recorded under `truncated` / an inline note so the model knows
17
+ * to narrow the query. `execute()`'s return shape is unchanged — this only
18
+ * affects the transcript.
11
19
  */
12
20
  export declare function serializeKanbanOutput(output: KanbanToolOutput, input: unknown): string;
13
21
  //# sourceMappingURL=kanban-serializer.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { KanbanBoard, KanbanEventContext } from '@wrongstack/kanban';
2
2
  import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
3
- /** Shared split handler used by both split_task and split_atomic. */
3
+ /** Shared split handler used by split_task, split_atomic and add_task childTitles. */
4
4
  export declare function handleSplitTask(projectRoot: string, input: KanbanToolInput, extraSplitOptions: Record<string, unknown>, eventContext: KanbanEventContext): Promise<KanbanToolOutput>;
5
5
  export declare function requireBoard(projectRoot: string, boardId: string | undefined): Promise<KanbanBoard | null>;
6
6
  //# sourceMappingURL=kanban-split-task-handler.d.ts.map
@@ -1,4 +1,5 @@
1
- import type { KanbanBoard, KanbanCompletionGateEnforcement, KanbanTask } from '@wrongstack/kanban';
1
+ import { ToolValidationError } from '@wrongstack/core/types';
2
+ import { type KanbanBoard, type KanbanCompletionGateEnforcement, type KanbanLifecycleValidationIssue, type KanbanTask } from '@wrongstack/kanban';
2
3
  import type { KanbanToolOutput } from './kanban-tool-types.js';
3
4
  /** One-line guidance appended when a freshly created task should be split. */
4
5
  export declare function atomicityNudge(task: KanbanTask): string;
@@ -8,7 +9,61 @@ export declare function atomicityNudge(task: KanbanTask): string;
8
9
  * and only when the board carries no explicit completionGate policy.
9
10
  */
10
11
  export declare function readEnvGateEnforcement(): KanbanCompletionGateEnforcement | undefined;
11
- export declare function fail(message: string): KanbanToolOutput;
12
+ export type KanbanToolErrorCode = 'INVALID_INPUT' | 'NOT_FOUND' | 'REFUSED' | 'CONFLICT' | 'UNAVAILABLE' | 'ABORTED';
13
+ export interface KanbanToolErrorOptions {
14
+ /** Structured lifecycle issues (REFUSED), kept for programmatic callers. */
15
+ issues?: readonly KanbanLifecycleValidationIssue[] | undefined;
16
+ retryable?: boolean | undefined;
17
+ /** What already committed before the failure, stated in the message. */
18
+ committed?: string | undefined;
19
+ cause?: unknown;
20
+ }
21
+ /** Common shape of every error this tool throws on purpose. */
22
+ export interface KanbanToolFailure extends Error {
23
+ readonly kanbanCode: KanbanToolErrorCode;
24
+ readonly retryable: boolean;
25
+ readonly issues?: readonly KanbanLifecycleValidationIssue[] | undefined;
26
+ }
27
+ export declare class KanbanToolError extends Error implements KanbanToolFailure {
28
+ readonly kanbanCode: KanbanToolErrorCode;
29
+ /** Classifier hint (see CLASSIFIER_HINT); not the Kanban code. */
30
+ readonly code: string | undefined;
31
+ readonly retryable: boolean;
32
+ readonly issues: readonly KanbanLifecycleValidationIssue[] | undefined;
33
+ readonly committed: string | undefined;
34
+ /** The bare message, without the code prefix, committed note, or issues tail. */
35
+ readonly detail: string;
36
+ constructor(code: KanbanToolErrorCode, message: string, opts?: KanbanToolErrorOptions);
37
+ }
38
+ /**
39
+ * INVALID_INPUT is a `ToolValidationError` so the executor classifies it as a
40
+ * validation failure; it carries the same `kanbanCode` contract as the rest.
41
+ */
42
+ export declare class KanbanInputError extends ToolValidationError implements KanbanToolFailure {
43
+ readonly kanbanCode: 'INVALID_INPUT';
44
+ readonly retryable = false;
45
+ readonly issues: undefined;
46
+ constructor(message: string, field?: string);
47
+ }
48
+ export declare function invalidInput(message: string, field?: string): KanbanInputError;
49
+ export declare function notFound(message: string, opts?: KanbanToolErrorOptions): KanbanToolError;
50
+ export declare function refused(message: string, opts?: KanbanToolErrorOptions): KanbanToolError;
51
+ export declare function conflict(message: string, opts?: KanbanToolErrorOptions): KanbanToolError;
52
+ export declare function isKanbanToolFailure(err: unknown): err is KanbanToolFailure;
53
+ /**
54
+ * Map an error escaping a kanban handler onto the tool's error contract.
55
+ * Recognised domain/transport failures become a `KanbanToolError`; anything
56
+ * else (a TypeError, an unexpected invariant) is returned unchanged so it
57
+ * propagates as the bug it is instead of being dressed up as a refusal.
58
+ */
59
+ export declare function toKanbanToolError(err: unknown, committed?: string): unknown;
60
+ /** Successful results always carry `ok: true`; failures throw (see above). */
12
61
  export declare function okBoard(board: KanbanBoard, message?: string): KanbanToolOutput;
13
62
  export declare function okTask(board: KanbanBoard, task: KanbanTask, message: string): KanbanToolOutput;
63
+ /**
64
+ * Resolve a task reference (full id or unique prefix) against a loaded board,
65
+ * with the same semantics as the domain's `findTask`. An ambiguous prefix is
66
+ * an input error rather than a silent "not found".
67
+ */
68
+ export declare function resolveTaskRef(board: KanbanBoard, taskRef: string): KanbanTask | undefined;
14
69
  //# sourceMappingURL=kanban-tool-results.d.ts.map
@@ -1,6 +1,12 @@
1
1
  import type { SerializedTaskGraph } from '@wrongstack/core/types';
2
2
  import type { AssignKanbanTaskInput, KanbanAgentRunStatus, KanbanBoard, KanbanBoardSummary, KanbanCompletionGateEnforcement, KanbanContractEdgeType, KanbanContractEnforcement, KanbanContractGraph, KanbanContractGraphEnforcement, KanbanContractGraphEvaluation, KanbanContractNodeKind, KanbanContractNodeState, KanbanDecompositionSubtask, KanbanEvent, KanbanLifecycleStage, KanbanOrchestrationSnapshot, KanbanQueueHealth, KanbanSearchResult, KanbanTask, KanbanTaskPriority, KanbanTaskStatus, KanbanTaskType, KanbanVerificationReport, KanbanWorkbenchSnapshot } from '@wrongstack/kanban';
3
3
  export type KanbanAction = 'list_boards' | 'get_board' | 'create_board' | 'duplicate_board' | 'update_board' | 'adopt_managed_lifecycle' | 'release_managed_lifecycle' | 'delete_board' | 'generate_board' | 'export_markdown' | 'export_task_graph' | 'sync_task_graph' | 'create_from_graph' | 'import_session_tasks' | 'search_tasks' | 'ready_tasks' | 'snapshot' | 'workbench' | 'add_task' | 'split_task' | 'merge_tasks' | 'copy_task' | 'transfer_task' | 'get_task' | 'start_task' | 'update_task' | 'transition_task' | 'repair_managed_projection' | 'move_task' | 'delete_task' | 'set_chain' | 'get_chain' | 'claim_task' | 'release_task' | 'assign_task' | 'mark_assignment' | 'heartbeat_assignment' | 'recover_stale' | 'events' | 'queue_health' | 'add_dependency' | 'add_goal_metric' | 'update_goal_metric' | 'add_check' | 'update_check' | 'remove_check' | 'add_note' | 'add_link' | 'verify_completion' | 'split_atomic' | 'assess_atomicity' | 'propose_decomposition' | 'get_contract_graph' | 'configure_contract_graph' | 'upsert_contract_node' | 'remove_contract_node' | 'add_contract_edge' | 'remove_contract_edge';
4
+ /**
5
+ * Actions that never write board state. Presence tracking (itself a write)
6
+ * is skipped for these. Keep in sync with the kanban-mcp read tier, which
7
+ * asserts equality with this list.
8
+ */
9
+ export declare const KANBAN_READ_ONLY_ACTIONS: readonly ["list_boards", "get_board", "export_markdown", "export_task_graph", "search_tasks", "ready_tasks", "snapshot", "workbench", "get_task", "get_chain", "events", "queue_health", "get_contract_graph"];
4
10
  export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
5
11
  action: KanbanAction;
6
12
  boardId?: string | undefined;
@@ -9,10 +15,6 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
9
15
  targetBoardId?: string | undefined;
10
16
  taskIds?: string[] | undefined;
11
17
  chainId?: string | undefined;
12
- fromNodeId?: string | undefined;
13
- toNodeId?: string | undefined;
14
- baseline?: string | number | undefined;
15
- threshold?: string | number | undefined;
16
18
  title?: string | undefined;
17
19
  description?: string | undefined;
18
20
  dueDate?: string | undefined;
@@ -25,7 +27,6 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
25
27
  status?: KanbanTaskStatus | undefined;
26
28
  order?: number | undefined;
27
29
  targetColumnId?: string | undefined;
28
- moveTasksToColumnId?: string | undefined;
29
30
  query?: string | undefined;
30
31
  limit?: number | undefined;
31
32
  dependencyTaskId?: string | undefined;
@@ -153,7 +154,17 @@ export interface KanbanToolInput extends Omit<AssignKanbanTaskInput, 'status'> {
153
154
  subtasks?: KanbanDecompositionSubtask[] | undefined;
154
155
  }
155
156
  export interface KanbanToolOutput {
157
+ /** Always `true` on a returned result — failures throw instead. Kept for shape stability. */
156
158
  ok: boolean;
159
+ /** claim_task: `false` when no ready task matched (a data outcome, not a failure). */
160
+ claimed?: boolean | undefined;
161
+ /** import_session_tasks: number of session tasks imported (0 when there were none). */
162
+ imported?: number | undefined;
163
+ /** Per-field truncation applied to large collections: `{ field: { shown, total } }`. */
164
+ truncated?: Record<string, {
165
+ shown: number;
166
+ total: number;
167
+ }> | undefined;
157
168
  verdict?: KanbanVerificationReport['verdict'] | undefined;
158
169
  gate?: {
159
170
  enforcement: KanbanCompletionGateEnforcement;
package/dist/kanban.d.ts CHANGED
@@ -2,5 +2,19 @@ import type { Tool } from '@wrongstack/core/types';
2
2
  import type { KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
3
3
  export type KanbanContext = Parameters<Tool<KanbanToolInput, KanbanToolOutput>['execute']>[1];
4
4
  export type { KanbanAction, KanbanToolInput, KanbanToolOutput } from './kanban-tool-types.js';
5
+ export { KANBAN_READ_ONLY_ACTIONS } from './kanban-tool-types.js';
6
+ export { isKanbanToolFailure, KanbanInputError, KanbanToolError, type KanbanToolErrorCode, type KanbanToolFailure, } from './kanban-tool-results.js';
7
+ /**
8
+ * Agent-facing Kanban tool.
9
+ *
10
+ * Error contract: operational failures THROW (the executor only marks a call
11
+ * failed when execute() throws). Invalid input throws `KanbanInputError`
12
+ * (a `ToolValidationError`); not-found / refused / conflict / unavailable /
13
+ * aborted throw `KanbanToolError` with `kanbanCode`, `retryable` and, for a
14
+ * lifecycle refusal, the structured `issues`. Unrecognised errors (TypeError
15
+ * etc.) propagate unchanged. Data outcomes — a completion-gate verdict,
16
+ * `claimed: false`, `recoveredTasks: []`, `imported: 0` — are returned, and
17
+ * every returned result has `ok: true`.
18
+ */
5
19
  export declare const kanbanTool: Tool<KanbanToolInput, KanbanToolOutput>;
6
20
  //# sourceMappingURL=kanban.d.ts.map
package/dist/kanban.js CHANGED
@@ -1,8 +1,16 @@
1
1
  import {
2
+ KANBAN_READ_ONLY_ACTIONS,
3
+ KanbanInputError,
4
+ KanbanToolError,
5
+ isKanbanToolFailure,
2
6
  kanbanTool
3
- } from "./chunk-2NTHMZV3.js";
7
+ } from "./chunk-VMJY6FYJ.js";
4
8
  import "./chunk-YZECCW3F.js";
5
9
  export {
10
+ KANBAN_READ_ONLY_ACTIONS,
11
+ KanbanInputError,
12
+ KanbanToolError,
13
+ isKanbanToolFailure,
6
14
  kanbanTool
7
15
  };
8
16
  //# sourceMappingURL=kanban.js.map
@@ -15,12 +15,12 @@ import {
15
15
  planLanguageOperation,
16
16
  validateCommandPlan,
17
17
  validateLanguageProfile
18
- } from "../chunk-SEONDNLN.js";
19
- import "../chunk-EMA2XENR.js";
18
+ } from "../chunk-G7CYW5EP.js";
19
+ import "../chunk-UVYRQKPZ.js";
20
20
  import "../chunk-SCMRM6NL.js";
21
21
  import "../chunk-HDYUBRMF.js";
22
22
  import "../chunk-7JJFC6CT.js";
23
- import "../chunk-5U5ULQX2.js";
23
+ import "../chunk-XZLVJD56.js";
24
24
  import "../chunk-2IAEJRLT.js";
25
25
  export {
26
26
  ADDITIONAL_LANGUAGE_PROFILES,
@@ -2,17 +2,17 @@ import {
2
2
  detectNonJsEcosystem,
3
3
  tryLegacyCodeOperation,
4
4
  tryLegacyPackageOperation
5
- } from "./chunk-3LQJXJDM.js";
6
- import "./chunk-SEONDNLN.js";
7
- import "./chunk-EMA2XENR.js";
5
+ } from "./chunk-E7A4SLKR.js";
6
+ import "./chunk-G7CYW5EP.js";
7
+ import "./chunk-UVYRQKPZ.js";
8
8
  import "./chunk-SCMRM6NL.js";
9
9
  import "./chunk-HDYUBRMF.js";
10
10
  import "./chunk-7JJFC6CT.js";
11
- import "./chunk-5U5ULQX2.js";
11
+ import "./chunk-XZLVJD56.js";
12
12
  import "./chunk-2IAEJRLT.js";
13
13
  export {
14
14
  detectNonJsEcosystem,
15
15
  tryLegacyCodeOperation,
16
16
  tryLegacyPackageOperation
17
17
  };
18
- //# sourceMappingURL=legacy-bridge-4T4OTSQP.js.map
18
+ //# sourceMappingURL=legacy-bridge-BPT2S2F4.js.map
package/dist/lint.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  lintTool
3
- } from "./chunk-R3HIZVFS.js";
4
- import "./chunk-3LQJXJDM.js";
5
- import "./chunk-SEONDNLN.js";
6
- import "./chunk-EMA2XENR.js";
3
+ } from "./chunk-KPDCKSN5.js";
4
+ import "./chunk-E7A4SLKR.js";
5
+ import "./chunk-G7CYW5EP.js";
6
+ import "./chunk-UVYRQKPZ.js";
7
7
  import "./chunk-SCMRM6NL.js";
8
8
  import "./chunk-HDYUBRMF.js";
9
9
  import "./chunk-7JJFC6CT.js";
10
- import "./chunk-5U5ULQX2.js";
10
+ import "./chunk-XZLVJD56.js";
11
11
  import "./chunk-2IAEJRLT.js";
12
12
  export {
13
13
  lintTool
package/dist/logs.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logsTool
3
- } from "./chunk-CAF4L6KN.js";
3
+ } from "./chunk-C3WP6ZOT.js";
4
4
  import "./chunk-YJTXRH5Y.js";
5
5
  import "./chunk-2IAEJRLT.js";
6
6
  export {
package/dist/mode.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ModeStore, Tool } from '@wrongstack/core/types';
1
+ import { type ModeStore, type Tool } from '@wrongstack/core/types';
2
2
  export interface ModeInput {
3
3
  action: 'get' | 'list' | 'set' | 'clear';
4
4
  mode?: string | undefined;
@@ -14,7 +14,8 @@ export interface ModeOutput {
14
14
  family: ModeFamily;
15
15
  tags: string[];
16
16
  }[];
17
- success: boolean;
17
+ /** Always true: invalid input and unknown modes are thrown, not returned. */
18
+ success: true;
18
19
  message: string;
19
20
  }
20
21
  export declare function createModeTool(modeStore: ModeStore): Tool<ModeInput, ModeOutput>;
package/dist/mode.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createModeTool
3
- } from "./chunk-UI3ZJIG3.js";
3
+ } from "./chunk-LKLIQUCW.js";
4
4
  export {
5
5
  createModeTool
6
6
  };
package/dist/outdated.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  outdatedTool
3
- } from "./chunk-NL45OWEO.js";
3
+ } from "./chunk-DOAHONOS.js";
4
4
  import "./chunk-HDYUBRMF.js";
5
5
  import "./chunk-7JJFC6CT.js";
6
- import "./chunk-5U5ULQX2.js";
6
+ import "./chunk-XZLVJD56.js";
7
7
  import "./chunk-2IAEJRLT.js";
8
8
  export {
9
9
  outdatedTool