@vendoai/apps 0.4.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 (203) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +8 -0
  3. package/dist/adapter-conformance.d.ts +48 -0
  4. package/dist/adapter-conformance.d.ts.map +1 -0
  5. package/dist/adapter-conformance.js +196 -0
  6. package/dist/adapter-conformance.js.map +1 -0
  7. package/dist/agent-tools.d.ts +10 -0
  8. package/dist/agent-tools.d.ts.map +1 -0
  9. package/dist/agent-tools.js +252 -0
  10. package/dist/agent-tools.js.map +1 -0
  11. package/dist/app-data.d.ts +23 -0
  12. package/dist/app-data.d.ts.map +1 -0
  13. package/dist/app-data.js +129 -0
  14. package/dist/app-data.js.map +1 -0
  15. package/dist/app-token.d.ts +24 -0
  16. package/dist/app-token.d.ts.map +1 -0
  17. package/dist/app-token.js +61 -0
  18. package/dist/app-token.js.map +1 -0
  19. package/dist/audit.d.ts +11 -0
  20. package/dist/audit.d.ts.map +1 -0
  21. package/dist/audit.js +19 -0
  22. package/dist/audit.js.map +1 -0
  23. package/dist/automation-plan.d.ts +43 -0
  24. package/dist/automation-plan.d.ts.map +1 -0
  25. package/dist/automation-plan.js +212 -0
  26. package/dist/automation-plan.js.map +1 -0
  27. package/dist/bench/client.d.ts +43 -0
  28. package/dist/bench/client.d.ts.map +1 -0
  29. package/dist/bench/client.js +129 -0
  30. package/dist/bench/client.js.map +1 -0
  31. package/dist/bench/fixtures.d.ts +42 -0
  32. package/dist/bench/fixtures.d.ts.map +1 -0
  33. package/dist/bench/fixtures.js +146 -0
  34. package/dist/bench/fixtures.js.map +1 -0
  35. package/dist/bench/judge.d.ts +9 -0
  36. package/dist/bench/judge.d.ts.map +1 -0
  37. package/dist/bench/judge.js +71 -0
  38. package/dist/bench/judge.js.map +1 -0
  39. package/dist/bench/metrics.d.ts +32 -0
  40. package/dist/bench/metrics.d.ts.map +1 -0
  41. package/dist/bench/metrics.js +172 -0
  42. package/dist/bench/metrics.js.map +1 -0
  43. package/dist/bench/prompts.d.ts +17 -0
  44. package/dist/bench/prompts.d.ts.map +1 -0
  45. package/dist/bench/prompts.js +100 -0
  46. package/dist/bench/prompts.js.map +1 -0
  47. package/dist/bench/report.d.ts +43 -0
  48. package/dist/bench/report.d.ts.map +1 -0
  49. package/dist/bench/report.js +74 -0
  50. package/dist/bench/report.js.map +1 -0
  51. package/dist/bench/runner.d.ts +15 -0
  52. package/dist/bench/runner.d.ts.map +1 -0
  53. package/dist/bench/runner.js +26 -0
  54. package/dist/bench/runner.js.map +1 -0
  55. package/dist/bench/toolfork.d.ts +18 -0
  56. package/dist/bench/toolfork.d.ts.map +1 -0
  57. package/dist/bench/toolfork.js +125 -0
  58. package/dist/bench/toolfork.js.map +1 -0
  59. package/dist/box-agent.d.ts +78 -0
  60. package/dist/box-agent.d.ts.map +1 -0
  61. package/dist/box-agent.js +137 -0
  62. package/dist/box-agent.js.map +1 -0
  63. package/dist/box-env.d.ts +26 -0
  64. package/dist/box-env.d.ts.map +1 -0
  65. package/dist/box-env.js +52 -0
  66. package/dist/box-env.js.map +1 -0
  67. package/dist/call.d.ts +23 -0
  68. package/dist/call.d.ts.map +1 -0
  69. package/dist/call.js +45 -0
  70. package/dist/call.js.map +1 -0
  71. package/dist/cloud.d.ts +4917 -0
  72. package/dist/cloud.d.ts.map +1 -0
  73. package/dist/cloud.js +16 -0
  74. package/dist/cloud.js.map +1 -0
  75. package/dist/e2b/index.d.ts +30 -0
  76. package/dist/e2b/index.d.ts.map +1 -0
  77. package/dist/e2b/index.js +273 -0
  78. package/dist/e2b/index.js.map +1 -0
  79. package/dist/egress-approval.d.ts +73 -0
  80. package/dist/egress-approval.d.ts.map +1 -0
  81. package/dist/egress-approval.js +74 -0
  82. package/dist/egress-approval.js.map +1 -0
  83. package/dist/engine.d.ts +188 -0
  84. package/dist/engine.d.ts.map +1 -0
  85. package/dist/engine.js +1507 -0
  86. package/dist/engine.js.map +1 -0
  87. package/dist/fn.d.ts +22 -0
  88. package/dist/fn.d.ts.map +1 -0
  89. package/dist/fn.js +108 -0
  90. package/dist/fn.js.map +1 -0
  91. package/dist/history.d.ts +21 -0
  92. package/dist/history.d.ts.map +1 -0
  93. package/dist/history.js +158 -0
  94. package/dist/history.js.map +1 -0
  95. package/dist/inclient.d.ts +48 -0
  96. package/dist/inclient.d.ts.map +1 -0
  97. package/dist/inclient.js +68 -0
  98. package/dist/inclient.js.map +1 -0
  99. package/dist/index.d.ts +24 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +25 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/interchange.d.ts +17 -0
  104. package/dist/interchange.d.ts.map +1 -0
  105. package/dist/interchange.js +133 -0
  106. package/dist/interchange.js.map +1 -0
  107. package/dist/machine-lifecycle.d.ts +102 -0
  108. package/dist/machine-lifecycle.d.ts.map +1 -0
  109. package/dist/machine-lifecycle.js +360 -0
  110. package/dist/machine-lifecycle.js.map +1 -0
  111. package/dist/manifest.d.ts +42 -0
  112. package/dist/manifest.d.ts.map +1 -0
  113. package/dist/manifest.js +53 -0
  114. package/dist/manifest.js.map +1 -0
  115. package/dist/open.d.ts +45 -0
  116. package/dist/open.d.ts.map +1 -0
  117. package/dist/open.js +245 -0
  118. package/dist/open.js.map +1 -0
  119. package/dist/parked-action.d.ts +51 -0
  120. package/dist/parked-action.d.ts.map +1 -0
  121. package/dist/parked-action.js +29 -0
  122. package/dist/parked-action.js.map +1 -0
  123. package/dist/persistence.d.ts +41 -0
  124. package/dist/persistence.d.ts.map +1 -0
  125. package/dist/persistence.js +86 -0
  126. package/dist/persistence.js.map +1 -0
  127. package/dist/pins.d.ts +231 -0
  128. package/dist/pins.d.ts.map +1 -0
  129. package/dist/pins.js +213 -0
  130. package/dist/pins.js.map +1 -0
  131. package/dist/pipeline.d.ts +142 -0
  132. package/dist/pipeline.d.ts.map +1 -0
  133. package/dist/pipeline.js +1014 -0
  134. package/dist/pipeline.js.map +1 -0
  135. package/dist/prewired-schema.d.ts +16 -0
  136. package/dist/prewired-schema.d.ts.map +1 -0
  137. package/dist/prewired-schema.js +48 -0
  138. package/dist/prewired-schema.js.map +1 -0
  139. package/dist/redaction.d.ts +13 -0
  140. package/dist/redaction.d.ts.map +1 -0
  141. package/dist/redaction.js +67 -0
  142. package/dist/redaction.js.map +1 -0
  143. package/dist/runtime.d.ts +463 -0
  144. package/dist/runtime.d.ts.map +1 -0
  145. package/dist/runtime.js +1715 -0
  146. package/dist/runtime.js.map +1 -0
  147. package/dist/sandbox.d.ts +90 -0
  148. package/dist/sandbox.d.ts.map +1 -0
  149. package/dist/sandbox.js +2 -0
  150. package/dist/sandbox.js.map +1 -0
  151. package/dist/schedules.d.ts +89 -0
  152. package/dist/schedules.d.ts.map +1 -0
  153. package/dist/schedules.js +334 -0
  154. package/dist/schedules.js.map +1 -0
  155. package/dist/secret-exposure.d.ts +55 -0
  156. package/dist/secret-exposure.d.ts.map +1 -0
  157. package/dist/secret-exposure.js +53 -0
  158. package/dist/secret-exposure.js.map +1 -0
  159. package/dist/ship-diff.d.ts +47 -0
  160. package/dist/ship-diff.d.ts.map +1 -0
  161. package/dist/ship-diff.js +39 -0
  162. package/dist/ship-diff.js.map +1 -0
  163. package/dist/testing/fake-box.d.ts +67 -0
  164. package/dist/testing/fake-box.d.ts.map +1 -0
  165. package/dist/testing/fake-box.js +166 -0
  166. package/dist/testing/fake-box.js.map +1 -0
  167. package/dist/testing/fake-sandbox-v2.d.ts +59 -0
  168. package/dist/testing/fake-sandbox-v2.d.ts.map +1 -0
  169. package/dist/testing/fake-sandbox-v2.js +121 -0
  170. package/dist/testing/fake-sandbox-v2.js.map +1 -0
  171. package/dist/testing/fake-sandbox.d.ts +94 -0
  172. package/dist/testing/fake-sandbox.d.ts.map +1 -0
  173. package/dist/testing/fake-sandbox.js +239 -0
  174. package/dist/testing/fake-sandbox.js.map +1 -0
  175. package/dist/testing/guard-fixture.d.ts +19 -0
  176. package/dist/testing/guard-fixture.d.ts.map +1 -0
  177. package/dist/testing/guard-fixture.js +134 -0
  178. package/dist/testing/guard-fixture.js.map +1 -0
  179. package/dist/testing/index.d.ts +8 -0
  180. package/dist/testing/index.d.ts.map +1 -0
  181. package/dist/testing/index.js +8 -0
  182. package/dist/testing/index.js.map +1 -0
  183. package/dist/testing/memory-store.d.ts +5 -0
  184. package/dist/testing/memory-store.d.ts.map +1 -0
  185. package/dist/testing/memory-store.js +4 -0
  186. package/dist/testing/memory-store.js.map +1 -0
  187. package/dist/testing/scripted-model.d.ts +32 -0
  188. package/dist/testing/scripted-model.d.ts.map +1 -0
  189. package/dist/testing/scripted-model.js +112 -0
  190. package/dist/testing/scripted-model.js.map +1 -0
  191. package/dist/testing/seed-app-row.d.ts +4 -0
  192. package/dist/testing/seed-app-row.d.ts.map +1 -0
  193. package/dist/testing/seed-app-row.js +7 -0
  194. package/dist/testing/seed-app-row.js.map +1 -0
  195. package/dist/unified-diff.d.ts +13 -0
  196. package/dist/unified-diff.d.ts.map +1 -0
  197. package/dist/unified-diff.js +127 -0
  198. package/dist/unified-diff.js.map +1 -0
  199. package/dist/version-hash.d.ts +9 -0
  200. package/dist/version-hash.d.ts.map +1 -0
  201. package/dist/version-hash.js +12 -0
  202. package/dist/version-hash.js.map +1 -0
  203. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-app-row.d.ts","sourceRoot":"","sources":["../../src/testing/seed-app-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D,2DAA2D;AAC3D,eAAO,MAAM,UAAU,GACrB,OAAO,YAAY,EACnB,KAAK,WAAW,EAChB,SAAS,MAAM,EACf,iBAAe,iDAMb,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Seed an app using the reserved vendo_apps row shape. */
