@mindfoldhq/trellis 0.6.0-beta.0 → 0.6.0-beta.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 (214) hide show
  1. package/dist/cli/index.d.ts +1 -1
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +25 -2
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/channel/adapters/claude.d.ts +38 -0
  6. package/dist/commands/channel/adapters/claude.d.ts.map +1 -0
  7. package/dist/commands/channel/adapters/claude.js +209 -0
  8. package/dist/commands/channel/adapters/claude.js.map +1 -0
  9. package/dist/commands/channel/adapters/codex.d.ts +70 -0
  10. package/dist/commands/channel/adapters/codex.d.ts.map +1 -0
  11. package/dist/commands/channel/adapters/codex.js +462 -0
  12. package/dist/commands/channel/adapters/codex.js.map +1 -0
  13. package/dist/commands/channel/adapters/index.d.ts +79 -0
  14. package/dist/commands/channel/adapters/index.d.ts.map +1 -0
  15. package/dist/commands/channel/adapters/index.js +109 -0
  16. package/dist/commands/channel/adapters/index.js.map +1 -0
  17. package/dist/commands/channel/adapters/types.d.ts +33 -0
  18. package/dist/commands/channel/adapters/types.d.ts.map +1 -0
  19. package/dist/commands/channel/adapters/types.js +2 -0
  20. package/dist/commands/channel/adapters/types.js.map +1 -0
  21. package/dist/commands/channel/agent-loader.d.ts +32 -0
  22. package/dist/commands/channel/agent-loader.d.ts.map +1 -0
  23. package/dist/commands/channel/agent-loader.js +154 -0
  24. package/dist/commands/channel/agent-loader.js.map +1 -0
  25. package/dist/commands/channel/context-loader.d.ts +26 -0
  26. package/dist/commands/channel/context-loader.d.ts.map +1 -0
  27. package/dist/commands/channel/context-loader.js +290 -0
  28. package/dist/commands/channel/context-loader.js.map +1 -0
  29. package/dist/commands/channel/create.d.ts +20 -0
  30. package/dist/commands/channel/create.d.ts.map +1 -0
  31. package/dist/commands/channel/create.js +110 -0
  32. package/dist/commands/channel/create.js.map +1 -0
  33. package/dist/commands/channel/dev-parse-trace.d.ts +14 -0
  34. package/dist/commands/channel/dev-parse-trace.d.ts.map +1 -0
  35. package/dist/commands/channel/dev-parse-trace.js +70 -0
  36. package/dist/commands/channel/dev-parse-trace.js.map +1 -0
  37. package/dist/commands/channel/index.d.ts +3 -0
  38. package/dist/commands/channel/index.d.ts.map +1 -0
  39. package/dist/commands/channel/index.js +310 -0
  40. package/dist/commands/channel/index.js.map +1 -0
  41. package/dist/commands/channel/kill.d.ts +6 -0
  42. package/dist/commands/channel/kill.d.ts.map +1 -0
  43. package/dist/commands/channel/kill.js +118 -0
  44. package/dist/commands/channel/kill.js.map +1 -0
  45. package/dist/commands/channel/list.d.ts +16 -0
  46. package/dist/commands/channel/list.d.ts.map +1 -0
  47. package/dist/commands/channel/list.js +223 -0
  48. package/dist/commands/channel/list.js.map +1 -0
  49. package/dist/commands/channel/messages.d.ts +13 -0
  50. package/dist/commands/channel/messages.d.ts.map +1 -0
  51. package/dist/commands/channel/messages.js +209 -0
  52. package/dist/commands/channel/messages.js.map +1 -0
  53. package/dist/commands/channel/rm.d.ts +25 -0
  54. package/dist/commands/channel/rm.d.ts.map +1 -0
  55. package/dist/commands/channel/rm.js +206 -0
  56. package/dist/commands/channel/rm.js.map +1 -0
  57. package/dist/commands/channel/run.d.ts +31 -0
  58. package/dist/commands/channel/run.d.ts.map +1 -0
  59. package/dist/commands/channel/run.js +137 -0
  60. package/dist/commands/channel/run.js.map +1 -0
  61. package/dist/commands/channel/send.d.ts +10 -0
  62. package/dist/commands/channel/send.d.ts.map +1 -0
  63. package/dist/commands/channel/send.js +38 -0
  64. package/dist/commands/channel/send.js.map +1 -0
  65. package/dist/commands/channel/spawn.d.ts +24 -0
  66. package/dist/commands/channel/spawn.d.ts.map +1 -0
  67. package/dist/commands/channel/spawn.js +189 -0
  68. package/dist/commands/channel/spawn.js.map +1 -0
  69. package/dist/commands/channel/store/events.d.ts +20 -0
  70. package/dist/commands/channel/store/events.d.ts.map +1 -0
  71. package/dist/commands/channel/store/events.js +64 -0
  72. package/dist/commands/channel/store/events.js.map +1 -0
  73. package/dist/commands/channel/store/lock.d.ts +23 -0
  74. package/dist/commands/channel/store/lock.d.ts.map +1 -0
  75. package/dist/commands/channel/store/lock.js +99 -0
  76. package/dist/commands/channel/store/lock.js.map +1 -0
  77. package/dist/commands/channel/store/paths.d.ts +56 -0
  78. package/dist/commands/channel/store/paths.d.ts.map +1 -0
  79. package/dist/commands/channel/store/paths.js +187 -0
  80. package/dist/commands/channel/store/paths.js.map +1 -0
  81. package/dist/commands/channel/store/watch.d.ts +36 -0
  82. package/dist/commands/channel/store/watch.d.ts.map +1 -0
  83. package/dist/commands/channel/store/watch.js +176 -0
  84. package/dist/commands/channel/store/watch.js.map +1 -0
  85. package/dist/commands/channel/supervisor/inbox.d.ts +25 -0
  86. package/dist/commands/channel/supervisor/inbox.d.ts.map +1 -0
  87. package/dist/commands/channel/supervisor/inbox.js +99 -0
  88. package/dist/commands/channel/supervisor/inbox.js.map +1 -0
  89. package/dist/commands/channel/supervisor/shutdown.d.ts +66 -0
  90. package/dist/commands/channel/supervisor/shutdown.d.ts.map +1 -0
  91. package/dist/commands/channel/supervisor/shutdown.js +143 -0
  92. package/dist/commands/channel/supervisor/shutdown.js.map +1 -0
  93. package/dist/commands/channel/supervisor/stdout.d.ts +49 -0
  94. package/dist/commands/channel/supervisor/stdout.d.ts.map +1 -0
  95. package/dist/commands/channel/supervisor/stdout.js +107 -0
  96. package/dist/commands/channel/supervisor/stdout.js.map +1 -0
  97. package/dist/commands/channel/supervisor.d.ts +47 -0
  98. package/dist/commands/channel/supervisor.d.ts.map +1 -0
  99. package/dist/commands/channel/supervisor.js +282 -0
  100. package/dist/commands/channel/supervisor.js.map +1 -0
  101. package/dist/commands/channel/wait.d.ts +15 -0
  102. package/dist/commands/channel/wait.d.ts.map +1 -0
  103. package/dist/commands/channel/wait.js +75 -0
  104. package/dist/commands/channel/wait.js.map +1 -0
  105. package/dist/commands/mem.d.ts +119 -3
  106. package/dist/commands/mem.d.ts.map +1 -1
  107. package/dist/commands/mem.js +736 -158
  108. package/dist/commands/mem.js.map +1 -1
  109. package/dist/commands/update.d.ts.map +1 -1
  110. package/dist/commands/update.js +10 -110
  111. package/dist/commands/update.js.map +1 -1
  112. package/dist/commands/upgrade.d.ts +28 -0
  113. package/dist/commands/upgrade.d.ts.map +1 -0
  114. package/dist/commands/upgrade.js +84 -0
  115. package/dist/commands/upgrade.js.map +1 -0
  116. package/dist/configurators/codex.d.ts.map +1 -1
  117. package/dist/configurators/codex.js +5 -3
  118. package/dist/configurators/codex.js.map +1 -1
  119. package/dist/configurators/shared.js +4 -4
  120. package/dist/configurators/shared.js.map +1 -1
  121. package/dist/migrations/manifests/0.5.10.json +9 -0
  122. package/dist/migrations/manifests/0.5.11.json +16 -0
  123. package/dist/migrations/manifests/0.5.12.json +9 -0
  124. package/dist/migrations/manifests/0.5.13.json +9 -0
  125. package/dist/migrations/manifests/0.5.7.json +1 -1
  126. package/dist/migrations/manifests/0.5.9.json +9 -0
  127. package/dist/migrations/manifests/0.6.0-beta.1.json +9 -0
  128. package/dist/migrations/manifests/0.6.0-beta.10.json +9 -0
  129. package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
  130. package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
  131. package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
  132. package/dist/migrations/manifests/0.6.0-beta.5.json +9 -0
  133. package/dist/migrations/manifests/0.6.0-beta.6.json +16 -0
  134. package/dist/migrations/manifests/0.6.0-beta.7.json +9 -0
  135. package/dist/migrations/manifests/0.6.0-beta.8.json +9 -0
  136. package/dist/migrations/manifests/0.6.0-beta.9.json +9 -0
  137. package/dist/templates/claude/agents/trellis-check.md +2 -2
  138. package/dist/templates/claude/agents/trellis-implement.md +8 -7
  139. package/dist/templates/claude/settings.json +4 -4
  140. package/dist/templates/codebuddy/agents/trellis-check.md +2 -2
  141. package/dist/templates/codebuddy/agents/trellis-implement.md +8 -7
  142. package/dist/templates/codebuddy/settings.json +4 -4
  143. package/dist/templates/codex/agents/trellis-check.toml +4 -4
  144. package/dist/templates/codex/agents/trellis-implement.toml +4 -4
  145. package/dist/templates/codex/hooks/session-start.py +183 -119
  146. package/dist/templates/codex/hooks.json +1 -1
  147. package/dist/templates/codex/skills/before-dev/SKILL.md +12 -6
  148. package/dist/templates/codex/skills/brainstorm/SKILL.md +69 -457
  149. package/dist/templates/codex/skills/check/SKILL.md +86 -18
  150. package/dist/templates/codex/skills/start/SKILL.md +33 -323
  151. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-context-loading.md +7 -4
  152. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -1
  153. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +3 -2
  154. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/context-injection.md +5 -5
  155. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/spec-system.md +1 -1
  156. package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/task-system.md +8 -6
  157. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +5 -4
  158. package/dist/templates/common/commands/continue.md +6 -5
  159. package/dist/templates/common/commands/start.md +9 -6
  160. package/dist/templates/common/skills/before-dev.md +12 -6
  161. package/dist/templates/common/skills/brainstorm.md +68 -504
  162. package/dist/templates/common/skills/check.md +7 -1
  163. package/dist/templates/copilot/hooks/session-start.py +195 -101
  164. package/dist/templates/copilot/hooks.json +2 -2
  165. package/dist/templates/copilot/prompts/before-dev.prompt.md +12 -6
  166. package/dist/templates/copilot/prompts/brainstorm.prompt.md +69 -457
  167. package/dist/templates/copilot/prompts/check.prompt.md +86 -18
  168. package/dist/templates/copilot/prompts/parallel.prompt.md +16 -8
  169. package/dist/templates/copilot/prompts/start.prompt.md +33 -367
  170. package/dist/templates/cursor/agents/trellis-check.md +2 -2
  171. package/dist/templates/cursor/agents/trellis-implement.md +8 -7
  172. package/dist/templates/cursor/hooks.json +2 -2
  173. package/dist/templates/droid/droids/trellis-check.md +2 -2
  174. package/dist/templates/droid/droids/trellis-implement.md +8 -7
  175. package/dist/templates/droid/settings.json +4 -4
  176. package/dist/templates/gemini/agents/trellis-implement.md +7 -6
  177. package/dist/templates/gemini/settings.json +2 -2
  178. package/dist/templates/kiro/agents/trellis-check.json +1 -1
  179. package/dist/templates/kiro/agents/trellis-implement.json +1 -1
  180. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +109 -6
  181. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +295 -43
  182. package/dist/templates/opencode/agents/trellis-check.md +2 -2
  183. package/dist/templates/opencode/agents/trellis-implement.md +9 -8
  184. package/dist/templates/opencode/lib/session-utils.js +212 -123
  185. package/dist/templates/opencode/lib/trellis-context.js +73 -11
  186. package/dist/templates/opencode/plugins/inject-subagent-context.js +131 -29
  187. package/dist/templates/opencode/plugins/inject-workflow-state.js +9 -5
  188. package/dist/templates/opencode/plugins/session-start.js +9 -1
  189. package/dist/templates/pi/extensions/trellis/index.ts.txt +183 -6
  190. package/dist/templates/pi/settings.json +9 -0
  191. package/dist/templates/qoder/agents/trellis-implement.md +7 -6
  192. package/dist/templates/qoder/settings.json +4 -4
  193. package/dist/templates/shared-hooks/inject-subagent-context.py +36 -14
  194. package/dist/templates/shared-hooks/inject-workflow-state.py +55 -49
  195. package/dist/templates/shared-hooks/session-start.py +197 -163
  196. package/dist/templates/trellis/config.yaml +26 -6
  197. package/dist/templates/trellis/index.d.ts +1 -0
  198. package/dist/templates/trellis/index.d.ts.map +1 -1
  199. package/dist/templates/trellis/index.js +2 -0
  200. package/dist/templates/trellis/index.js.map +1 -1
  201. package/dist/templates/trellis/scripts/add_session.py +50 -24
  202. package/dist/templates/trellis/scripts/common/config.py +57 -1
  203. package/dist/templates/trellis/scripts/common/safe_commit.py +255 -0
  204. package/dist/templates/trellis/scripts/common/session_context.py +384 -137
  205. package/dist/templates/trellis/scripts/common/task_context.py +3 -3
  206. package/dist/templates/trellis/scripts/common/task_store.py +80 -12
  207. package/dist/templates/trellis/scripts/common/workflow_phase.py +26 -17
  208. package/dist/templates/trellis/scripts/task.py +3 -3
  209. package/dist/templates/trellis/workflow.md +121 -121
  210. package/dist/utils/uninstall-scrubbers.d.ts +1 -0
  211. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  212. package/dist/utils/uninstall-scrubbers.js +21 -0
  213. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  214. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
