@junctionpanel/cli 0.1.16

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 (196) hide show
  1. package/LICENSE +671 -0
  2. package/bin/junction +2 -0
  3. package/bin/junction-daemon +5 -0
  4. package/dist/cli.d.ts +13 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +211 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/agent/archive.d.ts +17 -0
  9. package/dist/commands/agent/archive.d.ts.map +1 -0
  10. package/dist/commands/agent/archive.js +92 -0
  11. package/dist/commands/agent/archive.js.map +1 -0
  12. package/dist/commands/agent/attach.d.ts +10 -0
  13. package/dist/commands/agent/attach.d.ts.map +1 -0
  14. package/dist/commands/agent/attach.js +153 -0
  15. package/dist/commands/agent/attach.js.map +1 -0
  16. package/dist/commands/agent/index.d.ts +3 -0
  17. package/dist/commands/agent/index.d.ts.map +1 -0
  18. package/dist/commands/agent/index.js +125 -0
  19. package/dist/commands/agent/index.js.map +1 -0
  20. package/dist/commands/agent/inspect.d.ts +14 -0
  21. package/dist/commands/agent/inspect.d.ts.map +1 -0
  22. package/dist/commands/agent/inspect.js +198 -0
  23. package/dist/commands/agent/inspect.js.map +1 -0
  24. package/dist/commands/agent/logs.d.ts +15 -0
  25. package/dist/commands/agent/logs.d.ts.map +1 -0
  26. package/dist/commands/agent/logs.js +163 -0
  27. package/dist/commands/agent/logs.js.map +1 -0
  28. package/dist/commands/agent/ls.d.ts +37 -0
  29. package/dist/commands/agent/ls.d.ts.map +1 -0
  30. package/dist/commands/agent/ls.js +185 -0
  31. package/dist/commands/agent/ls.js.map +1 -0
  32. package/dist/commands/agent/mode.d.ts +18 -0
  33. package/dist/commands/agent/mode.d.ts.map +1 -0
  34. package/dist/commands/agent/mode.js +100 -0
  35. package/dist/commands/agent/mode.js.map +1 -0
  36. package/dist/commands/agent/run.d.ts +40 -0
  37. package/dist/commands/agent/run.d.ts.map +1 -0
  38. package/dist/commands/agent/run.js +354 -0
  39. package/dist/commands/agent/run.js.map +1 -0
  40. package/dist/commands/agent/send.d.ts +16 -0
  41. package/dist/commands/agent/send.d.ts.map +1 -0
  42. package/dist/commands/agent/send.js +172 -0
  43. package/dist/commands/agent/send.js.map +1 -0
  44. package/dist/commands/agent/stop.d.ts +16 -0
  45. package/dist/commands/agent/stop.d.ts.map +1 -0
  46. package/dist/commands/agent/stop.js +105 -0
  47. package/dist/commands/agent/stop.js.map +1 -0
  48. package/dist/commands/agent/update.d.ts +18 -0
  49. package/dist/commands/agent/update.d.ts.map +1 -0
  50. package/dist/commands/agent/update.js +139 -0
  51. package/dist/commands/agent/update.js.map +1 -0
  52. package/dist/commands/agent/wait.d.ts +16 -0
  53. package/dist/commands/agent/wait.d.ts.map +1 -0
  54. package/dist/commands/agent/wait.js +194 -0
  55. package/dist/commands/agent/wait.js.map +1 -0
  56. package/dist/commands/daemon/index.d.ts +4 -0
  57. package/dist/commands/daemon/index.d.ts.map +1 -0
  58. package/dist/commands/daemon/index.js +50 -0
  59. package/dist/commands/daemon/index.js.map +1 -0
  60. package/dist/commands/daemon/local-daemon.d.ts +60 -0
  61. package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
  62. package/dist/commands/daemon/local-daemon.js +501 -0
  63. package/dist/commands/daemon/local-daemon.js.map +1 -0
  64. package/dist/commands/daemon/package-context.d.ts +7 -0
  65. package/dist/commands/daemon/package-context.d.ts.map +1 -0
  66. package/dist/commands/daemon/package-context.js +41 -0
  67. package/dist/commands/daemon/package-context.js.map +1 -0
  68. package/dist/commands/daemon/pair.d.ts +3 -0
  69. package/dist/commands/daemon/pair.d.ts.map +1 -0
  70. package/dist/commands/daemon/pair.js +11 -0
  71. package/dist/commands/daemon/pair.js.map +1 -0
  72. package/dist/commands/daemon/restart.d.ts +12 -0
  73. package/dist/commands/daemon/restart.d.ts.map +1 -0
  74. package/dist/commands/daemon/restart.js +102 -0
  75. package/dist/commands/daemon/restart.js.map +1 -0
  76. package/dist/commands/daemon/runtime-toolchain.d.ts +24 -0
  77. package/dist/commands/daemon/runtime-toolchain.d.ts.map +1 -0
  78. package/dist/commands/daemon/runtime-toolchain.js +93 -0
  79. package/dist/commands/daemon/runtime-toolchain.js.map +1 -0
  80. package/dist/commands/daemon/start.d.ts +6 -0
  81. package/dist/commands/daemon/start.d.ts.map +1 -0
  82. package/dist/commands/daemon/start.js +48 -0
  83. package/dist/commands/daemon/start.js.map +1 -0
  84. package/dist/commands/daemon/status.d.ts +11 -0
  85. package/dist/commands/daemon/status.d.ts.map +1 -0
  86. package/dist/commands/daemon/status.js +389 -0
  87. package/dist/commands/daemon/status.js.map +1 -0
  88. package/dist/commands/daemon/stop.d.ts +12 -0
  89. package/dist/commands/daemon/stop.d.ts.map +1 -0
  90. package/dist/commands/daemon/stop.js +69 -0
  91. package/dist/commands/daemon/stop.js.map +1 -0
  92. package/dist/commands/daemon/update.d.ts +11 -0
  93. package/dist/commands/daemon/update.d.ts.map +1 -0
  94. package/dist/commands/daemon/update.js +88 -0
  95. package/dist/commands/daemon/update.js.map +1 -0
  96. package/dist/commands/onboard.d.ts +9 -0
  97. package/dist/commands/onboard.d.ts.map +1 -0
  98. package/dist/commands/onboard.js +299 -0
  99. package/dist/commands/onboard.js.map +1 -0
  100. package/dist/commands/permit/allow.d.ts +20 -0
  101. package/dist/commands/permit/allow.d.ts.map +1 -0
  102. package/dist/commands/permit/allow.js +134 -0
  103. package/dist/commands/permit/allow.js.map +1 -0
  104. package/dist/commands/permit/deny.d.ts +12 -0
  105. package/dist/commands/permit/deny.d.ts.map +1 -0
  106. package/dist/commands/permit/deny.js +106 -0
  107. package/dist/commands/permit/deny.js.map +1 -0
  108. package/dist/commands/permit/index.d.ts +3 -0
  109. package/dist/commands/permit/index.d.ts.map +1 -0
  110. package/dist/commands/permit/index.js +37 -0
  111. package/dist/commands/permit/index.js.map +1 -0
  112. package/dist/commands/permit/ls.d.ts +18 -0
  113. package/dist/commands/permit/ls.d.ts.map +1 -0
  114. package/dist/commands/permit/ls.js +66 -0
  115. package/dist/commands/permit/ls.js.map +1 -0
  116. package/dist/commands/provider/index.d.ts +3 -0
  117. package/dist/commands/provider/index.d.ts.map +1 -0
  118. package/dist/commands/provider/index.js +23 -0
  119. package/dist/commands/provider/index.js.map +1 -0
  120. package/dist/commands/provider/ls.d.ts +17 -0
  121. package/dist/commands/provider/ls.d.ts.map +1 -0
  122. package/dist/commands/provider/ls.js +51 -0
  123. package/dist/commands/provider/ls.js.map +1 -0
  124. package/dist/commands/provider/models.d.ts +20 -0
  125. package/dist/commands/provider/models.d.ts.map +1 -0
  126. package/dist/commands/provider/models.js +53 -0
  127. package/dist/commands/provider/models.js.map +1 -0
  128. package/dist/commands/worktree/archive.d.ts +16 -0
  129. package/dist/commands/worktree/archive.d.ts.map +1 -0
  130. package/dist/commands/worktree/archive.js +98 -0
  131. package/dist/commands/worktree/archive.js.map +1 -0
  132. package/dist/commands/worktree/index.d.ts +3 -0
  133. package/dist/commands/worktree/index.d.ts.map +1 -0
  134. package/dist/commands/worktree/index.js +22 -0
  135. package/dist/commands/worktree/index.js.map +1 -0
  136. package/dist/commands/worktree/ls.d.ts +19 -0
  137. package/dist/commands/worktree/ls.d.ts.map +1 -0
  138. package/dist/commands/worktree/ls.js +97 -0
  139. package/dist/commands/worktree/ls.js.map +1 -0
  140. package/dist/daemon-only-cli.d.ts +4 -0
  141. package/dist/daemon-only-cli.d.ts.map +1 -0
  142. package/dist/daemon-only-cli.js +5 -0
  143. package/dist/daemon-only-cli.js.map +1 -0
  144. package/dist/index.d.ts +2 -0
  145. package/dist/index.d.ts.map +1 -0
  146. package/dist/index.js +7 -0
  147. package/dist/index.js.map +1 -0
  148. package/dist/output/index.d.ts +45 -0
  149. package/dist/output/index.d.ts.map +1 -0
  150. package/dist/output/index.js +47 -0
  151. package/dist/output/index.js.map +1 -0
  152. package/dist/output/json.d.ts +11 -0
  153. package/dist/output/json.d.ts.map +1 -0
  154. package/dist/output/json.js +37 -0
  155. package/dist/output/json.js.map +1 -0
  156. package/dist/output/quiet.d.ts +9 -0
  157. package/dist/output/quiet.d.ts.map +1 -0
  158. package/dist/output/quiet.js +22 -0
  159. package/dist/output/quiet.js.map +1 -0
  160. package/dist/output/render.d.ts +15 -0
  161. package/dist/output/render.d.ts.map +1 -0
  162. package/dist/output/render.js +80 -0
  163. package/dist/output/render.js.map +1 -0
  164. package/dist/output/table.d.ts +13 -0
  165. package/dist/output/table.d.ts.map +1 -0
  166. package/dist/output/table.js +135 -0
  167. package/dist/output/table.js.map +1 -0
  168. package/dist/output/types.d.ts +71 -0
  169. package/dist/output/types.d.ts.map +1 -0
  170. package/dist/output/types.js +8 -0
  171. package/dist/output/types.js.map +1 -0
  172. package/dist/output/with-output.d.ts +37 -0
  173. package/dist/output/with-output.d.ts.map +1 -0
  174. package/dist/output/with-output.js +87 -0
  175. package/dist/output/with-output.js.map +1 -0
  176. package/dist/output/yaml.d.ts +11 -0
  177. package/dist/output/yaml.d.ts.map +1 -0
  178. package/dist/output/yaml.js +38 -0
  179. package/dist/output/yaml.js.map +1 -0
  180. package/dist/utils/client-id.d.ts +2 -0
  181. package/dist/utils/client-id.d.ts.map +1 -0
  182. package/dist/utils/client-id.js +37 -0
  183. package/dist/utils/client-id.js.map +1 -0
  184. package/dist/utils/client.d.ts +35 -0
  185. package/dist/utils/client.d.ts.map +1 -0
  186. package/dist/utils/client.js +113 -0
  187. package/dist/utils/client.js.map +1 -0
  188. package/dist/utils/errors.d.ts +5 -0
  189. package/dist/utils/errors.d.ts.map +1 -0
  190. package/dist/utils/errors.js +10 -0
  191. package/dist/utils/errors.js.map +1 -0
  192. package/dist/utils/timeline.d.ts +8 -0
  193. package/dist/utils/timeline.d.ts.map +1 -0
  194. package/dist/utils/timeline.js +9 -0
  195. package/dist/utils/timeline.js.map +1 -0
  196. package/package.json +66 -0
