aismemory 0.8.0 → 0.8.2

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 (111) 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 +23 -3
  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__/credential-resolution.test.js +51 -3
  14. package/dist/__tests__/credential-resolution.test.js.map +1 -1
  15. package/dist/__tests__/credential-whoami.test.d.ts +8 -0
  16. package/dist/__tests__/credential-whoami.test.js +93 -0
  17. package/dist/__tests__/credential-whoami.test.js.map +1 -0
  18. package/dist/__tests__/device-flow-gate-e2e.test.js +6 -4
  19. package/dist/__tests__/device-flow-gate-e2e.test.js.map +1 -1
  20. package/dist/__tests__/doctor.test.js +39 -13
  21. package/dist/__tests__/doctor.test.js.map +1 -1
  22. package/dist/__tests__/full-context-view-forwarding.test.d.ts +1 -0
  23. package/dist/__tests__/full-context-view-forwarding.test.js +80 -0
  24. package/dist/__tests__/full-context-view-forwarding.test.js.map +1 -0
  25. package/dist/__tests__/hydration.test.js +56 -1
  26. package/dist/__tests__/hydration.test.js.map +1 -1
  27. package/dist/__tests__/install.test.d.ts +1 -0
  28. package/dist/__tests__/install.test.js +126 -0
  29. package/dist/__tests__/install.test.js.map +1 -0
  30. package/dist/__tests__/integration.test.js +1 -0
  31. package/dist/__tests__/integration.test.js.map +1 -1
  32. package/dist/__tests__/lost-agent.test.js +51 -0
  33. package/dist/__tests__/lost-agent.test.js.map +1 -1
  34. package/dist/__tests__/mcp-tools.test.js +175 -2
  35. package/dist/__tests__/mcp-tools.test.js.map +1 -1
  36. package/dist/__tests__/pending-device-flow-e2e.test.js +22 -1
  37. package/dist/__tests__/pending-device-flow-e2e.test.js.map +1 -1
  38. package/dist/__tests__/pending-device-flow-resume.test.d.ts +1 -0
  39. package/dist/__tests__/pending-device-flow-resume.test.js +104 -0
  40. package/dist/__tests__/pending-device-flow-resume.test.js.map +1 -0
  41. package/dist/__tests__/prompt-resource.test.js +1 -0
  42. package/dist/__tests__/prompt-resource.test.js.map +1 -1
  43. package/dist/__tests__/refresh.test.js +24 -2
  44. package/dist/__tests__/refresh.test.js.map +1 -1
  45. package/dist/__tests__/request-timeout.test.d.ts +1 -0
  46. package/dist/__tests__/request-timeout.test.js +40 -0
  47. package/dist/__tests__/request-timeout.test.js.map +1 -0
  48. package/dist/__tests__/resolve-agent-preference-e2e.test.js +15 -3
  49. package/dist/__tests__/resolve-agent-preference-e2e.test.js.map +1 -1
  50. package/dist/__tests__/retry-after.test.js +10 -4
  51. package/dist/__tests__/retry-after.test.js.map +1 -1
  52. package/dist/__tests__/run-pass-mode.test.d.ts +1 -0
  53. package/dist/__tests__/run-pass-mode.test.js +130 -0
  54. package/dist/__tests__/run-pass-mode.test.js.map +1 -0
  55. package/dist/__tests__/session-identity.test.d.ts +1 -0
  56. package/dist/__tests__/session-identity.test.js +213 -0
  57. package/dist/__tests__/session-identity.test.js.map +1 -0
  58. package/dist/__tests__/workspace-key-mode.test.js +194 -16
  59. package/dist/__tests__/workspace-key-mode.test.js.map +1 -1
  60. package/dist/agent-key-mode.js +70 -30
  61. package/dist/agent-key-mode.js.map +1 -1
  62. package/dist/ais-http-error.d.ts +3 -0
  63. package/dist/ais-http-error.js +8 -1
  64. package/dist/ais-http-error.js.map +1 -1
  65. package/dist/ais-http.d.ts +2 -0
  66. package/dist/ais-http.js +24 -14
  67. package/dist/ais-http.js.map +1 -1
  68. package/dist/auto-handoff.js +33 -1
  69. package/dist/auto-handoff.js.map +1 -1
  70. package/dist/cli/doctor.d.ts +4 -0
  71. package/dist/cli/doctor.js +60 -18
  72. package/dist/cli/doctor.js.map +1 -1
  73. package/dist/cli/install.d.ts +6 -0
  74. package/dist/cli/install.js +52 -0
  75. package/dist/cli/install.js.map +1 -0
  76. package/dist/cli/orientation.d.ts +2 -0
  77. package/dist/cli/orientation.js +31 -1
  78. package/dist/cli/orientation.js.map +1 -1
  79. package/dist/credential-whoami.d.ts +50 -0
  80. package/dist/credential-whoami.js +91 -0
  81. package/dist/credential-whoami.js.map +1 -0
  82. package/dist/hydration.js +8 -0
  83. package/dist/hydration.js.map +1 -1
  84. package/dist/index.js +180 -29
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp/tools.d.ts +10 -0
  87. package/dist/mcp/tools.js +81 -6
  88. package/dist/mcp/tools.js.map +1 -1
  89. package/dist/pending-device-flow.d.ts +31 -0
  90. package/dist/pending-device-flow.js +38 -0
  91. package/dist/pending-device-flow.js.map +1 -1
  92. package/dist/refresh.js +5 -1
  93. package/dist/refresh.js.map +1 -1
  94. package/dist/request-timeout.d.ts +26 -0
  95. package/dist/request-timeout.js +49 -0
  96. package/dist/request-timeout.js.map +1 -0
  97. package/dist/run-pass-mode.d.ts +16 -0
  98. package/dist/run-pass-mode.js +274 -0
  99. package/dist/run-pass-mode.js.map +1 -0
  100. package/dist/session-identity.d.ts +15 -1
  101. package/dist/session-identity.js +102 -12
  102. package/dist/session-identity.js.map +1 -1
  103. package/dist/telemetry.d.ts +1 -1
  104. package/dist/telemetry.js.map +1 -1
  105. package/dist/tool-args.d.ts +11 -1
  106. package/dist/tool-args.js +17 -1
  107. package/dist/tool-args.js.map +1 -1
  108. package/dist/types.d.ts +32 -0
  109. package/dist/workspace-key-mode.js +93 -26
  110. package/dist/workspace-key-mode.js.map +1 -1
  111. package/package.json +4 -6
