aismemory 0.8.2 → 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 (198) 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 +49 -1
  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.d.ts +1 -0
  9. package/dist/__tests__/cli-info.test.js +117 -0
  10. package/dist/__tests__/cli-info.test.js.map +1 -0
  11. package/dist/__tests__/client-credential-expiry.test.d.ts +1 -0
  12. package/dist/__tests__/client-credential-expiry.test.js +319 -0
  13. package/dist/__tests__/client-credential-expiry.test.js.map +1 -0
  14. package/dist/__tests__/credential-resolution.test.js +10 -4
  15. package/dist/__tests__/credential-resolution.test.js.map +1 -1
  16. package/dist/__tests__/declared-agent.test.d.ts +1 -0
  17. package/dist/__tests__/declared-agent.test.js +60 -0
  18. package/dist/__tests__/declared-agent.test.js.map +1 -0
  19. package/dist/__tests__/doctor.test.js +21 -2
  20. package/dist/__tests__/doctor.test.js.map +1 -1
  21. package/dist/__tests__/dream-poll.test.d.ts +1 -0
  22. package/dist/__tests__/dream-poll.test.js +130 -0
  23. package/dist/__tests__/dream-poll.test.js.map +1 -0
  24. package/dist/__tests__/enable-key-auth.test.d.ts +1 -0
  25. package/dist/__tests__/enable-key-auth.test.js +180 -0
  26. package/dist/__tests__/enable-key-auth.test.js.map +1 -0
  27. package/dist/__tests__/existing-hashes.test.js +3 -6
  28. package/dist/__tests__/existing-hashes.test.js.map +1 -1
  29. package/dist/__tests__/full-context-view-forwarding.test.js +20 -1
  30. package/dist/__tests__/full-context-view-forwarding.test.js.map +1 -1
  31. package/dist/__tests__/hooks.test.d.ts +1 -0
  32. package/dist/__tests__/hooks.test.js +455 -0
  33. package/dist/__tests__/hooks.test.js.map +1 -0
  34. package/dist/__tests__/hydration.test.js +2 -0
  35. package/dist/__tests__/hydration.test.js.map +1 -1
  36. package/dist/__tests__/install.test.js +28 -1
  37. package/dist/__tests__/install.test.js.map +1 -1
  38. package/dist/__tests__/invite-accept.test.d.ts +1 -0
  39. package/dist/__tests__/invite-accept.test.js +282 -0
  40. package/dist/__tests__/invite-accept.test.js.map +1 -0
  41. package/dist/__tests__/list-all-agents.test.js +17 -15
  42. package/dist/__tests__/list-all-agents.test.js.map +1 -1
  43. package/dist/__tests__/mcp-instructions.test.d.ts +1 -0
  44. package/dist/__tests__/mcp-instructions.test.js +26 -0
  45. package/dist/__tests__/mcp-instructions.test.js.map +1 -0
  46. package/dist/__tests__/mcp-tools.test.js +136 -5
  47. package/dist/__tests__/mcp-tools.test.js.map +1 -1
  48. package/dist/__tests__/memory-export.test.d.ts +1 -0
  49. package/dist/__tests__/memory-export.test.js +78 -0
  50. package/dist/__tests__/memory-export.test.js.map +1 -0
  51. package/dist/__tests__/missing-credential-help.test.d.ts +1 -0
  52. package/dist/__tests__/missing-credential-help.test.js +14 -0
  53. package/dist/__tests__/missing-credential-help.test.js.map +1 -0
  54. package/dist/__tests__/owner-credentials.test.d.ts +1 -0
  55. package/dist/__tests__/owner-credentials.test.js +250 -0
  56. package/dist/__tests__/owner-credentials.test.js.map +1 -0
  57. package/dist/__tests__/owner-keychain-agent-load.test.d.ts +1 -0
  58. package/dist/__tests__/owner-keychain-agent-load.test.js +57 -0
  59. package/dist/__tests__/owner-keychain-agent-load.test.js.map +1 -0
  60. package/dist/__tests__/recall-order-by.test.d.ts +1 -0
  61. package/dist/__tests__/recall-order-by.test.js +115 -0
  62. package/dist/__tests__/recall-order-by.test.js.map +1 -0
  63. package/dist/__tests__/reconnect-survival-e2e.test.js +3 -2
  64. package/dist/__tests__/reconnect-survival-e2e.test.js.map +1 -1
  65. package/dist/__tests__/remember-duplicate-truth.test.js +11 -0
  66. package/dist/__tests__/remember-duplicate-truth.test.js.map +1 -1
  67. package/dist/__tests__/request-timeout.test.js +15 -0
  68. package/dist/__tests__/request-timeout.test.js.map +1 -1
  69. package/dist/__tests__/resolve-agent-preference.test.js +19 -8
  70. package/dist/__tests__/resolve-agent-preference.test.js.map +1 -1
  71. package/dist/__tests__/retry-after.test.js +53 -0
  72. package/dist/__tests__/retry-after.test.js.map +1 -1
  73. package/dist/__tests__/run-pass-mode.test.js +34 -1
  74. package/dist/__tests__/run-pass-mode.test.js.map +1 -1
  75. package/dist/__tests__/session-identity.test.js +63 -0
  76. package/dist/__tests__/session-identity.test.js.map +1 -1
  77. package/dist/__tests__/signin-keychain.test.d.ts +1 -0
  78. package/dist/__tests__/signin-keychain.test.js +79 -0
  79. package/dist/__tests__/signin-keychain.test.js.map +1 -0
  80. package/dist/__tests__/startup-identity.test.d.ts +1 -0
  81. package/dist/__tests__/startup-identity.test.js +213 -0
  82. package/dist/__tests__/startup-identity.test.js.map +1 -0
  83. package/dist/__tests__/sync-auth.test.d.ts +1 -0
  84. package/dist/__tests__/sync-auth.test.js +69 -0
  85. package/dist/__tests__/sync-auth.test.js.map +1 -0
  86. package/dist/__tests__/sync-doc.test.d.ts +1 -0
  87. package/dist/__tests__/sync-doc.test.js +13 -0
  88. package/dist/__tests__/sync-doc.test.js.map +1 -0
  89. package/dist/__tests__/sync-memory-cli.test.js +1 -1
  90. package/dist/__tests__/sync-memory-cli.test.js.map +1 -1
  91. package/dist/__tests__/tool-args.test.js +6 -0
  92. package/dist/__tests__/tool-args.test.js.map +1 -1
  93. package/dist/__tests__/version-check.test.js +16 -1
  94. package/dist/__tests__/version-check.test.js.map +1 -1
  95. package/dist/agent-key-mode.js +24 -24
  96. package/dist/agent-key-mode.js.map +1 -1
  97. package/dist/agent-preference.d.ts +4 -0
  98. package/dist/agent-preference.js +7 -1
  99. package/dist/agent-preference.js.map +1 -1
  100. package/dist/ais-http-error.d.ts +5 -0
  101. package/dist/ais-http-error.js +10 -0
  102. package/dist/ais-http-error.js.map +1 -1
  103. package/dist/ais-http.d.ts +2 -0
  104. package/dist/ais-http.js +41 -6
  105. package/dist/ais-http.js.map +1 -1
  106. package/dist/auto-handoff.js +2 -1
  107. package/dist/auto-handoff.js.map +1 -1
  108. package/dist/cli/doctor.d.ts +8 -0
  109. package/dist/cli/doctor.js +19 -0
  110. package/dist/cli/doctor.js.map +1 -1
  111. package/dist/cli/enable-key-auth.js +39 -18
  112. package/dist/cli/enable-key-auth.js.map +1 -1
  113. package/dist/cli/export-harness.d.ts +13 -0
  114. package/dist/cli/export-harness.js +110 -0
  115. package/dist/cli/export-harness.js.map +1 -0
  116. package/dist/cli/hooks.d.ts +62 -0
  117. package/dist/cli/hooks.js +634 -0
  118. package/dist/cli/hooks.js.map +1 -0
  119. package/dist/cli/install.d.ts +4 -0
  120. package/dist/cli/install.js +44 -5
  121. package/dist/cli/install.js.map +1 -1
  122. package/dist/cli/invite-accept.d.ts +67 -0
  123. package/dist/cli/invite-accept.js +295 -0
  124. package/dist/cli/invite-accept.js.map +1 -0
  125. package/dist/cli/owner-credentials.d.ts +52 -0
  126. package/dist/cli/owner-credentials.js +387 -0
  127. package/dist/cli/owner-credentials.js.map +1 -0
  128. package/dist/cli/sync-memory.js +7 -9
  129. package/dist/cli/sync-memory.js.map +1 -1
  130. package/dist/cli-info.d.ts +18 -0
  131. package/dist/cli-info.js +77 -0
  132. package/dist/cli-info.js.map +1 -0
  133. package/dist/credential-expiry.d.ts +10 -0
  134. package/dist/credential-expiry.js +41 -0
  135. package/dist/credential-expiry.js.map +1 -0
  136. package/dist/credential-whoami.js +1 -1
  137. package/dist/credential-whoami.js.map +1 -1
  138. package/dist/declared-agent.d.ts +20 -0
  139. package/dist/declared-agent.js +40 -0
  140. package/dist/declared-agent.js.map +1 -0
  141. package/dist/device-poll.d.ts +1 -0
  142. package/dist/device-poll.js.map +1 -1
  143. package/dist/dream-poll.d.ts +19 -0
  144. package/dist/dream-poll.js +93 -0
  145. package/dist/dream-poll.js.map +1 -0
  146. package/dist/env-agent.d.ts +6 -1
  147. package/dist/env-agent.js +18 -5
  148. package/dist/env-agent.js.map +1 -1
  149. package/dist/hydration.js +2 -1
  150. package/dist/hydration.js.map +1 -1
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js +145 -18
  153. package/dist/index.js.map +1 -1
  154. package/dist/key-auth.d.ts +13 -3
  155. package/dist/key-auth.js +27 -5
  156. package/dist/key-auth.js.map +1 -1
  157. package/dist/mcp/tools.js +55 -25
  158. package/dist/mcp/tools.js.map +1 -1
  159. package/dist/mcp-instructions.d.ts +6 -0
  160. package/dist/mcp-instructions.js +7 -0
  161. package/dist/mcp-instructions.js.map +1 -0
  162. package/dist/memory-export.d.ts +30 -0
  163. package/dist/memory-export.js +116 -0
  164. package/dist/memory-export.js.map +1 -0
  165. package/dist/pipeline/bulk-store.d.ts +2 -5
  166. package/dist/pipeline/bulk-store.js +2 -4
  167. package/dist/pipeline/bulk-store.js.map +1 -1
  168. package/dist/pipeline/existing-hashes.d.ts +2 -5
  169. package/dist/pipeline/existing-hashes.js +1 -2
  170. package/dist/pipeline/existing-hashes.js.map +1 -1
  171. package/dist/pipeline/sync-auth.d.ts +12 -0
  172. package/dist/pipeline/sync-auth.js +64 -0
  173. package/dist/pipeline/sync-auth.js.map +1 -0
  174. package/dist/refresh.js +2 -1
  175. package/dist/refresh.js.map +1 -1
  176. package/dist/request-timeout.d.ts +4 -4
  177. package/dist/request-timeout.js +15 -6
  178. package/dist/request-timeout.js.map +1 -1
  179. package/dist/run-pass-mode.js +48 -15
  180. package/dist/run-pass-mode.js.map +1 -1
  181. package/dist/session-identity.js +14 -12
  182. package/dist/session-identity.js.map +1 -1
  183. package/dist/signin-keychain.d.ts +54 -0
  184. package/dist/signin-keychain.js +200 -0
  185. package/dist/signin-keychain.js.map +1 -0
  186. package/dist/startup-identity.d.ts +71 -0
  187. package/dist/startup-identity.js +213 -0
  188. package/dist/startup-identity.js.map +1 -0
  189. package/dist/tool-args.d.ts +10 -0
  190. package/dist/tool-args.js +39 -0
  191. package/dist/tool-args.js.map +1 -1
  192. package/dist/types.d.ts +8 -0
  193. package/dist/version-check.d.ts +8 -0
  194. package/dist/version-check.js +21 -1
  195. package/dist/version-check.js.map +1 -1
  196. package/dist/workspace-key-mode.js +54 -33
  197. package/dist/workspace-key-mode.js.map +1 -1
  198. package/package.json +1 -1
