nolo-cli 0.1.43 → 0.1.45

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.
@@ -1,10 +1,5 @@
1
1
  import { runLocalAgentTurn } from "../agentRuntimeLocal";
2
2
  import { LOCAL_AGENT_CONFIG_MISSING_CODE } from "../agent-runtime/localLoop";
3
- import {
4
- MIMO_MONTH_AGENT_KEY,
5
- NOLO_PROJECT_MANAGER_AGENT_KEY,
6
- WIN_CODEX_AGENT_KEY,
7
- } from "../agentAliases";
8
3
  import type { LocalAgentToolEvent } from "../agent-runtime/localLoop";
9
4
  import type { AgentRuntimeHostAdapter, AgentRuntimeRequestedMode } from "../agentRuntimeLocal";
10
5
  import { createCliLocalRuntimeAdapter, isBuiltinNoloAgentRef } from "./localRuntimeAdapter";
@@ -115,36 +110,6 @@ const SERVER_PLATFORM_TOOL_NAMES = new Set([
115
110
  "updateTableRows",
116
111
  ]);
117
112
 
118
- const KNOWN_SERVER_PLATFORM_AGENT_KEYS = new Set([
119
- MIMO_MONTH_AGENT_KEY,
120
- NOLO_PROJECT_MANAGER_AGENT_KEY,
121
- WIN_CODEX_AGENT_KEY,
122
- ]);
123
-
124
- const KNOWN_SERVER_PLATFORM_AGENT_ALIASES = new Set([
125
- "code-review",
126
- "frontend",
127
- "frontend-agent",
128
- "frontend-implementer",
129
- "full-stack",
130
- "fullstack",
131
- "nolo code review",
132
- "nolo frontend",
133
- "nolo fullstack",
134
- "nolo project manager",
135
- "nolo reviewer",
136
- "nolo-code-review",
137
- "nolo-frontend",
138
- "nolo-fullstack",
139
- "nolo-pm",
140
- "nolo-project-manager",
141
- "nolo-reviewer",
142
- "pm",
143
- "project-manager",
144
- "review",
145
- "reviewer",
146
- ]);
147
-
148
113
  export function findServerPlatformTools(toolNames?: string[]) {
149
114
  if (!Array.isArray(toolNames)) return [];
150
115
  return toolNames.filter((toolName) => SERVER_PLATFORM_TOOL_NAMES.has(toolName));
@@ -159,16 +124,6 @@ function resolveServerPlatformToolNames(agentConfig: any) {
159
124
  ]);
160
125
  }
161
126
 
