@codespar/sdk 0.9.0 → 0.10.0

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 (49) hide show
  1. package/README.md +166 -19
  2. package/dist/__tests__/base-url-resolution.test.d.ts +10 -0
  3. package/dist/__tests__/base-url-resolution.test.d.ts.map +1 -0
  4. package/dist/__tests__/base-url-resolution.test.js +57 -0
  5. package/dist/__tests__/base-url-resolution.test.js.map +1 -0
  6. package/dist/__tests__/errors.test.d.ts +16 -0
  7. package/dist/__tests__/errors.test.d.ts.map +1 -0
  8. package/dist/__tests__/errors.test.js +163 -0
  9. package/dist/__tests__/errors.test.js.map +1 -0
  10. package/dist/__tests__/forward-mocks.test.d.ts +15 -0
  11. package/dist/__tests__/forward-mocks.test.d.ts.map +1 -0
  12. package/dist/__tests__/forward-mocks.test.js +134 -0
  13. package/dist/__tests__/forward-mocks.test.js.map +1 -0
  14. package/dist/__tests__/mocks-wire-parity.test.d.ts +15 -0
  15. package/dist/__tests__/mocks-wire-parity.test.d.ts.map +1 -0
  16. package/dist/__tests__/mocks-wire-parity.test.js +71 -0
  17. package/dist/__tests__/mocks-wire-parity.test.js.map +1 -0
  18. package/dist/__tests__/testing.test.d.ts +2 -0
  19. package/dist/__tests__/testing.test.d.ts.map +1 -0
  20. package/dist/__tests__/testing.test.js +133 -0
  21. package/dist/__tests__/testing.test.js.map +1 -0
  22. package/dist/__tests__/tool-result-codes.test.d.ts +18 -0
  23. package/dist/__tests__/tool-result-codes.test.d.ts.map +1 -0
  24. package/dist/__tests__/tool-result-codes.test.js +164 -0
  25. package/dist/__tests__/tool-result-codes.test.js.map +1 -0
  26. package/dist/errors.d.ts +43 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +77 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/index.d.ts +4 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/session.d.ts.map +1 -1
  35. package/dist/session.js +80 -49
  36. package/dist/session.js.map +1 -1
  37. package/dist/testing/index.d.ts +9 -0
  38. package/dist/testing/index.d.ts.map +1 -0
  39. package/dist/testing/index.js +68 -0
  40. package/dist/testing/index.js.map +1 -0
  41. package/dist/tool-result-codes.d.ts +82 -0
  42. package/dist/tool-result-codes.d.ts.map +1 -0
  43. package/dist/tool-result-codes.js +99 -0
  44. package/dist/tool-result-codes.js.map +1 -0
  45. package/dist/types.d.ts +20 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +8 -0
  48. package/dist/types.js.map +1 -1
  49. package/package.json +6 -2
