@bolt-foundry/gambit-core 0.8.1 → 0.8.5-rc.3

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 (262) hide show
  1. package/README.md +60 -34
  2. package/cards/context.card.md +5 -5
  3. package/cards/generate-test-input.card.md +12 -0
  4. package/{script/deps/jsr.io/@std/collections/1.1.4 → esm/deps/jsr.io/@std/collections/1.1.5}/deep_merge.d.ts +2 -2
  5. package/esm/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.d.ts.map +1 -1
  6. package/esm/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.js +29 -19
  7. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +1 -1
  8. package/esm/mod.d.ts +20 -10
  9. package/esm/mod.d.ts.map +1 -1
  10. package/esm/mod.js +11 -5
  11. package/esm/schemas/graders/contexts/conversation.d.ts +22 -0
  12. package/esm/schemas/graders/contexts/conversation.d.ts.map +1 -0
  13. package/esm/schemas/graders/contexts/conversation.js +17 -0
  14. package/esm/schemas/graders/contexts/conversation.zod.d.ts +3 -0
  15. package/esm/schemas/graders/contexts/conversation.zod.d.ts.map +1 -0
  16. package/esm/schemas/graders/contexts/conversation.zod.js +2 -0
  17. package/esm/schemas/graders/contexts/conversation_tools.d.ts +31 -0
  18. package/esm/schemas/graders/contexts/conversation_tools.d.ts.map +1 -0
  19. package/esm/schemas/graders/contexts/conversation_tools.js +25 -0
  20. package/esm/schemas/graders/contexts/conversation_tools.zod.d.ts +3 -0
  21. package/esm/schemas/graders/contexts/conversation_tools.zod.d.ts.map +1 -0
  22. package/esm/schemas/graders/contexts/conversation_tools.zod.js +2 -0
  23. package/esm/schemas/graders/contexts/tools.d.ts +4 -0
  24. package/esm/schemas/graders/contexts/tools.d.ts.map +1 -0
  25. package/esm/schemas/graders/contexts/tools.js +3 -0
  26. package/esm/schemas/graders/contexts/tools.zod.d.ts +3 -0
  27. package/esm/schemas/graders/contexts/tools.zod.d.ts.map +1 -0
  28. package/esm/schemas/graders/contexts/tools.zod.js +2 -0
  29. package/esm/schemas/graders/contexts/turn.d.ts +10 -0
  30. package/esm/schemas/graders/contexts/turn.d.ts.map +1 -0
  31. package/esm/schemas/graders/contexts/turn.js +8 -0
  32. package/esm/schemas/graders/contexts/turn.zod.d.ts +3 -0
  33. package/esm/schemas/graders/contexts/turn.zod.d.ts.map +1 -0
  34. package/esm/schemas/graders/contexts/turn.zod.js +2 -0
  35. package/esm/schemas/graders/contexts/turn_tools.d.ts +32 -0
  36. package/esm/schemas/graders/contexts/turn_tools.d.ts.map +1 -0
  37. package/esm/schemas/graders/contexts/turn_tools.js +28 -0
  38. package/esm/schemas/graders/contexts/turn_tools.zod.d.ts +3 -0
  39. package/esm/schemas/graders/contexts/turn_tools.zod.d.ts.map +1 -0
  40. package/esm/schemas/graders/contexts/turn_tools.zod.js +2 -0
  41. package/esm/schemas/graders/grader_output.d.ts +10 -0
  42. package/esm/schemas/graders/grader_output.d.ts.map +1 -0
  43. package/esm/schemas/graders/grader_output.js +8 -0
  44. package/esm/schemas/graders/grader_output.zod.d.ts +3 -0
  45. package/esm/schemas/graders/grader_output.zod.d.ts.map +1 -0
  46. package/esm/schemas/graders/grader_output.zod.js +2 -0
  47. package/esm/schemas/graders/respond.d.ts +12 -0
  48. package/esm/schemas/graders/respond.d.ts.map +1 -0
  49. package/esm/schemas/graders/respond.js +10 -0
  50. package/esm/schemas/graders/respond.zod.d.ts +3 -0
  51. package/esm/schemas/graders/respond.zod.d.ts.map +1 -0
  52. package/esm/schemas/graders/respond.zod.js +2 -0
  53. package/esm/schemas/scenarios/plain_chat_input_optional.d.ts +5 -0
  54. package/esm/schemas/scenarios/plain_chat_input_optional.d.ts.map +1 -0
  55. package/esm/schemas/scenarios/plain_chat_input_optional.js +5 -0
  56. package/esm/schemas/scenarios/plain_chat_input_optional.zod.d.ts +3 -0
  57. package/esm/schemas/scenarios/plain_chat_input_optional.zod.d.ts.map +1 -0
  58. package/esm/schemas/scenarios/plain_chat_input_optional.zod.js +2 -0
  59. package/esm/schemas/scenarios/plain_chat_output.d.ts +5 -0
  60. package/esm/schemas/scenarios/plain_chat_output.d.ts.map +1 -0
  61. package/esm/schemas/scenarios/plain_chat_output.js +4 -0
  62. package/esm/schemas/scenarios/plain_chat_output.zod.d.ts +3 -0
  63. package/esm/schemas/scenarios/plain_chat_output.zod.d.ts.map +1 -0
  64. package/esm/schemas/scenarios/plain_chat_output.zod.js +2 -0
  65. package/esm/src/builtins.d.ts +2 -0
  66. package/esm/src/builtins.d.ts.map +1 -1
  67. package/esm/src/builtins.js +45 -1
  68. package/esm/src/constants.d.ts +4 -0
  69. package/esm/src/constants.d.ts.map +1 -1
  70. package/esm/src/constants.js +5 -0
  71. package/esm/src/definitions.d.ts +5 -1
  72. package/esm/src/definitions.d.ts.map +1 -1
  73. package/esm/src/loader.d.ts.map +1 -1
  74. package/esm/src/loader.js +119 -13
  75. package/esm/src/markdown.d.ts.map +1 -1
  76. package/esm/src/markdown.js +222 -53
  77. package/esm/src/permissions.d.ts +143 -0
  78. package/esm/src/permissions.d.ts.map +1 -0
  79. package/esm/src/permissions.js +406 -0
  80. package/esm/src/render.d.ts.map +1 -1
  81. package/esm/src/render.js +22 -8
  82. package/esm/src/runtime.d.ts +28 -2
  83. package/esm/src/runtime.d.ts.map +1 -1
  84. package/esm/src/runtime.js +3051 -100
  85. package/esm/src/runtime_exec_host.d.ts +6 -0
  86. package/esm/src/runtime_exec_host.d.ts.map +1 -0
  87. package/esm/src/runtime_exec_host.js +17 -0
  88. package/esm/src/runtime_exec_host_contract.d.ts +23 -0
  89. package/esm/src/runtime_exec_host_contract.d.ts.map +1 -0
  90. package/esm/src/runtime_exec_host_contract.js +14 -0
  91. package/esm/src/runtime_exec_host_deno.d.ts +3 -0
  92. package/esm/src/runtime_exec_host_deno.d.ts.map +1 -0
  93. package/esm/src/runtime_exec_host_deno.js +35 -0
  94. package/esm/src/runtime_exec_host_unsupported.d.ts +3 -0
  95. package/esm/src/runtime_exec_host_unsupported.d.ts.map +1 -0
  96. package/esm/src/runtime_exec_host_unsupported.js +8 -0
  97. package/esm/src/runtime_worker_host.d.ts +6 -0
  98. package/esm/src/runtime_worker_host.d.ts.map +1 -0
  99. package/esm/src/runtime_worker_host.js +17 -0
  100. package/esm/src/runtime_worker_host_contract.d.ts +33 -0
  101. package/esm/src/runtime_worker_host_contract.d.ts.map +1 -0
  102. package/esm/src/runtime_worker_host_contract.js +14 -0
  103. package/esm/src/runtime_worker_host_deno.d.ts +3 -0
  104. package/esm/src/runtime_worker_host_deno.d.ts.map +1 -0
  105. package/esm/src/runtime_worker_host_deno.js +26 -0
  106. package/esm/src/runtime_worker_host_unsupported.d.ts +3 -0
  107. package/esm/src/runtime_worker_host_unsupported.d.ts.map +1 -0
  108. package/esm/src/runtime_worker_host_unsupported.js +8 -0
  109. package/esm/src/state.d.ts +4 -1
  110. package/esm/src/state.d.ts.map +1 -1
  111. package/esm/src/state.js +48 -2
  112. package/esm/src/types.d.ts +381 -1
  113. package/esm/src/types.d.ts.map +1 -1
  114. package/esm/src/types.js +102 -1
  115. package/package.json +73 -2
  116. package/schemas/graders/contexts/conversation.ts +32 -9
  117. package/schemas/graders/contexts/conversation.zod.ts +1 -0
  118. package/schemas/graders/contexts/conversation_tools.ts +63 -0
  119. package/schemas/graders/contexts/conversation_tools.zod.ts +1 -0
  120. package/schemas/graders/contexts/tools.ts +5 -0
  121. package/schemas/graders/contexts/tools.zod.ts +1 -0
  122. package/schemas/graders/contexts/turn.ts +8 -1
  123. package/schemas/graders/contexts/turn.zod.ts +1 -0
  124. package/schemas/graders/contexts/turn_tools.ts +63 -0
  125. package/schemas/graders/contexts/turn_tools.zod.ts +1 -0
  126. package/schemas/graders/grader_output.ts +15 -0
  127. package/schemas/graders/grader_output.zod.ts +1 -0
  128. package/schemas/graders/respond.ts +13 -3
  129. package/schemas/graders/respond.zod.ts +1 -0
  130. package/schemas/scenarios/plain_chat_input_optional.ts +6 -0
  131. package/schemas/scenarios/plain_chat_input_optional.zod.ts +1 -0
  132. package/schemas/scenarios/plain_chat_output.ts +5 -0
  133. package/schemas/scenarios/plain_chat_output.zod.ts +1 -0
  134. package/{esm/deps/jsr.io/@std/collections/1.1.4 → script/deps/jsr.io/@std/collections/1.1.5}/deep_merge.d.ts +2 -2
  135. package/script/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.d.ts.map +1 -1
  136. package/script/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.js +29 -19
  137. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.js +1 -1
  138. package/script/mod.d.ts +20 -10
  139. package/script/mod.d.ts.map +1 -1
  140. package/script/mod.js +25 -9
  141. package/script/schemas/graders/contexts/conversation.d.ts +22 -0
  142. package/script/schemas/graders/contexts/conversation.d.ts.map +1 -0
  143. package/script/schemas/graders/contexts/conversation.js +20 -0
  144. package/script/schemas/graders/contexts/conversation.zod.d.ts +3 -0
  145. package/script/schemas/graders/contexts/conversation.zod.d.ts.map +1 -0
  146. package/script/schemas/graders/contexts/conversation.zod.js +9 -0
  147. package/script/schemas/graders/contexts/conversation_tools.d.ts +31 -0
  148. package/script/schemas/graders/contexts/conversation_tools.d.ts.map +1 -0
  149. package/script/schemas/graders/contexts/conversation_tools.js +28 -0
  150. package/script/schemas/graders/contexts/conversation_tools.zod.d.ts +3 -0
  151. package/script/schemas/graders/contexts/conversation_tools.zod.d.ts.map +1 -0
  152. package/script/schemas/graders/contexts/conversation_tools.zod.js +9 -0
  153. package/script/schemas/graders/contexts/tools.d.ts +4 -0
  154. package/script/schemas/graders/contexts/tools.d.ts.map +1 -0
  155. package/script/schemas/graders/contexts/tools.js +12 -0
  156. package/script/schemas/graders/contexts/tools.zod.d.ts +3 -0
  157. package/script/schemas/graders/contexts/tools.zod.d.ts.map +1 -0
  158. package/script/schemas/graders/contexts/tools.zod.js +9 -0
  159. package/script/schemas/graders/contexts/turn.d.ts +10 -0
  160. package/script/schemas/graders/contexts/turn.d.ts.map +1 -0
  161. package/script/schemas/graders/contexts/turn.js +10 -0
  162. package/script/schemas/graders/contexts/turn.zod.d.ts +3 -0
  163. package/script/schemas/graders/contexts/turn.zod.d.ts.map +1 -0
  164. package/script/schemas/graders/contexts/turn.zod.js +9 -0
  165. package/script/schemas/graders/contexts/turn_tools.d.ts +32 -0
  166. package/script/schemas/graders/contexts/turn_tools.d.ts.map +1 -0
  167. package/script/schemas/graders/contexts/turn_tools.js +31 -0
  168. package/script/schemas/graders/contexts/turn_tools.zod.d.ts +3 -0
  169. package/script/schemas/graders/contexts/turn_tools.zod.d.ts.map +1 -0
  170. package/script/schemas/graders/contexts/turn_tools.zod.js +9 -0
  171. package/script/schemas/graders/grader_output.d.ts +10 -0
  172. package/script/schemas/graders/grader_output.d.ts.map +1 -0
  173. package/script/schemas/graders/grader_output.js +10 -0
  174. package/script/schemas/graders/grader_output.zod.d.ts +3 -0
  175. package/script/schemas/graders/grader_output.zod.d.ts.map +1 -0
  176. package/script/schemas/graders/grader_output.zod.js +9 -0
  177. package/script/schemas/graders/respond.d.ts +12 -0
  178. package/script/schemas/graders/respond.d.ts.map +1 -0
  179. package/script/schemas/graders/respond.js +12 -0
  180. package/script/schemas/graders/respond.zod.d.ts +3 -0
  181. package/script/schemas/graders/respond.zod.d.ts.map +1 -0
  182. package/script/schemas/graders/respond.zod.js +9 -0
  183. package/script/schemas/scenarios/plain_chat_input_optional.d.ts +5 -0
  184. package/script/schemas/scenarios/plain_chat_input_optional.d.ts.map +1 -0
  185. package/script/schemas/scenarios/plain_chat_input_optional.js +7 -0
  186. package/script/schemas/scenarios/plain_chat_input_optional.zod.d.ts +3 -0
  187. package/script/schemas/scenarios/plain_chat_input_optional.zod.d.ts.map +1 -0
  188. package/script/schemas/scenarios/plain_chat_input_optional.zod.js +9 -0
  189. package/script/schemas/scenarios/plain_chat_output.d.ts +5 -0
  190. package/script/schemas/scenarios/plain_chat_output.d.ts.map +1 -0
  191. package/script/schemas/scenarios/plain_chat_output.js +6 -0
  192. package/script/schemas/scenarios/plain_chat_output.zod.d.ts +3 -0
  193. package/script/schemas/scenarios/plain_chat_output.zod.d.ts.map +1 -0
  194. package/script/schemas/scenarios/plain_chat_output.zod.js +9 -0
  195. package/script/src/builtins.d.ts +2 -0
  196. package/script/src/builtins.d.ts.map +1 -1
  197. package/script/src/builtins.js +47 -1
  198. package/script/src/constants.d.ts +4 -0
  199. package/script/src/constants.d.ts.map +1 -1
  200. package/script/src/constants.js +6 -1
  201. package/script/src/definitions.d.ts +5 -1
  202. package/script/src/definitions.d.ts.map +1 -1
  203. package/script/src/loader.d.ts.map +1 -1
  204. package/script/src/loader.js +118 -12
  205. package/script/src/markdown.d.ts.map +1 -1
  206. package/script/src/markdown.js +221 -52
  207. package/script/src/permissions.d.ts +143 -0
  208. package/script/src/permissions.d.ts.map +1 -0
  209. package/script/src/permissions.js +453 -0
  210. package/script/src/render.d.ts.map +1 -1
  211. package/script/src/render.js +22 -8
  212. package/script/src/runtime.d.ts +28 -2
  213. package/script/src/runtime.d.ts.map +1 -1
  214. package/script/src/runtime.js +3053 -99
  215. package/script/src/runtime_exec_host.d.ts +6 -0
  216. package/script/src/runtime_exec_host.d.ts.map +1 -0
  217. package/script/src/runtime_exec_host.js +56 -0
  218. package/script/src/runtime_exec_host_contract.d.ts +23 -0
  219. package/script/src/runtime_exec_host_contract.d.ts.map +1 -0
  220. package/script/src/runtime_exec_host_contract.js +18 -0
  221. package/script/src/runtime_exec_host_deno.d.ts +3 -0
  222. package/script/src/runtime_exec_host_deno.d.ts.map +1 -0
  223. package/script/src/runtime_exec_host_deno.js +71 -0
  224. package/script/src/runtime_exec_host_unsupported.d.ts +3 -0
  225. package/script/src/runtime_exec_host_unsupported.d.ts.map +1 -0
  226. package/script/src/runtime_exec_host_unsupported.js +11 -0
  227. package/script/src/runtime_worker_host.d.ts +6 -0
  228. package/script/src/runtime_worker_host.d.ts.map +1 -0
  229. package/script/src/runtime_worker_host.js +56 -0
  230. package/script/src/runtime_worker_host_contract.d.ts +33 -0
  231. package/script/src/runtime_worker_host_contract.d.ts.map +1 -0
  232. package/script/src/runtime_worker_host_contract.js +18 -0
  233. package/script/src/runtime_worker_host_deno.d.ts +3 -0
  234. package/script/src/runtime_worker_host_deno.d.ts.map +1 -0
  235. package/script/src/runtime_worker_host_deno.js +62 -0
  236. package/script/src/runtime_worker_host_unsupported.d.ts +3 -0
  237. package/script/src/runtime_worker_host_unsupported.d.ts.map +1 -0
  238. package/script/src/runtime_worker_host_unsupported.js +11 -0
  239. package/script/src/state.d.ts +4 -1
  240. package/script/src/state.d.ts.map +1 -1
  241. package/script/src/state.js +48 -2
  242. package/script/src/types.d.ts +381 -1
  243. package/script/src/types.d.ts.map +1 -1
  244. package/script/src/types.js +103 -0
  245. package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts +0 -6
  246. package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts.map +0 -1
  247. package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.js +0 -18
  248. package/esm/src/openai_compat.d.ts +0 -63
  249. package/esm/src/openai_compat.d.ts.map +0 -1
  250. package/esm/src/openai_compat.js +0 -272
  251. package/esm/src/providers/openrouter.d.ts +0 -8
  252. package/esm/src/providers/openrouter.d.ts.map +0 -1
  253. package/esm/src/providers/openrouter.js +0 -168
  254. package/script/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts +0 -6
  255. package/script/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts.map +0 -1
  256. package/script/deps/jsr.io/@std/collections/1.1.4/_utils.js +0 -21
  257. package/script/src/openai_compat.d.ts +0 -63
  258. package/script/src/openai_compat.d.ts.map +0 -1
  259. package/script/src/openai_compat.js +0 -276
  260. package/script/src/providers/openrouter.d.ts +0 -8
  261. package/script/src/providers/openrouter.d.ts.map +0 -1
  262. package/script/src/providers/openrouter.js +0 -207
