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.
- package/README.md +146 -3
- package/dist/__tests__/agent-key-mode.test.js +46 -5
- package/dist/__tests__/agent-key-mode.test.js.map +1 -1
- package/dist/__tests__/ais-http.test.js +22 -0
- package/dist/__tests__/ais-http.test.js.map +1 -1
- package/dist/__tests__/auto-enroll-key.test.js +20 -1
- package/dist/__tests__/auto-enroll-key.test.js.map +1 -1
- package/dist/__tests__/cli-info.test.js +8 -4
- package/dist/__tests__/cli-info.test.js.map +1 -1
- package/dist/__tests__/client-credential-expiry.test.d.ts +1 -0
- package/dist/__tests__/client-credential-expiry.test.js +319 -0
- package/dist/__tests__/client-credential-expiry.test.js.map +1 -0
- package/dist/__tests__/declared-agent.test.d.ts +1 -0
- package/dist/__tests__/declared-agent.test.js +60 -0
- package/dist/__tests__/declared-agent.test.js.map +1 -0
- package/dist/__tests__/doctor.test.js +21 -2
- package/dist/__tests__/doctor.test.js.map +1 -1
- package/dist/__tests__/dream-poll.test.d.ts +1 -0
- package/dist/__tests__/dream-poll.test.js +130 -0
- package/dist/__tests__/dream-poll.test.js.map +1 -0
- package/dist/__tests__/enable-key-auth.test.d.ts +1 -0
- package/dist/__tests__/enable-key-auth.test.js +180 -0
- package/dist/__tests__/enable-key-auth.test.js.map +1 -0
- package/dist/__tests__/existing-hashes.test.js +3 -6
- package/dist/__tests__/existing-hashes.test.js.map +1 -1
- package/dist/__tests__/full-context-view-forwarding.test.js +20 -1
- package/dist/__tests__/full-context-view-forwarding.test.js.map +1 -1
- package/dist/__tests__/hooks.test.d.ts +1 -0
- package/dist/__tests__/hooks.test.js +455 -0
- package/dist/__tests__/hooks.test.js.map +1 -0
- package/dist/__tests__/hydration.test.js +2 -0
- package/dist/__tests__/hydration.test.js.map +1 -1
- package/dist/__tests__/install.test.js +28 -1
- package/dist/__tests__/install.test.js.map +1 -1
- package/dist/__tests__/invite-accept.test.js +167 -3
- package/dist/__tests__/invite-accept.test.js.map +1 -1
- package/dist/__tests__/list-all-agents.test.js +17 -15
- package/dist/__tests__/list-all-agents.test.js.map +1 -1
- package/dist/__tests__/mcp-instructions.test.d.ts +1 -0
- package/dist/__tests__/mcp-instructions.test.js +26 -0
- package/dist/__tests__/mcp-instructions.test.js.map +1 -0
- package/dist/__tests__/mcp-tools.test.js +65 -0
- package/dist/__tests__/mcp-tools.test.js.map +1 -1
- package/dist/__tests__/memory-export.test.d.ts +1 -0
- package/dist/__tests__/memory-export.test.js +78 -0
- package/dist/__tests__/memory-export.test.js.map +1 -0
- package/dist/__tests__/owner-credentials.test.d.ts +1 -0
- package/dist/__tests__/owner-credentials.test.js +250 -0
- package/dist/__tests__/owner-credentials.test.js.map +1 -0
- package/dist/__tests__/owner-keychain-agent-load.test.d.ts +1 -0
- package/dist/__tests__/owner-keychain-agent-load.test.js +57 -0
- package/dist/__tests__/owner-keychain-agent-load.test.js.map +1 -0
- package/dist/__tests__/recall-order-by.test.d.ts +1 -0
- package/dist/__tests__/recall-order-by.test.js +115 -0
- package/dist/__tests__/recall-order-by.test.js.map +1 -0
- package/dist/__tests__/remember-duplicate-truth.test.js +11 -0
- package/dist/__tests__/remember-duplicate-truth.test.js.map +1 -1
- package/dist/__tests__/resolve-agent-preference.test.js +19 -8
- package/dist/__tests__/resolve-agent-preference.test.js.map +1 -1
- package/dist/__tests__/signin-keychain.test.d.ts +1 -0
- package/dist/__tests__/signin-keychain.test.js +79 -0
- package/dist/__tests__/signin-keychain.test.js.map +1 -0
- package/dist/__tests__/startup-identity.test.d.ts +1 -0
- package/dist/__tests__/startup-identity.test.js +213 -0
- package/dist/__tests__/startup-identity.test.js.map +1 -0
- package/dist/__tests__/sync-auth.test.d.ts +1 -0
- package/dist/__tests__/sync-auth.test.js +69 -0
- package/dist/__tests__/sync-auth.test.js.map +1 -0
- package/dist/__tests__/sync-doc.test.d.ts +1 -0
- package/dist/__tests__/sync-doc.test.js +13 -0
- package/dist/__tests__/sync-doc.test.js.map +1 -0
- package/dist/__tests__/sync-memory-cli.test.js +1 -1
- package/dist/__tests__/sync-memory-cli.test.js.map +1 -1
- package/dist/__tests__/tool-args.test.js +6 -0
- package/dist/__tests__/tool-args.test.js.map +1 -1
- package/dist/agent-key-mode.js +22 -22
- package/dist/agent-key-mode.js.map +1 -1
- package/dist/agent-preference.d.ts +4 -0
- package/dist/agent-preference.js +7 -1
- package/dist/agent-preference.js.map +1 -1
- package/dist/ais-http-error.d.ts +5 -0
- package/dist/ais-http-error.js +10 -0
- package/dist/ais-http-error.js.map +1 -1
- package/dist/ais-http.js +8 -4
- package/dist/ais-http.js.map +1 -1
- package/dist/auto-handoff.js +2 -1
- package/dist/auto-handoff.js.map +1 -1
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/doctor.js +19 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/enable-key-auth.js +39 -18
- package/dist/cli/enable-key-auth.js.map +1 -1
- package/dist/cli/export-harness.d.ts +13 -0
- package/dist/cli/export-harness.js +110 -0
- package/dist/cli/export-harness.js.map +1 -0
- package/dist/cli/hooks.d.ts +62 -0
- package/dist/cli/hooks.js +634 -0
- package/dist/cli/hooks.js.map +1 -0
- package/dist/cli/install.d.ts +4 -0
- package/dist/cli/install.js +44 -5
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/invite-accept.d.ts +36 -1
- package/dist/cli/invite-accept.js +135 -1
- package/dist/cli/invite-accept.js.map +1 -1
- package/dist/cli/owner-credentials.d.ts +52 -0
- package/dist/cli/owner-credentials.js +387 -0
- package/dist/cli/owner-credentials.js.map +1 -0
- package/dist/cli/sync-memory.js +7 -9
- package/dist/cli/sync-memory.js.map +1 -1
- package/dist/cli-info.js +6 -1
- package/dist/cli-info.js.map +1 -1
- package/dist/credential-expiry.d.ts +10 -0
- package/dist/credential-expiry.js +41 -0
- package/dist/credential-expiry.js.map +1 -0
- package/dist/declared-agent.d.ts +20 -0
- package/dist/declared-agent.js +40 -0
- package/dist/declared-agent.js.map +1 -0
- package/dist/device-poll.d.ts +1 -0
- package/dist/device-poll.js.map +1 -1
- package/dist/dream-poll.d.ts +19 -0
- package/dist/dream-poll.js +93 -0
- package/dist/dream-poll.js.map +1 -0
- package/dist/env-agent.d.ts +6 -1
- package/dist/env-agent.js +18 -5
- package/dist/env-agent.js.map +1 -1
- package/dist/hydration.js +2 -1
- package/dist/hydration.js.map +1 -1
- package/dist/index.js +124 -16
- package/dist/index.js.map +1 -1
- package/dist/key-auth.d.ts +13 -3
- package/dist/key-auth.js +27 -5
- package/dist/key-auth.js.map +1 -1
- package/dist/mcp/tools.js +37 -20
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp-instructions.d.ts +6 -0
- package/dist/mcp-instructions.js +7 -0
- package/dist/mcp-instructions.js.map +1 -0
- package/dist/memory-export.d.ts +30 -0
- package/dist/memory-export.js +116 -0
- package/dist/memory-export.js.map +1 -0
- package/dist/pipeline/bulk-store.d.ts +2 -5
- package/dist/pipeline/bulk-store.js +2 -4
- package/dist/pipeline/bulk-store.js.map +1 -1
- package/dist/pipeline/existing-hashes.d.ts +2 -5
- package/dist/pipeline/existing-hashes.js +1 -2
- package/dist/pipeline/existing-hashes.js.map +1 -1
- package/dist/pipeline/sync-auth.d.ts +12 -0
- package/dist/pipeline/sync-auth.js +64 -0
- package/dist/pipeline/sync-auth.js.map +1 -0
- package/dist/refresh.js +2 -1
- package/dist/refresh.js.map +1 -1
- package/dist/run-pass-mode.js +8 -13
- package/dist/run-pass-mode.js.map +1 -1
- package/dist/signin-keychain.d.ts +54 -0
- package/dist/signin-keychain.js +200 -0
- package/dist/signin-keychain.js.map +1 -0
- package/dist/startup-identity.d.ts +71 -0
- package/dist/startup-identity.js +213 -0
- package/dist/startup-identity.js.map +1 -0
- package/dist/tool-args.d.ts +10 -0
- package/dist/tool-args.js +39 -0
- package/dist/tool-args.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/workspace-key-mode.js +19 -19
- package/dist/workspace-key-mode.js.map +1 -1
- 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',
|
|
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 {
|
|
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
|
-
|
|
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:
|
|
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(() =>
|
|
24
|
-
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEvE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC9G,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEvH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,GAAG,EAAE,CAAC;
|
|
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();
|