aismemory 0.8.3 → 0.8.4

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 (166) hide show
  1. package/README.md +146 -3
  2. package/dist/__tests__/agent-key-mode.test.js +46 -5
  3. package/dist/__tests__/agent-key-mode.test.js.map +1 -1
  4. package/dist/__tests__/ais-http.test.js +22 -0
  5. package/dist/__tests__/ais-http.test.js.map +1 -1
  6. package/dist/__tests__/auto-enroll-key.test.js +20 -1
  7. package/dist/__tests__/auto-enroll-key.test.js.map +1 -1
  8. package/dist/__tests__/cli-info.test.js +8 -4
  9. package/dist/__tests__/cli-info.test.js.map +1 -1
  10. package/dist/__tests__/client-credential-expiry.test.d.ts +1 -0
  11. package/dist/__tests__/client-credential-expiry.test.js +319 -0
  12. package/dist/__tests__/client-credential-expiry.test.js.map +1 -0
  13. package/dist/__tests__/declared-agent.test.d.ts +1 -0
  14. package/dist/__tests__/declared-agent.test.js +60 -0
  15. package/dist/__tests__/declared-agent.test.js.map +1 -0
  16. package/dist/__tests__/doctor.test.js +21 -2
  17. package/dist/__tests__/doctor.test.js.map +1 -1
  18. package/dist/__tests__/dream-poll.test.d.ts +1 -0
  19. package/dist/__tests__/dream-poll.test.js +130 -0
  20. package/dist/__tests__/dream-poll.test.js.map +1 -0
  21. package/dist/__tests__/enable-key-auth.test.d.ts +1 -0
  22. package/dist/__tests__/enable-key-auth.test.js +180 -0
  23. package/dist/__tests__/enable-key-auth.test.js.map +1 -0
  24. package/dist/__tests__/existing-hashes.test.js +3 -6
  25. package/dist/__tests__/existing-hashes.test.js.map +1 -1
  26. package/dist/__tests__/full-context-view-forwarding.test.js +20 -1
  27. package/dist/__tests__/full-context-view-forwarding.test.js.map +1 -1
  28. package/dist/__tests__/hooks.test.d.ts +1 -0
  29. package/dist/__tests__/hooks.test.js +455 -0
  30. package/dist/__tests__/hooks.test.js.map +1 -0
  31. package/dist/__tests__/hydration.test.js +2 -0
  32. package/dist/__tests__/hydration.test.js.map +1 -1
  33. package/dist/__tests__/install.test.js +28 -1
  34. package/dist/__tests__/install.test.js.map +1 -1
  35. package/dist/__tests__/invite-accept.test.js +167 -3
  36. package/dist/__tests__/invite-accept.test.js.map +1 -1
  37. package/dist/__tests__/list-all-agents.test.js +17 -15
  38. package/dist/__tests__/list-all-agents.test.js.map +1 -1
  39. package/dist/__tests__/mcp-instructions.test.d.ts +1 -0
  40. package/dist/__tests__/mcp-instructions.test.js +26 -0
  41. package/dist/__tests__/mcp-instructions.test.js.map +1 -0
  42. package/dist/__tests__/mcp-tools.test.js +65 -0
  43. package/dist/__tests__/mcp-tools.test.js.map +1 -1
  44. package/dist/__tests__/memory-export.test.d.ts +1 -0
  45. package/dist/__tests__/memory-export.test.js +78 -0
  46. package/dist/__tests__/memory-export.test.js.map +1 -0
  47. package/dist/__tests__/owner-credentials.test.d.ts +1 -0
  48. package/dist/__tests__/owner-credentials.test.js +250 -0
  49. package/dist/__tests__/owner-credentials.test.js.map +1 -0
  50. package/dist/__tests__/owner-keychain-agent-load.test.d.ts +1 -0
  51. package/dist/__tests__/owner-keychain-agent-load.test.js +57 -0
  52. package/dist/__tests__/owner-keychain-agent-load.test.js.map +1 -0
  53. package/dist/__tests__/recall-order-by.test.d.ts +1 -0
  54. package/dist/__tests__/recall-order-by.test.js +115 -0
  55. package/dist/__tests__/recall-order-by.test.js.map +1 -0
  56. package/dist/__tests__/remember-duplicate-truth.test.js +11 -0
  57. package/dist/__tests__/remember-duplicate-truth.test.js.map +1 -1
  58. package/dist/__tests__/resolve-agent-preference.test.js +19 -8
  59. package/dist/__tests__/resolve-agent-preference.test.js.map +1 -1
  60. package/dist/__tests__/signin-keychain.test.d.ts +1 -0
  61. package/dist/__tests__/signin-keychain.test.js +79 -0
  62. package/dist/__tests__/signin-keychain.test.js.map +1 -0
  63. package/dist/__tests__/startup-identity.test.d.ts +1 -0
  64. package/dist/__tests__/startup-identity.test.js +213 -0
  65. package/dist/__tests__/startup-identity.test.js.map +1 -0
  66. package/dist/__tests__/sync-auth.test.d.ts +1 -0
  67. package/dist/__tests__/sync-auth.test.js +69 -0
  68. package/dist/__tests__/sync-auth.test.js.map +1 -0
  69. package/dist/__tests__/sync-doc.test.d.ts +1 -0
  70. package/dist/__tests__/sync-doc.test.js +13 -0
  71. package/dist/__tests__/sync-doc.test.js.map +1 -0
  72. package/dist/__tests__/sync-memory-cli.test.js +1 -1
  73. package/dist/__tests__/sync-memory-cli.test.js.map +1 -1
  74. package/dist/__tests__/tool-args.test.js +6 -0
  75. package/dist/__tests__/tool-args.test.js.map +1 -1
  76. package/dist/agent-key-mode.js +22 -22
  77. package/dist/agent-key-mode.js.map +1 -1
  78. package/dist/agent-preference.d.ts +4 -0
  79. package/dist/agent-preference.js +7 -1
  80. package/dist/agent-preference.js.map +1 -1
  81. package/dist/ais-http-error.d.ts +5 -0
  82. package/dist/ais-http-error.js +10 -0
  83. package/dist/ais-http-error.js.map +1 -1
  84. package/dist/ais-http.js +8 -4
  85. package/dist/ais-http.js.map +1 -1
  86. package/dist/auto-handoff.js +2 -1
  87. package/dist/auto-handoff.js.map +1 -1
  88. package/dist/cli/doctor.d.ts +8 -0
  89. package/dist/cli/doctor.js +19 -0
  90. package/dist/cli/doctor.js.map +1 -1
  91. package/dist/cli/enable-key-auth.js +39 -18
  92. package/dist/cli/enable-key-auth.js.map +1 -1
  93. package/dist/cli/export-harness.d.ts +13 -0
  94. package/dist/cli/export-harness.js +110 -0
  95. package/dist/cli/export-harness.js.map +1 -0
  96. package/dist/cli/hooks.d.ts +62 -0
  97. package/dist/cli/hooks.js +634 -0
  98. package/dist/cli/hooks.js.map +1 -0
  99. package/dist/cli/install.d.ts +4 -0
  100. package/dist/cli/install.js +44 -5
  101. package/dist/cli/install.js.map +1 -1
  102. package/dist/cli/invite-accept.d.ts +36 -1
  103. package/dist/cli/invite-accept.js +135 -1
  104. package/dist/cli/invite-accept.js.map +1 -1
  105. package/dist/cli/owner-credentials.d.ts +52 -0
  106. package/dist/cli/owner-credentials.js +387 -0
  107. package/dist/cli/owner-credentials.js.map +1 -0
  108. package/dist/cli/sync-memory.js +7 -9
  109. package/dist/cli/sync-memory.js.map +1 -1
  110. package/dist/cli-info.js +6 -1
  111. package/dist/cli-info.js.map +1 -1
  112. package/dist/credential-expiry.d.ts +10 -0
  113. package/dist/credential-expiry.js +41 -0
  114. package/dist/credential-expiry.js.map +1 -0
  115. package/dist/declared-agent.d.ts +20 -0
  116. package/dist/declared-agent.js +40 -0
  117. package/dist/declared-agent.js.map +1 -0
  118. package/dist/device-poll.d.ts +1 -0
  119. package/dist/device-poll.js.map +1 -1
  120. package/dist/dream-poll.d.ts +19 -0
  121. package/dist/dream-poll.js +93 -0
  122. package/dist/dream-poll.js.map +1 -0
  123. package/dist/env-agent.d.ts +6 -1
  124. package/dist/env-agent.js +18 -5
  125. package/dist/env-agent.js.map +1 -1
  126. package/dist/hydration.js +2 -1
  127. package/dist/hydration.js.map +1 -1
  128. package/dist/index.js +124 -16
  129. package/dist/index.js.map +1 -1
  130. package/dist/key-auth.d.ts +13 -3
  131. package/dist/key-auth.js +27 -5
  132. package/dist/key-auth.js.map +1 -1
  133. package/dist/mcp/tools.js +37 -20
  134. package/dist/mcp/tools.js.map +1 -1
  135. package/dist/mcp-instructions.d.ts +6 -0
  136. package/dist/mcp-instructions.js +7 -0
  137. package/dist/mcp-instructions.js.map +1 -0
  138. package/dist/memory-export.d.ts +30 -0
  139. package/dist/memory-export.js +116 -0
  140. package/dist/memory-export.js.map +1 -0
  141. package/dist/pipeline/bulk-store.d.ts +2 -5
  142. package/dist/pipeline/bulk-store.js +2 -4
  143. package/dist/pipeline/bulk-store.js.map +1 -1
  144. package/dist/pipeline/existing-hashes.d.ts +2 -5
  145. package/dist/pipeline/existing-hashes.js +1 -2
  146. package/dist/pipeline/existing-hashes.js.map +1 -1
  147. package/dist/pipeline/sync-auth.d.ts +12 -0
  148. package/dist/pipeline/sync-auth.js +64 -0
  149. package/dist/pipeline/sync-auth.js.map +1 -0
  150. package/dist/refresh.js +2 -1
  151. package/dist/refresh.js.map +1 -1
  152. package/dist/run-pass-mode.js +8 -13
  153. package/dist/run-pass-mode.js.map +1 -1
  154. package/dist/signin-keychain.d.ts +54 -0
  155. package/dist/signin-keychain.js +200 -0
  156. package/dist/signin-keychain.js.map +1 -0
  157. package/dist/startup-identity.d.ts +71 -0
  158. package/dist/startup-identity.js +213 -0
  159. package/dist/startup-identity.js.map +1 -0
  160. package/dist/tool-args.d.ts +10 -0
  161. package/dist/tool-args.js +39 -0
  162. package/dist/tool-args.js.map +1 -1
  163. package/dist/types.d.ts +8 -0
  164. package/dist/workspace-key-mode.js +19 -19
  165. package/dist/workspace-key-mode.js.map +1 -1
  166. package/package.json +1 -1