- import { VERSION, PACKAGE_NAME } from "../constants/version.js";
1
+ import { PACKAGE_NAME, VERSION } from "../constants/version.js";
2
2
  export { VERSION, PACKAGE_NAME };
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -4,10 +4,12 @@ import chalk from "chalk";
4
4
  import { Command } from "commander";
5
5
  import { init } from "../commands/init.js";
6
6
  import { update } from "../commands/update.js";
7
+ import { upgrade } from "../commands/upgrade.js";
7
8
  import { uninstall } from "../commands/uninstall.js";
8
9
  import { runMem } from "../commands/mem.js";
10
+ import { registerChannelCommand } from "../commands/channel/index.js";
9
11
  import { DIR_NAMES } from "../constants/paths.js";
10
- import { VERSION, PACKAGE_NAME } from "../constants/version.js";
12
+ import { PACKAGE_NAME, VERSION } from "../constants/version.js";
11
13
  import { compareVersions } from "../utils/compare-versions.js";
12
14
  // Re-export for backwards compatibility (consumers should prefer constants/version.js)
13
15
  export { VERSION, PACKAGE_NAME };
@@ -29,7 +31,7 @@ function checkForUpdates(cwd) {
29
31
  else if (comparison < 0) {
30
32
  // CLI is older than project - CLI needs updating
31
33
  console.log(chalk.yellow(`\n⚠️ Your CLI (${cliVersion}) is older than project (${projectVersion})`));
32
- console.log(chalk.gray(` Run: npm install -g ${PACKAGE_NAME}\n`));
34
+ console.log(chalk.gray(` Run: trellis upgrade\n`));
33
35
  }
34
36
  }