package/dist/errors.js ADDED
@@ -0,0 +1,77 @@
1
+ export class CodesparApiError extends Error {
2
+ status;
3
+ code;
4
+ body;
5
+ constructor(message, options) {
6
+ // ES2022 `cause` shape — supported by Node 20 + modern browsers.
7
+ super(message, options.cause !== undefined ? { cause: options.cause } : undefined);
8
+ // Restore the prototype chain — without this, `instanceof
9
+ // CodesparApiError` returns false across some transpilers and
10
+ // realms (the classic ES5-target Error subclass trap).
11
+ Object.setPrototypeOf(this, CodesparApiError.prototype);
12
+ this.name = "CodesparApiError";
13
+ this.status = options.status;
14
+ this.code = options.code;
15
+ this.body = options.body;
16
+ }
17
+ }
18
+ function parseErrorPayload(raw) {
19
+ if (!raw)
20
+ return { body: undefined, parsed: {} };
21
+ try {
22
+ const body = JSON.parse(raw);
23
+ if (body && typeof body === "object" && !Array.isArray(body)) {
24
+ const obj = body;
25
+ const code = typeof obj.code === "string" ? obj.code : undefined;
26
+ // Legacy fallback: pre-PRD envelopes used `error` as the
27
+ // discriminant. `code` takes precedence; `error` honored only
28
+ // when `code` is missing.
29
+ const fallbackCode = code ?? (typeof obj.error === "string" ? obj.error : undefined);
30
+ const message = typeof obj.message === "string" ? obj.message : undefined;
31
+ return {
32
+ body,
33
+ parsed: { code: fallbackCode, message },
34
+ };
35
+ }
36
+ return { body, parsed: {} };
37
+ }
38
+ catch {
39
+ return { body: raw, parsed: {} };
40
+ }
41
+ }
42
+ /**
43
+ * Build the canonical error message + extract the structured code +
44
+ * preserve the parsed body. Centralised so every transport call site
45
+ * surfaces the same shape — a customer parsing `e.message` is
46
+ * already on the deprecated path; new code branches on `e.code`.
47
+ */
48
+ export async function throwFromResponse(response, what) {
49
+ const raw = await response.text();
50
+ const { body, parsed } = parseErrorPayload(raw);
51
+ const suffix = parsed.message
52
+ ? ` — ${parsed.message}`
53
+ : parsed.code
54
+ ? ` — ${parsed.code}`
55
+ : raw
56
+ ? ` ${raw}`
57
+ : "";
58
+ throw new CodesparApiError(`${what} failed: ${response.status}${suffix}`, {
59
+ status: response.status,
60
+ code: parsed.code,
61
+ body,
62
+ });
63
+ }
64
+ /**
65
+ * Convert a `fetch` rejection (network error, abort, DNS, TLS, etc.)
66
+ * into a CodesparApiError with `status: 0`. Preserves the underlying
67
+ * error as `cause` so callers debugging a transport failure can dig
68
+ * into the original `TypeError`.
69
+ */
70
+ export function networkErrorToApiError(cause, what) {
71
+ const message = cause instanceof Error ? cause.message : String(cause);
72
+ return new CodesparApiError(`${what} network error: ${message}`, {
73
+ status: 0,
74
+ cause,
75
+ });
76
+ }
77
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,10 @@ export type { CodeSparConfig, SessionConfig, Tool, LoopConfig, LoopStep, LoopRes
28
28
  export { SessionConfigSchema } from "./types.js";
29
29
  export { loop } from "./loop.js";
30
30
  export { tools, findTools } from "./tools.js";
31
+ export { CodesparApiError } from "./errors.js";
32
+ export type { CodesparApiErrorOptions } from "./errors.js";
33
+ export { TOOL_RESULT_CODES, ToolResultCode, assertExhaustiveToolResult, isApprovalRequired, isMocksEngineError, isMocksExhausted, isPolicyDenied, isToolNotMocked, } from "./tool-result-codes.js";
34
+ export type { ApprovalRequiredOutput, ApprovalRequiredToolCall, MocksEngineErrorOutput, MocksEngineErrorToolCall, MocksExhaustedOutput, MocksExhaustedToolCall, PolicyDeniedOutput, PolicyDeniedToolCall, ToolNotMockedOutput, ToolNotMockedToolCall, ToolResultOutcome, } from "./tool-result-codes.js";
31
35
  import type { CodeSparConfig, SessionConfig } from "./types.js";
32
36
  import type { Session } from "@codespar/types";
33
37
  export declare class CodeSpar {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAEhC,YAAY,EACV,cAAc,EACd,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,GAAE,cAAmB;IAevC;;;;;OAKG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;CAS3E;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAEhC,YAAY,EACV,cAAc,EACd,aAAa,EACb,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,GAAE,cAAmB;IAevC;;;;;OAKG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;CAS3E;AAED,eAAe,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -27,6 +27,8 @@ export * from "@codespar/types";
27
27
  export { SessionConfigSchema } from "./types.js";
28
28
  export { loop } from "./loop.js";
29
29
  export { tools, findTools } from "./tools.js";
30
+ export { CodesparApiError } from "./errors.js";
31
+ export { TOOL_RESULT_CODES, ToolResultCode, assertExhaustiveToolResult, isApprovalRequired, isMocksEngineError, isMocksExhausted, isPolicyDenied, isToolNotMocked, } from "./tool-result-codes.js";
30
32
  import { SessionConfigSchema } from "./types.js";
31
33
  import { createSession } from "./session.js";
32
34
  const DEFAULT_BASE_URL = "https://api.codespar.dev";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAWhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,MAAM,OAAO,QAAQ;IACF,MAAM,CAA2B;IAElD,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YAC3D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB;YAC5E,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,yFAAyF;gBACvF,sEAAsE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAwB,EAAE;QACrD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;QACzE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,SAAS,IAAI,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,cAAc,iBAAiB,CAAC;AAWhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAiBhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEpD,MAAM,OAAO,QAAQ;IACF,MAAM,CAA2B;IAElD,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;YAC3D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB;YAC5E,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,yFAAyF;gBACvF,sEAAsE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAwB,EAAE;QACrD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;QACzE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,SAAS,IAAI,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,OAAO,EAsBR,MAAM,iBAAiB,CAAC;AAEzB,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CAkWlB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAQ,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EACV,OAAO,EAsBR,MAAM,iBAAiB,CAAC;AAEzB,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoCD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,OAAO,CAAC,CAwZlB"}
package/dist/session.js CHANGED
@@ -1,6 +1,19 @@
1
1
  /**
2
2
  * Session implementation for the CodeSpar managed runtime.
3
3
  */
4
+ import { networkErrorToApiError, throwFromResponse } from "./errors.js";
5
+ // Wraps `fetch` so network rejections become CodesparApiError
6
+ // (status: 0) at the very edge of the SDK, rather than bubbling
7
+ // raw TypeError / DOMException up to the caller. Every transport
8
+ // site in this file goes through here.
9
+ async function safeFetch(input, init, what) {
10
+ try {
11
+ return await fetch(input, init);
12
+ }
13
+ catch (cause) {
14
+ throw networkErrorToApiError(cause, what);
15
+ }
16
+ }
4
17
  // The concrete session object satisfies the Session interface and carries extra
5
18
  // internal methods (tools, findTools) that the free functions in tools.ts access
6
19
  // via duck-typing. They are intentionally not declared on the Session interface.
@@ -18,14 +31,24 @@ export async function createSession(userId, config, deps) {
18
31
  metadata: config.metadata,
19
32
  projectId: config.projectId ?? deps.projectId,
20
33
  };
21
- const res = await fetch(`${baseUrl}/v1/sessions`, {
34
+ // Conditional spread keeps the wire body byte-identical to the
35
+ // pre-PRD shape when the caller omits mocks (R18 wire-neutrality).
36
+ // The field is forwarded verbatim — no canonical-name rewriting on
37
+ // the SDK side, so the double-underscore migration trap surfaces
38
+ // as the backend's mocks_invalid envelope rather than silent
39
+ // SDK-side normalization.
40
+ const wireBody = {
41
+ servers: req.servers,
42
+ user_id: userId,
43
+ ...(config.mocks !== undefined ? { mocks: config.mocks } : {}),
44
+ };
45
+ const res = await safeFetch(`${baseUrl}/v1/sessions`, {
22
46
  method: "POST",
23
47
  headers,
24
- body: JSON.stringify({ servers: req.servers, user_id: userId }),
25
- });
48
+ body: JSON.stringify(wireBody),
49
+ }, "createSession");
26
50
  if (!res.ok) {
27
- const body = await res.text();
28
- throw new Error(`createSession failed: ${res.status} ${body}`);
51
+ await throwFromResponse(res, "createSession");
29
52
  }
30
53
  const data = (await res.json());
31
54
  let cachedTools = null;
@@ -59,11 +82,11 @@ export async function createSession(userId, config, deps) {
59
82
  },
60
83
  async execute(toolName, params) {
61
84
  const start = Date.now();
62
- const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/execute`, {
85
+ const r = await safeFetch(`${baseUrl}/v1/sessions/${data.id}/execute`, {
63
86
  method: "POST",
64
87
  headers,
65
88
  body: JSON.stringify({ tool: toolName, input: params }),
66
- });
89
+ }, "execute");
67
90
  if (!r.ok) {
68
91
  const body = await r.text();
69
92
  return {
@@ -79,7 +102,7 @@ export async function createSession(userId, config, deps) {
79
102
  return result;
80
103
  },
81
104
  async proxyExecute(request) {
82
- const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/proxy_execute`, {
105
+ const r = await safeFetch(`${baseUrl}/v1/sessions/${data.id}/proxy_execute`, {
83
106
  method: "POST",
84
107
  headers,
85
108
  body: JSON.stringify({
@@ -90,35 +113,33 @@ export async function createSession(userId, config, deps) {
90
113
  params: request.params,
91
114
  headers: request.headers,
92
115
  }),
93
- });
116
+ }, "proxyExecute");
94
117
  if (!r.ok) {
95
- const body = await r.text();
96
- throw new Error(`proxyExecute failed: ${r.status} ${body}`);
118
+ await throwFromResponse(r, "proxyExecute");
97
119
  }
98
120
  return (await r.json());
99
121
  },
100
122
  async send(message) {
101
- const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/send`, {
123
+ const r = await safeFetch(`${baseUrl}/v1/sessions/${data.id}/send`, {
102
124
  method: "POST",
103
125
  headers: { ...headers, Accept: "application/json" },
104
126
  body: JSON.stringify({ message }),
105
- });
127
+ }, "send");
106
128
  if (!r.ok) {
107
- const body = await r.text();
108
- throw new Error(`send failed: ${r.status} ${body}`);
129
+ await throwFromResponse(r, "send");
109
130
  }
110
131
  return (await r.json());
111
132
  },
112
133
  async *sendStream(message) {
113
- const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/send`, {
134
+ const r = await safeFetch(`${baseUrl}/v1/sessions/${data.id}/send`, {
114
135
  method: "POST",
115
136
  headers: { ...headers, Accept: "text/event-stream" },
116
137
  body: JSON.stringify({ message }),
117
- });
138
+ }, "sendStream");
118
139
  if (!r.ok || !r.body) {
119
- const body = await r.text();
120
- throw new Error(`sendStream failed: ${r.status} ${body}`);
140
+ await throwFromResponse(r, "sendStream");
121
141
  }
142
+ // Once we're past the !r.ok branch, r.body is guaranteed non-null.
122
143
  yield* parseSseStream(r.body);
123
144
  },
124
145
  /**
@@ -180,30 +201,29 @@ export async function createSession(userId, config, deps) {
180
201
  return result.data;
181
202
  },
182
203
  async paymentStatus(toolCallId) {
183
- const r = await fetch(`${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/payment-status`, { headers });
204
+ const r = await safeFetch(`${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/payment-status`, { headers }, "paymentStatus");
184
205
  if (!r.ok) {
185
- const body = await r.text();
186
- throw new Error(`paymentStatus failed: ${r.status} ${body}`);
206
+ await throwFromResponse(r, "paymentStatus");
187
207
  }
188
208
  return (await r.json());
189
209
  },
190
210
  async verificationStatus(toolCallId) {
191
- const r = await fetch(`${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/verification-status`, { headers });
211
+ const r = await safeFetch(`${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/verification-status`, { headers }, "verificationStatus");
192
212
  if (!r.ok) {
193
- const body = await r.text();
194
- throw new Error(`verificationStatus failed: ${r.status} ${body}`);
213
+ await throwFromResponse(r, "verificationStatus");
195
214
  }
196
215
  return (await r.json());
197
216
  },
198
217
  async paymentStatusStream(toolCallId, options = {}) {
199
218
  const url = `${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/payment-status/stream`;
200
- const r = await fetch(url, {
219
+ const r = await safeFetch(url, {
201
220
  headers: { ...headers, Accept: "text/event-stream" },
202
221
  signal: options.signal,
203
- });
222
+ }, "paymentStatusStream");
204
223
  if (!r.ok || !r.body) {
205
- const body = await r.text();
206
- throw new Error(`paymentStatusStream failed: ${r.status} ${body}`);
224
+ await throwFromResponse(r, "paymentStatusStream");
225
+ // unreachable throwFromResponse always throws
226
+ throw new Error("unreachable");
207
227
  }
208
228
  let last = null;
209
229
  for await (const frame of parseStatusSseStream(r.body)) {
@@ -222,13 +242,14 @@ export async function createSession(userId, config, deps) {
222
242
  },
223
243
  async verificationStatusStream(toolCallId, options = {}) {
224
244
  const url = `${baseUrl}/v1/tool-calls/${encodeURIComponent(toolCallId)}/verification-status/stream`;
225
- const r = await fetch(url, {
245
+ const r = await safeFetch(url, {
226
246
  headers: { ...headers, Accept: "text/event-stream" },
227
247
  signal: options.signal,
228
- });
248
+ }, "verificationStatusStream");
229
249
  if (!r.ok || !r.body) {
230
- const body = await r.text();
231
- throw new Error(`verificationStatusStream failed: ${r.status} ${body}`);
250
+ await throwFromResponse(r, "verificationStatusStream");
251
+ // unreachable throwFromResponse always throws
252
+ throw new Error("unreachable");
232
253
  }
233
254
  let last = null;
234
255
  for await (const frame of parseStatusSseStream(r.body)) {
@@ -246,7 +267,7 @@ export async function createSession(userId, config, deps) {
246
267
  return last;
247
268
  },
248
269
  async authorize(serverId, config) {
249
- const r = await fetch(`${baseUrl}/v1/connect/start`, {
270
+ const r = await safeFetch(`${baseUrl}/v1/connect/start`, {
250
271
  method: "POST",
251
272
  headers,
252
273
  body: JSON.stringify({
@@ -255,10 +276,9 @@ export async function createSession(userId, config, deps) {
255
276
  redirect_uri: config.redirectUri,
256
277
  scopes: config.scopes,
257
278
  }),
258
- });
279
+ }, "authorize");
259
280
  if (!r.ok) {
260
- const body = await r.text();
261
- throw new Error(`authorize failed: ${r.status} ${body}`);
281
+ await throwFromResponse(r, "authorize");
262
282
  }
263
283
  const payload = (await r.json());
264
284
  return {
@@ -268,21 +288,32 @@ export async function createSession(userId, config, deps) {
268
288
  };
269
289
  },
270
290
  async connections() {
271
- const r = await fetch(`${baseUrl}/v1/sessions/${data.id}/connections`, {
272
- headers,
273
- });
274
- if (!r.ok)
291
+ // Best-effort both transport failures (CodesparApiError from
292
+ // safeFetch) and non-2xx responses fall back to the cached
293
+ // payload so a transient blip doesn't crater the session.
294
+ try {
295
+ const r = await safeFetch(`${baseUrl}/v1/sessions/${data.id}/connections`, { headers }, "connections");
296
+ if (!r.ok)
297
+ return cachedConnections ?? [];
298
+ const payload = (await r.json());
299
+ cachedConnections = payload.servers;
300
+ cachedTools = payload.tools;
301
+ return payload.servers;
302
+ }
303
+ catch {
275
304
  return cachedConnections ?? [];
276
- const payload = (await r.json());
277
- cachedConnections = payload.servers;
278
- cachedTools = payload.tools;
279
- return payload.servers;
305
+ }
280
306
  },
281
307
  async close() {
282
- await fetch(`${baseUrl}/v1/sessions/${data.id}`, {
283
- method: "DELETE",
284
- headers,
285
- });
308
+ // Best-effort — the backend reaps stale sessions on a timer,
309
+ // so a network failure here shouldn't surface to the caller.
310
+ try {
311
+ await safeFetch(`${baseUrl}/v1/sessions/${data.id}`, { method: "DELETE", headers }, "close");
312
+ }
313
+ catch {
314
+ // Intentional swallow — matches the previous fire-and-forget
315
+ // contract; close() never threw.
316
+ }
286
317
  },
287
318
  };
288
319
  if (config.manageConnections?.waitForConnections) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Session, ToolResult } from "@codespar/types";
2
+ export type { ToolResult };
3
+ export interface FakeSessionOptions {
4
+ /** When true, unregistered tool names resolve to {success:true,data:{}} instead of throwing. */
5
+ lenient?: boolean;
6
+ }
7
+ type FakeSessionResponse = ToolResult | ((input: Record<string, unknown>) => ToolResult | Promise<ToolResult>);
8
+ export declare function fakeSession(responses?: Record<string, FakeSessionResponse>, options?: FakeSessionOptions): Session;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE3D,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,kBAAkB;IACjC,gGAAgG;IAChG,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,mBAAmB,GACpB,UAAU,GACV,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAE3E,wBAAgB,WAAW,CACzB,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAM,EACnD,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CA+ET"}
@@ -0,0 +1,68 @@
1
+ // fakeSession v1 covers execute()-driven flows. send(), sendStream(),
2
+ // and channel mocking land when Layer 3 demos demand them.
3
+ export function fakeSession(responses = {}, options = {}) {
4
+ const session = {
5
+ id: "ses_fake",
6
+ status: "active",
7
+ mcp: { url: "https://example.invalid/mcp", headers: {} },
8
+ async execute(toolName, params) {
9
+ void params;
10
+ const entry = responses[toolName];
11
+ if (entry === undefined) {
12
+ if (options.lenient) {
13
+ return { success: true, data: {}, error: null, duration: 0, server: "", tool: toolName };
14
+ }
15
+ throw new Error(`fakeSession: no response registered for tool ${toolName}`);
16
+ }
17
+ return typeof entry === "function" ? await entry(params) : entry;
18
+ },
19
+ async send() {
20
+ return { message: "", tool_calls: [], iterations: 0 };
21
+ },
22
+ async *sendStream() {
23
+ // intentionally empty — fakeSession v1 does not synthesize stream events
24
+ },
25
+ async proxyExecute() {
26
+ return { status: 200, data: null, headers: {}, duration: 0 };
27
+ },
28
+ async authorize() {
29
+ return {
30
+ linkToken: "tok_test",
31
+ authorizeUrl: "https://provider.example.com/authorize",
32
+ expiresAt: new Date(Date.now() + 600_000).toISOString(),
33
+ };
34
+ },
35
+ async connections() {
36
+ return [];
37
+ },
38
+ async close() {
39
+ // noop
40
+ },
41
+ async discover(useCase) {
42
+ return { use_case: useCase, search_strategy: "empty", recommended: null, related: [], next_steps: [] };
43
+ },
44
+ async connectionWizard(opts) {
45
+ return { action: opts.action ?? "list", connections: [], status: null, initiate: null };
46
+ },
47
+ async charge(args) {
48
+ return { id: "chg_fake", status: "pending", amount: args.amount, currency: args.currency, method: args.method };
49
+ },
50
+ async ship(args) {
51
+ return { id: "shp_fake", status: args.action === "track" ? "in_transit" : "created" };
52
+ },
53
+ async paymentStatus(toolCallId) {
54
+ return { tool_call_id: toolCallId, payment_status: "pending", idempotency_key: null, original_status: "success", events: [] };
55
+ },
56
+ async paymentStatusStream(toolCallId) {
57
+ return { tool_call_id: toolCallId, payment_status: "pending", idempotency_key: null, original_status: "success", events: [] };
58
+ },
59
+ async verificationStatus(toolCallId) {
60
+ return { tool_call_id: toolCallId, verification_status: "pending", idempotency_key: null, original_status: "success", hosted_url: null, events: [] };
61
+ },
62
+ async verificationStatusStream(toolCallId) {
63
+ return { tool_call_id: toolCallId, verification_status: "pending", idempotency_key: null, original_status: "success", hosted_url: null, events: [] };
64
+ },
65
+ };
66
+ return session;
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Tool-result code helpers — type-narrowed guards for the discriminated
3
+ * `tool_result.output` union surfaced on streamed `ToolCallRecord`
4
+ * values.
5
+ *
6
+ * The five variants are inert wire shapes — they only describe what the
7
+ * backend may stamp on `tool_result.output`. The guards turn `unknown`
8
+ * into one of the five `*Output` interfaces so callers can branch
9
+ * without casting.
10
+ *
11
+ * Each guard checks both the `code` discriminant against
12
+ * TOOL_RESULT_CODES AND its own required sibling fields — so a
13
+ * well-formed `code` with a missing sibling returns false rather
14
+ * than narrowing positive on the discriminant alone. The exhaustive-
15
+ * match utility (`assertExhaustiveToolResult`) makes a switch over
16
+ * ToolResultCode fail to compile if a sixth variant lands without
17
+ * the consumer updating their handler.
18
+ */
19
+ import type { ToolCallRecord } from "@codespar/types";
20
+ export declare const ToolResultCode: {
21
+ readonly PolicyDenied: "policy_denied";
22
+ readonly ApprovalRequired: "approval_required";
23
+ readonly MocksExhausted: "mocks_exhausted";
24
+ readonly MocksEngineError: "mocks_engine_error";
25
+ readonly ToolNotMocked: "tool_not_mocked";
26
+ };
27
+ export type ToolResultCode = (typeof ToolResultCode)[keyof typeof ToolResultCode];
28
+ export declare const TOOL_RESULT_CODES: ReadonlySet<ToolResultCode>;
29
+ export interface PolicyDeniedOutput {
30
+ code: typeof ToolResultCode.PolicyDenied;
31
+ rule_id: string;
32
+ message: string;
33
+ }
34
+ export interface ApprovalRequiredOutput {
35
+ code: typeof ToolResultCode.ApprovalRequired;
36
+ approval_id: string;
37
+ expires_at: string;
38
+ message: string;
39
+ }
40
+ export interface MocksExhaustedOutput {
41
+ code: typeof ToolResultCode.MocksExhausted;
42
+ message: string;
43
+ }
44
+ export interface MocksEngineErrorOutput {
45
+ code: typeof ToolResultCode.MocksEngineError;
46
+ message: string;
47
+ }
48
+ export interface ToolNotMockedOutput {
49
+ code: typeof ToolResultCode.ToolNotMocked;
50
+ tool_name: string;
51
+ message: string;
52
+ }
53
+ export type ToolResultOutcome = PolicyDeniedOutput | ApprovalRequiredOutput | MocksExhaustedOutput | MocksEngineErrorOutput | ToolNotMockedOutput;
54
+ export type PolicyDeniedToolCall = ToolCallRecord & {
55
+ output: PolicyDeniedOutput;
56
+ };
57
+ export type ApprovalRequiredToolCall = ToolCallRecord & {
58
+ output: ApprovalRequiredOutput;
59
+ };
60
+ export type MocksExhaustedToolCall = ToolCallRecord & {
61
+ output: MocksExhaustedOutput;
62
+ };
63
+ export type MocksEngineErrorToolCall = ToolCallRecord & {
64
+ output: MocksEngineErrorOutput;
65
+ };
66
+ export type ToolNotMockedToolCall = ToolCallRecord & {
67
+ output: ToolNotMockedOutput;
68
+ };
69
+ export declare function isPolicyDenied(value: unknown): value is PolicyDeniedOutput;
70
+ export declare function isApprovalRequired(value: unknown): value is ApprovalRequiredOutput;
71
+ export declare function isMocksExhausted(value: unknown): value is MocksExhaustedOutput;
72
+ export declare function isMocksEngineError(value: unknown): value is MocksEngineErrorOutput;
73
+ export declare function isToolNotMocked(value: unknown): value is ToolNotMockedOutput;
74
+ /**
75
+ * Exhaustive-match witness. A `switch` over `ToolResultCode` should
76
+ * pass `value` here in the default branch — TS fails to compile if
77
+ * `value` isn't narrowed to `never`, i.e. if a code variant escaped
78
+ * the switch. The runtime body throws so a hostile cast at runtime
79
+ * doesn't silently swallow an unknown code.
80
+ */
81
+ export declare function assertExhaustiveToolResult(value: never): never;
82
+ //# sourceMappingURL=tool-result-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-result-codes.d.ts","sourceRoot":"","sources":["../src/tool-result-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAElF,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,cAAc,CAMxD,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,cAAc,CAAC,YAAY,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,cAAc,CAAC,cAAc,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,cAAc,CAAC,gBAAgB,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,cAAc,CAAC,aAAa,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,CAAC;AAIxB,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAClD,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IACtD,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,MAAM,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,cAAc,GAAG;IACtD,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAWF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAM1E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAK9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAKlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAM5E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAI9D"}