@your-world/cli 0.1.6 → 0.1.7

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 (61) hide show
  1. package/dist/adapters/claude-code-adapter.d.ts +16 -0
  2. package/dist/adapters/claude-code-adapter.js +106 -0
  3. package/dist/adapters/claude-code-adapter.js.map +1 -0
  4. package/dist/adapters/codex-adapter.d.ts +1 -0
  5. package/dist/adapters/codex-adapter.js +26 -12
  6. package/dist/adapters/codex-adapter.js.map +1 -1
  7. package/dist/adapters/external-agent-adapter.d.ts +4 -0
  8. package/dist/adapters/external-agent-adapter.js +13 -0
  9. package/dist/adapters/external-agent-adapter.js.map +1 -1
  10. package/dist/cli/action-submit.js +47 -14
  11. package/dist/cli/action-submit.js.map +1 -1
  12. package/dist/cli/agent-adapter-discovery.d.ts +10 -0
  13. package/dist/cli/agent-adapter-discovery.js +116 -0
  14. package/dist/cli/agent-adapter-discovery.js.map +1 -0
  15. package/dist/cli/bin.js +8 -3
  16. package/dist/cli/bin.js.map +1 -1
  17. package/dist/cli/observe.js +3 -2
  18. package/dist/cli/observe.js.map +1 -1
  19. package/dist/cli/play-init.d.ts +7 -0
  20. package/dist/cli/play-init.js +45 -9
  21. package/dist/cli/play-init.js.map +1 -1
  22. package/dist/cli/play-run.js +8 -3
  23. package/dist/cli/play-run.js.map +1 -1
  24. package/dist/cli/player-init.js +1 -1
  25. package/dist/cli/player-init.js.map +1 -1
  26. package/dist/cli/rules.js +3 -2
  27. package/dist/cli/rules.js.map +1 -1
  28. package/dist/cli/shared.js +29 -14
  29. package/dist/cli/shared.js.map +1 -1
  30. package/dist/config/credential-store.js +6 -3
  31. package/dist/config/credential-store.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/optional-prop.d.ts +1 -0
  36. package/dist/optional-prop.js +12 -0
  37. package/dist/optional-prop.js.map +1 -0
  38. package/dist/prompting/agents-template.js +1 -0
  39. package/dist/prompting/agents-template.js.map +1 -1
  40. package/dist/prompting/turn-summary.js +45 -3
  41. package/dist/prompting/turn-summary.js.map +1 -1
  42. package/dist/runtime/player-runtime.d.ts +2 -2
  43. package/dist/runtime/player-runtime.js +96 -39
  44. package/dist/runtime/player-runtime.js.map +1 -1
  45. package/dist/runtime/session-store.d.ts +2 -0
  46. package/dist/runtime/session-store.js +9 -2
  47. package/dist/runtime/session-store.js.map +1 -1
  48. package/dist/runtime/settlement-sync.js +80 -18
  49. package/dist/runtime/settlement-sync.js.map +1 -1
  50. package/dist/runtime/turn-orchestrator.js +3 -2
  51. package/dist/runtime/turn-orchestrator.js.map +1 -1
  52. package/dist/runtime/workspace-manager.js +8 -6
  53. package/dist/runtime/workspace-manager.js.map +1 -1
  54. package/dist/types.d.ts +52 -40
  55. package/dist/world-client.d.ts +4 -4
  56. package/dist/world-client.js +23 -15
  57. package/dist/world-client.js.map +1 -1
  58. package/package.json +4 -2
  59. package/dist/adapters/generic-command-adapter.d.ts +0 -12
  60. package/dist/adapters/generic-command-adapter.js +0 -58
  61. package/dist/adapters/generic-command-adapter.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { ExternalAgentAdapter, PreparedSession, PrepareSessionInput, RunningTurn, RunTurnInput } from './external-agent-adapter';