35
37
  // Check for updates at CLI startup (only if .trellis exists)
@@ -109,6 +111,26 @@ program
109
111
  process.exit(1);
110
112
  }
111
113
  });
114
+ program
115
+ .command("upgrade")
116
+ .description("Upgrade the global Trellis CLI package")
117
+ .option("--tag <tag>", "npm dist-tag or version to install (default follows current channel: latest, beta, or rc)")
118
+ .option("--dry-run", "Print the install command without running it")
119
+ .action(async (options) => {
120
+ try {
121
+ await upgrade({
122
+ tag: options.tag,
123
+ dryRun: options.dryRun,
124
+ });
125
+ }
126
+ catch (error) {
127
+ console.error(chalk.red("Error:"), error instanceof Error ? error.message : error);
128
+ if (process.env.DEBUG || process.env.TRELLIS_DEBUG) {
129
+ console.error(error instanceof Error ? error.stack : error);
130
+ }
131
+ process.exit(1);
132
+ }
133
+ });
112
134
  program
113
135
  .command("uninstall")
114
136
  .description("Remove all trellis files (managed platform files + .trellis/) from this project")
@@ -147,5 +169,6 @@ program
147
169
  process.exit(1);
148
170
  }
149
171
  });
172
+ registerChannelCommand(program);
150
173
  program.parse();