@@ -0,0 +1,453 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PERMISSION_KINDS = void 0;
37
+ exports.cloneNormalizedPermissions = cloneNormalizedPermissions;
38
+ exports.allowAllPermissions = allowAllPermissions;
39
+ exports.normalizePermissionDeclaration = normalizePermissionDeclaration;
40
+ exports.normalizePermissionDeclarationToSet = normalizePermissionDeclarationToSet;
41
+ exports.serializePermissions = serializePermissions;
42
+ exports.intersectPermissions = intersectPermissions;
43
+ exports.resolveEffectivePermissions = resolveEffectivePermissions;
44
+ exports.canReadPath = canReadPath;
45
+ exports.canWritePath = canWritePath;
46
+ exports.canRunPath = canRunPath;
47
+ exports.canRunCommand = canRunCommand;
48
+ const dntShim = __importStar(require("../_dnt.shims.js"));
49
+ const path = __importStar(require("../deps/jsr.io/@std/path/1.1.4/mod.js"));
50
+ /**
51
+ * Deno-native permission kinds supported by Gambit's permission contract.
52
+ */
53
+ exports.PERMISSION_KINDS = ["read", "write", "run", "net", "env"];
54
+ const DENY_SCOPE = { all: false, values: new Set() };
55
+ const DENY_RUN_SCOPE = {
56
+ all: false,
57
+ paths: new Set(),
58
+ commands: new Set(),
59
+ };
60
+ function cloneScope(scope) {
61
+ return {
62
+ all: scope.all,
63
+ values: new Set(scope.values),
64
+ };
65
+ }
66
+ function cloneRunScope(scope) {
67
+ return {
68
+ all: scope.all,
69
+ paths: new Set(scope.paths),
70
+ commands: new Set(scope.commands),
71
+ };
72
+ }
73
+ function cloneNormalizedPermissions(input) {
74
+ return {
75
+ baseDir: input.baseDir,
76
+ read: cloneScope(input.read),
77
+ write: cloneScope(input.write),
78
+ run: cloneRunScope(input.run),
79
+ net: cloneScope(input.net),
80
+ env: cloneScope(input.env),
81
+ };
82
+ }
83
+ function normalizeList(input, kind, baseDir, opts) {
84
+ if (input === true)
85
+ return { all: true, values: new Set() };
86
+ if (input === false || input === undefined || input === null) {
87
+ return cloneScope(DENY_SCOPE);
88
+ }
89
+ if (!Array.isArray(input)) {
90
+ throw new Error(`permissions.${kind} must be boolean or array`);
91
+ }
92
+ const values = new Set();
93
+ for (const entry of input) {
94
+ if (typeof entry !== "string") {
95
+ throw new Error(`permissions.${kind} entries must be strings`);
96
+ }
97
+ const trimmed = entry.trim();
98
+ if (!trimmed)
99
+ continue;
100
+ const normalized = opts?.resolvePaths
101
+ ? path.resolve(baseDir, trimmed)
102
+ : trimmed;
103
+ values.add(normalized);
104
+ }
105
+ return { all: false, values };
106
+ }
107
+ function normalizeRun(input, baseDir) {
108
+ if (input === true) {
109
+ return {
110
+ all: true,
111
+ paths: new Set(),
112
+ commands: new Set(),
113
+ };
114
+ }
115
+ if (input === false || input === undefined || input === null) {
116
+ return cloneRunScope(DENY_RUN_SCOPE);
117
+ }
118
+ if (Array.isArray(input)) {
119
+ const commands = new Set();
120
+ for (const entry of input) {
121
+ if (typeof entry !== "string") {
122
+ throw new Error("permissions.run entries must be strings");
123
+ }
124
+ const trimmed = entry.trim();
125
+ if (!trimmed)
126
+ continue;
127
+ commands.add(trimmed);
128
+ }
129
+ return { all: false, paths: new Set(), commands };
130
+ }
131
+ if (typeof input !== "object") {
132
+ throw new Error("permissions.run must be boolean, array, or object");
133
+ }
134
+ const record = input;
135
+ if (typeof record.paths === "boolean") {
136
+ throw new Error("permissions.run.paths must be an array in object form; use permissions.run=true for full run access");
137
+ }
138
+ if (typeof record.commands === "boolean") {
139
+ throw new Error("permissions.run.commands must be an array in object form; use permissions.run=true for full run access");
140
+ }
141
+ const pathsScope = normalizeList(record.paths, "run", baseDir, {
142
+ resolvePaths: true,
143
+ });
144
+ const commandsScope = normalizeList(record.commands, "run", baseDir, {
145
+ resolvePaths: false,
146
+ });
147
+ return {
148
+ all: false,
149
+ paths: pathsScope.values,
150
+ commands: commandsScope.values,
151
+ };
152
+ }
153
+ function intersectScope(a, b) {
154
+ if (a.all)
155
+ return cloneScope(b);
156
+ if (b.all)
157
+ return cloneScope(a);
158
+ const values = new Set();
159
+ for (const value of a.values) {
160
+ if (b.values.has(value))
161
+ values.add(value);
162
+ }
163
+ return { all: false, values };
164
+ }
165
+ function intersectRun(a, b) {
166
+ if (a.all)
167
+ return cloneRunScope(b);
168
+ if (b.all)
169
+ return cloneRunScope(a);
170
+ const paths = new Set();
171
+ for (const value of a.paths) {
172
+ if (b.paths.has(value))
173
+ paths.add(value);
174
+ }
175
+ const commands = new Set();
176
+ for (const value of a.commands) {
177
+ if (b.commands.has(value))
178
+ commands.add(value);
179
+ }
180
+ return {
181
+ all: false,
182
+ paths,
183
+ commands,
184
+ };
185
+ }
186
+ /**
187
+ * Returns an allow-all permission set anchored to `baseDir`.
188
+ */
189
+ function allowAllPermissions(baseDir) {
190
+ return {
191
+ baseDir,
192
+ read: { all: true, values: new Set() },
193
+ write: { all: true, values: new Set() },
194
+ run: { all: true, paths: new Set(), commands: new Set() },
195
+ net: { all: true, values: new Set() },
196
+ env: { all: true, values: new Set() },
197
+ };
198
+ }
199
+ function normalizePermissionSet(input, baseDir) {
200
+ return {
201
+ baseDir,
202
+ read: normalizeList(input.read, "read", baseDir, { resolvePaths: true }),
203
+ write: normalizeList(input.write, "write", baseDir, {
204
+ resolvePaths: true,
205
+ }),
206
+ run: normalizeRun(input.run, baseDir),
207
+ net: normalizeList(input.net, "net", baseDir),
208
+ env: normalizeList(input.env, "env", baseDir),
209
+ };
210
+ }
211
+ /**
212
+ * Normalizes a permission declaration to a serializable, deterministic shape.
213
+ *
214
+ * Relative path grants are resolved against `baseDir`.
215
+ */
216
+ function normalizePermissionDeclaration(input, baseDir) {
217
+ if (!input)
218
+ return undefined;
219
+ return serializePermissions(normalizePermissionSet(input, baseDir));
220
+ }
221
+ /**
222
+ * Normalizes a declaration to the internal set form used during intersection.
223
+ */
224
+ function normalizePermissionDeclarationToSet(input, baseDir) {
225
+ if (!input)
226
+ return undefined;
227
+ return normalizePermissionSet(input, baseDir);
228
+ }
229
+ /**
230
+ * Serializes an internal normalized permission set for traces/persistence.
231
+ */
232
+ function serializePermissions(set) {
233
+ const serializeScope = (scope) => {
234
+ if (scope.all)
235
+ return true;
236
+ if (scope.values.size === 0)
237
+ return false;
238
+ return Array.from(scope.values).sort();
239
+ };
240
+ const serializeRunScope = (scope) => {
241
+ if (scope.all)
242
+ return true;
243
+ if (scope.paths.size === 0 && scope.commands.size === 0) {
244
+ return false;
245
+ }
246
+ return {
247
+ paths: Array.from(scope.paths).sort(),
248
+ commands: Array.from(scope.commands).sort(),
249
+ };
250
+ };
251
+ return {
252
+ read: serializeScope(set.read),
253
+ write: serializeScope(set.write),
254
+ run: serializeRunScope(set.run),
255
+ net: serializeScope(set.net),
256
+ env: serializeScope(set.env),
257
+ };
258
+ }
259
+ /**
260
+ * Computes the monotonic intersection between two permission sets.
261
+ *
262
+ * `baseDir` controls how relative checks (`canReadPath`/etc) are evaluated for
263
+ * the returned set.
264
+ */
265
+ function intersectPermissions(parent, next, baseDir) {
266
+ return {
267
+ baseDir,
268
+ read: intersectScope(parent.read, next.read),
269
+ write: intersectScope(parent.write, next.write),
270
+ run: intersectRun(parent.run, next.run),
271
+ net: intersectScope(parent.net, next.net),
272
+ env: intersectScope(parent.env, next.env),
273
+ };
274
+ }
275
+ /**
276
+ * Resolves effective permissions and emits a layer-by-layer permission trace.
277
+ *
278
+ * Layer precedence:
279
+ * 1. `parent` (or host allow-all for roots)
280
+ * 2. `workspace` (root only)
281
+ * 3. `declaration` (deck/card declaration)
282
+ * 4. `reference` (parent reference override)
283
+ * 5. `session` (root only)
284
+ */
285
+ function resolveEffectivePermissions(args) {
286
+ const layers = [];
287
+ let effective = args.parent
288
+ ? {
289
+ ...cloneNormalizedPermissions(args.parent),
290
+ // Rebase relative-path checks to the current invocation scope.
291
+ baseDir: args.baseDir,
292
+ }
293
+ : allowAllPermissions(args.baseDir);
294
+ if (args.parent) {
295
+ layers.push({
296
+ name: "parent",
297
+ baseDir: args.parent.baseDir,
298
+ requested: serializePermissions(args.parent),
299
+ effective: serializePermissions(effective),
300
+ });
301
+ }
302
+ else {
303
+ layers.push({
304
+ name: "host",
305
+ baseDir: args.baseDir,
306
+ requested: serializePermissions(effective),
307
+ effective: serializePermissions(effective),
308
+ });
309
+ }
310
+ const applyLayer = (name, input) => {
311
+ if (!input)
312
+ return;
313
+ const requested = normalizePermissionSet(input.permissions, input.baseDir);
314
+ effective = intersectPermissions(effective, requested, args.baseDir);
315
+ layers.push({
316
+ name,
317
+ baseDir: input.baseDir,
318
+ requested: serializePermissions(requested),
319
+ effective: serializePermissions(effective),
320
+ });
321
+ };
322
+ if (!args.parent) {
323
+ applyLayer("workspace", args.workspace);
324
+ }
325
+ applyLayer("declaration", args.declaration);
326
+ applyLayer("reference", args.reference);
327
+ if (!args.parent) {
328
+ applyLayer("session", args.session);
329
+ }
330
+ return {
331
+ effective,
332
+ trace: {
333
+ baseDir: args.baseDir,
334
+ effective: serializePermissions(effective),
335
+ layers,
336
+ },
337
+ };
338
+ }
339
+ /**
340
+ * Checks whether `target` is covered by `scope`, treating each value as either
341
+ * an exact path grant or the root of an allowed directory tree.
342
+ */
343
+ function matchScope(scope, target) {
344
+ if (scope.all)
345
+ return true;
346
+ const canonicalTarget = canonicalizePath(target);
347
+ if (!canonicalTarget)
348
+ return false;
349
+ for (const root of scope.values) {
350
+ const canonicalRoot = canonicalizePath(root);
351
+ if (!canonicalRoot)
352
+ continue;
353
+ if (pathWithinRoot(canonicalRoot, canonicalTarget))
354
+ return true;
355
+ }
356
+ return false;
357
+ }
358
+ function pathWithinRoot(root, target) {
359
+ if (root === target)
360
+ return true;
361
+ const rel = path.relative(root, target);
362
+ return rel.length > 0 && !rel.startsWith("..") && !path.isAbsolute(rel);
363
+ }
364
+ function canonicalizePath(target) {
365
+ const resolved = path.resolve(target);
366
+ try {
367
+ return path.resolve(dntShim.Deno.realPathSync(resolved));
368
+ }
369
+ catch (err) {
370
+ if (err instanceof dntShim.Deno.errors.NotFound) {
371
+ return canonicalizeMissingPath(resolved);
372
+ }
373
+ return undefined;
374
+ }
375
+ }
376
+ function canonicalizeMissingPath(target) {
377
+ const suffix = [];
378
+ let probe = target;
379
+ while (true) {
380
+ try {
381
+ const canonicalBase = path.resolve(dntShim.Deno.realPathSync(probe));
382
+ if (suffix.length === 0)
383
+ return canonicalBase;
384
+ return path.resolve(canonicalBase, ...suffix.reverse());
385
+ }
386
+ catch (err) {
387
+ if (err instanceof dntShim.Deno.errors.NotFound) {
388
+ const parent = path.dirname(probe);
389
+ if (parent === probe)
390
+ return undefined;
391
+ suffix.push(path.basename(probe));
392
+ probe = parent;
393
+ continue;
394
+ }
395
+ return undefined;
396
+ }
397
+ }
398
+ }
399
+ /**
400
+ * Returns whether `targetPath` is readable under `set`.
401
+ *
402
+ * Relative paths are resolved against `set.baseDir`.
403
+ */
404
+ function canReadPath(set, targetPath) {
405
+ return matchScope(set.read, path.resolve(set.baseDir, targetPath));
406
+ }
407
+ /**
408
+ * Returns whether `targetPath` is writable under `set`.
409
+ *
410
+ * Relative paths are resolved against `set.baseDir`.
411
+ */
412
+ function canWritePath(set, targetPath) {
413
+ return matchScope(set.write, path.resolve(set.baseDir, targetPath));
414
+ }
415
+ /**
416
+ * Returns whether `targetPath` is executable via run-path grants.
417
+ *
418
+ * Relative paths are resolved against `set.baseDir`.
419
+ */
420
+ function canRunPath(set, targetPath) {
421
+ if (set.run.all)
422
+ return true;
423
+ const resolvedTarget = path.resolve(set.baseDir, targetPath);
424
+ const canonicalTarget = canonicalizePath(resolvedTarget);
425
+ if (!canonicalTarget)
426
+ return false;
427
+ // Run-path grants are exact binary grants; deny symlink-mediated execution.
428
+ if (canonicalTarget !== resolvedTarget)
429
+ return false;
430
+ for (const allowedPath of set.run.paths) {
431
+ const resolvedAllowed = path.resolve(set.baseDir, allowedPath);
432
+ if (resolvedAllowed !== resolvedTarget)
433
+ continue;
434
+ const canonicalAllowed = canonicalizePath(resolvedAllowed);
435
+ if (!canonicalAllowed)
436
+ continue;
437
+ if (canonicalAllowed !== resolvedAllowed)
438
+ continue;
439
+ if (canonicalAllowed === canonicalTarget)
440
+ return true;
441
+ }
442
+ return false;
443
+ }
444
+ /**
445
+ * Returns whether `commandName` is executable via run-command grants.
446
+ *
447
+ * This check intentionally does not apply basename/path fallback semantics.
448
+ */
449
+ function canRunCommand(set, commandName) {
450
+ if (set.run.all)
451
+ return true;
452
+ return set.run.commands.has(commandName);
453
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/src/render.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5E,eAAO,MAAM,MAAM,SAAU,CAAC;AAE9B,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QAC/C,OAAO,EACH,MAAM,GACN,IAAI,GACJ,KAAK,CAAC,MAAM,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;KACzC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;CACH,CAAC;AA6JF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0E3B"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/src/render.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,YAAY,EAEZ,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,MAAM,SAAU,CAAC;AAE9B,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;QAC/C,OAAO,EACH,MAAM,GACN,IAAI,GACJ,KAAK,CAAC,MAAM,GAAG;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;KACzC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;CACH,CAAC;AA6KF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA+E3B"}
@@ -62,6 +62,12 @@ function warnIfSystemMismatch(args) {
62
62
  function toolName(tool) {
63
63
  return tool.function?.name ?? "";
64
64
  }
65
+ function resolveContextSchema(deck) {
66
+ return deck.contextSchema ?? deck.inputSchema;
67
+ }
68
+ function resolveResponseSchema(deck) {
69
+ return deck.responseSchema ?? deck.outputSchema;
70
+ }
65
71
  function assertNoToolNameCollisions(args) {
66
72
  if (!args.externalTools?.length)
67
73
  return;
@@ -84,12 +90,14 @@ async function buildDeckActionTools(deckPath) {
84
90
  const actionPathsByName = {};
85
91
  for (const action of deck.actionDecks) {
86
92
  const child = await (0, loader_js_1.loadDeck)(action.path, deck.path);
87
- if (!child.inputSchema || !child.outputSchema) {
88
- throw new Error(`Deck ${child.path} must declare inputSchema and outputSchema (non-root)`);
93
+ const contextSchema = resolveContextSchema(child);
94
+ const responseSchema = resolveResponseSchema(child);
95
+ if (!contextSchema || !responseSchema) {
96
+ throw new Error(`Deck ${child.path} must declare contextSchema and responseSchema (non-root)`);
89
97
  }
90
- (0, schema_js_1.assertZodSchema)(child.inputSchema, "inputSchema");
91
- (0, schema_js_1.assertZodSchema)(child.outputSchema, "outputSchema");
92
- const params = (0, schema_js_1.toJsonSchema)(child.inputSchema);
98
+ (0, schema_js_1.assertZodSchema)(contextSchema, "contextSchema");
99
+ (0, schema_js_1.assertZodSchema)(responseSchema, "responseSchema");
100
+ const params = (0, schema_js_1.toJsonSchema)(contextSchema);
93
101
  tools.push({
94
102
  type: "function",
95
103
  function: {
@@ -106,8 +114,11 @@ function mergeModelParams(req, deckParams) {
106
114
  const out = { ...req };
107
115
  if (!deckParams)
108
116
  return out;
109
- if (out.model === undefined && deckParams.model)
110
- out.model = deckParams.model;
117
+ if (out.model === undefined && deckParams.model) {
118
+ out.model = Array.isArray(deckParams.model)
119
+ ? deckParams.model.find((entry) => typeof entry === "string" && entry.trim().length > 0)
120
+ : deckParams.model;
121
+ }
111
122
  if (out.temperature === undefined && deckParams.temperature !== undefined) {
112
123
  out.temperature = deckParams.temperature;
113
124
  }
@@ -171,7 +182,10 @@ async function renderDeck(opts) {
171
182
  }
172
183
  tools = mergedReq.tools;
173
184
  }
174
- const model = String(mergedReq.model ?? "").trim();
185
+ const resolvedModel = Array.isArray(mergedReq.model)
186
+ ? mergedReq.model.find((entry) => typeof entry === "string" && entry.trim().length > 0)
187
+ : mergedReq.model;
188
+ const model = String(resolvedModel ?? "").trim();
175
189
  if (!model) {
176
190
  throw new Error(`renderDeck requires request.model (or deck.modelParams.model): ${deck.path}`);
177
191
  }
@@ -1,5 +1,6 @@
1
1
  import type { Guardrails, ModelProvider } from "./types.js";
2
2
  import type { SavedState } from "./state.js";
3
+ import type { NormalizedPermissionSet, PermissionDeclarationInput } from "./permissions.js";
3
4
  export type GambitEndSignal = {
4
5
  __gambitEnd: true;
5
6
  payload?: unknown;
@@ -9,7 +10,7 @@ export type GambitEndSignal = {
9
10
  meta?: Record<string, unknown>;
10
11
  };
11
12
  export declare function isGambitEndSignal(value: unknown): value is GambitEndSignal;
12
- type RunOptions = {
13
+ export type RunOptions = {
13
14
  path: string;
14
15
  input: unknown;
15
16
  inputProvided?: boolean;
@@ -29,7 +30,32 @@ type RunOptions = {
29
30
  onStateUpdate?: (state: SavedState) => void;
30
31
  onStreamText?: (chunk: string) => void;
31
32
  allowRootStringInput?: boolean;
33
+ responsesMode?: boolean;
34
+ workspacePermissions?: PermissionDeclarationInput;
35
+ workspacePermissionsBaseDir?: string;
36
+ sessionPermissions?: PermissionDeclarationInput;
37
+ sessionPermissionsBaseDir?: string;
38
+ parentPermissions?: NormalizedPermissionSet;
39
+ referencePermissions?: PermissionDeclarationInput;
40
+ referencePermissionsBaseDir?: string;
41
+ runDeadlineMs?: number;
42
+ workerSandbox?: boolean;
43
+ inOrchestrationWorker?: boolean;
44
+ signal?: AbortSignal;
45
+ onCancel?: () => unknown | Promise<unknown>;
46
+ onTool?: (input: {
47
+ name: string;
48
+ args: Record<string, unknown>;
49
+ runId: string;
50
+ actionCallId: string;
51
+ parentActionCallId?: string;
52
+ deckPath: string;
53
+ }) => unknown | Promise<unknown>;
32
54
  };
55
+ export declare class RunCanceledError extends Error {
56
+ code: string;
57
+ constructor(message?: string);
58
+ }
59
+ export declare function isRunCanceledError(err: unknown): boolean;
33
60
  export declare function runDeck(opts: RunOptions): Promise<unknown>;
34
- export {};
35
61
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/src/runtime.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,UAAU,EAGV,aAAa,EAGd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,IAAI,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAM1E;AAiBD,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,UAAU,KAAK,IAAI,CAAC;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAgGhE"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/src/runtime.ts"],"names":[],"mappings":"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"}