aismemory 0.8.0 → 0.8.3

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 (134) hide show
  1. package/README.md +87 -7
  2. package/dist/__tests__/agent-key-mode.test.js +105 -6
  3. package/dist/__tests__/agent-key-mode.test.js.map +1 -1
  4. package/dist/__tests__/agent-load-persistence.test.js +22 -6
  5. package/dist/__tests__/agent-load-persistence.test.js.map +1 -1
  6. package/dist/__tests__/ais-http.test.js +50 -4
  7. package/dist/__tests__/ais-http.test.js.map +1 -1
  8. package/dist/__tests__/auto-handoff.test.js +56 -0
  9. package/dist/__tests__/auto-handoff.test.js.map +1 -1
  10. package/dist/__tests__/bond-link-survives-exit.test.d.ts +1 -0
  11. package/dist/__tests__/bond-link-survives-exit.test.js +177 -0
  12. package/dist/__tests__/bond-link-survives-exit.test.js.map +1 -0
  13. package/dist/__tests__/cli-info.test.d.ts +1 -0
  14. package/dist/__tests__/cli-info.test.js +113 -0
  15. package/dist/__tests__/cli-info.test.js.map +1 -0
  16. package/dist/__tests__/credential-resolution.test.js +57 -3
  17. package/dist/__tests__/credential-resolution.test.js.map +1 -1
  18. package/dist/__tests__/credential-whoami.test.d.ts +8 -0
  19. package/dist/__tests__/credential-whoami.test.js +93 -0
  20. package/dist/__tests__/credential-whoami.test.js.map +1 -0
  21. package/dist/__tests__/device-flow-gate-e2e.test.js +6 -4
  22. package/dist/__tests__/device-flow-gate-e2e.test.js.map +1 -1
  23. package/dist/__tests__/doctor.test.js +39 -13
  24. package/dist/__tests__/doctor.test.js.map +1 -1
  25. package/dist/__tests__/full-context-view-forwarding.test.d.ts +1 -0
  26. package/dist/__tests__/full-context-view-forwarding.test.js +80 -0
  27. package/dist/__tests__/full-context-view-forwarding.test.js.map +1 -0
  28. package/dist/__tests__/hydration.test.js +56 -1
  29. package/dist/__tests__/hydration.test.js.map +1 -1
  30. package/dist/__tests__/install.test.d.ts +1 -0
  31. package/dist/__tests__/install.test.js +126 -0
  32. package/dist/__tests__/install.test.js.map +1 -0
  33. package/dist/__tests__/integration.test.js +1 -0
  34. package/dist/__tests__/integration.test.js.map +1 -1
  35. package/dist/__tests__/invite-accept.test.d.ts +1 -0
  36. package/dist/__tests__/invite-accept.test.js +118 -0
  37. package/dist/__tests__/invite-accept.test.js.map +1 -0
  38. package/dist/__tests__/lost-agent.test.js +51 -0
  39. package/dist/__tests__/lost-agent.test.js.map +1 -1
  40. package/dist/__tests__/mcp-tools.test.js +245 -6
  41. package/dist/__tests__/mcp-tools.test.js.map +1 -1
  42. package/dist/__tests__/missing-credential-help.test.d.ts +1 -0
  43. package/dist/__tests__/missing-credential-help.test.js +14 -0
  44. package/dist/__tests__/missing-credential-help.test.js.map +1 -0
  45. package/dist/__tests__/pending-device-flow-e2e.test.js +22 -1
  46. package/dist/__tests__/pending-device-flow-e2e.test.js.map +1 -1
  47. package/dist/__tests__/pending-device-flow-resume.test.d.ts +1 -0
  48. package/dist/__tests__/pending-device-flow-resume.test.js +104 -0
  49. package/dist/__tests__/pending-device-flow-resume.test.js.map +1 -0
  50. package/dist/__tests__/prompt-resource.test.js +1 -0
  51. package/dist/__tests__/prompt-resource.test.js.map +1 -1
  52. package/dist/__tests__/reconnect-survival-e2e.test.js +3 -2
  53. package/dist/__tests__/reconnect-survival-e2e.test.js.map +1 -1
  54. package/dist/__tests__/refresh.test.js +24 -2
  55. package/dist/__tests__/refresh.test.js.map +1 -1
  56. package/dist/__tests__/request-timeout.test.d.ts +1 -0
  57. package/dist/__tests__/request-timeout.test.js +55 -0
  58. package/dist/__tests__/request-timeout.test.js.map +1 -0
  59. package/dist/__tests__/resolve-agent-preference-e2e.test.js +15 -3
  60. package/dist/__tests__/resolve-agent-preference-e2e.test.js.map +1 -1
  61. package/dist/__tests__/retry-after.test.js +63 -4
  62. package/dist/__tests__/retry-after.test.js.map +1 -1
  63. package/dist/__tests__/run-pass-mode.test.d.ts +1 -0
  64. package/dist/__tests__/run-pass-mode.test.js +163 -0
  65. package/dist/__tests__/run-pass-mode.test.js.map +1 -0
  66. package/dist/__tests__/session-identity.test.d.ts +1 -0
  67. package/dist/__tests__/session-identity.test.js +276 -0
  68. package/dist/__tests__/session-identity.test.js.map +1 -0
  69. package/dist/__tests__/version-check.test.js +16 -1
  70. package/dist/__tests__/version-check.test.js.map +1 -1
  71. package/dist/__tests__/workspace-key-mode.test.js +194 -16
  72. package/dist/__tests__/workspace-key-mode.test.js.map +1 -1
  73. package/dist/agent-key-mode.js +70 -30
  74. package/dist/agent-key-mode.js.map +1 -1
  75. package/dist/ais-http-error.d.ts +3 -0
  76. package/dist/ais-http-error.js +8 -1
  77. package/dist/ais-http-error.js.map +1 -1
  78. package/dist/ais-http.d.ts +4 -0
  79. package/dist/ais-http.js +58 -17
  80. package/dist/ais-http.js.map +1 -1
  81. package/dist/auto-handoff.js +33 -1
  82. package/dist/auto-handoff.js.map +1 -1
  83. package/dist/cli/doctor.d.ts +4 -0
  84. package/dist/cli/doctor.js +60 -18
  85. package/dist/cli/doctor.js.map +1 -1
  86. package/dist/cli/install.d.ts +6 -0
  87. package/dist/cli/install.js +52 -0
  88. package/dist/cli/install.js.map +1 -0
  89. package/dist/cli/invite-accept.d.ts +32 -0
  90. package/dist/cli/invite-accept.js +161 -0
  91. package/dist/cli/invite-accept.js.map +1 -0
  92. package/dist/cli/orientation.d.ts +2 -0
  93. package/dist/cli/orientation.js +31 -1
  94. package/dist/cli/orientation.js.map +1 -1
  95. package/dist/cli-info.d.ts +18 -0
  96. package/dist/cli-info.js +72 -0
  97. package/dist/cli-info.js.map +1 -0
  98. package/dist/credential-whoami.d.ts +50 -0
  99. package/dist/credential-whoami.js +91 -0
  100. package/dist/credential-whoami.js.map +1 -0
  101. package/dist/hydration.js +8 -0
  102. package/dist/hydration.js.map +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.js +201 -31
  105. package/dist/index.js.map +1 -1
  106. package/dist/mcp/tools.d.ts +10 -0
  107. package/dist/mcp/tools.js +99 -11
  108. package/dist/mcp/tools.js.map +1 -1
  109. package/dist/pending-device-flow.d.ts +31 -0
  110. package/dist/pending-device-flow.js +38 -0
  111. package/dist/pending-device-flow.js.map +1 -1
  112. package/dist/refresh.js +5 -1
  113. package/dist/refresh.js.map +1 -1
  114. package/dist/request-timeout.d.ts +26 -0
  115. package/dist/request-timeout.js +58 -0
  116. package/dist/request-timeout.js.map +1 -0
  117. package/dist/run-pass-mode.d.ts +16 -0
  118. package/dist/run-pass-mode.js +312 -0
  119. package/dist/run-pass-mode.js.map +1 -0
  120. package/dist/session-identity.d.ts +15 -1
  121. package/dist/session-identity.js +104 -12
  122. package/dist/session-identity.js.map +1 -1
  123. package/dist/telemetry.d.ts +1 -1
  124. package/dist/telemetry.js.map +1 -1
  125. package/dist/tool-args.d.ts +11 -1
  126. package/dist/tool-args.js +17 -1
  127. package/dist/tool-args.js.map +1 -1
  128. package/dist/types.d.ts +32 -0
  129. package/dist/version-check.d.ts +8 -0
  130. package/dist/version-check.js +21 -1
  131. package/dist/version-check.js.map +1 -1
  132. package/dist/workspace-key-mode.js +120 -32
  133. package/dist/workspace-key-mode.js.map +1 -1
  134. package/package.json +4 -6