package/dist/mcp/tools.js CHANGED
@@ -9,18 +9,21 @@
9
9
  * is reached through the context objects rather than a closure.
10
10
  */
11
11
  import { aisGet, aisPost, aisPatch } from '../ais-http.js';
12
+ import { orient } from '../cli/orientation.js';
12
13
  import { isAuthErrorResult } from '../auth-staleness.js';
13
14
  import { saveAgentPreference } from '../agent-preference.js';
14
15
  import { hydrateIdentity } from '../hydration.js';
15
16
  import { emitTelemetry, hashAgentId } from '../telemetry.js';
16
17
  import { duplicateMemoryResult } from '../ais-http-error.js';
17
18
  import { parseAgentLoadArgs, parseEmptyToolArgs, parseHandoffArgs, parseRecallArgs, parseFullContextArgs, parseRememberArgs, parseInboxSendArgs, parseInboxReadArgs, parseInboxAckArgs, parseGoalCreateArgs, parseGoalListArgs, parseGoalUpdateProgressArgs, parseGoalCompleteArgs, } from '../tool-args.js';
18
- import { assertPinnedAgent, requiresIdentityGate, switchedTo, verifyPinnedIdentity } from '../session-identity.js';
19
+ import { assertPinnedAgent, clearPinnedIdentityConfirmation, identityCredentialFingerprint, requiresIdentityGate, switchedTo, verifyPinnedIdentity, } from '../session-identity.js';
19
20
  import { readInboxAndMaybeAck } from '../inbox-client.js';