151
174
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ParseResult } from "./types.js";
2
+ /**
3
+ * Parse one line of Claude stream-json stdout.
4
+ * Returns the channel events to emit + any side effects.
5
+ *
6
+ * Pure function: same input always produces same output. No I/O.
7
+ */
8
+ export declare function parseClaudeLine(line: string): ParseResult;
9
+ /**
10
+ * Encode a channel user message into Claude stream-json stdin line(s).
11
+ *
12
+ * - Normal `message`: one line, `{type:"user", message:{...}}`
13
+ * - `tag === "interrupt"`: TWO lines —
14
+ * 1. `{type:"control_request", subtype:"interrupt"}`
15
+ * 2. `{type:"user", message:{...}}`
16
+ *
17
+ * The control_request IS accepted by Claude SDK (returns success), but
18
+ * probe tests show it does **not** reliably preempt in-flight LLM
19
+ * response generation — turn 1 still completes fully, then turn 2 picks
20
+ * up the new user message. So effective behavior on Claude is "next-turn
21
+ * redirect" not "mid-stream abort". For hard preempt use `channel kill`.
22
+ *
23
+ * Sending the control_request anyway is harmless and may abort tool
24
+ * calls / partial-message streams; future SDK fixes apply automatically.
25
+ * See research/probe-findings.md for the experimental evidence.
26
+ */
27
+ export declare function encodeClaudeUserMessage(text: string, tag?: string): string;
28
+ /**
29
+ * Build the Claude CLI args for `claude -p` in stream-json mode.
30
+ */
31
+ export declare function buildClaudeArgs(opts: {
32
+ resumeSessionId?: string;
33
+ model?: string;
34
+ verbose?: boolean;
35
+ /** Appended to Claude's default system prompt (per agent definition body). */
36
+ systemPrompt?: string;
37
+ }): string[];
38
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AA4D5D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAuCzD;AAyFD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAuB1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,EAAE,CAkBX"}
@@ -0,0 +1,209 @@
1
+ function summarizeInput(input, max = 120) {
2
+ if (input === null || input === undefined)
3
+ return "";
4
+ let s;
5
+ try {
6
+ s = typeof input === "string" ? input : JSON.stringify(input);
7
+ }
8
+ catch {
9
+ s = String(input);
10
+ }
11
+ return s.length > max ? s.slice(0, max) + "…" : s;
12
+ }
13
+ function isMcpToolName(name) {
14
+ return /^mcp__/.test(name);
15
+ }
16
+ /**
17
+ * Parse one line of Claude stream-json stdout.
18
+ * Returns the channel events to emit + any side effects.
19
+ *
20
+ * Pure function: same input always produces same output. No I/O.
21
+ */
22
+ export function parseClaudeLine(line) {
23
+ const trimmed = line.trim();
24
+ if (!trimmed)
25
+ return { events: [] };
26
+ let msg;
27
+ try {
28
+ msg = JSON.parse(trimmed);
29
+ }
30
+ catch {
31
+ return {
32
+ events: [
33
+ {
34
+ kind: "error",
35
+ payload: {
36
+ message: "Failed to parse Claude stdout line",
37
+ raw_excerpt: trimmed.slice(0, 200),
38
+ },
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ switch (msg.type) {
44
+ case "system":
45
+ return handleSystem(msg);
46
+ case "assistant":
47
+ return handleAssistant(msg);
48
+ case "user":
49
+ return { events: [] };
50
+ case "rate_limit_event":
51
+ return { events: [] };
52
+ case "result":
53
+ return handleResult(msg);
54
+ case "control_response":
55
+ // Acknowledgement of our outbound control_request (e.g. interrupt).
56
+ // Silently consume — supervisor doesn't need to wait on it.
57
+ return { events: [] };
58
+ default:
59
+ return { events: [] };
60
+ }
61
+ }
62
+ function handleSystem(msg) {
63
+ if (msg.subtype === "init" && msg.session_id) {
64
+ return {
65
+ events: [],
66
+ side: { persistSessionId: msg.session_id },
67
+ };
68
+ }
69
+ return { events: [] };
70
+ }
71
+ function handleAssistant(msg) {
72
+ const blocks = msg.message?.content;
73
+ if (!Array.isArray(blocks))
74
+ return { events: [] };
75
+ const events = [];
76
+ for (const b of blocks) {
77
+ switch (b.type) {
78
+ case "text": {
79
+ if (b.text && b.text.length > 0) {
80
+ events.push({ kind: "message", payload: { text: b.text } });
81
+ }
82
+ break;
83
+ }
84
+ case "tool_use": {
85
+ const name = b.name ?? "";
86
+ const payload = {
87
+ detail: {
88
+ tool: name,
89
+ input_summary: summarizeInput(b.input),
90
+ },
91
+ };
92
+ if (isMcpToolName(name)) {
93
+ const parts = name.split("__");
94
+ payload.detail.kind = "mcp";
95
+ if (parts.length >= 3) {
96
+ payload.detail.server = parts[1];
97
+ payload.detail.tool_name = parts
98
+ .slice(2)
99
+ .join("__");
100
+ }
101
+ }
102
+ events.push({ kind: "progress", payload });
103
+ break;
104
+ }
105
+ case "thinking":
106
+ // skip in default mode
107
+ break;
108
+ default:
109
+ // unknown block type — skip silently
110
+ break;
111
+ }
112
+ }
113
+ return { events };
114
+ }
115
+ function handleResult(msg) {
116
+ if (msg.is_error) {
117
+ return {
118
+ events: [
119
+ {
120
+ kind: "error",
121
+ payload: {
122
+ message: msg.result ?? "Claude reported is_error",
123
+ duration_ms: msg.duration_ms,
124
+ },
125
+ },
126
+ ],
127
+ };
128
+ }
129
+ // Intentionally do NOT copy `msg.result` into `done.text`. Claude already
130
+ // emitted the final text as an `assistant.message.content[].text` block,
131
+ // which we turned into a `kind:message` event above. Repeating it on
132
+ // `done` makes GUI consumers render the answer twice.
133
+ return {
134
+ events: [
135
+ {
136
+ kind: "done",
137
+ payload: {
138
+ duration_ms: msg.duration_ms,
139
+ total_cost_usd: msg.total_cost_usd,
140
+ num_turns: msg.num_turns,
141
+ },
142
+ },
143
+ ],
144
+ };
145
+ }
146
+ /**
147
+ * Encode a channel user message into Claude stream-json stdin line(s).
148
+ *
149
+ * - Normal `message`: one line, `{type:"user", message:{...}}`
150
+ * - `tag === "interrupt"`: TWO lines —
151
+ * 1. `{type:"control_request", subtype:"interrupt"}`
152
+ * 2. `{type:"user", message:{...}}`
153
+ *
154
+ * The control_request IS accepted by Claude SDK (returns success), but
155
+ * probe tests show it does **not** reliably preempt in-flight LLM
156
+ * response generation — turn 1 still completes fully, then turn 2 picks
157
+ * up the new user message. So effective behavior on Claude is "next-turn
158
+ * redirect" not "mid-stream abort". For hard preempt use `channel kill`.
159
+ *
160
+ * Sending the control_request anyway is harmless and may abort tool
161
+ * calls / partial-message streams; future SDK fixes apply automatically.
162
+ * See research/probe-findings.md for the experimental evidence.
163
+ */
164
+ export function encodeClaudeUserMessage(text, tag) {
165
+ const lines = [];
166
+ if (tag === "interrupt") {
167
+ lines.push(JSON.stringify({
168
+ type: "control_request",
169
+ request_id: `trellis-int-${Date.now()}-${Math.random()
170
+ .toString(36)
171
+ .slice(2, 8)}`,
172
+ request: { subtype: "interrupt" },
173
+ }));
174
+ }
175
+ lines.push(JSON.stringify({
176
+ type: "user",
177
+ message: {
178
+ role: "user",
179
+ content: [{ type: "text", text }],
180
+ },
181
+ }));
182
+ return lines.join("\n") + "\n";
183
+ }
184
+ /**
185
+ * Build the Claude CLI args for `claude -p` in stream-json mode.
186
+ */
187
+ export function buildClaudeArgs(opts) {
188
+ const args = [
189
+ "-p",
190
+ "--input-format",
191
+ "stream-json",
192
+ "--output-format",
193
+ "stream-json",
194
+ "--permission-mode",
195
+ "bypassPermissions",
196
+ "--dangerously-skip-permissions",
197
+ ];
198
+ if (opts.verbose !== false)
199
+ args.push("--verbose");
200
+ if (opts.resumeSessionId)
201
+ args.push("--resume", opts.resumeSessionId);
202
+ if (opts.model)
203
+ args.push("--model", opts.model);
204
+ if (opts.systemPrompt?.trim()) {
205
+ args.push("--append-system-prompt", opts.systemPrompt);
206
+ }
207
+ return args;
208
+ }
209
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { ParseResult } from "./types.js";
2
+ /**
3
+ * Codex `app-server` adapter (JSON-RPC 2.0 over stdio).
4
+ *
5
+ * Wire shape (real data — see research/probes/codex/*.jsonl):
6
+ *
7
+ * Three inbound message kinds:
8
+ * 1. Response to our outgoing request: { id, result } | { id, error }, no method
9
+ * 2. Server-to-client request: { method, id, params } — must reply
10
+ * 3. Notification: { method, params } — fire-and-forget
11
+ *
12
+ * Outbound: initialize → thread/start → turn/start
13
+ *
14
+ * Translated events (per probe-findings.md):
15
+ * thread/start result.thread.id → persistThreadId + persistSessionId (same UUIDv7)
16
+ * item/started commandExecution → progress(tool=shell, cmd, status=inProgress)
17
+ * item/started mcpToolCall → progress(kind=mcp, server, tool, args_summary)
18
+ * item/started dynamicToolCall → progress(kind=dynamic, namespace, tool, args)
19
+ * item/started webSearch → progress(kind=web_search, query)
20
+ * item/started fileChange → progress(kind=file_change)
21
+ * item/completed agentMessage → say(text, phase)
22
+ * item/agentMessage/delta → progress(text_delta)
23
+ * item/completed commandExecution → optional progress(status, exitCode)
24
+ * item/started collabAgentToolCall → error(reason=collab_blocked, recommendation=set features.multi_agent=false)
25
+ * turn/completed → done
26
+ * turn/aborted → error(reason=aborted)
27
+ * warning → progress(kind=warning, message)
28
+ * mcpServer/elicitation/request → reply { action: accept, content: {} } (auto-allow)
29
+ *
30
+ * Notifications we skip silently:
31
+ * remoteControl/status/changed
32
+ * mcpServer/startupStatus/updated
33
+ * mcpServer/oauthLoginCompleted
34
+ * account/rateLimits/updated
35
+ * thread/tokenUsage/updated
36
+ * thread/status/changed
37
+ * thread/started (we record thread id from thread/start result instead)
38
+ * turn/started
39
+ * serverRequest/resolved
40
+ * ItemGuardianApprovalReview* (until channel supports human-in-loop)
41
+ *
42
+ * This module exposes:
43
+ * - parseCodexLine(line, ctx) — pure parser; ctx tracks pending outgoing ids
44
+ * - encodeCodexRequest / encodeCodexUserMessage — outbound framing helpers
45
+ * - buildCodexArgs — CLI args
46
+ * - createCodexCtx — state holder for pending ids
47
+ */
48
+ export interface CodexCtx {
49
+ /** id → label tracking outgoing requests, so adapter can recognise their responses. */
50
+ pending: Map<number, "initialize" | "thread/start" | "turn/start" | "other">;
51
+ /** Last-known thread id (used to scope future requests). */
52
+ threadId?: string;
53
+ /** Monotonic outbound id allocator. */
54
+ nextId: number;
55
+ }
56
+ export declare function createCodexCtx(): CodexCtx;
57
+ export declare function parseCodexLine(line: string, ctx: CodexCtx): ParseResult;
58
+ export declare function encodeCodexRequest(ctx: CodexCtx, method: string, params: unknown, label?: "initialize" | "thread/start" | "turn/start" | "other"): {
59
+ id: number;
60
+ line: string;
61
+ };
62
+ export declare function encodeCodexUserMessage(ctx: CodexCtx, text: string, tag?: string): {
63
+ id: number;
64
+ line: string;
65
+ };
66
+ export declare function buildCodexArgs(opts: {
67
+ model?: string;
68
+ }): string[];
69
+ export declare function buildCodexThreadStartParams(cwd: string, systemPrompt?: string): Record<string, unknown>;
70
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/commands/channel/adapters/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,MAAM,WAAW,QAAQ;IACvB,uFAAuF;IACvF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;IAC7E,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAEzC;AAqCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,WAAW,CAqCvE;AA+WD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,KAAK,GAAE,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,OAAiB,GACtE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK9B;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqB9B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,EAAE,CAIjE;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB"}