@@ -1 +1 @@
1
- {"version":3,"file":"ais-http.test.js","sourceRoot":"","sources":["../../src/__tests__/ais-http.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ais-http.test.js","sourceRoot":"","sources":["../../src/__tests__/ais-http.test.ts"],"names":[],"mappings":"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"}
@@ -159,6 +159,62 @@ describe('setupAutoHandoff', () => {
159
159
  await vi.waitFor(() => expect(mockExit).toHaveBeenCalledWith(0));
160
160
  expect(onBeforeExit).toHaveBeenCalledOnce();
161
161
  });
162
+ // Jaire reconciliation 2026-09-17, defect 2: POST handoff has answered 500 in
163
+ // production since 2026-09-05 and no client noticed, because fetch resolves
164
+ // for a 5xx — it rejects only on a transport failure. The catch below the
165
+ // call therefore never fired and every session exited as though its handoff
166
+ // had landed.
167
+ it('warns on stderr when the server rejects the handoff', async () => {
168
+ const stderrWrite = vi.spyOn(process.stderr, 'write').mockReturnValue(true);
169
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue(new Response(JSON.stringify({ code: 'INTERNAL_ERROR', message: 'Failed to initiate handoff' }), {
170
+ status: 500,
171
+ })));
172
+ const tracker = new ActivityTracker();
173
+ tracker.recordToolUse('store_memory');
174
+ setupAutoHandoff(MOCK_AIS_URL, MOCK_AGENT_ID, MOCK_TOKEN, tracker);
175
+ sigtermHandler?.();
176
+ await vi.waitFor(() => expect(mockExit).toHaveBeenCalledWith(0));
177
+ const warning = stderrWrite.mock.calls.map((c) => String(c[0])).join('');
178
+ expect(warning).toContain('Auto-handoff was NOT saved');
179
+ expect(warning).toContain('HTTP 500');
180
+ expect(warning).toContain('Failed to initiate handoff');
181
+ });
182
+ it('still exits cleanly and runs onBeforeExit after a rejected handoff', async () => {
183
+ vi.spyOn(process.stderr, 'write').mockReturnValue(true);
184
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue(new Response(null, { status: 500 })));
185
+ const tracker = new ActivityTracker();
186
+ tracker.recordToolUse('store_memory');
187
+ const onBeforeExit = vi.fn();
188
+ setupAutoHandoff(MOCK_AIS_URL, MOCK_AGENT_ID, MOCK_TOKEN, tracker, onBeforeExit);
189
+ sigtermHandler?.();
190
+ await vi.waitFor(() => expect(mockExit).toHaveBeenCalledWith(0));
191
+ expect(onBeforeExit).toHaveBeenCalledOnce();
192
+ });
193
+ it('says nothing extra when the server accepts the handoff', async () => {
194
+ const stderrWrite = vi.spyOn(process.stderr, 'write').mockReturnValue(true);
195
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue(new Response(null, { status: 201 })));
196
+ const tracker = new ActivityTracker();
197
+ tracker.recordToolUse('store_memory');
198
+ setupAutoHandoff(MOCK_AIS_URL, MOCK_AGENT_ID, MOCK_TOKEN, tracker);
199
+ sigtermHandler?.();
200
+ await vi.waitFor(() => expect(mockExit).toHaveBeenCalledWith(0));
201
+ const written = stderrWrite.mock.calls.map((c) => String(c[0])).join('');
202
+ expect(written).not.toContain('Auto-handoff');
203
+ });
204
+ it('reports the status even when the rejected response has no readable body', async () => {
205
+ const stderrWrite = vi.spyOn(process.stderr, 'write').mockReturnValue(true);
206
+ const unreadable = new Response(null, { status: 503 });
207
+ vi.spyOn(unreadable, 'text').mockRejectedValue(new Error('body already consumed'));
208
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue(unreadable));
209
+ const tracker = new ActivityTracker();
210
+ tracker.recordToolUse('store_memory');
211
+ setupAutoHandoff(MOCK_AIS_URL, MOCK_AGENT_ID, MOCK_TOKEN, tracker);
212
+ sigtermHandler?.();
213
+ await vi.waitFor(() => expect(mockExit).toHaveBeenCalledWith(0));
214
+ const warning = stderrWrite.mock.calls.map((c) => String(c[0])).join('');
215
+ expect(warning).toContain('Auto-handoff was NOT saved');
216
+ expect(warning).toContain('HTTP 503');
217
+ });
162
218
  it('ignores duplicate signal while handoff is in flight', async () => {
163
219
  let resolveFetch;
164
220
  const mockFetch = vi.fn().mockImplementation(() => new Promise((resolve) => {
@@ -1 +1 @@
1
- {"version":3,"file":"auto-handoff.test.js","sourceRoot":"","sources":["../../src/__tests__/auto-handoff.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-handoff.test.js","sourceRoot":"","sources":["../../src/__tests__/auto-handoff.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,177 @@
1
+ import { createServer } from 'node:http';
2
+ import { spawn } from 'node:child_process';
3
+ import { mkdtempSync, rmSync, existsSync } from 'node:fs';
4
+ import { tmpdir } from 'node:os';
5
+ import { join, resolve } from 'node:path';
6
+ import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
7
+ /**
8
+ * CORBOT-7F3EC71C — the bond link must survive the process that printed it.
9
+ *
10
+ * The device code is redeemable for 30 minutes server-side. What killed it was
11
+ * the client: every `/v1/oauth/device/authorize` call expires the agent's
12
+ * outstanding unclaimed claim token (OAuthDeviceService `tryReuseProvisional`)
13
+ * before issuing the next one. An IDE restarts its stdio MCP server routinely,
14
+ * so the restart silently invalidated the exact link the agent had already
15
+ * relayed to its human — who then clicked a page that meant nothing.
16
+ *
17
+ * This drives the built binary against a fake AIS that never approves, so both
18
+ * processes stay in the pending state, and asserts that process #2 surfaces the
19
+ * SAME bond URL process #1 printed, with no second authorize call.
20
+ */
21
+ describe('aismemory bond link survives the minting process exiting', () => {
22
+ let fakeAis;
23
+ let port = 0;
24
+ let authorizeCalls = 0;
25
+ const issuedCodes = [];
26
+ beforeAll(async () => {
27
+ fakeAis = createServer((req, res) => {
28
+ req.on('data', () => { });
29
+ req.on('end', () => {
30
+ if (req.url === '/v1/oauth/device/authorize' && req.method === 'POST') {
31
+ authorizeCalls += 1;
32
+ const userCode = `MINT-${String(authorizeCalls).padStart(4, '0')}`;
33
+ issuedCodes.push(userCode);
34
+ res.writeHead(200, { 'content-type': 'application/json' });
35
+ res.end(JSON.stringify({
36
+ success: true,
37
+ data: {
38
+ device_code: `device-${authorizeCalls}`,
39
+ user_code: userCode,
40
+ verification_uri: `http://127.0.0.1:${port}/activate`,
41
+ verification_uri_complete: `http://127.0.0.1:${port}/activate?user_code=${userCode}`,
42
+ expires_in: 1800,
43
+ interval: 1,
44
+ agent_id: `agent-${authorizeCalls}`,
45
+ provisional_tenant_id: `tenant-${authorizeCalls}`,
46
+ provisional_token: `provisional-${authorizeCalls}`,
47
+ },
48
+ }));
49
+ return;
50
+ }
51
+ if (req.url === '/v1/oauth/token' && req.method === 'POST') {
52
+ // Nobody has pressed Bond yet — the human is still reading the link.
53
+ res.writeHead(400, { 'content-type': 'application/json' });
54
+ res.end(JSON.stringify({ error: 'authorization_pending' }));
55
+ return;
56
+ }
57
+ res.writeHead(404);
58
+ res.end();
59
+ });
60
+ });
61
+ await new Promise((ready) => {
62
+ fakeAis.listen(0, '127.0.0.1', () => {
63
+ const addr = fakeAis.address();
64
+ if (addr && typeof addr === 'object')
65
+ port = addr.port;
66
+ ready();
67
+ });
68
+ });
69
+ });
70
+ afterAll(async () => {
71
+ await new Promise((done) => fakeAis?.close(() => done()));
72
+ });
73
+ beforeEach(() => {
74
+ authorizeCalls = 0;
75
+ issuedCodes.length = 0;
76
+ });
77
+ it('re-surfaces the same bond URL from a new process instead of minting another', async () => {
78
+ const distPath = resolve(__dirname, '..', '..', 'dist', 'index.js');
79
+ if (!existsSync(distPath)) {
80
+ throw new Error(`dist/index.js missing — run \`pnpm build\` first (looked at ${distPath})`);
81
+ }
82
+ // One HOME, two processes — the IDE restart this ticket is about.
83
+ const sharedHome = mkdtempSync(join(tmpdir(), 'aismem-survive-'));
84
+ try {
85
+ const first = await bondUrlFromOneRun(distPath, sharedHome, port);
86
+ expect(first).toMatch(/user_code=MINT-0001/);
87
+ expect(authorizeCalls).toBe(1);
88
+ const second = await bondUrlFromOneRun(distPath, sharedHome, port);
89
+ // The link the human already has still works: same URL, no new code.
90
+ expect(second).toBe(first);
91
+ expect(authorizeCalls).toBe(1);
92
+ expect(issuedCodes).toEqual(['MINT-0001']);
93
+ }
94
+ finally {
95
+ try {
96
+ rmSync(sharedHome, { recursive: true, force: true });
97
+ }
98
+ catch { /* ignore */ }
99
+ }
100
+ }, 60000);
101
+ });
102
+ /**
103
+ * Boot the MCP server, make one tool call, read the bond URL out of the
104
+ * BondPendingError text, then kill the process — the "one-shot command that
105
+ * exits" from the ticket's repro.
106
+ */
107
+ async function bondUrlFromOneRun(distPath, home, port) {
108
+ let proc = null;
109
+ try {
110
+ // Build the child env explicitly: inheriting process.env drags in a
111
+ // developer's AIS_AGENT_API_KEY, which puts the client in key-auth mode
112
+ // and skips the device flow entirely (the suite then passes for the wrong
113
+ // reason, or fails for one).
114
+ proc = spawn('node', [distPath], {
115
+ env: {
116
+ PATH: process.env.PATH ?? '',
117
+ HOME: home,
118
+ AIS_URL: `http://127.0.0.1:${port}`,
119
+ },
120
+ stdio: ['pipe', 'pipe', 'pipe'],
121
+ });
122
+ let stdoutBuf = '';
123
+ proc.stdout.on('data', (d) => { stdoutBuf += d.toString(); });
124
+ proc.stderr.on('data', () => { });
125
+ proc.stdin.write(JSON.stringify({
126
+ jsonrpc: '2.0',
127
+ id: 1,
128
+ method: 'initialize',
129
+ params: {
130
+ protocolVersion: '2024-11-05',
131
+ capabilities: {},
132
+ clientInfo: { name: 'survive-test', version: '0.0.0' },
133
+ },
134
+ }) + '\n');
135
+ await waitFor(() => stdoutBuf.includes('"id":1'), 15000, 'initialize response');
136
+ proc.stdin.write(JSON.stringify({
137
+ jsonrpc: '2.0',
138
+ id: 2,
139
+ method: 'tools/call',
140
+ params: { name: 'whoami', arguments: {} },
141
+ }) + '\n');
142
+ await waitFor(() => stdoutBuf.includes('"id":2'), 30000, 'whoami response');
143
+ const text = extractResponseText(stdoutBuf, 2);
144
+ expect(text).toMatch(/Memory bond required/);
145
+ const url = /http:\/\/[^\s"]*activate\?user_code=[A-Z0-9-]+/.exec(text);
146
+ if (!url)
147
+ throw new Error(`no bond URL in response: ${text.slice(0, 400)}`);
148
+ return url[0];
149
+ }
150
+ finally {
151
+ proc?.kill();
152
+ }
153
+ }
154
+ function waitFor(predicate, ms, label) {
155
+ return new Promise((done, reject) => {
156
+ const start = Date.now();
157
+ const tick = () => {
158
+ if (predicate()) {
159
+ done();
160
+ return;
161
+ }
162
+ if (Date.now() - start > ms) {
163
+ reject(new Error(`timeout waiting for ${label}`));
164
+ return;
165
+ }
166
+ setTimeout(tick, 50);
167
+ };
168
+ tick();
169
+ });
170
+ }
171
+ function extractResponseText(buf, id) {
172
+ const line = buf.split('\n').find((l) => l.includes(`"id":${id}`));
173
+ if (!line)
174
+ throw new Error(`no response line for id ${id}`);
175
+ return JSON.stringify(JSON.parse(line));
176
+ }
177
+ //# sourceMappingURL=bond-link-survives-exit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bond-link-survives-exit.test.js","sourceRoot":"","sources":["../../src/__tests__/bond-link-survives-exit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,113 @@
1
+ import { spawn, spawnSync } from 'node:child_process';
2
+ import { existsSync, mkdtempSync, rmSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join, resolve } from 'node:path';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { resolveInfoRequest, USAGE_TEXT } from '../cli-info.js';
7
+ import { readPackageVersion } from '../version-check.js';
8
+ describe('resolveInfoRequest', () => {
9
+ it.each(['--help', '-h'])('%s returns usage text', (flag) => {
10
+ const out = resolveInfoRequest([flag], '1.2.3');
11
+ expect(out).toBe(USAGE_TEXT);
12
+ expect(out).toContain('doctor');
13
+ expect(out).toContain('--version');
14
+ });
15
+ it.each(['--version', '-v'])('%s returns the version', (flag) => {
16
+ expect(resolveInfoRequest([flag], '1.2.3')).toBe('1.2.3\n');
17
+ });
18
+ it('ignores other arguments and subcommand flags', () => {
19
+ expect(resolveInfoRequest([], '1.2.3')).toBeNull();
20
+ expect(resolveInfoRequest(['doctor', '--help'], '1.2.3')).toBeNull();
21
+ expect(resolveInfoRequest(['sync'], '1.2.3')).toBeNull();
22
+ });
23
+ });
24
+ describe('aismemory binary info flags', () => {
25
+ const distPath = resolve(__dirname, '..', '..', 'dist', 'index.js');
26
+ function run(flag) {
27
+ if (!existsSync(distPath)) {
28
+ throw new Error(`dist/index.js missing - run \`pnpm build\` first (looked at ${distPath})`);
29
+ }
30
+ const env = {
31
+ PATH: process.env.PATH,
32
+ HOME: '/nonexistent-aismemory-home',
33
+ AIS_URL: 'http://127.0.0.1:1',
34
+ };
35
+ const r = spawnSync(process.execPath, [distPath, flag], { env, encoding: 'utf-8', timeout: 15000 });
36
+ return { status: r.status, stdout: r.stdout, stderr: r.stderr };
37
+ }
38
+ it.each(['--help', '-h'])('%s exits 0 with usage and no credential error', (flag) => {
39
+ const r = run(flag);
40
+ expect(r.status).toBe(0);
41
+ expect(r.stdout).toBe(USAGE_TEXT);
42
+ expect(r.stderr).not.toContain('credential');
43
+ });
44
+ it.each(['--version', '-v'])('%s exits 0 and prints the package version', (flag) => {
45
+ const r = run(flag);
46
+ expect(r.status).toBe(0);
47
+ expect(r.stdout).toBe(`${readPackageVersion()}\n`);
48
+ expect(r.stderr).toBe('');
49
+ });
50
+ });
51
+ describe('CORBOT-73753A98 human how-to', () => {
52
+ const distPath = resolve(__dirname, '..', '..', 'dist', 'index.js');
53
+ it('--help carries the MCP config block and the bond step', () => {
54
+ expect(USAGE_TEXT).toContain('"mcpServers"');
55
+ expect(USAGE_TEXT).toContain('"args": ["aismemory"]');
56
+ expect(USAGE_TEXT).toContain('press Bond');
57
+ expect(USAGE_TEXT).not.toContain('Railway');
58
+ expect(USAGE_TEXT).not.toContain('ais_wk_');
59
+ });
60
+ it('piped (non-TTY) start writes nothing to stdout and no how-to to stderr', async () => {
61
+ if (!existsSync(distPath))
62
+ throw new Error('dist/index.js missing - run pnpm build first');
63
+ const home = mkdtempSync(join(tmpdir(), 'aismem-nontty-'));
64
+ const proc = spawn('node', [distPath], {
65
+ env: { ...process.env, HOME: home, AIS_URL: 'http://127.0.0.1:1' },
66
+ stdio: ['pipe', 'pipe', 'pipe'],
67
+ });
68
+ let out = '';
69
+ let err = '';
70
+ proc.stdout.on('data', (d) => { out += d.toString(); });
71
+ proc.stderr.on('data', (d) => { err += d.toString(); });
72
+ try {
73
+ const start = Date.now();
74
+ while (!err.includes('Bond URL will be surfaced') && Date.now() - start < 8000) {
75
+ await new Promise((r) => setTimeout(r, 50));
76
+ }
77
+ expect(out).toBe('');
78
+ expect(err).toContain('Missing AIS credential');
79
+ expect(err).not.toContain('press Bond');
80
+ }
81
+ finally {
82
+ proc.kill();
83
+ rmSync(home, { recursive: true, force: true });
84
+ }
85
+ }, 20000);
86
+ it('TTY start shows the how-to and the short no-sign-in line', async () => {
87
+ if (!existsSync(distPath))
88
+ throw new Error('dist/index.js missing - run pnpm build first');
89
+ const home = mkdtempSync(join(tmpdir(), 'aismem-tty-'));
90
+ const proc = spawn('script', ['-qec', `node ${distPath}`, '/dev/null'], {
91
+ env: { ...process.env, HOME: home, AIS_URL: 'http://127.0.0.1:1' },
92
+ stdio: ['pipe', 'pipe', 'pipe'],
93
+ });
94
+ let out = '';
95
+ proc.stdout.on('data', (d) => { out += d.toString(); });
96
+ proc.stderr.on('data', (d) => { out += d.toString(); });
97
+ try {
98
+ const start = Date.now();
99
+ while (!out.includes('No sign-in yet') && Date.now() - start < 8000) {
100
+ await new Promise((r) => setTimeout(r, 50));
101
+ }
102
+ expect(out).toContain('"mcpServers"');
103
+ expect(out).toContain('press Bond');
104
+ expect(out).not.toContain('Missing AIS credential');
105
+ expect(out).not.toContain('ais_wk_');
106
+ }
107
+ finally {
108
+ proc.kill();
109
+ rmSync(home, { recursive: true, force: true });
110
+ }
111
+ }, 20000);
112
+ });
113
+ //# sourceMappingURL=cli-info.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-info.test.js","sourceRoot":"","sources":["../../src/__tests__/cli-info.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,QAAQ,CAAC,oBAAoB,EAAE,GAAS,EAAE;IACxC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,IAAY,EAAQ,EAAE;QACxE,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,IAAY,EAAQ,EAAE;QAC5E,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,MAAM,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAS,EAAE;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEpE,SAAS,GAAG,CAAC,IAAY;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,+DAA+D,QAAQ,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,GAAG,GAAsB;YAC7B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,oBAAoB;SAC9B,CAAC;QACF,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,+CAA+C,EAAE,CAAC,IAAY,EAAQ,EAAE;QAChG,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,2CAA2C,EAAE,CAAC,IAAY,EAAQ,EAAE;QAC/F,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAS,EAAE;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAEpE,EAAE,CAAC,uDAAuD,EAAE,GAAS,EAAE;QACrE,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAmB,EAAE;QACrG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE;YACrC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE;YAClE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;gBAC/E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAmB,EAAE;QACvF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,QAAQ,EAAE,EAAE,WAAW,CAAC,EAAE;YACtE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE;YAClE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;gBACpE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
3
+ import { spawn } from 'node:child_process';
3
4
  import { createServer } from 'node:http';
4
5
  import { mkdtempSync, writeFileSync, rmSync } from 'node:fs';
5
6
  import { tmpdir } from 'node:os';
@@ -7,8 +8,22 @@ import { join, resolve } from 'node:path';
7
8
  import { describe, expect, it } from 'vitest';
8
9
  import { loadAgentApiKeyConfig } from '../agent-key-mode.js';
9
10
  import { loadWorkspaceKeyConfig } from '../workspace-key-mode.js';
11
+ import { loadRunPassConfig } from '../run-pass-mode.js';
10
12
  import { loadSessionIdentity } from '../session-identity.js';
11
13
  const agentId = '11111111-1111-4111-8111-111111111111';
14
+ const runPass = `ais_rp_${'C'.repeat(43)}`;
15
+ function runAismemoryStartup(env) {
16
+ return new Promise((resolveProcess, reject) => {
17
+ const proc = spawn(process.execPath, [resolve(__dirname, '../../dist/index.js')], { env });
18
+ let stdout = '';
19
+ let stderr = '';
20
+ proc.stdout.on('data', (data) => { stdout += data.toString(); });
21
+ proc.stderr.on('data', (data) => { stderr += data.toString(); });
22
+ proc.on('error', reject);
23
+ proc.on('close', (code) => { resolveProcess({ code, stdout, stderr }); });
24
+ proc.stdin.end();
25
+ });
26
+ }
12
27
  describe('scoped credential aliases', () => {
13
28
  it('accepts AIS_API_KEY for a single agent and trims it', () => {
14
29
  expect(loadAgentApiKeyConfig({ AIS_API_KEY: ' ais_ak_test\n', AIS_AGENT_ID: agentId }))
@@ -53,18 +68,24 @@ describe('scoped credential aliases', () => {
53
68
  expect(loadWorkspaceKeyConfig(env)).toBeNull();
54
69
  expect(loadAgentApiKeyConfig(env)).toBeNull();
55
70
  });
71
+ it('loads run-pass config without a key env var', () => {
72
+ expect(loadRunPassConfig({ AIS_RUN_PASS_FILE: '/tmp/ais-run-pass', AIS_AGENT_ID: agentId }))
73
+ .toEqual({ runPassFile: '/tmp/ais-run-pass', agentId });
74
+ });
56
75
  });
57
76
  describe('real MCP credential resolution', () => {
58
- it.each(['workspace', 'agent', 'agent-padded', 'cache', 'cold'])('%s path uses only the selected credential and gives actionable errors', async (mode) => {
77
+ it.each(['workspace', 'agent', 'agent-padded', 'run-pass', 'workspace-plus-run-pass', 'agent-plus-run-pass', 'agent-api-key-plus-run-pass', 'cache', 'cold'])('%s path uses only the selected credential and gives actionable errors', async (mode) => {
59
78
  const taskHome = mkdtempSync(join(tmpdir(), 'ais-credential-resolution-'));
60
79
  const requests = [];
61
80
  const server = createServer((req, res) => {
62
81
  const workspace = req.headers['x-workspace-key'];
63
82
  const agent = req.headers['x-agent-api-key'];
83
+ const runPassHeader = req.headers['x-run-pass'];
64
84
  requests.push({
65
85
  path: req.url ?? '',
66
86
  ...(typeof workspace === 'string' ? { workspace } : {}),
67
87
  ...(typeof agent === 'string' ? { agent } : {}),
88
+ ...(typeof runPassHeader === 'string' ? { runPass: runPassHeader } : {}),
68
89
  ...(req.headers.authorization ? { bearer: req.headers.authorization } : {}),
69
90
  });
70
91
  res.writeHead(mode === 'cold' ? 503 : 200, { 'content-type': 'application/json' });
@@ -99,6 +120,34 @@ describe('real MCP credential resolution', () => {
99
120
  // Same credential, injected the way a sourced .env file delivers it.
100
121
  if (mode === 'agent-padded')
101
122
  Object.assign(env, { AIS_API_KEY: ' ais_ak_test\n', AIS_AGENT_ID: ` ${agentId}\n` });
123
+ if (mode === 'run-pass' || mode === 'workspace-plus-run-pass' || mode === 'agent-plus-run-pass' || mode === 'agent-api-key-plus-run-pass') {
124
+ const runPassFile = join(taskHome, 'ais-run-pass');
125
+ writeFileSync(runPassFile, runPass, { mode: 0o600 });
126
+ Object.assign(env, { AIS_RUN_PASS_FILE: runPassFile, AIS_AGENT_ID: agentId });
127
+ }
128
+ if (mode === 'workspace-plus-run-pass')
129
+ Object.assign(env, { AIS_WORKSPACE_KEY: 'ais_wk_test' });
130
+ if (mode === 'agent-plus-run-pass')
131
+ Object.assign(env, { AIS_API_KEY: 'ais_ak_test' });
132
+ if (mode === 'agent-api-key-plus-run-pass')
133
+ Object.assign(env, { AIS_AGENT_API_KEY: 'ais_ak_test' });
134
+ if (mode === 'workspace-plus-run-pass' || mode === 'agent-plus-run-pass' || mode === 'agent-api-key-plus-run-pass') {
135
+ const started = await runAismemoryStartup(env);
136
+ const output = `${started.stdout}${started.stderr}`;
137
+ expect(started.code).toBe(1);
138
+ expect(output).toContain('AIS_RUN_PASS_FILE');
139
+ expect(output).toContain({
140
+ 'workspace-plus-run-pass': 'AIS_WORKSPACE_KEY',
141
+ 'agent-plus-run-pass': 'AIS_API_KEY',
142
+ 'agent-api-key-plus-run-pass': 'AIS_AGENT_API_KEY',
143
+ }[mode]);
144
+ expect(output).toContain('Refusing to start');
145
+ expect(output).not.toContain('ais_wk_test');
146
+ expect(output).not.toContain('ais_ak_test');
147
+ expect(output).not.toContain(runPass);
148
+ expect(requests).toEqual([]);
149
+ return;
150
+ }
102
151
  const transport = new StdioClientTransport({ command: process.execPath, args: [resolve(__dirname, '../../dist/index.js')], env, stderr: 'pipe' });
103
152
  await client.connect(transport);
104
153
  const result = await client.callTool({ name: mode === 'cold' ? 'agent_load' : 'recall', arguments: mode === 'cold' ? { query: 'corbot' } : { query: 'test' } });
@@ -111,15 +160,20 @@ describe('real MCP credential resolution', () => {
111
160
  expect(serialized).toContain('AIS_AGENT_ID');
112
161
  expect(serialized).toContain('~/.aismemory/credentials.json');
113
162
  expect(serialized).toContain('AIS sign-in could not start');
114
- expect(requests.every((request) => request.path === '/v1/oauth/device/authorize' && !request.bearer && !request.workspace && !request.agent)).toBe(true);
163
+ expect(requests.every((request) => request.path === '/v1/oauth/device/authorize' &&
164
+ !request.bearer &&
165
+ !request.workspace &&
166
+ !request.agent &&
167
+ !request.runPass)).toBe(true);
115
168
  }
116
169
  else {
117
170
  expect(result.isError).not.toBe(true);
118
171
  const memoryRequests = requests.filter((request) => request.path.includes('/memory'));
119
172
  expect(memoryRequests.length).toBeGreaterThan(0);
120
173
  for (const request of memoryRequests) {
121
- expect(request.workspace).toBe(mode === 'workspace' ? 'ais_wk_test' : undefined);
174
+ expect(request.workspace).toBe(mode === 'workspace' || mode === 'workspace-plus-run-pass' ? 'ais_wk_test' : undefined);
122
175
  expect(request.agent).toBe(mode.startsWith('agent') ? 'ais_ak_test' : undefined);
176
+ expect(request.runPass).toBe(mode === 'run-pass' ? runPass : undefined);
123
177
  expect(request.bearer).toBe(mode === 'cache' ? 'Bearer cache-test-sentinel' : undefined);
124
178
  }
125
179
  expect(requests.some((request) => request.path.includes('/oauth/'))).toBe(false);