2
+ export interface ClaudeCodeAdapterOptions {
3
+ command?: string[];
4
+ execArgsTemplate?: string[];
5
+ resumeArgsTemplate?: string[];
6
+ }
7
+ export declare class ClaudeCodeAdapter implements ExternalAgentAdapter {
8
+ readonly name = "claude-code";
9
+ readonly instructionFileName = "CLAUDE.md";
10
+ private readonly command;
11
+ private readonly execArgsTemplate;
12
+ private readonly resumeArgsTemplate;
13
+ constructor(options?: ClaudeCodeAdapterOptions);
14
+ prepareSession(_input: PrepareSessionInput): Promise<PreparedSession>;
15
+ runTurn(input: RunTurnInput): Promise<RunningTurn>;
16
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClaudeCodeAdapter = void 0;
4
+ const node_child_process_1 = require("node:child_process");
5
+ const optional_prop_1 = require("../optional-prop");
6
+ const DEFAULT_COMMAND = ['claude'];
7
+ const DEFAULT_EXEC_ARGS_TEMPLATE = ['-p', '--output-format', 'json', '--permission-mode', 'bypassPermissions'];
8
+ const DEFAULT_RESUME_ARGS_TEMPLATE = ['-p', '--output-format', 'json', '--permission-mode', 'bypassPermissions', '--resume', '{sessionId}'];
9
+ class ClaudeCodeAdapter {
10
+ name = 'claude-code';
11
+ instructionFileName = 'CLAUDE.md';
12
+ command;
13
+ execArgsTemplate;
14
+ resumeArgsTemplate;
15
+ constructor(options = {}) {
16
+ this.command = options.command && options.command.length > 0 ? [...options.command] : [...DEFAULT_COMMAND];
17
+ this.execArgsTemplate = options.execArgsTemplate && options.execArgsTemplate.length > 0 ? [...options.execArgsTemplate] : [...DEFAULT_EXEC_ARGS_TEMPLATE];
18
+ this.resumeArgsTemplate = options.resumeArgsTemplate && options.resumeArgsTemplate.length > 0 ? [...options.resumeArgsTemplate] : [...DEFAULT_RESUME_ARGS_TEMPLATE];
19
+ }
20
+ prepareSession(_input) {
21
+ return Promise.resolve({});
22
+ }
23
+ runTurn(input) {
24
+ const argsTemplate = input.session.adapterSessionId ? this.resumeArgsTemplate : this.execArgsTemplate;
25
+ const args = argsTemplate.map((part) => substitute(part, input.session.adapterSessionId, input)).concat(input.prompt);
26
+ const executable = this.command[0];
27
+ if (!executable) {
28
+ throw new Error('ClaudeCodeAdapter command is empty.');
29
+ }
30
+ const child = (0, node_child_process_1.spawn)(executable, [...this.command.slice(1), ...args], {
31
+ cwd: input.workDir,
32
+ env: buildAdapterProcessEnv(input),
33
+ stdio: ['ignore', 'pipe', 'pipe'],
34
+ });
35
+ let stdoutBuffer = '';
36
+ let stderrBuffer = '';
37
+ child.stdout.on('data', (chunk) => {
38
+ const text = String(chunk);
39
+ stdoutBuffer += text;
40
+ void input.onOutput?.(text);
41
+ });
42
+ child.stderr.on('data', (chunk) => {
43
+ const text = String(chunk);
44
+ stderrBuffer += text;
45
+ void input.onOutput?.(text);
46
+ });
47
+ return Promise.resolve({
48
+ completion: new Promise((resolve, reject) => {
49
+ child.once('error', reject);
50
+ child.once('exit', (exitCode, signal) => {
51
+ const adapterSessionId = extractClaudeSessionId(stdoutBuffer) ?? extractClaudeSessionId(stderrBuffer) ?? input.session.adapterSessionId;
52
+ resolve({
53
+ exitCode,
54
+ signal,
55
+ ...(0, optional_prop_1.optionalProp)('adapterSessionId', adapterSessionId),
56
+ });
57
+ });
58
+ }),
59
+ cancel: () => {
60
+ child.kill('SIGTERM');
61
+ return Promise.resolve();
62
+ },
63
+ });
64
+ }
65
+ }
66
+ exports.ClaudeCodeAdapter = ClaudeCodeAdapter;
67
+ function buildAdapterProcessEnv(input) {
68
+ return {
69
+ ...process.env,
70
+ YW_RUNTIME_LOG_SUBMISSIONS: '1',
71
+ YW_RUN_ID: input.runId,
72
+ YW_WORK_DIR: input.workDir,
73
+ YW_PROMPT_FILE: input.promptFilePath,
74
+ YW_SESSION_FILE: `${input.workDir}/session.json`,
75
+ };
76
+ }
77
+ function extractClaudeSessionId(output) {
78
+ for (const line of output.split(/\r?\n/u).reverse()) {
79
+ const trimmed = line.trim();
80
+ if (trimmed.length === 0) {
81
+ continue;
82
+ }
83
+ try {
84
+ const parsed = JSON.parse(trimmed);
85
+ if (typeof parsed.session_id === 'string' && parsed.session_id.length > 0) {
86
+ return parsed.session_id;
87
+ }
88
+ }
89
+ catch {
90
+ const matched = trimmed.match(/"session_id"\s*:\s*"([^"]+)"/u);
91
+ if (matched?.[1]) {
92
+ return matched[1];
93
+ }
94
+ }
95
+ }
96
+ return undefined;
97
+ }
98
+ function substitute(template, sessionId, input) {
99
+ return template
100
+ .replaceAll('{sessionId}', sessionId ?? '')
101
+ .replaceAll('{workDir}', input.workDir)
102
+ .replaceAll('{runId}', input.runId)
103
+ .replaceAll('{runDir}', input.runDir)
104
+ .replaceAll('{promptFile}', input.promptFilePath);
105
+ }
106
+ //# sourceMappingURL=claude-code-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-adapter.js","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface CodexAdapterOptions {
6
6
  }