package/dist/cli.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { Command } from 'commander';
2
+ import { type DaemonPackageContext } from './commands/daemon/package-context.js';
3
+ export interface JunctionCliOptions {
4
+ packageContext?: Partial<DaemonPackageContext>;
5
+ }
6
+ interface RegisterDaemonTopLevelOptions {
7
+ includeStop?: boolean;
8
+ }
9
+ export declare function registerTopLevelDaemonCommands(program: Command, packageContext: DaemonPackageContext, options?: RegisterDaemonTopLevelOptions): void;
10
+ export declare function createCli(options?: JunctionCliOptions): Command;
11
+ export declare function createDaemonOnlyProgram(options?: JunctionCliOptions): Command;
12
+ export {};
13
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsBnC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAA;AAU7C,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;CAC/C;AAED,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAoBD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,oBAAoB,EACpC,OAAO,GAAE,6BAAkC,GAC1C,IAAI,CA+DN;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CA+HnE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAMjF"}
package/dist/cli.js ADDED
@@ -0,0 +1,211 @@
1
+ import { Command } from 'commander';
2
+ import { createAgentCommand } from './commands/agent/index.js';
3
+ import { createDaemonCommand } from './commands/daemon/index.js';
4
+ import { createPermitCommand } from './commands/permit/index.js';
5
+ import { createProviderCommand } from './commands/provider/index.js';
6
+ import { createWorktreeCommand } from './commands/worktree/index.js';
7
+ import { startCommand as daemonStartCommand } from './commands/daemon/start.js';
8
+ import { runStatusCommand as runDaemonStatusCommand } from './commands/daemon/status.js';
9
+ import { runRestartCommand as runDaemonRestartCommand } from './commands/daemon/restart.js';
10
+ import { runDaemonUpdateCommandOrExit } from './commands/daemon/update.js';
11
+ import { pairCommand as daemonPairCommand } from './commands/daemon/pair.js';
12
+ import { runLsCommand } from './commands/agent/ls.js';
13
+ import { runRunCommand } from './commands/agent/run.js';
14
+ import { runLogsCommand } from './commands/agent/logs.js';
15
+ import { runStopCommand as runAgentStopCommand } from './commands/agent/stop.js';
16
+ import { runSendCommand } from './commands/agent/send.js';
17
+ import { runInspectCommand } from './commands/agent/inspect.js';
18
+ import { runWaitCommand } from './commands/agent/wait.js';
19
+ import { runAttachCommand } from './commands/agent/attach.js';
20
+ import { withOutput } from './output/index.js';
21
+ import { onboardCommand } from './commands/onboard.js';
22
+ import { runStopCommand as runDaemonStopCommand } from './commands/daemon/stop.js';
23
+ import { resolveDaemonPackageContext, } from './commands/daemon/package-context.js';
24
+ // Helper function to collect multiple option values into an array
25
+ function collectMultiple(value, previous) {
26
+ return previous.concat([value]);
27
+ }
28
+ function configureProgramBase(program, packageContext, description) {
29
+ program
30
+ .name('junction')
31
+ .description(description)
32
+ .version(packageContext.packageVersion, '-v, --version', 'output the version number')
33
+ // Global output options
34
+ .option('-o, --format <format>', 'output format: table, json, yaml', 'table')
35
+ .option('--json', 'output in JSON format (alias for --format json)')
36
+ .option('-q, --quiet', 'minimal output (IDs only)')
37
+ .option('--no-headers', 'omit table headers')
38
+ .option('--no-color', 'disable colored output');
39
+ }
40
+ export function registerTopLevelDaemonCommands(program, packageContext, options = {}) {
41
+ const includeStop = options.includeStop ?? true;
42
+ const runDaemonStopWithOutput = withOutput(runDaemonStopCommand);
43
+ // Top-level local daemon shortcuts
44
+ program.addCommand(onboardCommand());
45
+ program.addCommand(daemonStartCommand());
46
+ program.addCommand(daemonPairCommand());
47
+ program
48
+ .command('update')
49
+ .description('Update local daemon package (alias for "junction daemon update")')
50
+ .option('--home <path>', 'Junction home directory (default: ~/.junction)')
51
+ .option('-y, --yes', 'Restart automatically after update')
52
+ .action(async (options) => {
53
+ await runDaemonUpdateCommandOrExit(options, packageContext);
54
+ });
55
+ program
56
+ .command('status')
57
+ .description('Show local daemon status (alias for "junction daemon status")')
58
+ .option('--json', 'Output in JSON format')
59
+ .option('--home <path>', 'Junction home directory (default: ~/.junction)')
60
+ .option('--all', 'Show status of all running daemons')
61
+ .option('--port <port>', 'Show status of daemon on specific port')
62
+ .action(withOutput(async (options, command) => runDaemonStatusCommand(options, command, packageContext)));
63
+ program
64
+ .command('restart')
65
+ .description('Restart local daemon (alias for "junction daemon restart")')
66
+ .option('--json', 'Output in JSON format')
67
+ .option('--home <path>', 'Junction home directory (default: ~/.junction)')
68
+ .option('--timeout <seconds>', 'Wait timeout before force step (default: 15)')
69
+ .option('--force', 'Send SIGKILL if graceful stop times out')
70
+ .option('--listen <listen>', 'Listen target for restarted daemon (host:port, port, or unix socket)')
71
+ .option('--port <port>', 'Port for restarted daemon listen target')
72
+ .option('--no-relay', 'Disable relay on restarted daemon')
73
+ .option('--no-mcp', 'Disable Agent MCP on restarted daemon')
74
+ .option('--allowed-hosts <hosts>', 'Comma-separated Host allowlist values (example: "localhost,.example.com" or "true")')
75
+ .action(withOutput(runDaemonRestartCommand));
76
+ if (includeStop) {
77
+ program
78
+ .command('stop')
79
+ .description('Stop the local daemon')
80
+ .option('--json', 'Output in JSON format')
81
+ .option('--home <path>', 'Junction home directory (default: ~/.junction)')
82
+ .option('--timeout <seconds>', 'Wait timeout before failing (default: 15)')
83
+ .option('--force', 'Send SIGKILL if graceful stop times out')
84
+ .option('--all', 'Stop all running daemons')
85
+ .option('--port <port>', 'Stop daemon on specific port')
86
+ .option('--listen <listen>', 'Stop daemon on specific listen address')
87
+ .action(async (stopOptions, command) => {
88
+ await runDaemonStopWithOutput(stopOptions, command);
89
+ });
90
+ }
91
+ }
92
+ export function createCli(options = {}) {
93
+ const packageContext = resolveDaemonPackageContext(options.packageContext);
94
+ const program = new Command();
95
+ const runAgentStopWithOutput = withOutput(runAgentStopCommand);
96
+ const runDaemonStopWithOutput = withOutput(runDaemonStopCommand);
97
+ configureProgramBase(program, packageContext, 'Junction CLI - control your AI coding agents from the command line');
98
+ // Primary agent commands (top-level)
99
+ program
100
+ .command('ls')
101
+ .description('List agents. By default excludes archived agents.')
102
+ .option('-a, --all', 'Include archived agents')
103
+ .option('-g, --global', 'Legacy no-op (kept for compatibility)')
104
+ .option('--label <key=value>', 'Filter by label (can be used multiple times)', collectMultiple, [])
105
+ .option('--thinking <id>', 'Filter by thinking option ID')
106
+ .option('--json', 'Output in JSON format')
107
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
108
+ .action(withOutput(runLsCommand));
109
+ program
110
+ .command('run')
111
+ .description('Create and start an agent with a task')
112
+ .argument('<prompt>', 'The task/prompt for the agent')
113
+ .option('-d, --detach', 'Run in background (detached)')
114
+ .option('--name <name>', 'Assign a name/title to the agent')
115
+ .option('--provider <provider>', 'Agent provider: claude | codex | opencode', 'claude')
116
+ .option('--model <model>', 'Model to use (e.g., claude-sonnet-4-20250514, claude-3-5-haiku-20241022)')
117
+ .option('--thinking <id>', 'Thinking option ID to use for this run')
118
+ .option('--mode <mode>', 'Provider-specific mode (e.g., plan, default, bypass)')
119
+ .option('--worktree <name>', 'Create agent in a new git worktree')
120
+ .option('--base <branch>', 'Base branch for worktree (default: current branch)')
121
+ .option('--image <path>', 'Attach image(s) to the initial prompt (can be used multiple times)', collectMultiple, [])
122
+ .option('--cwd <path>', 'Working directory (default: current)')
123
+ .option('--label <key=value>', 'Add label(s) to the agent (can be used multiple times)', collectMultiple, [])
124
+ .option('--ui', 'Mark as UI agent (equivalent to --label ui=true)')
125
+ .option('--output-schema <schema>', 'Output JSON matching the provided schema file path or inline JSON schema')
126
+ .option('--json', 'Output in JSON format')
127
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
128
+ .action(withOutput(runRunCommand));
129
+ program
130
+ .command('attach')
131
+ .description("Attach to a running agent's output stream")
132
+ .argument('<id>', 'Agent ID (or prefix)')
133
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
134
+ .action(runAttachCommand);
135
+ program
136
+ .command('logs')
137
+ .description('View agent activity/timeline')
138
+ .argument('<id>', 'Agent ID (or prefix)')
139
+ .option('-f, --follow', 'Follow log output (streaming)')
140
+ .option('--tail <n>', 'Show last n entries')
141
+ .option('--filter <type>', 'Filter by event type (tools, text, errors, permissions)')
142
+ .option('--since <time>', 'Show logs since timestamp')
143
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
144
+ .action(runLogsCommand);
145
+ program
146
+ .command('stop')
147
+ .description('Stop an agent; with no target, stop the local daemon')
148
+ .argument('[id]', 'Agent ID (or prefix) - optional if --all or --cwd specified')
149
+ .option('--all', 'Stop all agents')
150
+ .option('--cwd <path>', 'Stop all agents in directory')
151
+ .option('--home <path>', 'Junction home directory (default: ~/.junction)')
152
+ .option('--timeout <seconds>', 'Wait timeout before failing (default: 15)')
153
+ .option('--force', 'Send SIGKILL if graceful stop times out')
154
+ .option('--listen <listen>', 'Stop daemon on specific listen address')
155
+ .option('--port <port>', 'Stop daemon on specific port')
156
+ .option('--json', 'Output in JSON format')
157
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
158
+ .action(async (id, options, command) => {
159
+ const isAgentStop = Boolean(id) || options.all === true || typeof options.cwd === 'string';
160
+ if (isAgentStop) {
161
+ await runAgentStopWithOutput(id, options, command);
162
+ return;
163
+ }
164
+ await runDaemonStopWithOutput(options, command);
165
+ });
166
+ program
167
+ .command('send')
168
+ .description('Send a message/task to an existing agent')
169
+ .argument('<id>', 'Agent ID (or prefix)')
170
+ .argument('<prompt>', 'The message to send')
171
+ .option('--no-wait', 'Return immediately without waiting for completion')
172
+ .option('--image <path>', 'Attach image(s) to the message', collectMultiple, [])
173
+ .option('--json', 'Output in JSON format')
174
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
175
+ .action(withOutput(runSendCommand));
176
+ program
177
+ .command('inspect')
178
+ .description('Show detailed information about an agent')
179
+ .argument('<id>', 'Agent ID (or prefix)')
180
+ .option('--json', 'Output in JSON format')
181
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
182
+ .action(withOutput(runInspectCommand));
183
+ program
184
+ .command('wait')
185
+ .description('Wait for an agent to become idle')
186
+ .argument('<id>', 'Agent ID (or prefix)')
187
+ .option('--timeout <seconds>', 'Maximum wait time (default: no limit)')
188
+ .option('--json', 'Output in JSON format')
189
+ .option('--host <host>', 'Daemon host:port (default: localhost:6767)')
190
+ .action(withOutput(runWaitCommand));
191
+ registerTopLevelDaemonCommands(program, packageContext, { includeStop: false });
192
+ // Advanced agent commands (less common operations)
193
+ program.addCommand(createAgentCommand());
194
+ // Daemon commands
195
+ program.addCommand(createDaemonCommand(packageContext));
196
+ // Permission commands
197
+ program.addCommand(createPermitCommand());
198
+ // Provider commands
199
+ program.addCommand(createProviderCommand());
200
+ // Worktree commands
201
+ program.addCommand(createWorktreeCommand());
202
+ return program;
203
+ }
204
+ export function createDaemonOnlyProgram(options = {}) {
205
+ const packageContext = resolveDaemonPackageContext(options.packageContext);
206
+ const program = new Command();
207
+ configureProgramBase(program, packageContext, 'Junction daemon CLI');
208
+ registerTopLevelDaemonCommands(program, packageContext, { includeStop: true });
209
+ return program;
210
+ }
211
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Command } from 'commander';
2
+ import type { CommandOptions, SingleResult, OutputSchema } from '../../output/index.js';
3
+ /** Result type for agent archive command */
4
+ export interface AgentArchiveResult {
5
+ agentId: string;
6
+ status: 'archived';
7
+ archivedAt: string;
8
+ }
9
+ /** Schema for archive command output */
10
+ export declare const archiveSchema: OutputSchema<AgentArchiveResult>;
11
+ export interface AgentArchiveOptions extends CommandOptions {
12
+ force?: boolean;
13
+ host?: string;
14
+ }
15
+ export type AgentArchiveCommandResult = SingleResult<AgentArchiveResult>;
16
+ export declare function runArchiveCommand(agentIdArg: string, options: AgentArchiveOptions, _command: Command): Promise<AgentArchiveCommandResult>;
17
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,uBAAuB,CAAA;AAErG,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAO1D,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAExE,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,yBAAyB,CAAC,CAyFpC"}
@@ -0,0 +1,92 @@
1
+ import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
2
+ /** Schema for archive command output */
3
+ export const archiveSchema = {
4
+ idField: 'agentId',
5
+ columns: [
6
+ { header: 'AGENT ID', field: 'agentId' },
7
+ { header: 'STATUS', field: 'status' },
8
+ { header: 'ARCHIVED AT', field: 'archivedAt' },
9
+ ],
10
+ };
11
+ export async function runArchiveCommand(agentIdArg, options, _command) {
12
+ const host = getDaemonHost({ host: options.host });
13
+ // Validate arguments
14
+ if (!agentIdArg || agentIdArg.trim().length === 0) {
15
+ const error = {
16
+ code: 'MISSING_AGENT_ID',
17
+ message: 'Agent ID is required',
18
+ details: 'Usage: junction agent archive <id>',
19
+ };
20
+ throw error;
21
+ }
22
+ let client;
23
+ try {
24
+ client = await connectToDaemon({ host: options.host });
25
+ }
26
+ catch (err) {
27
+ const message = err instanceof Error ? err.message : String(err);
28
+ const error = {
29
+ code: 'DAEMON_NOT_RUNNING',
30
+ message: `Cannot connect to daemon at ${host}: ${message}`,
31
+ details: 'Start the daemon with: junction daemon start',
32
+ };
33
+ throw error;
34
+ }
35
+ try {
36
+ const fetchResult = await client.fetchAgent(agentIdArg);
37
+ if (!fetchResult) {
38
+ const error = {
39
+ code: 'AGENT_NOT_FOUND',
40
+ message: `Agent not found: ${agentIdArg}`,
41
+ details: 'Use "junction ls" to list available agents',
42
+ };
43
+ throw error;
44
+ }
45
+ const agent = fetchResult.agent;
46
+ const agentId = agent.id;
47
+ // Check if agent is already archived
48
+ if (agent.archivedAt) {
49
+ const error = {
50
+ code: 'AGENT_ALREADY_ARCHIVED',
51
+ message: `Agent ${agentId.slice(0, 7)} is already archived`,
52
+ details: `Archived at: ${agent.archivedAt}`,
53
+ };
54
+ throw error;
55
+ }
56
+ // Check if agent is running and reject unless --force is set
57
+ if (agent.status === 'running' && !options.force) {
58
+ const error = {
59
+ code: 'AGENT_RUNNING',
60
+ message: `Agent ${agentId.slice(0, 7)} is currently running`,
61
+ details: 'Use --force to archive a running agent (it will interrupt the active run), or stop it first with: junction agent stop',
62
+ };
63
+ throw error;
64
+ }
65
+ // Archive the agent
66
+ const result = await client.archiveAgent(agentId);
67
+ await client.close();
68
+ return {
69
+ type: 'single',
70
+ data: {
71
+ agentId,
72
+ status: 'archived',
73
+ archivedAt: result.archivedAt,
74
+ },
75
+ schema: archiveSchema,
76
+ };
77
+ }
78
+ catch (err) {
79
+ await client.close().catch(() => { });
80
+ // Re-throw CommandError as-is
81
+ if (err && typeof err === 'object' && 'code' in err) {
82
+ throw err;
83
+ }
84
+ const message = err instanceof Error ? err.message : String(err);
85
+ const error = {
86
+ code: 'ARCHIVE_FAILED',
87
+ message: `Failed to archive agent: ${message}`,
88
+ };
89
+ throw error;
90
+ }
91
+ }
92
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Command } from 'commander';
2
+ export interface AgentAttachOptions {
3
+ host?: string;
4
+ [key: string]: unknown;
5
+ }
6
+ /**
7
+ * Attach to a running agent's output stream
8
+ */
9
+ export declare function runAttachCommand(id: string, options: AgentAttachOptions, _command: Command): Promise<void>;
10
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUxC,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAgFD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAsFf"}
@@ -0,0 +1,153 @@
1
+ import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
2
+ import { fetchProjectedTimelineItems } from '../../utils/timeline.js';
3
+ /**
4
+ * Format and print a timeline item to the terminal
5
+ */
6
+ function printTimelineItem(item) {
7
+ switch (item.type) {
8
+ case 'assistant_message':
9
+ // Print assistant text directly
10
+ process.stdout.write(item.text);
11
+ break;
12
+ case 'reasoning':
13
+ // Print reasoning in a muted color if available
14
+ console.log(`\n[Reasoning] ${item.text}`);
15
+ break;
16
+ case 'tool_call': {
17
+ const toolName = item.name;
18
+ const status = item.status ?? 'started';
19
+ console.log(`\n[Tool: ${toolName}] ${status}`);
20
+ break;
21
+ }
22
+ case 'todo': {
23
+ const completed = item.items.filter((i) => i.completed).length;
24
+ const total = item.items.length;
25
+ console.log(`\n[Todo] ${completed}/${total} completed`);
26
+ break;
27
+ }
28
+ case 'error':
29
+ console.error(`\n[Error] ${item.message}`);
30
+ break;
31
+ case 'user_message':
32
+ console.log(`\n[User] ${item.text}`);
33
+ break;
34
+ default:
35
+ // Unknown item type, skip
36
+ break;
37
+ }
38
+ }
39
+ /**
40
+ * Format and print a stream event to the terminal
41
+ */
42
+ function printStreamEvent(event) {
43
+ switch (event.type) {
44
+ case 'timeline':
45
+ // Print the timeline item
46
+ printTimelineItem(event.item);
47
+ break;
48
+ case 'permission_requested':
49
+ console.log(`\n[Permission Required] ${event.request.name}`);
50
+ if (event.request.description) {
51
+ console.log(` ${event.request.description}`);
52
+ }
53
+ break;
54
+ case 'permission_resolved':
55
+ console.log(`\n[Permission ${event.resolution.behavior}]`);
56
+ break;
57
+ case 'turn_failed':
58
+ console.error(`\n[Turn Failed] ${event.error}`);
59
+ break;
60
+ case 'attention_required':
61
+ console.log(`\n[Attention Required: ${event.reason}]`);
62
+ break;
63
+ default:
64
+ // Other event types are internal
65
+ break;
66
+ }
67
+ }
68
+ /**
69
+ * Attach to a running agent's output stream
70
+ */
71
+ export async function runAttachCommand(id, options, _command) {
72
+ const host = getDaemonHost({ host: options.host });
73
+ if (!id) {
74
+ console.error('Error: Agent ID required');
75
+ console.error('Usage: junction attach <id>');
76
+ process.exit(1);
77
+ }
78
+ let client;
79
+ try {
80
+ client = await connectToDaemon({ host: options.host });
81
+ }
82
+ catch (err) {
83
+ const message = err instanceof Error ? err.message : String(err);
84
+ console.error(`Error: Cannot connect to daemon at ${host}: ${message}`);
85
+ console.error('Start the daemon with: junction daemon start');
86
+ process.exit(1);
87
+ }
88
+ try {
89
+ const fetchResult = await client.fetchAgent(id);
90
+ if (!fetchResult) {
91
+ console.error(`Error: No agent found matching: ${id}`);
92
+ console.error('Use `junction ls` to list available agents');
93
+ await client.close();
94
+ process.exit(1);
95
+ }
96
+ const resolvedId = fetchResult.agent.id;
97
+ // Print header
98
+ console.log(`Attaching to agent ${resolvedId.substring(0, 7)}...`);
99
+ console.log(`(Press Ctrl+C to detach)\n`);
100
+ // Print existing output from timeline fetch.
101
+ try {
102
+ const timelineItems = await fetchProjectedTimelineItems({
103
+ client,
104
+ agentId: resolvedId,
105
+ });
106
+ for (const item of timelineItems) {
107
+ printTimelineItem(item);
108
+ }
109
+ }
110
+ catch (error) {
111
+ console.warn('Warning: failed to fetch existing timeline', error);
112
+ }
113
+ // Subscribe to new events
114
+ const unsubscribe = client.on('agent_stream', (msg) => {
115
+ const message = msg;
116
+ if (message.type !== 'agent_stream')
117
+ return;
118
+ if (message.payload.agentId !== resolvedId)
119
+ return;
120
+ printStreamEvent(message.payload.event);
121
+ });
122
+ // Handle Ctrl+C to detach gracefully
123
+ let detached = false;
124
+ const detach = () => {
125
+ if (detached)
126
+ return;
127
+ detached = true;
128
+ console.log('\n\nDetaching from agent...');
129
+ unsubscribe();
130
+ client
131
+ .close()
132
+ .then(() => {
133
+ process.exit(0);
134
+ })
135
+ .catch(() => {
136
+ process.exit(1);
137
+ });
138
+ };
139
+ process.on('SIGINT', detach);
140
+ process.on('SIGTERM', detach);
141
+ // Keep the process alive
142
+ await new Promise(() => {
143
+ // Wait indefinitely until interrupted
144
+ });
145
+ }
146
+ catch (err) {
147
+ await client.close().catch(() => { });
148
+ const message = err instanceof Error ? err.message : String(err);
149
+ console.error(`Error: Failed to attach to agent: ${message}`);
150
+ process.exit(1);
151
+ }
152
+ }
153
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAgentCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,wBAAgB,kBAAkB,IAAI,OAAO,CAgI5C"}