@@ -5,6 +5,7 @@ import { join, resolve } from 'node:path';
5
5
  import { spawnSync } from 'node:child_process';
6
6
  import { installIdentity } from '../cli/install.js';
7
7
  import { checkUserScopeIdentity, runDoctor } from '../cli/doctor.js';
8
+ import { readPackageVersion } from '../version-check.js';
8
9
  const homes = [];
9
10
  function fixture() {
10
11
  const home = mkdtempSync(join(tmpdir(), 'aismemory-install-'));
@@ -24,7 +25,7 @@ describe('portable per-identity install', () => {
24
25
  for (const [result, id] of [[a, 'agent-a'], [b, 'agent-b']]) {
25
26
  expect(JSON.parse(readFileSync(result.configPath, 'utf8'))).toEqual({
26
27
  mcpServers: { aismemory: {
27
- command: 'npx', args: ['-y', 'aismemory@latest'],
28
+ command: 'npx', args: ['-y', `aismemory@${readPackageVersion()}`],
28
29
  env: { AIS_AGENT_ID: id, npm_config_audit: 'false', npm_config_fund: 'false' },
29
30
  } },
30
31
  });
@@ -37,6 +38,26 @@ describe('portable per-identity install', () => {
37
38
  expect(existsSync(join(home, '.claude.json'))).toBe(false);
38
39
  expect(existsSync(join(home, '.aismemory', 'harnesses'))).toBe(false);
39
40
  });
41
+ it('writes entry instructions beside the config: id, call order, no secrets, no overwrite', () => {
42
+ const out = join(fixture(), 'configs');
43
+ const result = installIdentity('agent-a', out);
44
+ expect(result.entryInstructionsPath).toBe(join(resolve(out), 'aismemory-agent-a.entry.md'));
45
+ const text = readFileSync(result.entryInstructionsPath, 'utf8');
46
+ expect(text).toBe(result.entryInstructions);
47
+ expect(text).toContain('agent-a');
48
+ expect(text.indexOf('whoami')).toBeGreaterThan(-1);
49
+ expect(text.indexOf('full_context')).toBeGreaterThan(text.indexOf('whoami'));
50
+ expect(text.indexOf('Operating layer')).toBeGreaterThan(text.indexOf('full_context'));
51
+ expect(text).not.toMatch(/AIS_API_KEY=|Bearer |sk-[A-Za-z0-9]/);
52
+ // A pre-existing instructions file refuses the whole install and leaves no config behind.
53
+ const out2 = join(fixture(), 'configs');
54
+ mkdirSync(out2, { recursive: true });
55
+ const existing = join(out2, 'aismemory-agent-b.entry.md');
56
+ writeFileSync(existing, 'mine');
57
+ expect(() => installIdentity('agent-b', out2)).toThrow();
58
+ expect(readFileSync(existing, 'utf8')).toBe('mine');
59
+ expect(existsSync(join(out2, 'aismemory-agent-b.mcp.json'))).toBe(false);
60
+ });
40
61
  it('dispatches the real install CLI and leaves user-scope defaults untouched', () => {
41
62
  const home = fixture();
42
63
  const shared = join(home, '.claude.json');
@@ -50,6 +71,12 @@ describe('portable per-identity install', () => {
50
71
  expect(existsSync(join(home, 'aismemory-configs', 'aismemory-agent-a.mcp.json'))).toBe(true);
51
72
  expect(readFileSync(shared, 'utf8')).toBe(original);
52
73
  expect(existsSync(join(home, '.aismemory', 'harnesses'))).toBe(false);
74
+ expect(existsSync(join(home, 'aismemory-configs', 'aismemory-agent-a.entry.md'))).toBe(true);
75
+ const bundled = spawnSync(process.execPath, [resolve(__dirname, '../../dist/index.js'), 'install', '--identity', 'agent-b', '--bundle'], {
76
+ cwd: home, env: { PATH: process.env.PATH, HOME: home, AISMEMORY_VERSION_CHECK: '0' }, encoding: 'utf8', timeout: 10000,
77
+ });
78
+ expect(bundled.status, bundled.stderr).toBe(0);
79
+ expect(Object.keys(JSON.parse(bundled.stdout))).toEqual(['config', 'entryInstructions', 'startCommand']);
53
80
  });
54
81
  it('refuses an existing config and invalid identities before writing', () => {
55
82
  const out = join(fixture(), 'configs');
@@ -1 +1 @@
1
- {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../src/__tests__/install.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../src/__tests__/install.test.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,45 @@
2
2
  * `aismemory invite accept` (CORBOT-74F03CB8): the token comes from an env var
3
3
  * or stdin, never argv, and only the bond link + provenance are printed.
4
4
  */
5
- import { describe, it, expect, vi } from 'vitest';
5
+ import { existsSync, mkdtempSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs';
6
+ import { execFileSync } from 'node:child_process';
7
+ import { tmpdir } from 'node:os';
8
+ import { join } from 'node:path';
9
+ import { afterEach, beforeEach, describe, it, expect, vi } from 'vitest';
6
10
  import { InviteAcceptError, main, parseInviteArgs, } from '../cli/invite-accept.js';
7
11
  const TOKEN = 'fRiEnDsCoDe_0123456789-abcdefghijklmnopqrst';
8
- function okResponse() {
12
+ const TENANT_ID = 'provisional-tenant-1';
13
+ // Shaped like the AIS provisional JWT: the payload carries tenant_id.
14
+ const BEARER = [
15
+ Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT' })).toString('base64url'),
16
+ Buffer.from(JSON.stringify({ sub: 'agent-1', agent_id: 'agent-1', tenant_id: TENANT_ID, type: 'provisional' })).toString('base64url'),
17
+ 'provisional-bearer-secret',
18
+ ].join('.');
19
+ const EXPIRES_AT = '2026-10-30T00:00:00.000Z';
20
+ function jwtFor(claims) {
21
+ return [
22
+ Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT' })).toString('base64url'),
23
+ Buffer.from(JSON.stringify(claims)).toString('base64url'),
24
+ 'provisional-bearer-secret',
25
+ ].join('.');
26
+ }
27
+ let tmpHome;
28
+ let credsPath;
29
+ beforeEach(() => {
30
+ tmpHome = mkdtempSync(join(tmpdir(), 'invite-accept-'));
31
+ credsPath = join(tmpHome, '.aismemory', 'credentials.json');
32
+ });
33
+ afterEach(() => {
34
+ rmSync(tmpHome, { recursive: true, force: true });
35
+ });
36
+ function okResponse(data = {}) {
9
37
  return new Response(JSON.stringify({
10
38
  success: true,
11
39
  data: {
12
40
  agentId: 'agent-1',
13
- bearerToken: 'provisional-bearer-secret',
41
+ bearerToken: BEARER,
42
+ ...data,
43
+ expiresAt: EXPIRES_AT,
14
44
  claimUrl: 'https://www.agentsandswarms.ai/claim/abc',
15
45
  officialHost: 'https://www.agentsandswarms.ai',
16
46
  inviteCodeLabel: 'John friends code',
@@ -26,6 +56,7 @@ function makeDeps(overrides = {}) {
26
56
  readStdin: vi.fn(async () => ''),
27
57
  fetchImpl,
28
58
  stdout: (text) => { out.push(text); },
59
+ credentialsPath: credsPath,
29
60
  out,
30
61
  ...overrides,
31
62
  };
@@ -93,6 +124,45 @@ describe('aismemory invite accept', () => {
93
124
  expect(printed).not.toContain(TOKEN);
94
125
  expect(printed).not.toContain('provisional-bearer-secret');
95
126
  });
127
+ it('persists the provisional bearer to a 0600 credentials file and keeps it off stdout', async () => {
128
+ const deps = makeDeps({ env: { T: TOKEN } });
129
+ await main(['accept', '--token-env', 'T'], deps);
130
+ expect(JSON.parse(readFileSync(credsPath, 'utf-8'))).toEqual({
131
+ token: BEARER,
132
+ agentId: 'agent-1',
133
+ tenantId: TENANT_ID,
134
+ expiresAt: EXPIRES_AT,
135
+ });
136
+ if (process.platform !== 'win32') {
137
+ expect(statSync(credsPath).mode & 0o777).toBe(0o600);
138
+ expect(statSync(join(tmpHome, '.aismemory')).mode & 0o777).toBe(0o700);
139
+ }
140
+ const printed = deps.out.join('');
141
+ expect(printed).not.toContain('provisional-bearer-secret');
142
+ expect(printed).not.toContain(BEARER.split('.')[1]);
143
+ expect(JSON.parse(printed)).toMatchObject({ ok: true, credentialsSaved: true, credentialsFile: credsPath });
144
+ });
145
+ it('still prints the bond link when the credentials save fails', async () => {
146
+ // A file where the credentials directory should be makes mkdir throw.
147
+ writeFileSync(join(tmpHome, '.aismemory'), 'not a directory');
148
+ const deps = makeDeps({ env: { T: TOKEN } });
149
+ await main(['accept', '--token-env', 'T'], deps);
150
+ const printed = deps.out.join('');
151
+ expect(printed).not.toContain('provisional-bearer-secret');
152
+ const parsed = JSON.parse(printed);
153
+ expect(parsed).toMatchObject({ ok: true, claimUrl: 'https://www.agentsandswarms.ai/claim/abc', credentialsSaved: false });
154
+ expect(typeof parsed['credentialsError']).toBe('string');
155
+ });
156
+ it('never overwrites an existing credentials file', async () => {
157
+ mkdirSync(join(tmpHome, '.aismemory'), { recursive: true });
158
+ writeFileSync(credsPath, '{"token":"existing-bonded-agent"}');
159
+ const deps = makeDeps({ env: { T: TOKEN } });
160
+ await main(['accept', '--token-env', 'T'], deps);
161
+ expect(readFileSync(credsPath, 'utf-8')).toBe('{"token":"existing-bonded-agent"}');
162
+ const printed = deps.out.join('');
163
+ expect(printed).not.toContain('provisional-bearer-secret');
164
+ expect(JSON.parse(printed)).toMatchObject({ ok: true, credentialsSaved: false, credentialsFile: credsPath });
165
+ });
96
166
  it('fails without calling the service when the env var is empty', async () => {
97
167
  const deps = makeDeps({ env: {} });
98
168
  await expect(main(['accept', '--token-env', 'AIS_FRIEND_INVITE_TOKEN'], deps)).rejects.toThrow(/empty or not set/);
@@ -114,5 +184,99 @@ describe('aismemory invite accept', () => {
114
184
  });
115
185
  await expect(main(['accept', '--token-env', 'T'], deps)).rejects.toThrow('This invite is not valid.');
116
186
  });
187
+ describe('credentials target (CORBOT-A9CB52CF)', () => {
188
+ it('saves under agents/<new agent id>/ when AIS_AGENT_ID names another agent', async () => {
189
+ const deps = makeDeps({ env: { T: TOKEN, AIS_AGENT_ID: 'other-agent' }, credentialsPath: undefined, home: tmpHome });
190
+ await main(['accept', '--token-env', 'T'], deps);
191
+ const expected = join(tmpHome, '.aismemory', 'agents', 'agent-1', 'credentials.json');
192
+ expect(JSON.parse(readFileSync(expected, 'utf-8'))).toMatchObject({ agentId: 'agent-1', token: BEARER });
193
+ expect(existsSync(join(tmpHome, '.aismemory', 'agents', 'other-agent'))).toBe(false);
194
+ expect(JSON.parse(deps.out.join(''))).toMatchObject({ credentialsSaved: true, credentialsFile: expected });
195
+ });
196
+ it('skips the save when the new agent id is not a safe path segment', async () => {
197
+ const unsafe = '../escape';
198
+ const deps = makeDeps({
199
+ env: { T: TOKEN, AIS_AGENT_ID: 'other-agent' },
200
+ credentialsPath: undefined,
201
+ home: tmpHome,
202
+ fetchImpl: vi.fn(async () => okResponse({ agentId: unsafe, bearerToken: jwtFor({ sub: unsafe, agent_id: unsafe, tenant_id: TENANT_ID }) })),
203
+ });
204
+ await main(['accept', '--token-env', 'T'], deps);
205
+ expect(existsSync(join(tmpHome, '.aismemory'))).toBe(false);
206
+ const parsed = JSON.parse(deps.out.join(''));
207
+ expect(parsed).toMatchObject({ ok: true, credentialsSaved: false });
208
+ expect(parsed['credentialsError']).toMatch(/not a safe path segment/);
209
+ });
210
+ it('skips the save when AIS_CREDENTIALS_FILE is set and AIS_AGENT_ID names another agent', async () => {
211
+ const deps = makeDeps({
212
+ env: { T: TOKEN, AIS_AGENT_ID: 'other-agent', AIS_CREDENTIALS_FILE: credsPath },
213
+ credentialsPath: undefined,
214
+ home: tmpHome,
215
+ });
216
+ await main(['accept', '--token-env', 'T'], deps);
217
+ expect(existsSync(join(tmpHome, '.aismemory'))).toBe(false);
218
+ const parsed = JSON.parse(deps.out.join(''));
219
+ expect(parsed).toMatchObject({ ok: true, credentialsSaved: false });
220
+ expect(parsed['credentialsError']).toMatch(/AIS_CREDENTIALS_FILE is set/);
221
+ });
222
+ it('accepts a JWT that carries only one agent claim matching the reply', async () => {
223
+ for (const claims of [{ sub: 'agent-1', tenant_id: TENANT_ID }, { agent_id: 'agent-1', tenant_id: TENANT_ID }]) {
224
+ rmSync(join(tmpHome, '.aismemory'), { recursive: true, force: true });
225
+ const deps = makeDeps({
226
+ env: { T: TOKEN },
227
+ fetchImpl: vi.fn(async () => okResponse({ bearerToken: jwtFor(claims) })),
228
+ });
229
+ await main(['accept', '--token-env', 'T'], deps);
230
+ expect(JSON.parse(deps.out.join(''))).toMatchObject({ credentialsSaved: true });
231
+ }
232
+ });
233
+ it('refuses to save when the reply agentId differs from the JWT agent', async () => {
234
+ for (const claims of [
235
+ { sub: 'agent-2', agent_id: 'agent-2', tenant_id: TENANT_ID },
236
+ { sub: 'agent-1', agent_id: 'agent-2', tenant_id: TENANT_ID },
237
+ { tenant_id: TENANT_ID },
238
+ ]) {
239
+ const deps = makeDeps({
240
+ env: { T: TOKEN },
241
+ fetchImpl: vi.fn(async () => okResponse({ bearerToken: jwtFor(claims) })),
242
+ });
243
+ await main(['accept', '--token-env', 'T'], deps);
244
+ expect(existsSync(credsPath)).toBe(false);
245
+ const printed = deps.out.join('');
246
+ expect(printed).not.toContain('provisional-bearer-secret');
247
+ const parsed = JSON.parse(printed);
248
+ expect(parsed).toMatchObject({ ok: true, claimUrl: 'https://www.agentsandswarms.ai/claim/abc', credentialsSaved: false });
249
+ expect(parsed['credentialsError']).toMatch(/does not match the bearer token/);
250
+ }
251
+ });
252
+ it('hints when an expired credentials file blocks the save, and leaves it untouched', async () => {
253
+ mkdirSync(join(tmpHome, '.aismemory'), { recursive: true });
254
+ const stale = JSON.stringify({ token: 'old', agentId: 'agent-0', tenantId: TENANT_ID, expiresAt: '2020-01-01T00:00:00.000Z' });
255
+ writeFileSync(credsPath, stale);
256
+ const deps = makeDeps({ env: { T: TOKEN } });
257
+ await main(['accept', '--token-env', 'T'], deps);
258
+ expect(readFileSync(credsPath, 'utf-8')).toBe(stale);
259
+ const parsed = JSON.parse(deps.out.join(''));
260
+ expect(parsed).toMatchObject({ credentialsSaved: false, credentialsFile: credsPath });
261
+ expect(parsed['humanMessage']).toContain(`An expired credentials file at ${credsPath}`);
262
+ expect(String(parsed['humanMessage']).split('\n')).toHaveLength(1);
263
+ });
264
+ it.skipIf(process.platform === 'win32')('never reads a FIFO at the credentials path (a blocking read would hide the bond link)', async () => {
265
+ mkdirSync(join(tmpHome, '.aismemory'), { recursive: true });
266
+ execFileSync('mkfifo', [credsPath]);
267
+ const deps = makeDeps({ env: { T: TOKEN } });
268
+ await main(['accept', '--token-env', 'T'], deps);
269
+ const parsed = JSON.parse(deps.out.join(''));
270
+ expect(parsed).toMatchObject({ ok: true, credentialsSaved: false });
271
+ expect(parsed).not.toHaveProperty('humanMessage');
272
+ });
273
+ it('gives no expired hint when the existing file is still live', async () => {
274
+ mkdirSync(join(tmpHome, '.aismemory'), { recursive: true });
275
+ writeFileSync(credsPath, JSON.stringify({ token: 'live', expiresAt: '2999-01-01T00:00:00.000Z' }));
276
+ const deps = makeDeps({ env: { T: TOKEN } });
277
+ await main(['accept', '--token-env', 'T'], deps);
278
+ expect(JSON.parse(deps.out.join(''))).not.toHaveProperty('humanMessage');
279
+ });
280
+ });
117
281
  });
118
282
  //# sourceMappingURL=invite-accept.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invite-accept.test.js","sourceRoot":"","sources":["../../src/__tests__/invite-accept.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invite-accept.test.js","sourceRoot":"","sources":["../../src/__tests__/invite-accept.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ const page2 = Array.from({ length: 7 }, (_, i) => ({ id: `id-${20 + i}`, name: `
5
5
  describe('listAllAgents follows pagination', () => {
6
6
  let server;
7
7
  let baseUrl = '';
8
+ let listAllAgents;
9
+ const originalFetch = globalThis.fetch;
8
10
  beforeAll(async () => {
9
11
  server = createServer((req, res) => {
10
12
  const url = new URL(req.url ?? '/', 'http://localhost');
@@ -20,28 +22,28 @@ describe('listAllAgents follows pagination', () => {
20
22
  const addr = server.address();
21
23
  baseUrl = typeof addr === 'object' && addr ? `http://127.0.0.1:${addr.port}` : '';
22
24
  });
23
- afterAll(() => server.close());
24
- it('aggregates every page and preserves order', async () => {
25
+ afterAll(() => {
26
+ vi.unstubAllEnvs();
27
+ globalThis.fetch = originalFetch;
28
+ server.close();
29
+ });
30
+ beforeAll(async () => {
25
31
  // Mock fetch to redirect all requests to our fake server, regardless of origin
26
- const originalFetch = globalThis.fetch;
27
32
  globalThis.fetch = vi.fn(async (input, init) => {
28
33
  const url = new URL(String(input));
29
34
  const testUrl = new URL(url.pathname + url.search, baseUrl);
30
35
  const response = await originalFetch(testUrl.toString(), init);
31
36
  return response;
32
37
  });
33
- try {
34
- vi.stubEnv('AIS_URL', baseUrl);
35
- const { listAllAgents } = await import('../index.js');
36
- const agents = await listAllAgents('test-token');
37
- expect(agents).toHaveLength(27);
38
- expect(agents[0].id).toBe('id-0');
39
- expect(agents[26].id).toBe('id-26');
40
- }
41
- finally {
42
- vi.unstubAllEnvs();
43
- globalThis.fetch = originalFetch;
44
- }
38
+ vi.stubEnv('AIS_URL', baseUrl);
39
+ // Module transformation belongs to fixture setup, outside the pagination deadline.
40
+ ({ listAllAgents } = await import('../index.js'));
41
+ });
42
+ it('aggregates every page and preserves order', async () => {
43
+ const agents = await listAllAgents('test-token');
44
+ expect(agents).toHaveLength(27);
45
+ expect(agents[0].id).toBe('id-0');
46
+ expect(agents[26].id).toBe('id-26');
45
47
  });
46
48
  });
47
49
  //# sourceMappingURL=list-all-agents.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-all-agents.test.js","sourceRoot":"","sources":["../../src/__tests__/list-all-agents.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-all-agents.test.js","sourceRoot":"","sources":["../../src/__tests__/list-all-agents.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
4
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
+ import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
6
+ import { AIS_MCP_INSTRUCTIONS } from '../mcp-instructions.js';
7
+ describe('MCP initialize instructions (CORBOT-D5632FCE)', () => {
8
+ it('a Server built with the options used in index.ts returns the instructions on initialize', async () => {
9
+ const server = new Server({ name: 'aismemory', version: '0.0.0' }, { capabilities: { tools: {}, prompts: {} }, instructions: AIS_MCP_INSTRUCTIONS });
10
+ const client = new Client({ name: 'test-client', version: '0.0.0' });
11
+ const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
12
+ await Promise.all([server.connect(serverTransport), client.connect(clientTransport)]);
13
+ expect(client.getInstructions()).toBe(AIS_MCP_INSTRUCTIONS);
14
+ expect(AIS_MCP_INSTRUCTIONS).toContain('agent_load');
15
+ await client.close();
16
+ await server.close();
17
+ });
18
+ it('every Server constructed in index.ts passes the instructions', () => {
19
+ const source = readFileSync(new URL('../index.ts', import.meta.url), 'utf8');
20
+ const servers = source.match(/new Server\(/g) ?? [];
21
+ const withInstructions = source.match(/instructions: AIS_MCP_INSTRUCTIONS/g) ?? [];
22
+ expect(servers.length).toBeGreaterThan(0);
23
+ expect(withInstructions.length).toBe(servers.length);
24
+ });
25
+ });
26
+ //# sourceMappingURL=mcp-instructions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-instructions.test.js","sourceRoot":"","sources":["../../src/__tests__/mcp-instructions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EACvC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,CACjF,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAChF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAErD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,IAAI,EAAE,CAAC;QACnF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -10,7 +10,9 @@ import { join } from 'node:path';
10
10
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
11
11
  import { ActivityTracker } from '../auto-handoff.js';
12
12
  import { createOAuthCallToolHandler, createAgentKeyCallToolHandler, createRunPassCallToolHandler, createWorkspaceKeyCallToolHandler, } from '../mcp/tools.js';
13
+ import { DECLARED_AGENT_HEADER, setDeclaredAgentSource, withDeclaredAgent } from '../declared-agent.js';
13
14
  import { readPackageVersion } from '../version-check.js';
15
+ import { setStartupIdentity, setServerNameConflicts } from '../startup-identity.js';
14
16
  import { identityCredentialFingerprint, verifyPinnedIdentity } from '../session-identity.js';
15
17
  const aisGet = vi.hoisted(() => vi.fn());
16
18
  const aisPost = vi.hoisted(() => vi.fn());
@@ -103,6 +105,32 @@ describe('createOAuthCallToolHandler', () => {
103
105
  aismemoryVersion: readPackageVersion(),
104
106
  });
105
107
  });
108
+ it('adds the startup credential source and server-name conflicts to whoami (CORBOT-5D16CF2A)', async () => {
109
+ aisGet.mockResolvedValue({ success: true, data: { id: 'agent-1' } });
110
+ const conflict = {
111
+ name: 'aismemory',
112
+ scopes: ['project (/p/.mcp.json)', 'user (/h/.claude.json)'],
113
+ winner: 'project (/p/.mcp.json)',
114
+ winnerCredentialEnv: [],
115
+ ignoredCredentialEnv: ['user (/h/.claude.json) sets AIS_API_KEY'],
116
+ };
117
+ setStartupIdentity({ clientVersion: readPackageVersion(), agentId: 'agent-1', credentialSource: 'owner session file /h/.aismemory/credentials.json' });
118
+ setServerNameConflicts([conflict]);
119
+ try {
120
+ const res = await makeHarness().handler(call('whoami'));
121
+ expect(JSON.parse(res.content[0].text)).toEqual({
122
+ success: true,
123
+ data: { id: 'agent-1' },
124
+ aismemoryVersion: readPackageVersion(),
125
+ credentialSource: 'owner session file /h/.aismemory/credentials.json',
126
+ mcpServerNameConflicts: [conflict],
127
+ });
128
+ }
129
+ finally {
130
+ setStartupIdentity(null);
131
+ setServerNameConflicts([]);
132
+ }
133
+ });
106
134
  it('routes remember to POST /v1/agents/<id>/memory with the parsed defaults', async () => {
107
135
  aisPost.mockResolvedValue({ success: true });
108
136
  const h = makeHarness();
@@ -188,6 +216,35 @@ describe('createOAuthCallToolHandler', () => {
188
216
  expect(JSON.parse(res.content[0].text)).toMatchObject({ success: true, agentId: 'agent-2', name: 'Two' });
189
217
  expect(h.creds()?.agentId).toBe('agent-2');
190
218
  });
219
+ it('agent_load verifies the target declaring the TARGET id, not the old session agent (CORBOT-84D2D4AD)', async () => {
220
+ const OLD = 'f6cc4704-9e88-4f2b-8012-259fec9370ec';
221
+ const TARGET = 'a436450e-8349-4137-9bc3-08609acd13b8';
222
+ setDeclaredAgentSource(() => OLD);
223
+ const declaredAtResolve = [];
224
+ const declaredAtVerify = [];
225
+ aisGet.mockImplementation(async () => {
226
+ declaredAtVerify.push(withDeclaredAgent({})[DECLARED_AGENT_HEADER]);
227
+ return { success: true, data: { id: TARGET } };
228
+ });
229
+ let identity = { version: 1, source: 'env', agentId: OLD };
230
+ const h = makeHarness({
231
+ getSessionIdentity: () => identity,
232
+ setSessionIdentity: (next) => { identity = next; },
233
+ resolveAgentForLoad: async () => {
234
+ declaredAtResolve.push(withDeclaredAgent({})[DECLARED_AGENT_HEADER]);
235
+ return { id: TARGET, name: 'Target', status: 'active' };
236
+ },
237
+ });
238
+ try {
239
+ const res = await h.handler(call('agent_load', { query: 'Target' }));
240
+ expect(res.isError).toBeUndefined();
241
+ expect(declaredAtResolve).toEqual([undefined]);
242
+ expect(declaredAtVerify[0]).toBe(TARGET);
243
+ }
244
+ finally {
245
+ setDeclaredAgentSource(() => process.env['AIS_AGENT_ID']);
246
+ }
247
+ });
191
248
  it('agent_load clears the previous OAuth confirmation before the next write gate', async () => {
192
249
  const identityBeforeSwitch = { version: 1, source: 'env', agentId: 'agent-1' };
193
250
  const credentialKey = identityCredentialFingerprint('oauth-bearer', 'token-1');
@@ -261,6 +318,14 @@ describe('createOAuthCallToolHandler', () => {
261
318
  await h.handler(call('full_context', { view: 'lean', maxTokens: 1500 }));
262
319
  expect(aisGet).toHaveBeenCalledWith('/v1/agents/agent-1/full-context?view=lean&maxTokens=1500', 'token-1');
263
320
  });
321
+ // CORBOT-B1770E61: the token path must forward orderBy like the key modes.
322
+ it('recall forwards orderBy=newest to the memory route', async () => {
323
+ aisGet.mockResolvedValue({ success: true, data: { memories: [] } });
324
+ const h = makeHarness();
325
+ await h.handler(call('recall', { query: 'canary', type: 'task', orderBy: 'newest' }));
326
+ const path = String(aisGet.mock.calls[0][0]);
327
+ expect(new URL(path, 'https://ais.test').searchParams.get('orderBy')).toBe('newest');
328
+ });
264
329
  it('full_context sends no query string when no parameters are supplied', async () => {
265
330
  aisGet.mockResolvedValue({ success: true, data: {} });
266
331
  const h = makeHarness();