20
21
  import { dispatchToolKeyMode, UNKNOWN_TOOL_KEY_MODE } from '../agent-key-mode.js';
21
22
  import { getUpdateNotice } from '../version-check.js';
22
23
  import { archiveAgent } from '../agent-archive.js';
23
24
  import { dispatchToolWorkspaceKeyMode, UNKNOWN_TOOL_WORKSPACE_KEY_MODE, } from '../workspace-key-mode.js';
25
+ import { dispatchToolRunPassMode, UNKNOWN_TOOL_RUN_PASS_MODE, } from '../run-pass-mode.js';
26
+ import { readRunPassFile } from '../run-pass-mode.js';
24
27
  /**
25
28
  * Tools whose result carries the "a newer aismemory has been published" notice
26
29
  * (CORBOT-7B8A1D16). whoami and full_context are the two orientation calls an
@@ -54,8 +57,9 @@ export function createWorkspaceKeyCallToolHandler(ctx) {
54
57
  const toolStartedAt = Date.now();
55
58
  try {
56
59
  const callConfig = ctx.getActiveConfig();
60
+ const credentialKey = identityCredentialFingerprint('workspace-key', callConfig.workspaceKey);
57
61
  if (requiresIdentityGate(name, rawArgs)) {
58
- await verifyPinnedIdentity(ctx.getSessionIdentity(), callConfig.agentId, () => dispatchToolWorkspaceKeyMode(ctx.aisUrl, callConfig, 'whoami', {}));
62
+ await verifyPinnedIdentity(ctx.getSessionIdentity(), callConfig.agentId, () => dispatchToolWorkspaceKeyMode(ctx.aisUrl, callConfig, 'whoami', {}), { credentialKey });
59
63
  }
60
64
  const result = await dispatchToolWorkspaceKeyMode(ctx.aisUrl, callConfig, name, rawArgs);
61
65
  if (result === UNKNOWN_TOOL_WORKSPACE_KEY_MODE) {
@@ -77,7 +81,11 @@ export function createWorkspaceKeyCallToolHandler(ctx) {
77
81
  const identityBeforeSwitch = ctx.getSessionIdentity();
78
82
  if (identityBeforeSwitch) {
79
83
  const switched = switchedTo(identityBeforeSwitch, switchResult.agentId);
80
- await verifyPinnedIdentity(switched, switchResult.agentId, () => dispatchToolWorkspaceKeyMode(ctx.aisUrl, { ...callConfig, agentId: switchResult.agentId }, 'whoami', {}));
84
+ await verifyPinnedIdentity(switched, switchResult.agentId, () => dispatchToolWorkspaceKeyMode(ctx.aisUrl, { ...callConfig, agentId: switchResult.agentId }, 'whoami', {}), {
85
+ credentialKey,
86
+ freshOnly: true,
87
+ });
88
+ clearPinnedIdentityConfirmation(identityBeforeSwitch, credentialKey);
81
89
  ctx.setSessionIdentity(switched);
82
90
  }
83
91
  ctx.setActiveConfig({ ...ctx.getActiveConfig(), agentId: switchResult.agentId });
@@ -109,6 +117,53 @@ export function createWorkspaceKeyCallToolHandler(ctx) {
109
117
  }
110
118
  };
111
119
  }
120
+ /** `tools/call` handler for run-pass auth mode (CORBOT-662A4B3A). */
121
+ export function createRunPassCallToolHandler(ctx) {
122
+ const { config } = ctx;
123
+ return async (request) => {
124
+ const { name, arguments: args } = request.params;
125
+ const rawArgs = args ?? {};
126
+ ctx.activityTracker.recordToolUse(name);
127
+ const toolStartedAt = Date.now();
128
+ try {
129
+ if (requiresIdentityGate(name, rawArgs)) {
130
+ const runPass = await readRunPassFile(config.runPassFile);
131
+ const credentialKey = identityCredentialFingerprint('run-pass', runPass);
132
+ await verifyPinnedIdentity(ctx.getSessionIdentity(), config.agentId, () => dispatchToolRunPassMode(ctx.aisUrl, config, 'whoami', {}), { credentialKey });
133
+ }
134
+ const result = await dispatchToolRunPassMode(ctx.aisUrl, config, name, rawArgs);
135
+ if (result === UNKNOWN_TOOL_RUN_PASS_MODE) {
136
+ return {
137
+ content: [{ type: 'text', text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
138
+ isError: true,
139
+ };
140
+ }
141
+ emitTelemetry({
142
+ event: 'tool.call',
143
+ tool: name,
144
+ agentIdHash: hashAgentId(config.agentId),
145
+ latencyMs: Date.now() - toolStartedAt,
146
+ status: 'ok',
147
+ });
148
+ return { content: [{ type: 'text', text: JSON.stringify(withUpdateNotice(name, result), null, 2) }] };
149
+ }
150
+ catch (error) {
151
+ const message = error instanceof Error ? error.message : 'Unknown error';
152
+ emitTelemetry({
153
+ event: 'tool.call',
154
+ tool: name,
155
+ agentIdHash: hashAgentId(config.agentId),
156
+ latencyMs: Date.now() - toolStartedAt,
157
+ status: 'error',
158
+ error: message,
159
+ });
160
+ return {
161
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
162
+ isError: true,
163
+ };
164
+ }
165
+ };
166
+ }
112
167
  /** `tools/call` handler for agent-API-key auth mode (CORBOT-B1D3244C). */
113
168
  export function createAgentKeyCallToolHandler(ctx) {
114
169
  const { config } = ctx;
@@ -118,8 +173,9 @@ export function createAgentKeyCallToolHandler(ctx) {
118
173
  ctx.activityTracker.recordToolUse(name);
119
174
  const toolStartedAt = Date.now();
120
175
  try {
176
+ const credentialKey = identityCredentialFingerprint('agent-api-key', config.apiKey);
121
177
  if (requiresIdentityGate(name, rawArgs)) {
122
- await verifyPinnedIdentity(ctx.getSessionIdentity(), config.agentId, () => dispatchToolKeyMode(ctx.aisUrl, config, 'whoami', {}));
178
+ await verifyPinnedIdentity(ctx.getSessionIdentity(), config.agentId, () => dispatchToolKeyMode(ctx.aisUrl, config, 'whoami', {}), { credentialKey });
123
179
  }
124
180
  const result = await dispatchToolKeyMode(ctx.aisUrl, config, name, rawArgs);
125
181
  if (result === UNKNOWN_TOOL_KEY_MODE) {
@@ -172,10 +228,11 @@ export function createOAuthCallToolHandler(ctx) {
172
228
  const UNKNOWN_TOOL = Symbol('unknown-tool');
173
229
  const dispatchTool = async (c) => {
174
230
  const token = c.token;
231
+ const credentialKey = identityCredentialFingerprint('oauth-bearer', token);
175
232
  // agentId is mutable across `agent_load` calls within this session.
176
233
  let agentId = ctx.getSessionIdentity()?.agentId ?? c.agentId;
177
234
  if (requiresIdentityGate(name, rawArgs)) {
178
- await verifyPinnedIdentity(ctx.getSessionIdentity(), agentId, () => aisGet(`/v1/agents/${agentId}`, token));
235
+ await verifyPinnedIdentity(ctx.getSessionIdentity(), agentId, () => aisGet(`/v1/agents/${agentId}`, token), { credentialKey });
179
236
  }
180
237
  let result;
181
238
  switch (name) {
@@ -222,6 +279,13 @@ export function createOAuthCallToolHandler(ctx) {
222
279
  parseEmptyToolArgs(rawArgs);
223
280
  result = await aisGet(`/v1/agents/${agentId}`, token);
224
281
  break;
282
+ case 'orientation_check':
283
+ // Pure, read-only, local comparison — no AIS round trip. orient()
284
+ // validates its own input against the manifest schema and throws
285
+ // on a malformed manifest; the outer catch turns that into the
286
+ // same {error} shape every other tool uses.
287
+ result = orient(rawArgs);
288
+ break;
225
289
  case 'full_context': {
226
290
  const fcArgs = parseFullContextArgs(rawArgs);
227
291
  const fcParams = new URLSearchParams();
@@ -231,6 +295,8 @@ export function createOAuthCallToolHandler(ctx) {
231
295
  fcParams.set('memoriesLimit', String(fcArgs.memoriesLimit));
232
296
  if (fcArgs.view !== undefined)
233
297
  fcParams.set('view', fcArgs.view);
298
+ if (fcArgs.maxTokens !== undefined)
299
+ fcParams.set('maxTokens', String(fcArgs.maxTokens));
234
300
  const fcQs = fcParams.toString();
235
301
  const fcPath = `/v1/agents/${agentId}/full-context${fcQs ? `?${fcQs}` : ''}`;
236
302
  result = await aisGet(fcPath, token);
@@ -262,7 +328,11 @@ export function createOAuthCallToolHandler(ctx) {
262
328
  const identityBeforeSwitch = ctx.getSessionIdentity();
263
329
  if (identityBeforeSwitch) {
264
330
  const switched = switchedTo(identityBeforeSwitch, target.id);
265
- await verifyPinnedIdentity(switched, target.id, () => aisGet(`/v1/agents/${target.id}`, token));
331
+ await verifyPinnedIdentity(switched, target.id, () => aisGet(`/v1/agents/${target.id}`, token), {
332
+ credentialKey,
333
+ freshOnly: true,
334
+ });
335
+ clearPinnedIdentityConfirmation(identityBeforeSwitch, credentialKey);
266
336
  ctx.setSessionIdentity(switched);
267
337
  }
268
338
  ctx.persistClaudeSessionAgentName(process.env.CLAUDE_SESSION_ID, target.name);
@@ -297,6 +367,11 @@ export function createOAuthCallToolHandler(ctx) {
297
367
  status: target.status,
298
368
  memoriesLoaded: loaded?.recentMemories.length ?? 0,
299
369
  goalsLoaded: loaded?.goals.length ?? 0,
370
+ // CORBOT-2DDFC7A0: memoriesLoaded/goalsLoaded say how much arrived
371
+ // but not what was skipped or which rule chose it. The receipt
372
+ // does, and it names the rule's version — so an agent that just
373
+ // switched identity can see the selection instead of guessing.
374
+ receipt: loaded?.receipt ?? null,
300
375
  };
301
376
  break;
302
377
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,25 @@ export interface PendingDeviceFlow {
30
30
  provisionalTenantId: string;
31
31
  /** ISO timestamp of when this flow was started. */
32
32
  startedAt: string;
33
+ /**
34
+ * The live device code, so a later process can resume polling THIS code
35
+ * instead of calling /authorize again (CORBOT-7F3EC71C). Calling authorize
36
+ * expires every unclaimed claim token for the agent (OAuthDeviceService
37
+ * `tryReuseProvisional`), so a respawn used to kill the bond link that was
38
+ * already printed and relayed to the human.
39
+ *
40
+ * Optional: records written before this field existed are still loadable,
41
+ * they simply cannot be resumed.
42
+ */
43
+ deviceCode?: string;
44
+ /** The human-readable code, re-surfaced verbatim when a flow resumes. */
45
+ userCode?: string;
46
+ /** The bond URL, re-surfaced verbatim when a flow resumes. */
47
+ verificationUriComplete?: string;
48
+ /** Server-advised poll interval in seconds. */
49
+ interval?: number;
50
+ /** ISO timestamp at which the device code stops being redeemable. */
51
+ codeExpiresAt?: string;
33
52
  }
34
53
  /**
35
54
  * Sits beside credentials.json, so it follows the same per-agent isolation
@@ -47,3 +66,15 @@ export declare function savePendingDeviceFlow(flow: PendingDeviceFlow, home?: st
47
66
  export declare function loadPendingDeviceFlow(home?: string, now?: number): PendingDeviceFlow | null;
48
67
  /** Drop the record once the flow has bonded (or is known dead). */
49
68
  export declare function clearPendingDeviceFlow(home?: string): void;
69
+ /** Narrowed shape of a pending flow that carries everything a resume needs. */
70
+ export interface ResumableDeviceFlow extends PendingDeviceFlow {
71
+ deviceCode: string;
72
+ userCode: string;
73
+ verificationUriComplete: string;
74
+ codeExpiresAt: string;
75
+ }
76
+ /**
77
+ * True when `flow` carries a device code that has not expired yet, so the
78
+ * caller should resume polling it instead of minting a new one.
79
+ */
80
+ export declare function isResumableDeviceFlow(flow: PendingDeviceFlow | null, now?: number): flow is ResumableDeviceFlow;
@@ -77,6 +77,13 @@ export function loadPendingDeviceFlow(home = homedir(), now = Date.now()) {
77
77
  agentId: typeof parsed.agentId === 'string' ? parsed.agentId : '',
78
78
  provisionalTenantId: typeof parsed.provisionalTenantId === 'string' ? parsed.provisionalTenantId : '',
79
79
  startedAt: typeof parsed.startedAt === 'string' ? parsed.startedAt : '',
80
+ ...(typeof parsed.deviceCode === 'string' ? { deviceCode: parsed.deviceCode } : {}),
81
+ ...(typeof parsed.userCode === 'string' ? { userCode: parsed.userCode } : {}),
82
+ ...(typeof parsed.verificationUriComplete === 'string'
83
+ ? { verificationUriComplete: parsed.verificationUriComplete }
84
+ : {}),
85
+ ...(typeof parsed.interval === 'number' ? { interval: parsed.interval } : {}),
86
+ ...(typeof parsed.codeExpiresAt === 'string' ? { codeExpiresAt: parsed.codeExpiresAt } : {}),
80
87
  };
81
88
  }
82
89
  catch {
@@ -93,4 +100,35 @@ export function clearPendingDeviceFlow(home = homedir()) {
93
100
  // reuse attempt, which degrades to minting.
94
101
  }
95
102
  }
103
+ /**
104
+ * A device code that is still redeemable: the human can open the bond link
105
+ * that was already printed and it will work.
106
+ *
107
+ * `MIN_RESUMABLE_REMAINING_MS` keeps a code that is about to expire out of
108
+ * the resume path — re-surfacing a link with four seconds of life left is
109
+ * worse for the human than minting a fresh one.
110
+ */
111
+ const MIN_RESUMABLE_REMAINING_MS = 60_000;
112
+ /**
113
+ * True when `flow` carries a device code that has not expired yet, so the
114
+ * caller should resume polling it instead of minting a new one.
115
+ */
116
+ export function isResumableDeviceFlow(flow, now = Date.now()) {
117
+ if (!flow)
118
+ return false;
119
+ if (typeof flow.deviceCode !== 'string' || flow.deviceCode.length === 0)
120
+ return false;
121
+ if (typeof flow.userCode !== 'string' || flow.userCode.length === 0)
122
+ return false;
123
+ if (typeof flow.verificationUriComplete !== 'string' ||
124
+ flow.verificationUriComplete.length === 0) {
125
+ return false;
126
+ }
127
+ if (typeof flow.codeExpiresAt !== 'string')
128
+ return false;
129
+ const expiresAt = Date.parse(flow.codeExpiresAt);
130
+ if (!Number.isFinite(expiresAt))
131
+ return false;
132
+ return expiresAt - now >= MIN_RESUMABLE_REMAINING_MS;
133
+ }
96
134
  //# sourceMappingURL=pending-device-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pending-device-flow.js","sourceRoot":"","sources":["../src/pending-device-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pending-device-flow.js","sourceRoot":"","sources":["../src/pending-device-flow.ts"],"names":[],"mappings":"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"}
package/dist/refresh.js CHANGED
@@ -1,9 +1,13 @@
1
+ import { getAisRequestTimeoutMs } from './request-timeout.js';
1
2
  let refreshInterval = null;
2
3
  export function startRefreshTimer(aisUrl, agentId, token, onUpdate, intervalMs = 5 * 60 * 1000) {
3
4
  stopRefreshTimer();
4
5
  refreshInterval = setInterval(async () => {
5
6
  try {
6
- const res = await fetch(`${aisUrl}/v1/agents/${agentId}/memory?limit=20&minImportance=0.5`, { headers: { Authorization: `Bearer ${token}` } });
7
+ const res = await fetch(`${aisUrl}/v1/agents/${agentId}/memory?limit=20&minImportance=0.5`, {
8
+ headers: { Authorization: `Bearer ${token}` },
9
+ signal: AbortSignal.timeout(getAisRequestTimeoutMs()),
10
+ });
7
11
  if (!res.ok)
8
12
  return;
9
13
  const json = await res.json();
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AAEA,IAAI,eAAe,GAA0C,IAAI,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,OAAe,EACf,KAAa,EACb,QAA2C,EAC3C,aAAqB,CAAC,GAAG,EAAE,GAAG,IAAI;IAElC,gBAAgB,EAAE,CAAC;IACnB,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,MAAM,cAAc,OAAO,oCAAoC,EAClE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,CAClD,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YACpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,eAAe,CAAC,CAAC;QAC/B,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../src/refresh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,IAAI,eAAe,GAA0C,IAAI,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,OAAe,EACf,KAAa,EACb,QAA2C,EAC3C,aAAqB,CAAC,GAAG,EAAE,GAAG,IAAI;IAElC,gBAAgB,EAAE,CAAC;IACnB,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,MAAM,cAAc,OAAO,oCAAoC,EAClE;gBACE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;gBAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;aACtD,CACF,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YACpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,eAAe,EAAE,CAAC;QACpB,aAAa,CAAC,eAAe,CAAC,CAAC;QAC/B,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared client-side request timeout for every HTTP call the aismemory MCP
3
+ * server makes to AIS (GitHub issue #6635). A stalled AIS call must fail fast
4
+ * with a clear error instead of hanging the agent process for tens of
5
+ * minutes — that hang previously froze an entire floor session for 6 hours.
6
+ */
7
+ /** Default timeout for an AIS request, in milliseconds. */
8
+ export declare const DEFAULT_AIS_REQUEST_TIMEOUT_MS = 20000;
9
+ /**
10
+ * Resolve the AIS request timeout from AIS_MCP_REQUEST_TIMEOUT_MS. Falls back
11
+ * to the default for anything unset, blank, non-numeric, or non-positive — a
12
+ * malformed override must degrade to a safe timeout, never disable it.
13
+ */
14
+ export declare function getAisRequestTimeoutMs(env?: Record<string, string | undefined>): number;
15
+ /** True when `err` is the abort produced by an `AbortSignal.timeout()` firing. */
16
+ export declare function isAisRequestTimeout(err: unknown): boolean;
17
+ export declare class AisRequestTimeoutError extends Error {
18
+ constructor(path: string, timeoutMs: number);
19
+ }
20
+ /**
21
+ * Replace a raw timeout abort with a clear, path- and duration-specific
22
+ * error so it surfaces as an actionable MCP tool error (`isError`) instead of
23
+ * an opaque "operation was aborted" message. Every other error passes through
24
+ * unchanged.
25
+ */
26
+ export declare function toAisRequestError(err: unknown, path: string, timeoutMs: number): unknown;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Shared client-side request timeout for every HTTP call the aismemory MCP
3
+ * server makes to AIS (GitHub issue #6635). A stalled AIS call must fail fast
4
+ * with a clear error instead of hanging the agent process for tens of
5
+ * minutes — that hang previously froze an entire floor session for 6 hours.
6
+ */
7
+ /** Default timeout for an AIS request, in milliseconds. */
8
+ export const DEFAULT_AIS_REQUEST_TIMEOUT_MS = 20_000;
9
+ const ENV_VAR = 'AIS_MCP_REQUEST_TIMEOUT_MS';
10
+ /**
11
+ * Resolve the AIS request timeout from AIS_MCP_REQUEST_TIMEOUT_MS. Falls back
12
+ * to the default for anything unset, blank, non-numeric, or non-positive — a
13
+ * malformed override must degrade to a safe timeout, never disable it.
14
+ */
15
+ export function getAisRequestTimeoutMs(env = process.env) {
16
+ const raw = env[ENV_VAR]?.trim();
17
+ if (!raw)
18
+ return DEFAULT_AIS_REQUEST_TIMEOUT_MS;
19
+ const parsed = Number(raw);
20
+ if (!Number.isFinite(parsed) || parsed <= 0) {
21
+ process.stderr.write(`[aismemory] ${ENV_VAR}="${raw}" is not a positive number of milliseconds; ` +
22
+ `using the default ${DEFAULT_AIS_REQUEST_TIMEOUT_MS}ms.\n`);
23
+ return DEFAULT_AIS_REQUEST_TIMEOUT_MS;
24
+ }
25
+ return parsed;
26
+ }
27
+ /** True when `err` is the abort produced by an `AbortSignal.timeout()` firing. */
28
+ export function isAisRequestTimeout(err) {
29
+ return err instanceof DOMException && err.name === 'TimeoutError';
30
+ }
31
+ export class AisRequestTimeoutError extends Error {
32
+ constructor(path, timeoutMs) {
33
+ super(`AIS request to ${path} timed out after ${timeoutMs}ms`);
34
+ this.name = 'AisRequestTimeoutError';
35
+ }
36
+ }
37
+ /**
38
+ * Replace a raw timeout abort with a clear, path- and duration-specific
39
+ * error so it surfaces as an actionable MCP tool error (`isError`) instead of
40
+ * an opaque "operation was aborted" message. Every other error passes through
41
+ * unchanged.
42
+ */
43
+ export function toAisRequestError(err, path, timeoutMs) {
44
+ if (isAisRequestTimeout(err)) {
45
+ return new AisRequestTimeoutError(path, timeoutMs);
46
+ }
47
+ return err;
48
+ }
49
+ //# sourceMappingURL=request-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-timeout.js","sourceRoot":"","sources":["../src/request-timeout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAErD,MAAM,OAAO,GAAG,4BAA4B,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,8BAA8B,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,OAAO,KAAK,GAAG,8CAA8C;YAC1E,qBAAqB,8BAA8B,OAAO,CAC7D,CAAC;QACF,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,OAAO,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC;AACpE,CAAC;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,IAAY,EAAE,SAAiB;QACzC,KAAK,CAAC,kBAAkB,IAAI,oBAAoB,SAAS,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,IAAY,EAAE,SAAiB;IAC7E,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface RunPassConfig {
2
+ runPassFile: string;
3
+ agentId: string;
4
+ }
5
+ export declare class RunPassConfigError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ type FetchImpl = typeof globalThis.fetch;
9
+ export declare function loadRunPassConfig(env?: Record<string, string | undefined>): RunPassConfig | null;
10
+ export declare function readRunPassFile(runPassFile: string): Promise<string>;
11
+ export declare function runPassPost(aisUrl: string, path: string, runPassFile: string, body: unknown, fetchImpl?: FetchImpl): Promise<unknown>;
12
+ export declare function runPassGet(aisUrl: string, path: string, runPassFile: string, fetchImpl?: FetchImpl): Promise<unknown>;
13
+ export declare function runPassPatch(aisUrl: string, path: string, runPassFile: string, body: unknown, fetchImpl?: FetchImpl): Promise<unknown>;
14
+ export declare const UNKNOWN_TOOL_RUN_PASS_MODE: unique symbol;
15
+ export declare function dispatchToolRunPassMode(aisUrl: string, config: RunPassConfig, name: string, rawArgs: unknown, fetchImpl?: FetchImpl): Promise<unknown | typeof UNKNOWN_TOOL_RUN_PASS_MODE>;
16
+ export {};