2
+ export const seedAppRow = (store, app, subject, enabled = false) => store.records("vendo_apps").put({
3
+ id: app.id,
4
+ data: { subject, enabled, doc: app },
5
+ refs: { subject },
6
+ });
7
+ //# sourceMappingURL=seed-app-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-app-row.js","sourceRoot":"","sources":["../../src/testing/seed-app-row.ts"],"names":[],"mappings":"AAEA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAmB,EACnB,GAAgB,EAChB,OAAe,EACf,OAAO,GAAG,KAAK,EACf,EAAE,CACF,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;IAC9B,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;IACpC,IAAI,EAAE,EAAE,OAAO,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Minimal line-based unified diff for pin ship requests (06-apps §8).
3
+ *
4
+ * PinShipRequest.diff is "the net diff against the host baseline" a human
5
+ * approver reviews. Component sources are small (caps in 01-core §9), so a
6
+ * plain O(n·m) LCS is comfortably fast and keeps this dependency-free.
7
+ */
8
+ /**
9
+ * Produce a standard unified diff (`--- a/…`, `+++ b/…`, `@@` hunks) between
10
+ * two sources. Identical inputs produce an empty string.
11
+ */
12
+ export declare const unifiedDiff: (label: string, before: string, after: string) => string;
13
+ //# sourceMappingURL=unified-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-diff.d.ts","sourceRoot":"","sources":["../src/unified-diff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkDH;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E1E,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Minimal line-based unified diff for pin ship requests (06-apps §8).
3
+ *
4
+ * PinShipRequest.diff is "the net diff against the host baseline" a human
5
+ * approver reviews. Component sources are small (caps in 01-core §9), so a
6
+ * plain O(n·m) LCS is comfortably fast and keeps this dependency-free.
7
+ */
8
+ const CONTEXT = 3;
9
+ const splitLines = (text) => text === "" ? [] : text.split("\n");
10
+ /** Longest-common-subsequence edit script over lines. */
11
+ const editScript = (before, after) => {
12
+ const rows = before.length;
13
+ const cols = after.length;
14
+ // lcs[i][j] = LCS length of before[i..] vs after[j..]
15
+ const lcs = Array.from({ length: rows + 1 }, () => new Array(cols + 1).fill(0));
16
+ for (let i = rows - 1; i >= 0; i -= 1) {
17
+ for (let j = cols - 1; j >= 0; j -= 1) {
18
+ lcs[i][j] = before[i] === after[j]
19
+ ? lcs[i + 1][j + 1] + 1
20
+ : Math.max(lcs[i + 1][j], lcs[i][j + 1]);
21
+ }
22
+ }
23
+ const ops = [];
24
+ let i = 0;
25
+ let j = 0;
26
+ while (i < rows && j < cols) {
27
+ if (before[i] === after[j]) {
28
+ ops.push({ kind: "same", line: before[i] });
29
+ i += 1;
30
+ j += 1;
31
+ }
32
+ else if (lcs[i + 1][j] >= lcs[i][j + 1]) {
33
+ ops.push({ kind: "del", line: before[i] });
34
+ i += 1;
35
+ }
36
+ else {
37
+ ops.push({ kind: "add", line: after[j] });
38
+ j += 1;
39
+ }
40
+ }
41
+ while (i < rows)
42
+ ops.push({ kind: "del", line: before[i++] });
43
+ while (j < cols)
44
+ ops.push({ kind: "add", line: after[j++] });
45
+ return ops;
46
+ };
47
+ /**
48
+ * Produce a standard unified diff (`--- a/…`, `+++ b/…`, `@@` hunks) between
49
+ * two sources. Identical inputs produce an empty string.
50
+ */
51
+ export const unifiedDiff = (label, before, after) => {
52
+ if (before === after)
53
+ return "";
54
+ const ops = editScript(splitLines(before), splitLines(after));
55
+ const hunks = [];
56
+ let current;
57
+ let beforeLine = 1;
58
+ let afterLine = 1;
59
+ let trailingContext = 0;
60
+ const flush = () => {
61
+ if (current === undefined)
62
+ return;
63
+ // Trim context beyond CONTEXT lines at the hunk tail.
64
+ while (trailingContext > CONTEXT) {
65
+ current.lines.pop();
66
+ current.beforeCount -= 1;
67
+ current.afterCount -= 1;
68
+ trailingContext -= 1;
69
+ }
70
+ hunks.push(current);
71
+ current = undefined;
72
+ trailingContext = 0;
73
+ };
74
+ const pending = [];
75
+ for (const op of ops) {
76
+ if (op.kind === "same") {
77
+ if (current !== undefined) {
78
+ current.lines.push(` ${op.line}`);
79
+ current.beforeCount += 1;
80
+ current.afterCount += 1;
81
+ trailingContext += 1;
82
+ if (trailingContext > CONTEXT * 2)
83
+ flush();
84
+ }
85
+ else {
86
+ pending.push(op);
87
+ if (pending.length > CONTEXT)
88
+ pending.shift();
89
+ }
90
+ beforeLine += 1;
91
+ afterLine += 1;
92
+ continue;
93
+ }
94
+ if (current === undefined) {
95
+ current = {
96
+ beforeStart: beforeLine - pending.length,
97
+ beforeCount: pending.length,
98
+ afterStart: afterLine - pending.length,
99
+ afterCount: pending.length,
100
+ lines: pending.map((context) => ` ${context.line}`),
101
+ };
102
+ pending.length = 0;
103
+ }
104
+ trailingContext = 0;
105
+ if (op.kind === "del") {
106
+ current.lines.push(`-${op.line}`);
107
+ current.beforeCount += 1;
108
+ beforeLine += 1;
109
+ }
110
+ else {
111
+ current.lines.push(`+${op.line}`);
112
+ current.afterCount += 1;
113
+ afterLine += 1;
114
+ }
115
+ }
116
+ flush();
117
+ const body = hunks.map((hunk) => {
118
+ const beforeStart = hunk.beforeCount === 0 ? hunk.beforeStart - 1 : hunk.beforeStart;
119
+ const afterStart = hunk.afterCount === 0 ? hunk.afterStart - 1 : hunk.afterStart;
120
+ return [
121
+ `@@ -${beforeStart},${hunk.beforeCount} +${afterStart},${hunk.afterCount} @@`,
122
+ ...hunk.lines,
123
+ ].join("\n");
124
+ }).join("\n");
125
+ return `--- a/${label}\n+++ b/${label}\n${body}\n`;
126
+ };
127
+ //# sourceMappingURL=unified-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified-diff.js","sourceRoot":"","sources":["../src/unified-diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type AppDocument } from "@vendoai/core";
2
+ /**
3
+ * Hash the execution-bearing content of an app version for in-client approval.
4
+ * `id` and `forkedFrom` are copy identity/provenance, not content: import mints a
5
+ * fresh id and intentionally drops lineage. All other fields, including the
6
+ * server snapshot reference, affect what the approved app can render or do.
7
+ */
8
+ export declare const appVersionHash: (doc: AppDocument) => string;
9
+ //# sourceMappingURL=version-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-hash.d.ts","sourceRoot":"","sources":["../src/version-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,WAAW,KAAG,MAGjD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { canonicalJson, sha256Hex } from "@vendoai/core";
2
+ /**
3
+ * Hash the execution-bearing content of an app version for in-client approval.
4
+ * `id` and `forkedFrom` are copy identity/provenance, not content: import mints a
5
+ * fresh id and intentionally drops lineage. All other fields, including the
6
+ * server snapshot reference, affect what the approved app can render or do.
7
+ */
8
+ export const appVersionHash = (doc) => {
9
+ const { id: _id, forkedFrom: _forkedFrom, ...content } = structuredClone(doc);
10
+ return `sha256:${sha256Hex(canonicalJson(content))}`;
11
+ };
12
+ //# sourceMappingURL=version-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-hash.js","sourceRoot":"","sources":["../src/version-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAoB,MAAM,eAAe,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAgB,EAAU,EAAE;IACzD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9E,OAAO,UAAU,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@vendoai/apps",
3
+ "version": "0.4.0",
4
+ "description": "The Vendo app artifact, build engine, sandbox seam, and runtime.",
5
+ "keywords": [
6
+ "ai",
7
+ "agent",
8
+ "apps",
9
+ "vendo"
10
+ ],
11
+ "license": "Apache-2.0",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/runvendo/vendo.git",
15
+ "directory": "packages/apps"
16
+ },
17
+ "homepage": "https://vendo.run",
18
+ "bugs": "https://github.com/runvendo/vendo/issues",
19
+ "engines": {
20
+ "node": ">=20"
21
+ },
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "type": "module",
26
+ "sideEffects": false,
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "default": "./dist/index.js"
33
+ },
34
+ "./e2b": {
35
+ "types": "./dist/e2b/index.d.ts",
36
+ "default": "./dist/e2b/index.js"
37
+ },
38
+ "./adapter-conformance": {
39
+ "types": "./dist/adapter-conformance.d.ts",
40
+ "default": "./dist/adapter-conformance.js"
41
+ }
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "README.md"
46
+ ],
47
+ "dependencies": {
48
+ "croner": "^9.0.0",
49
+ "esbuild": "^0.25.0",
50
+ "fflate": "^0.8.2",
51
+ "zod": "^3.25.0",
52
+ "@vendoai/core": "0.4.0"
53
+ },
54
+ "peerDependencies": {
55
+ "ai": ">=6.0.0 <7",
56
+ "e2b": "^2.32.0",
57
+ "vitest": "^2.0.0"
58
+ },
59
+ "peerDependenciesMeta": {
60
+ "ai": {
61
+ "optional": true
62
+ },
63
+ "e2b": {
64
+ "optional": true
65
+ },
66
+ "vitest": {
67
+ "optional": true
68
+ }
69
+ },
70
+ "devDependencies": {
71
+ "@ai-sdk/anthropic": "3.0.12",
72
+ "@types/node": "^22.0.0",
73
+ "ai": "6.0.28",
74
+ "e2b": "^2.32.0",
75
+ "typescript": "^5.6.0",
76
+ "vitest": "^2.1.0"
77
+ },
78
+ "scripts": {
79
+ "build": "tsc -p tsconfig.json",
80
+ "test": "vitest run",
81
+ "typecheck": "tsc -p tsconfig.json --noEmit",
82
+ "test:coverage": "vitest run --coverage"
83
+ }
84
+ }