@@ -43,7 +43,7 @@ function readServerFields(response, agentId, authMode) {
43
43
  const fields = data;
44
44
  // Surface the server's self-described identity to the identity gate. A
45
45
  // mismatch is exactly the signal gated writes must refuse.
46
- const serverAgentId = readStringField(fields, 'agentId') ?? readStringField(fields, 'id') ?? agentId;
46
+ const serverAgentId = readStringField(fields, 'id') ?? readStringField(fields, 'agentId') ?? agentId;
47
47
  const expiresAtRaw = fields['expiresAt'];
48
48
  const actsAsGranted = fields['actsAsGrantedAgent'];
49
49
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"credential-whoami.js","sourceRoot":"","sources":["../src/credential-whoami.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-whoami.js","sourceRoot":"","sources":["../src/credential-whoami.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Declared-agent header — CORBOT-34F7B60B / CORBOT-84D2D4AD.
3
+ *
4
+ * A misconfiguration guard: every AIS request names the agent this session is
5
+ * meant to be, and the server refuses a request whose declared agent disagrees
6
+ * with the agent the credential/path is bound to (e.g. Ender's key launched
7
+ * with AIS_AGENT_ID=Data). The value follows the session identity: AIS_AGENT_ID
8
+ * at launch, then the agent a verified agent_load switched to (index.ts
9
+ * registers the source). agent_load runs its switch calls under
10
+ * declaringAgent(), declaring the target, so a deliberate switch is not refused.
11
+ * Only a well-formed UUID is ever sent; anything else sends no header (the
12
+ * server treats an absent header as "no check" and 400s on a malformed one).
13
+ */
14
+ export declare const DECLARED_AGENT_HEADER = "X-AIS-Declared-Agent";
15
+ /** Set where the session's declared agent id comes from (default: AIS_AGENT_ID). */
16
+ export declare function setDeclaredAgentSource(next: () => string | undefined): void;
17
+ /** Run `fn` declaring `agentId` (null = declare nothing) instead of the session source. */
18
+ export declare function declaringAgent<T>(agentId: string | null, fn: () => Promise<T>): Promise<T>;
19
+ /** Add the declared-agent header when a valid UUID is declared; returns the same object. */
20
+ export declare function withDeclaredAgent(headers: Record<string, string>): Record<string, string>;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Declared-agent header — CORBOT-34F7B60B / CORBOT-84D2D4AD.
3
+ *
4
+ * A misconfiguration guard: every AIS request names the agent this session is
5
+ * meant to be, and the server refuses a request whose declared agent disagrees
6
+ * with the agent the credential/path is bound to (e.g. Ender's key launched
7
+ * with AIS_AGENT_ID=Data). The value follows the session identity: AIS_AGENT_ID
8
+ * at launch, then the agent a verified agent_load switched to (index.ts
9
+ * registers the source). agent_load runs its switch calls under
10
+ * declaringAgent(), declaring the target, so a deliberate switch is not refused.
11
+ * Only a well-formed UUID is ever sent; anything else sends no header (the
12
+ * server treats an absent header as "no check" and 400s on a malformed one).
13
+ */
14
+ import { AsyncLocalStorage } from 'node:async_hooks';
15
+ export const DECLARED_AGENT_HEADER = 'X-AIS-Declared-Agent';
16
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
17
+ let source = () => process.env['AIS_AGENT_ID'];
18
+ const override = new AsyncLocalStorage();
19
+ /** Set where the session's declared agent id comes from (default: AIS_AGENT_ID). */
20
+ export function setDeclaredAgentSource(next) {
21
+ source = next;
22
+ }
23
+ /** Run `fn` declaring `agentId` (null = declare nothing) instead of the session source. */
24
+ export function declaringAgent(agentId, fn) {
25
+ return override.run(agentId, fn);
26
+ }
27
+ function currentDeclared() {
28
+ const overridden = override.getStore();
29
+ const raw = overridden !== undefined ? overridden : source();
30
+ const value = raw?.trim();
31
+ return value !== undefined && UUID_RE.test(value) ? value.toLowerCase() : null;
32
+ }
33
+ /** Add the declared-agent header when a valid UUID is declared; returns the same object. */
34
+ export function withDeclaredAgent(headers) {
35
+ const value = currentDeclared();
36
+ if (value !== null)
37
+ headers[DECLARED_AGENT_HEADER] = value;
38
+ return headers;
39
+ }
40
+ //# sourceMappingURL=declared-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-agent.js","sourceRoot":"","sources":["../src/declared-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,OAAO,GAAG,iEAAiE,CAAC;AAElF,IAAI,MAAM,GAA6B,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzE,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAC;AAExD,oFAAoF;AACpF,MAAM,UAAU,sBAAsB,CAAC,IAA8B;IACnE,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,cAAc,CAAI,OAAsB,EAAE,EAAoB;IAC5E,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC1B,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,OAA+B;IAC/D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -20,6 +20,7 @@ export declare class DeviceFlowRestartedError extends Error {
20
20
  }
21
21
  export interface PollTokenResponse {
22
22
  access_token?: string;
23
+ refresh_token?: string;
23
24
  expires_in?: number;
24
25
  error?: string;
25
26
  pending_reason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"device-poll.js","sourceRoot":"","sources":["../src/device-poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAG/B;IACA;IAHT,qBAAqB,GAAG,IAAI,CAAC;IACtC,YACkB,kBAA0B,EAC1B,WAAmB;QAEnC,KAAK,CACH,oDAAoD;YAClD,UAAU,kBAAkB,IAAI;YAChC,SAAS,WAAW,EAAE,CACzB,CAAC;QAPc,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,gBAAW,GAAX,WAAW,CAAQ;QAOnC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AA4BD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,IAAkB;IAElB,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,KAAK,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAChC,cAAc,GAAG,KAAK,GACvB,GAAG,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;IACpD,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,OAAO,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;YAC3C,sBAAsB;YACtB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;YACpB,IAAI,GAAG,GAAG,eAAe,IAAI,qBAAqB,EAAE,CAAC;gBACnD,eAAe,GAAG,GAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;oBACxC,UAAU,CAAC,kDAAkD,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,yBAAyB,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACnC,mEAAmE;YACnE,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAwB,CAChC,OAAO,CAAC,yBAAyB,EACjC,OAAO,CAAC,SAAS,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,KAAK,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"device-poll.js","sourceRoot":"","sources":["../src/device-poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,+EAA+E;AAC/E,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAG/B;IACA;IAHT,qBAAqB,GAAG,IAAI,CAAC;IACtC,YACkB,kBAA0B,EAC1B,WAAmB;QAEnC,KAAK,CACH,oDAAoD;YAClD,UAAU,kBAAkB,IAAI;YAChC,SAAS,WAAW,EAAE,CACzB,CAAC;QAPc,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,gBAAW,GAAX,WAAW,CAAQ;QAOnC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AA6BD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,IAAkB;IAElB,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,KAAK,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAChC,cAAc,GAAG,KAAK,GACvB,GAAG,IAAI,CAAC;IAET,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;IACpD,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,OAAO,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAE9D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,uBAAuB,EAAE,CAAC;YAC3C,sBAAsB;YACtB,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;YACpB,IAAI,GAAG,GAAG,eAAe,IAAI,qBAAqB,EAAE,CAAC;gBACnD,eAAe,GAAG,GAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;oBACxC,UAAU,CAAC,kDAAkD,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,yBAAyB,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACnC,mEAAmE;YACnE,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAwB,CAChC,OAAO,CAAC,yBAAyB,EACjC,OAAO,CAAC,SAAS,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,sCAAsC;QACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,KAAK,IAAI,kBAAkB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const DEFAULT_DREAM_POLL_MS = 120000;
2
+ export declare const DEFAULT_DREAM_POLL_INTERVAL_MS = 2000;
3
+ export declare function getDreamPollMs(env?: Record<string, string | undefined>): number;
4
+ export declare function getDreamPollIntervalMs(env?: Record<string, string | undefined>): number;
5
+ export interface DreamPollOptions {
6
+ /** GET /v1/agents/:agentId/dream/:runId through the caller's own auth mode. */
7
+ getStatus: (runId: string) => Promise<unknown>;
8
+ deadlineMs?: number;
9
+ intervalMs?: number;
10
+ sleep?: (ms: number) => Promise<void>;
11
+ now?: () => number;
12
+ }
13
+ /**
14
+ * Resolve a dream POST response. A finished (old synchronous) response is
15
+ * returned untouched. A 202 is polled to completion: completed/partial return
16
+ * {success:true, data:<run>}, failed throws with the server's error text, and
17
+ * a spent deadline returns a non-error "still running" result.
18
+ */
19
+ export declare function resolveDreamResponse(response: unknown, opts: DreamPollOptions): Promise<unknown>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Async dream handling (CORBOT-F88FD791). A dream cycle can outlast the 20 s
3
+ * per-request cap, so the server answers POST /dream either with the finished
4
+ * run (200, the original shape) or, when the run is still going, 202 with
5
+ * {runId, status:'running', pollUrl}. This module turns the 202 back into the
6
+ * synchronous result by polling GET /dream/:runId, so callers see one shape.
7
+ *
8
+ * The overall wait is AIS_DREAM_POLL_MS (default 120000) and is separate from
9
+ * AIS_MCP_REQUEST_TIMEOUT_MS: every poll GET still carries the per-request cap.
10
+ */
11
+ import { isAisRequestTimeout, AisRequestTimeoutError } from './request-timeout.js';
12
+ export const DEFAULT_DREAM_POLL_MS = 120_000;
13
+ export const DEFAULT_DREAM_POLL_INTERVAL_MS = 2_000;
14
+ function positiveEnvMs(raw, fallback) {
15
+ const parsed = Number(raw?.trim());
16
+ return raw !== undefined && raw.trim() !== '' && Number.isFinite(parsed) && parsed > 0
17
+ ? parsed
18
+ : fallback;
19
+ }
20
+ export function getDreamPollMs(env = process.env) {
21
+ return positiveEnvMs(env['AIS_DREAM_POLL_MS'], DEFAULT_DREAM_POLL_MS);
22
+ }
23
+ export function getDreamPollIntervalMs(env = process.env) {
24
+ return positiveEnvMs(env['AIS_DREAM_POLL_INTERVAL_MS'], DEFAULT_DREAM_POLL_INTERVAL_MS);
25
+ }
26
+ function asRecord(value) {
27
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
28
+ ? value
29
+ : null;
30
+ }
31
+ /** The accepted-but-unfinished body of a 202, or null for a finished (200) result. */
32
+ function acceptedRun(response) {
33
+ const data = asRecord(asRecord(response)?.['data']);
34
+ if (data === null)
35
+ return null;
36
+ const runId = data['runId'];
37
+ if (data['status'] === 'running' && typeof runId === 'string' && runId !== '') {
38
+ return { runId };
39
+ }
40
+ return null;
41
+ }
42
+ function stillRunning(runId) {
43
+ return {
44
+ success: true,
45
+ data: {
46
+ runId,
47
+ status: 'running',
48
+ message: `Dream run ${runId} is still running on the server; it will finish on its own. ` +
49
+ 'Calling dream again while it is active returns this same run; once it has finished, a new call starts a fresh cycle.',
50
+ },
51
+ };
52
+ }
53
+ /**
54
+ * Resolve a dream POST response. A finished (old synchronous) response is
55
+ * returned untouched. A 202 is polled to completion: completed/partial return
56
+ * {success:true, data:<run>}, failed throws with the server's error text, and
57
+ * a spent deadline returns a non-error "still running" result.
58
+ */
59
+ export async function resolveDreamResponse(response, opts) {
60
+ const accepted = acceptedRun(response);
61
+ if (accepted === null)
62
+ return response;
63
+ const { runId } = accepted;
64
+ const now = opts.now ?? Date.now;
65
+ const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
66
+ const intervalMs = opts.intervalMs ?? getDreamPollIntervalMs();
67
+ const deadline = now() + (opts.deadlineMs ?? getDreamPollMs());
68
+ while (now() < deadline) {
69
+ await sleep(Math.min(intervalMs, Math.max(0, deadline - now())));
70
+ let status;
71
+ try {
72
+ status = await opts.getStatus(runId);
73
+ }
74
+ catch (err) {
75
+ // A single slow poll is not a failed run; keep waiting until the deadline.
76
+ if (isAisRequestTimeout(err) || err instanceof AisRequestTimeoutError)
77
+ continue;
78
+ throw err;
79
+ }
80
+ const run = asRecord(asRecord(status)?.['data']);
81
+ const state = run?.['status'];
82
+ if (run === null)
83
+ continue;
84
+ if (state === 'completed' || state === 'partial')
85
+ return { success: true, data: run };
86
+ if (state === 'failed') {
87
+ const detail = typeof run['error'] === 'string' && run['error'] !== '' ? run['error'] : 'no error text';
88
+ throw new Error(`Dream run ${runId} failed: ${detail}`);
89
+ }
90
+ }
91
+ return stillRunning(runId);
92
+ }
93
+ //# sourceMappingURL=dream-poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream-poll.js","sourceRoot":"","sources":["../src/dream-poll.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface TenantAgentSummary {
8
8
  * Throws with a message suitable for stderr when the id is missing or unknown.
9
9
  */
10
10
  export declare function assertEnvAgentInTenant(envAgentId: string, agents: TenantAgentSummary[]): TenantAgentSummary;
11
+ /** AIS_AGENT_NAME names no agent, or more than one, in the tenant (CORBOT-C1A01EB3). */
12
+ export declare class EnvAgentNameError extends Error {
13
+ constructor(message: string);
14
+ }
11
15
  export interface AgentSelection {
12
16
  agentId: string;
13
17
  reason: 'env-name' | 'preferred' | 'first-active' | 'fallback';
@@ -17,7 +21,8 @@ export interface AgentSelection {
17
21
  /**
18
22
  * Pick which agent this session connects to (CORBOT-B0FA4A79).
19
23
  *
20
- * Priority: AIS_AGENT_NAME match > previously bonded agent > first active >
24
+ * Priority: AIS_AGENT_NAME match (throws EnvAgentNameError on no match or
25
+ * several) > previously bonded agent > first active >
21
26
  * fallback (fresh provisional agent when the tenant has none). The bonded
22
27
  * preference is the load-bearing part: without it, a re-auth reconnected a
23
28
  * multi-agent user to whichever agent the server listed first — a different
package/dist/env-agent.js CHANGED
@@ -11,10 +11,18 @@ export function assertEnvAgentInTenant(envAgentId, agents) {
11
11
  throw new Error(`AIS_AGENT_ID="${envAgentId}" is not a valid agent in this tenant. ` +
12
12
  `Available: ${available || '(none)'}`);
13
13
  }
14
+ /** AIS_AGENT_NAME names no agent, or more than one, in the tenant (CORBOT-C1A01EB3). */
15
+ export class EnvAgentNameError extends Error {
16
+ constructor(message) {
17
+ super(message);
18
+ this.name = 'EnvAgentNameError';
19
+ }
20
+ }
14
21
  /**
15
22
  * Pick which agent this session connects to (CORBOT-B0FA4A79).
16
23
  *
17
- * Priority: AIS_AGENT_NAME match > previously bonded agent > first active >
24
+ * Priority: AIS_AGENT_NAME match (throws EnvAgentNameError on no match or
25
+ * several) > previously bonded agent > first active >
18
26
  * fallback (fresh provisional agent when the tenant has none). The bonded
19
27
  * preference is the load-bearing part: without it, a re-auth reconnected a
20
28
  * multi-agent user to whichever agent the server listed first — a different
@@ -29,11 +37,16 @@ export function selectAgentForSession(opts) {
29
37
  return { agentId: opts.fallbackAgentId, reason: 'fallback', notes };
30
38
  }
31
39
  if (opts.envAgentName) {
32
- const match = opts.agents.find((a) => a.name.toLowerCase() === opts.envAgentName.toLowerCase());
33
- if (match) {
34
- return { agentId: match.id, reason: 'env-name', notes };
40
+ const wanted = opts.envAgentName.toLowerCase();
41
+ const matches = opts.agents.filter((a) => a.name.toLowerCase() === wanted);
42
+ if (matches.length === 1) {
43
+ return { agentId: matches[0].id, reason: 'env-name', notes };
44
+ }
45
+ // An explicit name asks for one identity: never connect as a different agent.
46
+ if (matches.length === 0) {
47
+ throw new EnvAgentNameError(`AIS_AGENT_NAME="${opts.envAgentName}" matches no agent. Available: ${opts.agents.map((a) => a.name).join(', ')}`);
35
48
  }
36
- notes.push(`AIS_AGENT_NAME="${opts.envAgentName}" not found. Available: ${opts.agents.map((a) => a.name).join(', ')}`);
49
+ throw new EnvAgentNameError(`AIS_AGENT_NAME="${opts.envAgentName}" matches ${matches.length} agents (${matches.map((a) => a.id).join(', ')}). Set AIS_AGENT_ID to the one this session should use.`);
37
50
  }
38
51
  if (opts.preferredAgentId) {
39
52
  const match = opts.agents.find((a) => a.id === opts.preferredAgentId);
@@ -1 +1 @@
1
- {"version":3,"file":"env-agent.js","sourceRoot":"","sources":["../src/env-agent.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAkB,EAClB,MAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IAC9D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,IAAI,KAAK,CACb,iBAAiB,UAAU,yCAAyC;QAClE,cAAc,SAAS,IAAI,QAAQ,EAAE,CACxC,CAAC;AACJ,CAAC;AASD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAQrC;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,YAAa,CAAC,WAAW,EAAE,CAAC,CAAC;QACjG,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,IAAI,CACR,mBAAmB,IAAI,CAAC,YAAY,2BAA2B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,IAAI,CACR,2BAA2B,IAAI,CAAC,gBAAgB,wCAAwC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,IAAI,CACzI,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"env-agent.js","sourceRoot":"","sources":["../src/env-agent.ts"],"names":[],"mappings":"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"}
package/dist/hydration.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { getAisRequestTimeoutMs } from './request-timeout.js';
2
+ import { withDeclaredAgent } from './declared-agent.js';
2
3
  const LOG_PREFIX = '[aismemory]';
3
4
  function redactHydrationMessage(message) {
4
5
  return message
@@ -29,7 +30,7 @@ export async function hydrateIdentity(aisUrl, agentId, token, memoriesLimit) {
29
30
  try {
30
31
  const query = memoriesLimit === undefined ? '' : `?memoriesLimit=${memoriesLimit}`;
31
32
  const res = await fetch(`${aisUrl}/v1/agents/${agentId}/full-context${query}`, {
32
- headers: { Authorization: `Bearer ${token}` },
33
+ headers: withDeclaredAgent({ Authorization: `Bearer ${token}` }),
33
34
  signal: AbortSignal.timeout(getAisRequestTimeoutMs()),
34
35
  });
35
36
  if (!res.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"hydration.js","sourceRoot":"","sources":["../src/hydration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydration.js","sourceRoot":"","sources":["../src/hydration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,UAAU,GAAG,aAAa,CAAC;AAIjC,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,OAAO;SACX,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C,OAAO,CAAC,wBAAwB,EAAE,2BAA2B,CAAC;SAC9D,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAY;IAC7C,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA0B,EAC1B,OAAiE;IAEjE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,IAAI,GAAG,GAAG,UAAU,4BAA4B,IAAI,KAAK,UAAU,IAAI,UAAU,KAAK,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IACxI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAAe,EACf,KAAa,EACb,aAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,aAAa,EAAE,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,OAAO,gBAAgB,KAAK,EAAE,EAAE;YAC7E,OAAO,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;YAChE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;oBAAE,QAAQ,GAAG,IAAI,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;YACD,mBAAmB,CAAC,MAAM,EAAE;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;aAC7C,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAsB7B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,mBAAmB,CAAC,KAAK,EAAE;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,+BAA+B;gBACpG,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAEpB,MAAM,QAAQ,GAAG;YACf,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE;YACxB,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;YAC1B,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAC5B,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE;YAC1C,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE;SACjC,CAAC;QAEF,MAAM,WAAW,GACf,CAAC,CAAC,WAAW,IAAI,IAAI;YACnB,CAAC,CAAC;gBACE,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;gBAClC,kBAAkB,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,IAAI,EAAE;gBAC1D,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE;aACrD;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;YACzB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;SACvB,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE;YACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC;YAC7B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE;SAC7B,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAErE,MAAM,WAAW,GACf,CAAC,CAAC,WAAW,IAAI,IAAI;YACnB,CAAC,CAAC;gBACE,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE;gBACpC,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE;gBAC9C,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE;gBAC5C,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE;aACzC;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,sEAAsE;QACtE,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAElC,OAAO;YACL,QAAQ;YACR,WAAW;YACX,KAAK;YACL,cAAc;YACd,MAAM;YACN,WAAW;YACX,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;YAChC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC;YACxC,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,mBAAmB,CAAC,SAAS,EAAE;YAC7B,OAAO;YACP,SAAS,EAAE,yBAAyB,CAAC,GAAG,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -18,4 +18,5 @@ type AgentSummary = {
18
18
  * lockout, ticket 72ab7f4e) — never call GET /v1/agents without this.
19
19
  */
20
20
  export declare function listAllAgents(token: string): Promise<AgentSummary[]>;
21
+ export declare const MISSING_CREDENTIAL_HELP: string;
21
22
  export {};