7
7
  export declare class CodexAdapter implements ExternalAgentAdapter {
8
8
  readonly name = "codex";
9
+ readonly instructionFileName = "AGENTS.md";
9
10
  private readonly command;
10
11
  private readonly execArgsTemplate;
11
12
  private readonly resumeArgsTemplate;
@@ -2,11 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CodexAdapter = void 0;
4
4
  const node_child_process_1 = require("node:child_process");
5
+ const optional_prop_1 = require("../optional-prop");
5
6
  const DEFAULT_COMMAND = ['codex'];
6
7
  const DEFAULT_EXEC_ARGS_TEMPLATE = ['exec', '--dangerously-bypass-approvals-and-sandbox', '--skip-git-repo-check', '-C', '{workDir}'];
7
8
  const DEFAULT_RESUME_ARGS_TEMPLATE = ['exec', 'resume', '--dangerously-bypass-approvals-and-sandbox', '--skip-git-repo-check', '{sessionId}'];
8
9
  class CodexAdapter {
9
10
  name = 'codex';
11
+ instructionFileName = 'AGENTS.md';
10
12
  command;
11
13
  execArgsTemplate;
12
14
  resumeArgsTemplate;
@@ -15,18 +17,19 @@ class CodexAdapter {
15
17
  this.execArgsTemplate = options.execArgsTemplate && options.execArgsTemplate.length > 0 ? [...options.execArgsTemplate] : [...DEFAULT_EXEC_ARGS_TEMPLATE];
16
18
  this.resumeArgsTemplate = options.resumeArgsTemplate && options.resumeArgsTemplate.length > 0 ? [...options.resumeArgsTemplate] : [...DEFAULT_RESUME_ARGS_TEMPLATE];
17
19
  }
18
- async prepareSession(_input) {
19
- return {};
20
+ prepareSession(_input) {
21
+ return Promise.resolve({});
20
22
  }
21
- async runTurn(input) {
23
+ runTurn(input) {
22
24
  const argsTemplate = input.session.adapterSessionId ? this.resumeArgsTemplate : this.execArgsTemplate;
23
25
  const args = argsTemplate.map((part) => substitute(part, input.session.adapterSessionId, input)).concat(input.prompt);
24
- const child = (0, node_child_process_1.spawn)(this.command[0], [...this.command.slice(1), ...args], {
26
+ const executable = this.command[0];
27
+ if (!executable) {
28
+ throw new Error('CodexAdapter command is empty.');
29
+ }
30
+ const child = (0, node_child_process_1.spawn)(executable, [...this.command.slice(1), ...args], {
25
31
  cwd: input.workDir,
26
- env: {
27
- ...process.env,
28
- YW_RUNTIME_LOG_SUBMISSIONS: '1',
29
- },
32
+ env: buildAdapterProcessEnv(input),
30
33
  stdio: ['ignore', 'pipe', 'pipe'],
31
34
  });
32
35
  let adapterSessionId = input.session.adapterSessionId;
@@ -44,24 +47,35 @@ class CodexAdapter {
44
47
  child.stderr.on('data', (chunk) => {
45
48
  void capture(chunk);
46
49
  });
47
- return {
50
+ return Promise.resolve({
48
51
  completion: new Promise((resolve, reject) => {
49
52
  child.once('error', reject);
50
53
  child.once('exit', (exitCode, signal) => {
51
54
  resolve({
52
55
  exitCode,
53
56
  signal,
54
- adapterSessionId,
57
+ ...(0, optional_prop_1.optionalProp)('adapterSessionId', adapterSessionId),
55
58
  });
56
59
  });
57
60
  }),
58
- cancel: async () => {
61
+ cancel: () => {
59
62
  child.kill('SIGTERM');
63
+ return Promise.resolve();
60
64
  },
61
- };
65
+ });
62
66
  }
63
67
  }
64
68
  exports.CodexAdapter = CodexAdapter;
69
+ function buildAdapterProcessEnv(input) {
70
+ return {
71
+ ...process.env,
72
+ YW_RUNTIME_LOG_SUBMISSIONS: '1',
73
+ YW_RUN_ID: input.runId,
74
+ YW_WORK_DIR: input.workDir,
75
+ YW_PROMPT_FILE: input.promptFilePath,
76
+ YW_SESSION_FILE: `${input.workDir}/session.json`,
77
+ };
78
+ }
65
79
  function substitute(template, sessionId, input) {
66
80
  return template
67
81
  .replaceAll('{sessionId}', sessionId ?? '')
@@ -1 +1 @@
1
- {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/adapters/codex-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { PlayerRuntimeSession } from '../runtime/runtime-types';
2
2
  import { Logger } from '../types';
3
+ export declare const SUPPORTED_AGENT_ADAPTERS: readonly ["codex", "claude-code"];
4
+ export type SupportedAgentAdapterName = (typeof SUPPORTED_AGENT_ADAPTERS)[number];
3
5
  export interface PrepareSessionInput {
4
6
  session: PlayerRuntimeSession;
5
7
  workDir: string;
@@ -28,6 +30,8 @@ export interface RunningTurn {
28
30
  }
29
31
  export interface ExternalAgentAdapter {
30
32
  readonly name: string;
33
+ readonly instructionFileName: string;
31
34
  prepareSession(input: PrepareSessionInput): Promise<PreparedSession>;
32
35
  runTurn(input: RunTurnInput): Promise<RunningTurn>;
33
36
  }
37
+ export declare function resolveInstructionFileNameForAdapter(adapter: string): 'AGENTS.md' | 'CLAUDE.md';
@@ -1,3 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUPPORTED_AGENT_ADAPTERS = void 0;
4
+ exports.resolveInstructionFileNameForAdapter = resolveInstructionFileNameForAdapter;
5
+ exports.SUPPORTED_AGENT_ADAPTERS = ['codex', 'claude-code'];
6
+ function resolveInstructionFileNameForAdapter(adapter) {
7
+ switch (adapter) {
8
+ case 'codex':
9
+ return 'AGENTS.md';
10
+ case 'claude-code':
11
+ return 'CLAUDE.md';
12
+ default:
13
+ throw new Error(`Unsupported adapter for instruction file resolution: ${adapter}`);
14
+ }
15
+ }
3
16
  //# sourceMappingURL=external-agent-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external-agent-adapter.js","sourceRoot":"","sources":["../../src/adapters/external-agent-adapter.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"external-agent-adapter.js","sourceRoot":"","sources":["../../src/adapters/external-agent-adapter.ts"],"names":[],"mappings":";;;AA6CA,oFASC;AAnDY,QAAA,wBAAwB,GAAG,CAAC,OAAO,EAAE,aAAa,CAAU,CAAC;AA0C1E,SAAgB,oCAAoC,CAAC,OAAe;IAChE,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,OAAO;YACR,OAAO,WAAW,CAAC;QACvB,KAAK,aAAa;YACd,OAAO,WAAW,CAAC;QACvB;YACI,MAAM,IAAI,KAAK,CAAC,wDAAwD,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;AACL,CAAC"}
@@ -5,8 +5,22 @@ exports.runActionSubmit = runActionSubmit;
5
5
  exports.submitActionForCurrentRun = submitActionForCurrentRun;
6
6
  const node_crypto_1 = require("node:crypto");
7
7
  const promises_1 = require("node:fs/promises");
8
+ const common_1 = require("@your-world/common");
9
+ const optional_prop_1 = require("../optional-prop");
8
10
  const session_store_1 = require("../runtime/session-store");
9
11
  const shared_1 = require("./shared");
12
+ function normalizeAction(action) {
13
+ if (!(0, common_1.isWorldVerb)(action.verb)) {
14
+ throw new shared_1.CliError('INVALID_ACTION', `Unsupported verb: ${action.verb}`);
15
+ }
16
+ return {
17
+ verb: action.verb,
18
+ ...(0, optional_prop_1.optionalProp)('actionId', action.actionId),
19
+ ...(0, optional_prop_1.optionalProp)('target', action.target),
20
+ ...(0, optional_prop_1.optionalProp)('params', action.params),
21
+ ...(0, optional_prop_1.optionalProp)('reason', action.reason),
22
+ };
23
+ }
10
24
  async function runAction(args) {
11
25
  const subcommand = args.positionals[0];
12
26
  if (subcommand === 'submit') {
@@ -61,12 +75,12 @@ async function submitActionForCurrentRun(options) {
61
75
  }
62
76
  const expectedStartTick = session.latestObservedTick + 1;
63
77
  if (session.lastSubmittedStartTick !== undefined && session.lastSubmittedStartTick === expectedStartTick) {
64
- throw new shared_1.CliError('START_TICK_ALREADY_SUBMITTED', `An action for startTick ${expectedStartTick} was already submitted locally.`);
78
+ throw new shared_1.CliError('START_TICK_ALREADY_SUBMITTED', `An action for startTick ${String(expectedStartTick)} was already submitted locally.`);
65
79
  }
66
- const action = {
80
+ const action = normalizeAction({
67
81
  ...options.action,
68
82
  actionId: options.action.actionId ?? `run-${options.runId}-${(0, node_crypto_1.randomUUID)()}`,
69
- };
83
+ });
70
84
  const actImpl = options.actImpl;
71
85
  if (!actImpl) {
72
86
  throw new shared_1.CliError('INVALID_STATE', 'Missing act implementation.');
@@ -96,8 +110,8 @@ async function submitActionForCurrentRun(options) {
96
110
  ...session,
97
111
  runState: 'submitted',
98
112
  lastSubmittedContextTick: session.activeContextTick,
99
- lastSubmittedStartTick: response.startTick,
100
- lastActionId: action.actionId,
113
+ ...(0, optional_prop_1.optionalProp)('lastSubmittedStartTick', response.startTick),
114
+ ...(0, optional_prop_1.optionalProp)('lastActionId', action.actionId),
101
115
  });
102
116
  return {
103
117
  sessionAgentId: session.agentId,
@@ -127,38 +141,57 @@ async function runActionLast(args) {
127
141
  async function parseActionInput(args) {
128
142
  const jsonValue = (0, shared_1.getOption)(args, 'json');
129
143
  if (jsonValue) {
130
- return parseJson(jsonValue, '--json');
144
+ return parseStructuredActionInput(parseCliJson(jsonValue, '--json'), '--json');
131
145
  }
132
146
  const filePath = (0, shared_1.getOption)(args, 'file');
133
147
  if (filePath) {
134
148
  const raw = await (0, promises_1.readFile)(filePath, 'utf8');
135
- return parseJson(raw, '--file');
149
+ return parseStructuredActionInput(parseCliJson(raw, '--file'), '--file');
136
150
  }
137
151
  const verb = (0, shared_1.getOption)(args, 'verb');
138
152
  if (!verb) {
139
153
  throw new shared_1.CliError('MISSING_ACTION', 'Provide --json, --file, or --verb.');
140
154
  }
141
- return {
155
+ return normalizeAction({
142
156
  verb,
143
157
  ...((0, shared_1.getOption)(args, 'target-json')
144
158
  ? {
145
159
  target: parseTargetJson((0, shared_1.getOption)(args, 'target-json')),
146
160
  }
147
161
  : {}),
148
- ...((0, shared_1.getOption)(args, 'params-json') ? { params: parseJson((0, shared_1.getOption)(args, 'params-json'), '--params-json') } : {}),
162
+ ...((0, shared_1.getOption)(args, 'params-json')
163
+ ? {
164
+ params: parseParamsJson((0, shared_1.getOption)(args, 'params-json')),
165
+ }
166
+ : {}),
149
167
  ...((0, shared_1.getOption)(args, 'reason') ? { reason: (0, shared_1.getOption)(args, 'reason') } : {}),
150
- };
168
+ });
169
+ }
170
+ function parseStructuredActionInput(value, label) {
171
+ try {
172
+ return normalizeAction((0, common_1.parseActionInputValue)(value, label));
173
+ }
174
+ catch (error) {
175
+ throw new shared_1.CliError('INVALID_ACTION', error instanceof Error ? error.message : String(error));
176
+ }
177
+ }
178
+ function parseParamsJson(raw) {
179
+ const parsed = parseCliJson(raw, '--params-json');
180
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
181
+ throw new shared_1.CliError('INVALID_ACTION', '--params-json must decode to a JSON object.');
182
+ }
183
+ return parsed;
151
184
  }
152
- function parseJson(raw, label) {
185
+ function parseCliJson(raw, label) {
153
186
  try {
154
- return JSON.parse(raw);
187
+ return (0, common_1.parseJsonValue)(raw, label);
155
188
  }
156
189
  catch (error) {
157
- throw new shared_1.CliError('INVALID_JSON', `${label} must contain valid JSON: ${error instanceof Error ? error.message : String(error)}`);
190
+ throw new shared_1.CliError('INVALID_JSON', error instanceof Error ? error.message : String(error));
158
191
  }
159
192
  }
160
193
  function parseTargetJson(raw) {
161
- const parsed = parseJson(raw, '--target-json');
194
+ const parsed = parseCliJson(raw, '--target-json');
162
195
  if (typeof parsed === 'string' || typeof parsed === 'number') {
163
196
  return parsed;
164
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-submit.js","sourceRoot":"","sources":["../../src/cli/action-submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-submit.js","sourceRoot":"","sources":["../../src/cli/action-submit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SupportedAgentAdapterName } from '../adapters/external-agent-adapter';
2
+ export interface DetectedAgentAdapter {
3
+ adapter: SupportedAgentAdapterName;
4
+ command: string;
5
+ version?: string;
6
+ }
7
+ export declare function detectInstalledAgentAdapters(): Promise<DetectedAgentAdapter[]>;
8
+ export declare function chooseAgentAdapterInteractively(candidates: readonly DetectedAgentAdapter[]): Promise<SupportedAgentAdapterName>;
9
+ export declare function validateAdapterExecutable(adapter: SupportedAgentAdapterName, command: string[]): Promise<void>;
10
+ export declare function isInteractiveTerminal(): boolean;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectInstalledAgentAdapters = detectInstalledAgentAdapters;
7
+ exports.chooseAgentAdapterInteractively = chooseAgentAdapterInteractively;
8
+ exports.validateAdapterExecutable = validateAdapterExecutable;
9
+ exports.isInteractiveTerminal = isInteractiveTerminal;
10
+ const node_child_process_1 = require("node:child_process");
11
+ const node_process_1 = __importDefault(require("node:process"));
12
+ const promises_1 = require("node:readline/promises");
13
+ const node_util_1 = require("node:util");
14
+ const shared_1 = require("./shared");
15
+ const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
16
+ async function detectInstalledAgentAdapters() {
17
+ const detected = [];
18
+ const codexVersion = await readVersionOutput(['codex']);
19
+ if (codexVersion !== null) {
20
+ detected.push({
21
+ adapter: 'codex',
22
+ command: 'codex',
23
+ ...optionalVersion(codexVersion),
24
+ });
25
+ }
26
+ const claudeVersion = await readVersionOutput(['claude']);
27
+ if (claudeVersion !== null && /Claude Code/u.test(claudeVersion)) {
28
+ detected.push({
29
+ adapter: 'claude-code',
30
+ command: 'claude',
31
+ ...optionalVersion(claudeVersion),
32
+ });
33
+ }
34
+ return detected;
35
+ }
36
+ async function chooseAgentAdapterInteractively(candidates) {
37
+ if (candidates.length === 0) {
38
+ throw new shared_1.CliError('NO_SUPPORTED_ADAPTER', 'No supported agent CLI was detected.');
39
+ }
40
+ if (!isInteractiveTerminal()) {
41
+ throw new shared_1.CliError('AMBIGUOUS_ADAPTER', 'Multiple supported agent CLIs were detected. Run this command in a TTY or pass --adapter explicitly.');
42
+ }
43
+ node_process_1.default.stderr.write(['Multiple supported agent CLIs were detected:', '', ...candidates.map((candidate, index) => `${String(index + 1)}. ${candidate.adapter}`), '', `Choose an adapter [1-${String(candidates.length)}]: `].join('\n'));
44
+ const rl = (0, promises_1.createInterface)({
45
+ input: node_process_1.default.stdin,
46
+ output: node_process_1.default.stderr,
47
+ });
48
+ try {
49
+ for (;;) {
50
+ const answer = (await rl.question('')).trim();
51
+ if (answer.length === 0) {
52
+ return candidates[0]?.adapter ?? 'codex';
53
+ }
54
+ const selectedIndex = Number(answer);
55
+ if (Number.isInteger(selectedIndex) && selectedIndex >= 1 && selectedIndex <= candidates.length) {
56
+ const selected = candidates[selectedIndex - 1];
57
+ if (selected) {
58
+ return selected.adapter;
59
+ }
60
+ }
61
+ node_process_1.default.stderr.write(`Invalid selection. Choose a number between 1 and ${String(candidates.length)}: `);
62
+ }
63
+ }
64
+ finally {
65
+ rl.close();
66
+ }
67
+ }
68
+ async function validateAdapterExecutable(adapter, command) {
69
+ const versionOutput = await readVersionOutput(command);
70
+ if (versionOutput === null) {
71
+ throw new shared_1.CliError('ADAPTER_NOT_INSTALLED', `Adapter "${adapter}" is not available on this machine.`);
72
+ }
73
+ if (adapter === 'claude-code' && command.length === 1 && !/Claude Code/u.test(versionOutput)) {
74
+ throw new shared_1.CliError('ADAPTER_NOT_INSTALLED', 'The detected "claude" command is not Claude Code.');
75
+ }
76
+ }
77
+ function isInteractiveTerminal() {
78
+ return node_process_1.default.stdin.isTTY && node_process_1.default.stderr.isTTY;
79
+ }
80
+ async function readVersionOutput(command) {
81
+ const executable = command[0];
82
+ if (!executable) {
83
+ return null;
84
+ }
85
+ try {
86
+ const result = await execFileAsync(executable, [...command.slice(1), '--version'], {
87
+ env: node_process_1.default.env,
88
+ timeout: 5_000,
89
+ maxBuffer: 1024 * 1024,
90
+ windowsHide: true,
91
+ });
92
+ return `${result.stdout}${result.stderr}`.trim();
93
+ }
94
+ catch (error) {
95
+ if (isMissingExecutableError(error)) {
96
+ return null;
97
+ }
98
+ const stdout = isExecFileResult(error) ? error.stdout : '';
99
+ const stderr = isExecFileResult(error) ? error.stderr : '';
100
+ const output = [stdout ?? '', stderr ?? ''].join('').trim();
101
+ return output.length > 0 ? output : null;
102
+ }
103
+ }
104
+ function isMissingExecutableError(error) {
105
+ return isRecord(error) && error.code === 'ENOENT';
106
+ }
107
+ function isExecFileResult(error) {
108
+ return isRecord(error);
109
+ }
110
+ function isRecord(value) {
111
+ return typeof value === 'object' && value !== null;
112
+ }
113
+ function optionalVersion(version) {
114
+ return version.length > 0 ? { version } : {};
115
+ }
116
+ //# sourceMappingURL=agent-adapter-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-adapter-discovery.js","sourceRoot":"","sources":["../../src/cli/agent-adapter-discovery.ts"],"names":[],"mappings":";;;;;AAgBA,oEAsBC;AAED,0EAmCC;AAED,8DASC;AAED,sDAEC;AA1FD,2DAA8C;AAC9C,gEAAmC;AACnC,qDAAyD;AACzD,yCAAsC;AAGtC,qCAAoC;AAEpC,MAAM,aAAa,GAAG,IAAA,qBAAS,EAAC,6BAAQ,CAAC,CAAC;AAQnC,KAAK,UAAU,4BAA4B;IAC9C,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO;YAChB,GAAG,eAAe,CAAC,YAAY,CAAC;SACnC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAI,aAAa,KAAK,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,QAAQ;YACjB,GAAG,eAAe,CAAC,aAAa,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,+BAA+B,CAAC,UAA2C;IAC7F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAQ,CAAC,sBAAsB,EAAE,sCAAsC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAQ,CAAC,mBAAmB,EAAE,sGAAsG,CAAC,CAAC;IACpJ,CAAC;IAED,sBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,8CAA8C,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzO,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC;QACvB,KAAK,EAAE,sBAAO,CAAC,KAAK;QACpB,MAAM,EAAE,sBAAO,CAAC,MAAM;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,SAAS,CAAC;YACN,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,OAAO,CAAC;YAC7C,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC9F,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACX,OAAO,QAAQ,CAAC,OAAO,CAAC;gBAC5B,CAAC;YACL,CAAC;YAED,sBAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;YAAS,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAAC,OAAkC,EAAE,OAAiB;IACjG,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,iBAAQ,CAAC,uBAAuB,EAAE,YAAY,OAAO,qCAAqC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,iBAAQ,CAAC,uBAAuB,EAAE,mDAAmD,CAAC,CAAC;IACrG,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB;IACjC,OAAO,sBAAO,CAAC,KAAK,CAAC,KAAK,IAAI,sBAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAiB;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE;YAC/E,GAAG,EAAE,sBAAO,CAAC,GAAG;YAChB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,GAAG,IAAI;YACtB,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACpC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC"}
package/dist/cli/bin.js CHANGED
@@ -2,6 +2,7 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const commander_1 = require("commander");
5
+ const external_agent_adapter_1 = require("../adapters/external-agent-adapter");
5
6
  const action_submit_1 = require("./action-submit");
6
7
  const catalog_1 = require("./catalog");
7
8
  const events_1 = require("./events");
@@ -46,7 +47,7 @@ function createProgram() {
46
47
  '',
47
48
  'Common commands:',
48
49
  ' yw player init --player-name <name> [--profile <name>] [--server <url>]',
49
- ' yw play init --agent-name <id> --adapter codex [--profile <name>] [--server <url>]',
50
+ ' yw play init --agent-name <id> [--adapter <codex|claude-code>] [--profile <name>] [--server <url>]',
50
51
  ' yw play goal --goal <text> [--work-dir <dir>]',
51
52
  ' yw play run [--work-dir <dir>] [--poll-ms <ms>] [--once]',
52
53
  ' yw observe [--work-dir <dir>] [--as-of-tick <tick>] [--archetype <id>] [--resource <id>]',
@@ -85,7 +86,7 @@ function createProgram() {
85
86
  .option('--server <url>', `World server URL. Defaults to ${shared_1.DEFAULT_SERVER_URL}.`)
86
87
  .option('--profile <name>', 'Local profile name. Defaults to the first saved player profile.')
87
88
  .requiredOption('--agent-name <id>', 'Agent name to register.')
88
- .addOption(new commander_1.Option('--adapter <name>', 'External agent adapter.').choices(['codex', 'generic-command']))
89
+ .addOption(new commander_1.Option('--adapter <name>', 'External agent adapter. Defaults to auto-detecting codex or claude-code.').choices([...external_agent_adapter_1.SUPPORTED_AGENT_ADAPTERS]))
89
90
  .option('--goal <text>', 'Long-running goal for the agent.')
90
91
  .option('--poll-ms <ms>', 'Tick polling interval in milliseconds.')
91
92
  .option('--work-dir <dir>', 'Agent workspace directory. Defaults to ./<agent-name>.')
@@ -285,7 +286,11 @@ function createParsedArgs(positionals, options) {
285
286
  }
286
287
  continue;
287
288
  }
288
- parsedOptions.set(name, [String(value)]);
289
+ if (typeof value === 'string' || typeof value === 'number') {
290
+ parsedOptions.set(name, [String(value)]);
291
+ continue;
292
+ }
293
+ throw new Error(`Unsupported parsed option value for "${name}".`);
289
294
  }
290
295
  return {
291
296
  positionals,