162
- function normalizeAgentRef(ref?: string) {
163
- return ref?.trim().toLowerCase().replace(/\s+/g, " ");
164
- }
165
-
166
- function isKnownServerPlatformAgent(options: RunAgentTurnOptions) {
167
- if (KNOWN_SERVER_PLATFORM_AGENT_KEYS.has(options.agentKey)) return true;
168
- const normalizedKey = normalizeAgentRef(options.agentKey);
169
- return Boolean(normalizedKey && KNOWN_SERVER_PLATFORM_AGENT_ALIASES.has(normalizedKey));
170
- }
171
-
172
127
  function isMachineBoundLocalhostCustomProvider(agentConfig: any) {
173
128
  const machineId =
174
129
  agentConfig?.runtimeBinding && typeof agentConfig.runtimeBinding === "object"
@@ -233,30 +188,15 @@ async function shouldSkipAutoLocalForServerPlatformTools(options: RunAgentTurnOp
233
188
  if (options.localRuntimeCwd) {
234
189
  return false;
235
190
  }
236
- const knownServerPlatformAgent = isKnownServerPlatformAgent(options);
237
191
  const adapter = resolveLocalRuntimeAdapter(options);
238
- if (!adapter) return knownServerPlatformAgent;
192
+ if (!adapter) return false;
239
193
  let agentConfig;
240
194
  try {
241
195
  agentConfig = await adapter.loadAgentConfig(options.agentKey);
242
196
  } catch {
243
- if (knownServerPlatformAgent) {
244
- options.output.write(
245
- `[nolo] auto runtime: skipping local runtime because ${options.agentKey} is a known platform agent. ` +
246
- "Use --local explicitly to force local workspace tools.\n"
247
- );
248
- return true;
249
- }
250
197
  return false;
251
198
  }
252
199
  if (isCliProviderAgentConfig(agentConfig)) return false;
253
- if (knownServerPlatformAgent) {
254
- options.output.write(
255
- `[nolo] auto runtime: skipping local runtime because ${options.agentKey} is a known platform agent. ` +
256
- "Use --local explicitly to force local workspace tools.\n"
257
- );
258
- return true;
259
- }
260
200
  if (isMachineBoundLocalhostCustomProvider(agentConfig)) {
261
201
  options.output.write(
262
202
  `[nolo] auto runtime: skipping local runtime because ${options.agentKey} is a machine-bound localhost custom provider. ` +
@@ -4,9 +4,11 @@ import { join } from "node:path";
4
4
  import { tmpdir } from "node:os";
5
5
 
6
6
  import { runLocalAgentTurn } from "../agent-runtime/localLoop";
7
- import { LOCAL_CODEX_AGENT_KEY, LOCAL_QODER_AGENT_KEY, MIMO_MONTH_AGENT_KEY } from "../agentAliases";
7
+ import { LOCAL_CODEX_AGENT_KEY, LOCAL_QODER_AGENT_KEY } from "../agentAliases";
8
8
  import { createCliLocalRuntimeAdapter } from "./localRuntimeAdapter";
9
9
 
10
+ const TEST_CUSTOM_AGENT_KEY = "agent-user-1-custom-runtime";
11
+
10
12
  describe("CLI local runtime adapter", () => {
11
13
  const DEFAULT_LOCAL_CODING_TOOL_NAMES = [
12
14
  "listFiles",
@@ -1380,7 +1382,7 @@ describe("CLI local runtime adapter", () => {
1380
1382
  ]);
1381
1383
  });
1382
1384
 
1383
- test("keeps monthly Mimo local model tools to the compact coding surface", async () => {
1385
+ test("keeps generic custom agent tools to the supported local and server surfaces", async () => {
1384
1386
  const requests: Array<{ body: any }> = [];
1385
1387
  const adapter = createCliLocalRuntimeAdapter({
1386
1388
  env: {
@@ -1389,7 +1391,7 @@ describe("CLI local runtime adapter", () => {
1389
1391
  },
1390
1392
  db: {
1391
1393
  get: async () => ({
1392
- dbKey: MIMO_MONTH_AGENT_KEY,
1394
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1393
1395
  prompt: "Use local coding tools.",
1394
1396
  model: "mimo-v2.5-pro",
1395
1397
  provider: "custom",
@@ -1424,11 +1426,14 @@ describe("CLI local runtime adapter", () => {
1424
1426
 
1425
1427
  await runLocalAgentTurn({
1426
1428
  adapter,
1427
- agentRef: MIMO_MONTH_AGENT_KEY,
1429
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1428
1430
  input: "inspect cwd",
1429
1431
  });
1430
1432
 
1431
- expect(toolNamesFromRequest(requests[0])).toEqual(SHELL_LOCAL_CODING_TOOL_NAMES);
1433
+ expect(toolNamesFromRequest(requests[0])).toEqual([
1434
+ ...SHELL_LOCAL_CODING_TOOL_NAMES,
1435
+ "queryTableRows",
1436
+ ]);
1432
1437
  });
1433
1438
 
1434
1439
  test("can expose only declared local workspace tools for tool ablations", async () => {
@@ -1441,7 +1446,7 @@ describe("CLI local runtime adapter", () => {
1441
1446
  },
1442
1447
  db: {
1443
1448
  get: async () => ({
1444
- dbKey: MIMO_MONTH_AGENT_KEY,
1449
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1445
1450
  prompt: "Use exactly the declared local tools.",
1446
1451
  model: "mimo-v2.5-pro",
1447
1452
  provider: "custom",
@@ -1461,7 +1466,7 @@ describe("CLI local runtime adapter", () => {
1461
1466
 
1462
1467
  await runLocalAgentTurn({
1463
1468
  adapter,
1464
- agentRef: MIMO_MONTH_AGENT_KEY,
1469
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1465
1470
  input: "inspect cwd",
1466
1471
  });
1467
1472
 
@@ -1478,7 +1483,7 @@ describe("CLI local runtime adapter", () => {
1478
1483
  },
1479
1484
  db: {
1480
1485
  get: async () => ({
1481
- dbKey: MIMO_MONTH_AGENT_KEY,
1486
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1482
1487
  prompt: "Use local coding tools.",
1483
1488
  model: "mimo-v2.5-pro",
1484
1489
  provider: "custom",
@@ -1498,7 +1503,7 @@ describe("CLI local runtime adapter", () => {
1498
1503
 
1499
1504
  await runLocalAgentTurn({
1500
1505
  adapter,
1501
- agentRef: MIMO_MONTH_AGENT_KEY,
1506
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1502
1507
  input: "inspect cwd",
1503
1508
  });
1504
1509
 
@@ -1557,7 +1562,7 @@ describe("CLI local runtime adapter", () => {
1557
1562
  },
1558
1563
  db: {
1559
1564
  get: async () => ({
1560
- dbKey: MIMO_MONTH_AGENT_KEY,
1565
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1561
1566
  prompt: "Use local coding tools.",
1562
1567
  model: "mimo-v2.5-pro",
1563
1568
  provider: "custom",
@@ -1577,7 +1582,7 @@ describe("CLI local runtime adapter", () => {
1577
1582
 
1578
1583
  await runLocalAgentTurn({
1579
1584
  adapter,
1580
- agentRef: MIMO_MONTH_AGENT_KEY,
1585
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1581
1586
  input: "find tests",
1582
1587
  });
1583
1588
 
@@ -1603,7 +1608,7 @@ describe("CLI local runtime adapter", () => {
1603
1608
  },
1604
1609
  db: {
1605
1610
  get: async () => ({
1606
- dbKey: MIMO_MONTH_AGENT_KEY,
1611
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1607
1612
  prompt: "Use local coding tools.",
1608
1613
  model: "mimo-v2.5-pro",
1609
1614
  provider: "custom",
@@ -1623,7 +1628,7 @@ describe("CLI local runtime adapter", () => {
1623
1628
 
1624
1629
  await runLocalAgentTurn({
1625
1630
  adapter,
1626
- agentRef: MIMO_MONTH_AGENT_KEY,
1631
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1627
1632
  input: "list directories",
1628
1633
  });
1629
1634
 
@@ -1648,7 +1653,7 @@ describe("CLI local runtime adapter", () => {
1648
1653
  },
1649
1654
  db: {
1650
1655
  get: async () => ({
1651
- dbKey: MIMO_MONTH_AGENT_KEY,
1656
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1652
1657
  prompt: "Use local coding tools.",
1653
1658
  model: "mimo-v2.5-pro",
1654
1659
  provider: "custom",
@@ -1668,7 +1673,7 @@ describe("CLI local runtime adapter", () => {
1668
1673
 
1669
1674
  await runLocalAgentTurn({
1670
1675
  adapter,
1671
- agentRef: MIMO_MONTH_AGENT_KEY,
1676
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1672
1677
  input: "read a file range",
1673
1678
  });
1674
1679
 
@@ -1695,7 +1700,7 @@ describe("CLI local runtime adapter", () => {
1695
1700
  },
1696
1701
  db: {
1697
1702
  get: async () => ({
1698
- dbKey: MIMO_MONTH_AGENT_KEY,
1703
+ dbKey: TEST_CUSTOM_AGENT_KEY,
1699
1704
  prompt: "Use local coding tools.",
1700
1705
  model: "mimo-v2.5-pro",
1701
1706
  provider: "custom",
@@ -1715,7 +1720,7 @@ describe("CLI local runtime adapter", () => {
1715
1720
 
1716
1721
  await runLocalAgentTurn({
1717
1722
  adapter,
1718
- agentRef: MIMO_MONTH_AGENT_KEY,
1723
+ agentRef: TEST_CUSTOM_AGENT_KEY,
1719
1724
  input: "find TODO",
1720
1725
  });
1721
1726
 
@@ -1996,7 +2001,7 @@ describe("CLI local runtime adapter", () => {
1996
2001
  cliWorkspaceTool: true,
1997
2002
  exitCode: 0,
1998
2003
  });
1999
- expect(spawnCalls[0]?.cmd.at(-5)?.endsWith("packages/cli/index.ts")).toBe(true);
2004
+ expect(spawnCalls[0]?.cmd.at(-5)?.endsWith("index.ts")).toBe(true);
2000
2005
  expect(spawnCalls[0]?.cmd.slice(-4)).toEqual([
2001
2006
  "dialog",
2002
2007
  "list",
@@ -50,7 +50,6 @@ import {
50
50
  LOCAL_CODEX_AGENT_KEY,
51
51
  LOCAL_QODER_AGENT_ID,
52
52
  LOCAL_QODER_AGENT_KEY,
53
- MIMO_MONTH_AGENT_KEY,
54
53
  NOLO_DEFAULT_AGENT_ID,
55
54
  NOLO_DEFAULT_AGENT_KEY,
56
55
  } from "../agentAliases";
@@ -424,10 +423,6 @@ function summarizeOpenAiToolNames(tools: Array<Record<string, unknown>>) {
424
423
  .filter((name): name is string => Boolean(name));
425
424
  }
426
425
 
427
- function shouldExposeLocalPlatformTools(agentKey?: string) {
428
- return agentKey !== MIMO_MONTH_AGENT_KEY;
429
- }
430
-
431
426
  function addDefaultLightWebToolsForConfiguredAgents(
432
427
  toolNames: string[],
433
428
  agentConfig?: AgentRuntimeAgentConfig | null,
@@ -449,7 +444,6 @@ function addDefaultLightWebToolsForConfiguredAgents(
449
444
 
450
445
  function buildOpenAiTools(args: { agentKey?: string; toolNames?: string[]; env: EnvLike }) {
451
446
  const toolset = buildLocalWorkspaceToolsetForEnv(args);
452
- const exposePlatformTools = shouldExposeLocalPlatformTools(args.agentKey);
453
447
  return [
454
448
  ...buildLocalWorkspaceOpenAiTools({
455
449
  toolNames: toolset.toolNames,
@@ -463,8 +457,8 @@ function buildOpenAiTools(args: { agentKey?: string; toolNames?: string[]; env:
463
457
  searchFilesDescriptionVariant: resolveSearchFilesDescriptionVariant(args.env),
464
458
  searchFilesParameterVariant: resolveSearchFilesParameterVariant(args.env),
465
459
  }),
466
- ...(exposePlatformTools ? buildServerPlatformOpenAiTools({ toolNames: args.toolNames }) : []),
467
- ...(exposePlatformTools ? buildNoloWorkspaceOpenAiTools({ toolNames: args.toolNames }) : []),
460
+ ...buildServerPlatformOpenAiTools({ toolNames: args.toolNames }),
461
+ ...buildNoloWorkspaceOpenAiTools({ toolNames: args.toolNames }),
468
462
  ];
469
463
  }
470
464
 
@@ -12,6 +12,7 @@ describe("CLI local runtime dry run", () => {
12
12
  "readFile",
13
13
  "writeFile",
14
14
  "editFile",
15
+ "globFiles",
15
16
  "searchFiles",
16
17
  "execShell",
17
18
  "listDialogs",
@@ -22,6 +23,7 @@ describe("CLI local runtime dry run", () => {
22
23
  "readSpace",
23
24
  "readDoc",
24
25
  "readSkillDoc",
26
+ "listTables",
25
27
  "queryTableRows",
26
28
  "cliWhoami",
27
29
  "cliDoctor",
@@ -64,7 +64,7 @@ export function renderHelpText() {
64
64
  " nolo agent pull agent-pub-01APPBUILDER00000001YAII3I",
65
65
  " nolo agent read agent-pub-01APPBUILDER00000001YAII3I",
66
66
  " nolo agent usage qoder",
67
- ' nolo agent run frontend-implementer --msg "polish notifications"',
67
+ ' nolo agent run frontend --msg "polish notifications"',
68
68
  " nolo agent bind-current agent-user-1-agent-1",
69
69
  " nolo agent runtime-doctor agent-user-1-agent-1",
70
70
  ' nolo agent smoke-current agent-user-1-agent-1 --msg "ping"',
@@ -73,8 +73,8 @@ export function renderHelpText() {
73
73
  " nolo space read 01KKY77TT0DA9NY7TNW3R7255N --content-key page-user-id --brief",
74
74
  " nolo space delete --name-prefix rn_owner_verify_0504 --yes",
75
75
  " nolo table query --table 01ABCXYZ",
76
- ' nolo table query --table meta-0e95801d90-NOLOTASKBOARD --columns \'["title","status","owner","priority","codeStatus"]\' --no-base-fields --output items',
77
- ' nolo table update-row --table meta-0e95801d90-NOLOTASKBOARD --row 01ROWID --changes \'{"status":"已完成"}\'',
76
+ ' nolo table query --table meta-your-user-TASKBOARD --columns \'["title","status","owner","priority","codeStatus"]\' --no-base-fields --output items',
77
+ ' nolo table update-row --table meta-your-user-TASKBOARD --row 01ROWID --changes \'{"status":"done"}\'',
78
78
  " nolo llama status",
79
79
  ];
80
80
 
@@ -150,6 +150,9 @@ function buildTaskEvidencePrompt(args: {
150
150
  }) {
151
151
  const rowDbKey = findTaskRowSubjectRef(args.runtimeContext);
152
152
  if (!rowDbKey) return "";
153
+ const taskBoardTableKey = typeof args.runtimeContext?.taskBoardTableKey === "string"
154
+ ? args.runtimeContext.taskBoardTableKey.trim()
155
+ : "";
153
156
  return [
154
157
  "--- Nolo task evidence context ---",
155
158
  "This CLI runtime does not receive server-side function tools directly.",
@@ -157,7 +160,9 @@ function buildTaskEvidencePrompt(args: {
157
160
  "Run commands from the repository root. The runner already provides server URL and auth in the environment.",
158
161
  "Release boundary: after review passes, AI/reviewer/Codex may advance alpha for verification. Do not merge, push, or release main/release unless the human owner explicitly authorizes it in the current task context.",
159
162
  "Handoff context: inspect activityRefs/latestActivityRef, dialog checkpoints, artifacts, commits, and test evidence. Use dialog read/search for exact evidence; do not infer completion from handoff text alone.",
160
- `Read task row: bun packages/cli/index.ts table query --table meta-0e95801d90-NOLOTASKBOARD --row ${JSON.stringify(rowDbKey)} --include-activity --output json`,
163
+ taskBoardTableKey
164
+ ? `Read task row: bun packages/cli/index.ts table query --table ${JSON.stringify(taskBoardTableKey)} --row ${JSON.stringify(rowDbKey)} --include-activity --output json`
165
+ : `Task row subjectRef: ${JSON.stringify(rowDbKey)}. If a task board table key is provided in context, read it with: bun packages/cli/index.ts table query --table <tableKey> --row ${JSON.stringify(rowDbKey)} --include-activity --output json`,
161
166
  "Then read linked activity dialog ids with: bun packages/cli/index.ts dialog read <dialogId>",
162
167
  "Report progress, blockers, worktree, branch, commit/diff, tests, and unverified items in the dialog.",
163
168
  ].join("\n");
@@ -28,7 +28,6 @@ type ParsedArgs = {
28
28
 
29
29
  const DEFAULT_USER_ID = "b2e06f801f";
30
30
  const DEFAULT_SPACE_ID = "01KKY77TT0DA9NY7TNW3R7255N";
31
- const DEFAULT_SOURCE_AGENT_ID = "01MIMO25MONTH0000000NEW001";
32
31
  const DEFAULT_TARGET_AGENT_ID = "01OFFMARXBOOK000000010AHL1";
33
32
  const DEFAULT_AGENT_NAME = "离线马克思主义文库书籍转换助手";
34
33
  const TOOL_NAME = "convertMarxistsBookToOfflineHtml";
@@ -75,8 +74,8 @@ function parseArgs(args: string[], env: EnvLike): ParsedArgs | null {
75
74
  DEFAULT_USER_ID;
76
75
  const sourceAgentKey =
77
76
  readFlagValue(args, "--source-agent") ??
78
- env.NOLO_MIMO_SOURCE_AGENT_KEY ??
79
- `agent-${userId}-${DEFAULT_SOURCE_AGENT_ID}`;
77
+ env.NOLO_OFFLINE_MARXISTS_SOURCE_AGENT_KEY ??
78
+ "";
80
79
  const targetAgentId =
81
80
  readFlagValue(args, "--target-agent-id") ??
82
81
  env.NOLO_OFFLINE_MARXISTS_AGENT_ID ??
@@ -90,7 +89,7 @@ function parseArgs(args: string[], env: EnvLike): ParsedArgs | null {
90
89
  env.NOLO_OFFLINE_MARXISTS_SPACE_ID ??
91
90
  DEFAULT_SPACE_ID;
92
91
 
93
- if (!authToken.trim()) return null;
92
+ if (!authToken.trim() || !sourceAgentKey.trim()) return null;
94
93
  return {
95
94
  serverUrl,
96
95
  authToken,
@@ -227,7 +226,7 @@ async function attachAgentToSpace(args: {
227
226
  function writeUsage(output: OutputLike) {
228
227
  output.write(
229
228
  "Usage: nolo agent setup-offline-marxists [--server https://nolo.chat] [--source-agent <key>] [--space <spaceId>] [--target-agent-id <id>] [--json]\n" +
230
- "Requires AUTH_TOKEN from `nolo login` or --token.\n"
229
+ "Requires AUTH_TOKEN from `nolo login` or --token, plus --source-agent or NOLO_OFFLINE_MARXISTS_SOURCE_AGENT_KEY.\n"
231
230
  );
232
231
  }
233
232
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nolo-cli",
3
- "version": "0.1.43",
3
+ "version": "0.1.45",
4
4
  "type": "module",
5
5
  "description": "Agent-first terminal workspace for Nolo",
6
6
  "repository": {
@@ -15,6 +15,10 @@
15
15
  "nolo": "index.ts"
16
16
  },
17
17
  "module": "index.ts",
18
+ "scripts": {
19
+ "test": "bun test",
20
+ "pack:dry-run": "npm pack --dry-run"
21
+ },
18
22
  "files": [
19
23
  "index.ts",
20
24
  "agentRuntimeLocal.ts",
@@ -60,38 +64,38 @@
60
64
  "runtimeModeArgs.ts",
61
65
  "tableCommands.ts",
62
66
  "updateCommands.ts",
63
- "client/agentRun.ts",
64
- "client/streamingOutput.ts",
65
- "client/localRuntimeAdapter.ts",
66
- "client/compactDialog.test.ts",
67
- "client/localProviderResolver.ts",
67
+ "client/localAgentRecords.ts",
68
68
  "client/localDialogRecords.ts",
69
+ "client/localToolPolicy.test.ts",
70
+ "client/localRuntimeAdapter.ts",
71
+ "client/localDialogRecords.test.ts",
72
+ "client/agentConfigResolver.ts",
69
73
  "client/localAgentRecords.test.ts",
70
- "client/compactDialog.ts",
71
- "client/hybridRecordStore.ts",
72
74
  "client/agentConfigResolver.test.ts",
73
- "client/localAgentRecords.ts",
74
75
  "client/localProviderResolver.test.ts",
75
- "client/localToolPolicy.test.ts",
76
- "client/localRuntimeDryRun.test.ts",
77
- "client/agentConfigResolver.ts",
76
+ "client/hybridRecordStore.test.ts",
77
+ "client/localRuntimeAdapter.test.ts",
78
78
  "client/localToolPolicy.ts",
79
- "client/localDialogRecords.test.ts",
80
- "client/agentRun.test.ts",
79
+ "client/compactDialog.ts",
81
80
  "client/streamingOutput.test.ts",
82
- "client/hybridRecordStore.test.ts",
83
81
  "client/profileConfig.ts",
84
82
  "client/profileConfig.test.ts",
85
- "client/localRuntimeAdapter.test.ts",
86
- "tui/session.ts",
83
+ "client/streamingOutput.ts",
84
+ "client/hybridRecordStore.ts",
85
+ "client/compactDialog.test.ts",
86
+ "client/agentRun.test.ts",
87
+ "client/localRuntimeDryRun.test.ts",
88
+ "client/agentRun.ts",
89
+ "client/localProviderResolver.ts",
87
90
  "tui/readlineWorkspace.ts",
91
+ "tui/session.ts",
88
92
  "README.md",
89
- "ai/index.ts",
90
93
  "ai/agent.ts",
91
94
  "ai/agent/agentSlice.ts",
92
95
  "ai/agent/machineRunPermissions.ts",
93
- "connector-experimental/protocol.ts",
96
+ "ai/index.ts",
94
97
  "connector-experimental/machineInfo.ts",
98
+ "connector-experimental/protocol.ts",
95
99
  "machineDaemonCommands.ts",
96
100
  "machineHeartbeatCommands.ts",
97
101
  "machineWatchCommands.ts",
@@ -103,6 +107,7 @@
103
107
  "memoryCommands.ts",
104
108
  "dialogAttachmentCleanup.ts",
105
109
  "qoderUsageProbe.ts",
110
+ "agentNameResolver.ts",
106
111
  "localRuntimeAuthority.ts",
107
112
  "cli/commandRegistry.ts",
108
113
  "cli/client/profileConfig.ts",
@@ -123,8 +128,9 @@
123
128
  "cli/agentMachineCommands.ts",
124
129
  "cli/runtimeDoctorCommands.ts",
125
130
  "cli/connectorWebSocketTarget.ts",
126
- "cli/agentAliases.ts",
131
+ "cli/agentNameResolver.ts",
127
132
  "cli/machineCommands.ts",
133
+ "cli/agentAliases.ts",
128
134
  "cli/client/localAgentRecords.ts",
129
135
  "cli/defaultServer.ts",
130
136
  "cli/client/agentRun.ts",
@@ -161,11 +167,11 @@
161
167
  "cli/machineStatusCommands.ts",
162
168
  "cli/authCommands.ts",
163
169
  "cli/tableCommands.ts",
164
- "cli/client/streamingOutput.ts",
170
+ "cli/client/localToolPolicy.ts",
165
171
  "cli/client/agentConfigResolver.ts",
166
172
  "cli/client/localProviderResolver.ts",
167
173
  "cli/client/localDialogRecords.ts",
168
- "cli/client/localToolPolicy.ts",
174
+ "cli/client/streamingOutput.ts",
169
175
  "cli/client/compactDialog.ts",
170
176
  "cli/tui/session.ts",
171
177
  "cli/connectorRunArtifact.ts",