@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.
- package/README.md +60 -34
- package/cards/context.card.md +5 -5
- package/cards/generate-test-input.card.md +12 -0
- 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
- package/esm/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.js +29 -19
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +1 -1
- package/esm/mod.d.ts +20 -10
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +11 -5
- package/esm/schemas/graders/contexts/conversation.d.ts +22 -0
- package/esm/schemas/graders/contexts/conversation.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/conversation.js +17 -0
- package/esm/schemas/graders/contexts/conversation.zod.d.ts +3 -0
- package/esm/schemas/graders/contexts/conversation.zod.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/conversation.zod.js +2 -0
- package/esm/schemas/graders/contexts/conversation_tools.d.ts +31 -0
- package/esm/schemas/graders/contexts/conversation_tools.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/conversation_tools.js +25 -0
- package/esm/schemas/graders/contexts/conversation_tools.zod.d.ts +3 -0
- package/esm/schemas/graders/contexts/conversation_tools.zod.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/conversation_tools.zod.js +2 -0
- package/esm/schemas/graders/contexts/tools.d.ts +4 -0
- package/esm/schemas/graders/contexts/tools.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/tools.js +3 -0
- package/esm/schemas/graders/contexts/tools.zod.d.ts +3 -0
- package/esm/schemas/graders/contexts/tools.zod.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/tools.zod.js +2 -0
- package/esm/schemas/graders/contexts/turn.d.ts +10 -0
- package/esm/schemas/graders/contexts/turn.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/turn.js +8 -0
- package/esm/schemas/graders/contexts/turn.zod.d.ts +3 -0
- package/esm/schemas/graders/contexts/turn.zod.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/turn.zod.js +2 -0
- package/esm/schemas/graders/contexts/turn_tools.d.ts +32 -0
- package/esm/schemas/graders/contexts/turn_tools.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/turn_tools.js +28 -0
- package/esm/schemas/graders/contexts/turn_tools.zod.d.ts +3 -0
- package/esm/schemas/graders/contexts/turn_tools.zod.d.ts.map +1 -0
- package/esm/schemas/graders/contexts/turn_tools.zod.js +2 -0
- package/esm/schemas/graders/grader_output.d.ts +10 -0
- package/esm/schemas/graders/grader_output.d.ts.map +1 -0
- package/esm/schemas/graders/grader_output.js +8 -0
- package/esm/schemas/graders/grader_output.zod.d.ts +3 -0
- package/esm/schemas/graders/grader_output.zod.d.ts.map +1 -0
- package/esm/schemas/graders/grader_output.zod.js +2 -0
- package/esm/schemas/graders/respond.d.ts +12 -0
- package/esm/schemas/graders/respond.d.ts.map +1 -0
- package/esm/schemas/graders/respond.js +10 -0
- package/esm/schemas/graders/respond.zod.d.ts +3 -0
- package/esm/schemas/graders/respond.zod.d.ts.map +1 -0
- package/esm/schemas/graders/respond.zod.js +2 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.d.ts +5 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.d.ts.map +1 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.js +5 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.zod.d.ts +3 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.zod.d.ts.map +1 -0
- package/esm/schemas/scenarios/plain_chat_input_optional.zod.js +2 -0
- package/esm/schemas/scenarios/plain_chat_output.d.ts +5 -0
- package/esm/schemas/scenarios/plain_chat_output.d.ts.map +1 -0
- package/esm/schemas/scenarios/plain_chat_output.js +4 -0
- package/esm/schemas/scenarios/plain_chat_output.zod.d.ts +3 -0
- package/esm/schemas/scenarios/plain_chat_output.zod.d.ts.map +1 -0
- package/esm/schemas/scenarios/plain_chat_output.zod.js +2 -0
- package/esm/src/builtins.d.ts +2 -0
- package/esm/src/builtins.d.ts.map +1 -1
- package/esm/src/builtins.js +45 -1
- package/esm/src/constants.d.ts +4 -0
- package/esm/src/constants.d.ts.map +1 -1
- package/esm/src/constants.js +5 -0
- package/esm/src/definitions.d.ts +5 -1
- package/esm/src/definitions.d.ts.map +1 -1
- package/esm/src/loader.d.ts.map +1 -1
- package/esm/src/loader.js +119 -13
- package/esm/src/markdown.d.ts.map +1 -1
- package/esm/src/markdown.js +222 -53
- package/esm/src/permissions.d.ts +143 -0
- package/esm/src/permissions.d.ts.map +1 -0
- package/esm/src/permissions.js +406 -0
- package/esm/src/render.d.ts.map +1 -1
- package/esm/src/render.js +22 -8
- package/esm/src/runtime.d.ts +28 -2
- package/esm/src/runtime.d.ts.map +1 -1
- package/esm/src/runtime.js +3051 -100
- package/esm/src/runtime_exec_host.d.ts +6 -0
- package/esm/src/runtime_exec_host.d.ts.map +1 -0
- package/esm/src/runtime_exec_host.js +17 -0
- package/esm/src/runtime_exec_host_contract.d.ts +23 -0
- package/esm/src/runtime_exec_host_contract.d.ts.map +1 -0
- package/esm/src/runtime_exec_host_contract.js +14 -0
- package/esm/src/runtime_exec_host_deno.d.ts +3 -0
- package/esm/src/runtime_exec_host_deno.d.ts.map +1 -0
- package/esm/src/runtime_exec_host_deno.js +35 -0
- package/esm/src/runtime_exec_host_unsupported.d.ts +3 -0
- package/esm/src/runtime_exec_host_unsupported.d.ts.map +1 -0
- package/esm/src/runtime_exec_host_unsupported.js +8 -0
- package/esm/src/runtime_worker_host.d.ts +6 -0
- package/esm/src/runtime_worker_host.d.ts.map +1 -0
- package/esm/src/runtime_worker_host.js +17 -0
- package/esm/src/runtime_worker_host_contract.d.ts +33 -0
- package/esm/src/runtime_worker_host_contract.d.ts.map +1 -0
- package/esm/src/runtime_worker_host_contract.js +14 -0
- package/esm/src/runtime_worker_host_deno.d.ts +3 -0
- package/esm/src/runtime_worker_host_deno.d.ts.map +1 -0
- package/esm/src/runtime_worker_host_deno.js +26 -0
- package/esm/src/runtime_worker_host_unsupported.d.ts +3 -0
- package/esm/src/runtime_worker_host_unsupported.d.ts.map +1 -0
- package/esm/src/runtime_worker_host_unsupported.js +8 -0
- package/esm/src/state.d.ts +4 -1
- package/esm/src/state.d.ts.map +1 -1
- package/esm/src/state.js +48 -2
- package/esm/src/types.d.ts +381 -1
- package/esm/src/types.d.ts.map +1 -1
- package/esm/src/types.js +102 -1
- package/package.json +73 -2
- package/schemas/graders/contexts/conversation.ts +32 -9
- package/schemas/graders/contexts/conversation.zod.ts +1 -0
- package/schemas/graders/contexts/conversation_tools.ts +63 -0
- package/schemas/graders/contexts/conversation_tools.zod.ts +1 -0
- package/schemas/graders/contexts/tools.ts +5 -0
- package/schemas/graders/contexts/tools.zod.ts +1 -0
- package/schemas/graders/contexts/turn.ts +8 -1
- package/schemas/graders/contexts/turn.zod.ts +1 -0
- package/schemas/graders/contexts/turn_tools.ts +63 -0
- package/schemas/graders/contexts/turn_tools.zod.ts +1 -0
- package/schemas/graders/grader_output.ts +15 -0
- package/schemas/graders/grader_output.zod.ts +1 -0
- package/schemas/graders/respond.ts +13 -3
- package/schemas/graders/respond.zod.ts +1 -0
- package/schemas/scenarios/plain_chat_input_optional.ts +6 -0
- package/schemas/scenarios/plain_chat_input_optional.zod.ts +1 -0
- package/schemas/scenarios/plain_chat_output.ts +5 -0
- package/schemas/scenarios/plain_chat_output.zod.ts +1 -0
- 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
- package/script/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/collections/{1.1.4 → 1.1.5}/deep_merge.js +29 -19
- package/script/deps/jsr.io/@std/toml/1.0.11/_parser.js +1 -1
- package/script/mod.d.ts +20 -10
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +25 -9
- package/script/schemas/graders/contexts/conversation.d.ts +22 -0
- package/script/schemas/graders/contexts/conversation.d.ts.map +1 -0
- package/script/schemas/graders/contexts/conversation.js +20 -0
- package/script/schemas/graders/contexts/conversation.zod.d.ts +3 -0
- package/script/schemas/graders/contexts/conversation.zod.d.ts.map +1 -0
- package/script/schemas/graders/contexts/conversation.zod.js +9 -0
- package/script/schemas/graders/contexts/conversation_tools.d.ts +31 -0
- package/script/schemas/graders/contexts/conversation_tools.d.ts.map +1 -0
- package/script/schemas/graders/contexts/conversation_tools.js +28 -0
- package/script/schemas/graders/contexts/conversation_tools.zod.d.ts +3 -0
- package/script/schemas/graders/contexts/conversation_tools.zod.d.ts.map +1 -0
- package/script/schemas/graders/contexts/conversation_tools.zod.js +9 -0
- package/script/schemas/graders/contexts/tools.d.ts +4 -0
- package/script/schemas/graders/contexts/tools.d.ts.map +1 -0
- package/script/schemas/graders/contexts/tools.js +12 -0
- package/script/schemas/graders/contexts/tools.zod.d.ts +3 -0
- package/script/schemas/graders/contexts/tools.zod.d.ts.map +1 -0
- package/script/schemas/graders/contexts/tools.zod.js +9 -0
- package/script/schemas/graders/contexts/turn.d.ts +10 -0
- package/script/schemas/graders/contexts/turn.d.ts.map +1 -0
- package/script/schemas/graders/contexts/turn.js +10 -0
- package/script/schemas/graders/contexts/turn.zod.d.ts +3 -0
- package/script/schemas/graders/contexts/turn.zod.d.ts.map +1 -0
- package/script/schemas/graders/contexts/turn.zod.js +9 -0
- package/script/schemas/graders/contexts/turn_tools.d.ts +32 -0
- package/script/schemas/graders/contexts/turn_tools.d.ts.map +1 -0
- package/script/schemas/graders/contexts/turn_tools.js +31 -0
- package/script/schemas/graders/contexts/turn_tools.zod.d.ts +3 -0
- package/script/schemas/graders/contexts/turn_tools.zod.d.ts.map +1 -0
- package/script/schemas/graders/contexts/turn_tools.zod.js +9 -0
- package/script/schemas/graders/grader_output.d.ts +10 -0
- package/script/schemas/graders/grader_output.d.ts.map +1 -0
- package/script/schemas/graders/grader_output.js +10 -0
- package/script/schemas/graders/grader_output.zod.d.ts +3 -0
- package/script/schemas/graders/grader_output.zod.d.ts.map +1 -0
- package/script/schemas/graders/grader_output.zod.js +9 -0
- package/script/schemas/graders/respond.d.ts +12 -0
- package/script/schemas/graders/respond.d.ts.map +1 -0
- package/script/schemas/graders/respond.js +12 -0
- package/script/schemas/graders/respond.zod.d.ts +3 -0
- package/script/schemas/graders/respond.zod.d.ts.map +1 -0
- package/script/schemas/graders/respond.zod.js +9 -0
- package/script/schemas/scenarios/plain_chat_input_optional.d.ts +5 -0
- package/script/schemas/scenarios/plain_chat_input_optional.d.ts.map +1 -0
- package/script/schemas/scenarios/plain_chat_input_optional.js +7 -0
- package/script/schemas/scenarios/plain_chat_input_optional.zod.d.ts +3 -0
- package/script/schemas/scenarios/plain_chat_input_optional.zod.d.ts.map +1 -0
- package/script/schemas/scenarios/plain_chat_input_optional.zod.js +9 -0
- package/script/schemas/scenarios/plain_chat_output.d.ts +5 -0
- package/script/schemas/scenarios/plain_chat_output.d.ts.map +1 -0
- package/script/schemas/scenarios/plain_chat_output.js +6 -0
- package/script/schemas/scenarios/plain_chat_output.zod.d.ts +3 -0
- package/script/schemas/scenarios/plain_chat_output.zod.d.ts.map +1 -0
- package/script/schemas/scenarios/plain_chat_output.zod.js +9 -0
- package/script/src/builtins.d.ts +2 -0
- package/script/src/builtins.d.ts.map +1 -1
- package/script/src/builtins.js +47 -1
- package/script/src/constants.d.ts +4 -0
- package/script/src/constants.d.ts.map +1 -1
- package/script/src/constants.js +6 -1
- package/script/src/definitions.d.ts +5 -1
- package/script/src/definitions.d.ts.map +1 -1
- package/script/src/loader.d.ts.map +1 -1
- package/script/src/loader.js +118 -12
- package/script/src/markdown.d.ts.map +1 -1
- package/script/src/markdown.js +221 -52
- package/script/src/permissions.d.ts +143 -0
- package/script/src/permissions.d.ts.map +1 -0
- package/script/src/permissions.js +453 -0
- package/script/src/render.d.ts.map +1 -1
- package/script/src/render.js +22 -8
- package/script/src/runtime.d.ts +28 -2
- package/script/src/runtime.d.ts.map +1 -1
- package/script/src/runtime.js +3053 -99
- package/script/src/runtime_exec_host.d.ts +6 -0
- package/script/src/runtime_exec_host.d.ts.map +1 -0
- package/script/src/runtime_exec_host.js +56 -0
- package/script/src/runtime_exec_host_contract.d.ts +23 -0
- package/script/src/runtime_exec_host_contract.d.ts.map +1 -0
- package/script/src/runtime_exec_host_contract.js +18 -0
- package/script/src/runtime_exec_host_deno.d.ts +3 -0
- package/script/src/runtime_exec_host_deno.d.ts.map +1 -0
- package/script/src/runtime_exec_host_deno.js +71 -0
- package/script/src/runtime_exec_host_unsupported.d.ts +3 -0
- package/script/src/runtime_exec_host_unsupported.d.ts.map +1 -0
- package/script/src/runtime_exec_host_unsupported.js +11 -0
- package/script/src/runtime_worker_host.d.ts +6 -0
- package/script/src/runtime_worker_host.d.ts.map +1 -0
- package/script/src/runtime_worker_host.js +56 -0
- package/script/src/runtime_worker_host_contract.d.ts +33 -0
- package/script/src/runtime_worker_host_contract.d.ts.map +1 -0
- package/script/src/runtime_worker_host_contract.js +18 -0
- package/script/src/runtime_worker_host_deno.d.ts +3 -0
- package/script/src/runtime_worker_host_deno.d.ts.map +1 -0
- package/script/src/runtime_worker_host_deno.js +62 -0
- package/script/src/runtime_worker_host_unsupported.d.ts +3 -0
- package/script/src/runtime_worker_host_unsupported.d.ts.map +1 -0
- package/script/src/runtime_worker_host_unsupported.js +11 -0
- package/script/src/state.d.ts +4 -1
- package/script/src/state.d.ts.map +1 -1
- package/script/src/state.js +48 -2
- package/script/src/types.d.ts +381 -1
- package/script/src/types.d.ts.map +1 -1
- package/script/src/types.js +103 -0
- package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts +0 -6
- package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/collections/1.1.4/_utils.js +0 -18
- package/esm/src/openai_compat.d.ts +0 -63
- package/esm/src/openai_compat.d.ts.map +0 -1
- package/esm/src/openai_compat.js +0 -272
- package/esm/src/providers/openrouter.d.ts +0 -8
- package/esm/src/providers/openrouter.d.ts.map +0 -1
- package/esm/src/providers/openrouter.js +0 -168
- package/script/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts +0 -6
- package/script/deps/jsr.io/@std/collections/1.1.4/_utils.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/collections/1.1.4/_utils.js +0 -21
- package/script/src/openai_compat.d.ts +0 -63
- package/script/src/openai_compat.d.ts.map +0 -1
- package/script/src/openai_compat.js +0 -276
- package/script/src/providers/openrouter.d.ts +0 -8
- package/script/src/providers/openrouter.d.ts.map +0 -1
- package/script/src/providers/openrouter.js +0 -207
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../../src/schemas/graders/contexts/turn.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAClD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACrD,CAAC;AAEF,QAAA,MAAM,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAGxD,CAAC;AAEH,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "../../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { graderConversationSchema, graderMessageSchema, } from "./conversation.js";
|
|
4
|
+
const graderTurnContextSchema = z.object({
|
|
5
|
+
session: graderConversationSchema,
|
|
6
|
+
messageToGrade: graderMessageSchema,
|
|
7
|
+
});
|
|
8
|
+
export default graderTurnContextSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.zod.d.ts","sourceRoot":"","sources":["../../../../src/schemas/graders/contexts/turn.zod.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "../../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
type GraderToolCall = {
|
|
4
|
+
id?: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
function: {
|
|
7
|
+
name: string;
|
|
8
|
+
arguments?: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
type GraderMessageWithTools = {
|
|
12
|
+
role: string;
|
|
13
|
+
content?: unknown;
|
|
14
|
+
name?: string;
|
|
15
|
+
tool_calls?: Array<GraderToolCall>;
|
|
16
|
+
};
|
|
17
|
+
type GraderConversationWithTools = {
|
|
18
|
+
messages?: Array<GraderMessageWithTools>;
|
|
19
|
+
meta?: Record<string, unknown>;
|
|
20
|
+
notes?: {
|
|
21
|
+
text?: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
type GraderTurnToolsContext = {
|
|
25
|
+
session: GraderConversationWithTools;
|
|
26
|
+
messageToGrade: GraderMessageWithTools;
|
|
27
|
+
};
|
|
28
|
+
export declare const graderMessageWithToolsSchema: z.ZodType<GraderMessageWithTools>;
|
|
29
|
+
export declare const graderConversationWithToolsSchema: z.ZodType<GraderConversationWithTools>;
|
|
30
|
+
declare const graderTurnToolsContextSchema: z.ZodType<GraderTurnToolsContext>;
|
|
31
|
+
export default graderTurnToolsContextSchema;
|
|
32
|
+
//# sourceMappingURL=turn_tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn_tools.d.ts","sourceRoot":"","sources":["../../../../src/schemas/graders/contexts/turn_tools.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,cAAc,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,2BAA2B,CAAC;IACrC,cAAc,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAWF,eAAO,MAAM,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAMvE,CAAC;AAEL,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,OAAO,CACvD,2BAA2B,CAK3B,CAAC;AAEH,QAAA,MAAM,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAIhE,CAAC;AAEL,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import "../../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const graderToolCallSchema = z.object({
|
|
4
|
+
id: z.string().optional(),
|
|
5
|
+
type: z.string().optional(),
|
|
6
|
+
function: z.object({
|
|
7
|
+
name: z.string(),
|
|
8
|
+
arguments: z.string().optional(),
|
|
9
|
+
}),
|
|
10
|
+
});
|
|
11
|
+
export const graderMessageWithToolsSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
role: z.string(),
|
|
14
|
+
content: z.any().optional(),
|
|
15
|
+
name: z.string().optional(),
|
|
16
|
+
tool_calls: z.array(graderToolCallSchema).optional(),
|
|
17
|
+
});
|
|
18
|
+
export const graderConversationWithToolsSchema = z.object({
|
|
19
|
+
messages: z.array(graderMessageWithToolsSchema).optional(),
|
|
20
|
+
meta: z.record(z.any()).optional(),
|
|
21
|
+
notes: z.object({ text: z.string().optional() }).optional(),
|
|
22
|
+
});
|
|
23
|
+
const graderTurnToolsContextSchema = z
|
|
24
|
+
.object({
|
|
25
|
+
session: graderConversationWithToolsSchema,
|
|
26
|
+
messageToGrade: graderMessageWithToolsSchema,
|
|
27
|
+
});
|
|
28
|
+
export default graderTurnToolsContextSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn_tools.zod.d.ts","sourceRoot":"","sources":["../../../../src/schemas/graders/contexts/turn_tools.zod.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
type GraderOutput = {
|
|
4
|
+
score: number;
|
|
5
|
+
reason: string;
|
|
6
|
+
evidence?: Array<string>;
|
|
7
|
+
};
|
|
8
|
+
declare const graderOutputSchema: z.ZodType<GraderOutput>;
|
|
9
|
+
export default graderOutputSchema;
|
|
10
|
+
//# sourceMappingURL=grader_output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grader_output.d.ts","sourceRoot":"","sources":["../../../src/schemas/graders/grader_output.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC1B,CAAC;AAEF,QAAA,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAI9C,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grader_output.zod.d.ts","sourceRoot":"","sources":["../../../src/schemas/graders/grader_output.zod.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
type RespondEnvelope = {
|
|
4
|
+
payload?: unknown;
|
|
5
|
+
status?: number;
|
|
6
|
+
message?: string;
|
|
7
|
+
code?: string;
|
|
8
|
+
meta?: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
declare const respondSchema: z.ZodType<RespondEnvelope>;
|
|
11
|
+
export default respondSchema;
|
|
12
|
+
//# sourceMappingURL=respond.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../../src/schemas/graders/respond.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,eAAe,GAAG;IACrB,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,QAAA,MAAM,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAM5C,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "../../_dnt.polyfills.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
const respondSchema = z.object({
|
|
4
|
+
payload: z.any().optional(),
|
|
5
|
+
status: z.number().int().optional(),
|
|
6
|
+
message: z.string().optional(),
|
|
7
|
+
code: z.string().optional(),
|
|
8
|
+
meta: z.record(z.any()).optional(),
|
|
9
|
+
});
|
|
10
|
+
export default respondSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond.zod.d.ts","sourceRoot":"","sources":["../../../src/schemas/graders/respond.zod.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain_chat_input_optional.d.ts","sourceRoot":"","sources":["../../../src/schemas/scenarios/plain_chat_input_optional.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,4BAA4B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CACnD,CAAC;AAEd,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain_chat_input_optional.zod.d.ts","sourceRoot":"","sources":["../../../src/schemas/scenarios/plain_chat_input_optional.zod.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain_chat_output.d.ts","sourceRoot":"","sources":["../../../src/schemas/scenarios/plain_chat_output.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAc,CAAC;AAE5D,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plain_chat_output.zod.d.ts","sourceRoot":"","sources":["../../../src/schemas/scenarios/plain_chat_output.zod.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC"}
|
package/esm/src/builtins.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare function resolveBuiltinCardPath(target: string): string | undefined;
|
|
2
|
+
export declare function resolveBuiltinSnippetPath(target: string): string | undefined;
|
|
2
3
|
export declare function resolveBuiltinSchemaPath(target: string): string | undefined;
|
|
4
|
+
export declare function resolveBuiltinDeckPath(target: string): string | undefined;
|
|
3
5
|
//# sourceMappingURL=builtins.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/src/builtins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/src/builtins.ts"],"names":[],"mappings":"AAqBA,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAazE;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB3E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBzE"}
|
package/esm/src/builtins.js
CHANGED
|
@@ -1,26 +1,70 @@
|
|
|
1
1
|
import * as path from "../deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
2
2
|
const CARDS_PREFIX = "gambit://cards/";
|
|
3
|
+
const SNIPPETS_PREFIX = "gambit://snippets/";
|
|
3
4
|
const SCHEMAS_PREFIX = "gambit://schemas/";
|
|
5
|
+
const DECKS_PREFIX = "gambit://decks/";
|
|
4
6
|
const CARDS_BASE_URL = new URL("../cards/", globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
|
|
7
|
+
const SNIPPETS_BASE_URL = new URL("../snippets/", globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
|
|
5
8
|
const SCHEMAS_BASE_URL = new URL("../schemas/", globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
|
|
9
|
+
const DECKS_BASE_URL = new URL("../decks/", globalThis[Symbol.for("import-meta-ponyfill-esmodule")](import.meta).url);
|
|
10
|
+
const LEGACY_CARD_WARNINGS = new Set();
|
|
11
|
+
const LEGACY_SCHEMA_WARNINGS = new Set();
|
|
12
|
+
const LEGACY_DECK_WARNINGS = new Set();
|
|
13
|
+
const logger = console;
|
|
6
14
|
function resolveFromBase(base, relative) {
|
|
7
15
|
return path.fromFileUrl(new URL(relative, base));
|
|
8
16
|
}
|
|
9
17
|
export function resolveBuiltinCardPath(target) {
|
|
10
18
|
if (!target.startsWith(CARDS_PREFIX))
|
|
11
19
|
return undefined;
|
|
20
|
+
if (!LEGACY_CARD_WARNINGS.has(target)) {
|
|
21
|
+
LEGACY_CARD_WARNINGS.add(target);
|
|
22
|
+
logger.warn(`[gambit] "${target}" is deprecated; use gambit://snippets instead.`);
|
|
23
|
+
}
|
|
12
24
|
const relative = target.slice(CARDS_PREFIX.length);
|
|
13
25
|
if (!relative) {
|
|
14
26
|
throw new Error(`Invalid gambit card specifier: ${target}`);
|
|
15
27
|
}
|
|
16
28
|
return resolveFromBase(CARDS_BASE_URL, relative);
|
|
17
29
|
}
|
|
30
|
+
export function resolveBuiltinSnippetPath(target) {
|
|
31
|
+
if (!target.startsWith(SNIPPETS_PREFIX))
|
|
32
|
+
return undefined;
|
|
33
|
+
const relative = target.slice(SNIPPETS_PREFIX.length);
|
|
34
|
+
if (!relative) {
|
|
35
|
+
throw new Error(`Invalid gambit snippet specifier: ${target}`);
|
|
36
|
+
}
|
|
37
|
+
return resolveFromBase(SNIPPETS_BASE_URL, relative);
|
|
38
|
+
}
|
|
18
39
|
export function resolveBuiltinSchemaPath(target) {
|
|
19
40
|
if (!target.startsWith(SCHEMAS_PREFIX))
|
|
20
41
|
return undefined;
|
|
21
|
-
|
|
42
|
+
let relative = target.slice(SCHEMAS_PREFIX.length);
|
|
22
43
|
if (!relative) {
|
|
23
44
|
throw new Error(`Invalid gambit schema specifier: ${target}`);
|
|
24
45
|
}
|
|
46
|
+
if (relative.endsWith(".ts") && !relative.endsWith(".zod.ts")) {
|
|
47
|
+
if (!LEGACY_SCHEMA_WARNINGS.has(target)) {
|
|
48
|
+
LEGACY_SCHEMA_WARNINGS.add(target);
|
|
49
|
+
logger.warn(`[gambit] "${target}" is deprecated; use .zod.ts schema URIs instead.`);
|
|
50
|
+
}
|
|
51
|
+
relative = `${relative.slice(0, -3)}.zod.ts`;
|
|
52
|
+
}
|
|
25
53
|
return resolveFromBase(SCHEMAS_BASE_URL, relative);
|
|
26
54
|
}
|
|
55
|
+
export function resolveBuiltinDeckPath(target) {
|
|
56
|
+
if (!target.startsWith(DECKS_PREFIX))
|
|
57
|
+
return undefined;
|
|
58
|
+
let relative = target.slice(DECKS_PREFIX.length);
|
|
59
|
+
if (!relative) {
|
|
60
|
+
throw new Error(`Invalid gambit deck specifier: ${target}`);
|
|
61
|
+
}
|
|
62
|
+
if (!relative.endsWith("/PROMPT.md")) {
|
|
63
|
+
if (!LEGACY_DECK_WARNINGS.has(target)) {
|
|
64
|
+
LEGACY_DECK_WARNINGS.add(target);
|
|
65
|
+
logger.warn(`[gambit] "${target}" is deprecated; use gambit://decks/.../PROMPT.md instead.`);
|
|
66
|
+
}
|
|
67
|
+
relative = `${relative.replace(/\/?$/, "/")}PROMPT.md`;
|
|
68
|
+
}
|
|
69
|
+
return resolveFromBase(DECKS_BASE_URL, relative);
|
|
70
|
+
}
|
package/esm/src/constants.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export declare const DEFAULT_GUARDRAILS: {
|
|
|
6
6
|
export declare const RESERVED_TOOL_PREFIX = "gambit_";
|
|
7
7
|
export declare const TOOL_NAME_PATTERN: RegExp;
|
|
8
8
|
export declare const MAX_TOOL_NAME_LENGTH = 64;
|
|
9
|
+
export declare const GAMBIT_TOOL_CONTEXT = "gambit_context";
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use GAMBIT_TOOL_CONTEXT instead.
|
|
12
|
+
*/
|
|
9
13
|
export declare const GAMBIT_TOOL_INIT = "gambit_init";
|
|
10
14
|
export declare const GAMBIT_TOOL_RESPOND = "gambit_respond";
|
|
11
15
|
export declare const GAMBIT_TOOL_COMPLETE = "gambit_complete";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AACtD,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAMpD,CAAC;AAGH,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
|
package/esm/src/constants.js
CHANGED
|
@@ -6,11 +6,16 @@ export const DEFAULT_GUARDRAILS = {
|
|
|
6
6
|
export const RESERVED_TOOL_PREFIX = "gambit_";
|
|
7
7
|
export const TOOL_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
8
8
|
export const MAX_TOOL_NAME_LENGTH = 64;
|
|
9
|
+
export const GAMBIT_TOOL_CONTEXT = "gambit_context";
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use GAMBIT_TOOL_CONTEXT instead.
|
|
12
|
+
*/
|
|
9
13
|
export const GAMBIT_TOOL_INIT = "gambit_init";
|
|
10
14
|
export const GAMBIT_TOOL_RESPOND = "gambit_respond";
|
|
11
15
|
export const GAMBIT_TOOL_COMPLETE = "gambit_complete";
|
|
12
16
|
export const GAMBIT_TOOL_END = "gambit_end";
|
|
13
17
|
export const BUILTIN_TOOL_NAME_SET = new Set([
|
|
18
|
+
GAMBIT_TOOL_CONTEXT,
|
|
14
19
|
GAMBIT_TOOL_INIT,
|
|
15
20
|
GAMBIT_TOOL_RESPOND,
|
|
16
21
|
GAMBIT_TOOL_COMPLETE,
|
package/esm/src/definitions.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { CardDefinition, DeckDefinition } from "./types.js";
|
|
2
2
|
import type { z } from "zod";
|
|
3
|
-
export declare function defineDeck<InputSchema extends z.ZodTypeAny, OutputSchema extends z.ZodTypeAny | undefined = undefined>(def: Omit<DeckDefinition<z.infer<InputSchema>>, "kind" | "inputSchema" | "outputSchema"> & {
|
|
3
|
+
export declare function defineDeck<InputSchema extends z.ZodTypeAny, OutputSchema extends z.ZodTypeAny | undefined = undefined>(def: Omit<DeckDefinition<z.infer<InputSchema>>, "kind" | "contextSchema" | "responseSchema" | "inputSchema" | "outputSchema"> & {
|
|
4
|
+
contextSchema: InputSchema;
|
|
5
|
+
responseSchema?: OutputSchema;
|
|
6
|
+
}): DeckDefinition<z.infer<InputSchema>>;
|
|
7
|
+
export declare function defineDeck<InputSchema extends z.ZodTypeAny, OutputSchema extends z.ZodTypeAny | undefined = undefined>(def: Omit<DeckDefinition<z.infer<InputSchema>>, "kind" | "contextSchema" | "responseSchema" | "inputSchema" | "outputSchema"> & {
|
|
4
8
|
inputSchema: InputSchema;
|
|
5
9
|
outputSchema?: OutputSchema;
|
|
6
10
|
}): DeckDefinition<z.infer<InputSchema>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,wBAAgB,UAAU,CACxB,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,EAEzD,GAAG,EACC,IAAI,CACJ,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,wBAAgB,UAAU,CACxB,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,EAEzD,GAAG,EACC,IAAI,CACJ,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAClC,MAAM,GACN,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,cAAc,CACjB,GACC;IACA,aAAa,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,YAAY,CAAC;CAC/B,GACF,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACxC,wBAAgB,UAAU,CACxB,WAAW,SAAS,CAAC,CAAC,UAAU,EAChC,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,SAAS,EAEzD,GAAG,EACC,IAAI,CACJ,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAClC,MAAM,GACN,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,cAAc,CACjB,GACC;IACA,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GACF,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACxC,wBAAgB,UAAU,CACxB,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAChC,cAAc,CAAC;AAOlB,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAE5E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAKxE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAKxE"}
|
package/esm/src/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/src/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/src/loader.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAMV,UAAU,EACV,UAAU,EAEX,MAAM,YAAY,CAAC;AAiPpB,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,GAAE,KAAK,CAAC,MAAM,CAAM,GACxB,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CA4JrB"}
|
package/esm/src/loader.js
CHANGED
|
@@ -1,10 +1,60 @@
|
|
|
1
|
+
import * as dntShim from "../_dnt.shims.js";
|
|
1
2
|
import * as path from "../deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
2
3
|
import { BUILTIN_TOOL_NAME_SET, MAX_TOOL_NAME_LENGTH, RESERVED_TOOL_PREFIX, TOOL_NAME_PATTERN, } from "./constants.js";
|
|
3
4
|
import { isCardDefinition, isDeckDefinition } from "./definitions.js";
|
|
5
|
+
import { normalizePermissionDeclaration, } from "./permissions.js";
|
|
4
6
|
import { mergeZodObjects } from "./schema.js";
|
|
5
7
|
import { isMarkdownFile, loadMarkdownCard, loadMarkdownDeck, } from "./markdown.js";
|
|
6
|
-
import { resolveBuiltinCardPath } from "./builtins.js";
|
|
8
|
+
import { resolveBuiltinCardPath, resolveBuiltinDeckPath, resolveBuiltinSnippetPath, } from "./builtins.js";
|
|
7
9
|
const logger = console;
|
|
10
|
+
const LEGACY_SCHEMA_WARNINGS = new Set();
|
|
11
|
+
const LEGACY_FRAGMENT_WARNINGS = new Set();
|
|
12
|
+
function warnLegacySchema(resolvedPath, legacy, replacement) {
|
|
13
|
+
const key = `${resolvedPath}:${legacy}`;
|
|
14
|
+
if (LEGACY_SCHEMA_WARNINGS.has(key))
|
|
15
|
+
return;
|
|
16
|
+
LEGACY_SCHEMA_WARNINGS.add(key);
|
|
17
|
+
logger.warn(`[gambit] deck at ${resolvedPath} uses deprecated "${legacy}"; rename to "${replacement}"`);
|
|
18
|
+
}
|
|
19
|
+
function warnLegacyFragment(resolvedPath, legacy, replacement) {
|
|
20
|
+
const key = `${resolvedPath}:${legacy}`;
|
|
21
|
+
if (LEGACY_FRAGMENT_WARNINGS.has(key))
|
|
22
|
+
return;
|
|
23
|
+
LEGACY_FRAGMENT_WARNINGS.add(key);
|
|
24
|
+
logger.warn(`[gambit] card at ${resolvedPath} uses deprecated "${legacy}"; rename to "${replacement}"`);
|
|
25
|
+
}
|
|
26
|
+
function normalizeDeckSchemas(deck, resolvedPath) {
|
|
27
|
+
if (deck.inputSchema !== undefined) {
|
|
28
|
+
warnLegacySchema(resolvedPath, "inputSchema", "contextSchema");
|
|
29
|
+
}
|
|
30
|
+
if (deck.outputSchema !== undefined) {
|
|
31
|
+
warnLegacySchema(resolvedPath, "outputSchema", "responseSchema");
|
|
32
|
+
}
|
|
33
|
+
const contextSchema = deck.contextSchema ?? deck.inputSchema;
|
|
34
|
+
const responseSchema = deck.responseSchema ?? deck.outputSchema;
|
|
35
|
+
return {
|
|
36
|
+
contextSchema,
|
|
37
|
+
responseSchema,
|
|
38
|
+
inputSchema: contextSchema,
|
|
39
|
+
outputSchema: responseSchema,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function normalizeCardFragments(card, resolvedPath) {
|
|
43
|
+
if (card.inputFragment !== undefined) {
|
|
44
|
+
warnLegacyFragment(resolvedPath, "inputFragment", "contextFragment");
|
|
45
|
+
}
|
|
46
|
+
if (card.outputFragment !== undefined) {
|
|
47
|
+
warnLegacyFragment(resolvedPath, "outputFragment", "responseFragment");
|
|
48
|
+
}
|
|
49
|
+
const contextFragment = card.contextFragment ?? card.inputFragment;
|
|
50
|
+
const responseFragment = card.responseFragment ?? card.outputFragment;
|
|
51
|
+
return {
|
|
52
|
+
contextFragment,
|
|
53
|
+
responseFragment,
|
|
54
|
+
inputFragment: contextFragment,
|
|
55
|
+
outputFragment: responseFragment,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
8
58
|
function toFileUrl(p) {
|
|
9
59
|
const abs = path.resolve(p);
|
|
10
60
|
return path.toFileUrl(abs).href;
|
|
@@ -14,7 +64,10 @@ function normalizeActionDecks(actions, basePath) {
|
|
|
14
64
|
return [];
|
|
15
65
|
return actions.map((a) => ({
|
|
16
66
|
...a,
|
|
17
|
-
path:
|
|
67
|
+
path: a.path.startsWith("gambit://") || !basePath
|
|
68
|
+
? a.path
|
|
69
|
+
: path.resolve(path.dirname(basePath), a.path),
|
|
70
|
+
permissions: normalizePermissionDeclaration(a.permissions, basePath ? path.dirname(basePath) : dntShim.Deno.cwd()),
|
|
18
71
|
}));
|
|
19
72
|
}
|
|
20
73
|
function normalizeCompanionDecks(decks, basePath) {
|
|
@@ -22,9 +75,10 @@ function normalizeCompanionDecks(decks, basePath) {
|
|
|
22
75
|
return [];
|
|
23
76
|
return decks.map((deck) => ({
|
|
24
77
|
...deck,
|
|
25
|
-
path: basePath
|
|
26
|
-
?
|
|
27
|
-
: deck.path,
|
|
78
|
+
path: deck.path.startsWith("gambit://") || !basePath
|
|
79
|
+
? deck.path
|
|
80
|
+
: path.resolve(path.dirname(basePath), deck.path),
|
|
81
|
+
permissions: normalizePermissionDeclaration(deck.permissions, basePath ? path.dirname(basePath) : dntShim.Deno.cwd()),
|
|
28
82
|
}));
|
|
29
83
|
}
|
|
30
84
|
function checkReserved(action) {
|
|
@@ -37,6 +91,30 @@ function checkReserved(action) {
|
|
|
37
91
|
throw new Error(`Action name ${action.name} must match ${TOOL_NAME_PATTERN} and be <= ${MAX_TOOL_NAME_LENGTH} characters`);
|
|
38
92
|
}
|
|
39
93
|
}
|
|
94
|
+
function normalizeExternalTools(tools, resolvedPath) {
|
|
95
|
+
if (!tools)
|
|
96
|
+
return [];
|
|
97
|
+
return tools.map((tool) => {
|
|
98
|
+
const name = String(tool.name ?? "").trim();
|
|
99
|
+
if (!name) {
|
|
100
|
+
throw new Error(`External tool must include a name (${resolvedPath})`);
|
|
101
|
+
}
|
|
102
|
+
if (name.startsWith(RESERVED_TOOL_PREFIX)) {
|
|
103
|
+
throw new Error(`External tool name ${name} is reserved (prefix ${RESERVED_TOOL_PREFIX})`);
|
|
104
|
+
}
|
|
105
|
+
if (!TOOL_NAME_PATTERN.test(name) ||
|
|
106
|
+
name.length > MAX_TOOL_NAME_LENGTH) {
|
|
107
|
+
throw new Error(`External tool name ${name} must match ${TOOL_NAME_PATTERN} and be <= ${MAX_TOOL_NAME_LENGTH} characters`);
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
name,
|
|
111
|
+
description: typeof tool.description === "string"
|
|
112
|
+
? tool.description
|
|
113
|
+
: undefined,
|
|
114
|
+
inputSchema: tool.inputSchema,
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
}
|
|
40
118
|
async function loadCardInternal(cardPath, parentPath, stack = []) {
|
|
41
119
|
const resolved = parentPath
|
|
42
120
|
? path.resolve(path.dirname(parentPath), cardPath)
|
|
@@ -61,6 +139,7 @@ async function loadCardInternal(cardPath, parentPath, stack = []) {
|
|
|
61
139
|
const graderDecks = normalizeCompanionDecks(card.graderDecks, resolved);
|
|
62
140
|
actionDecks.forEach(checkReserved);
|
|
63
141
|
const { label: _l, ...rest } = card;
|
|
142
|
+
const fragments = normalizeCardFragments(card, resolved);
|
|
64
143
|
return {
|
|
65
144
|
...rest,
|
|
66
145
|
label: cardLabel,
|
|
@@ -70,28 +149,37 @@ async function loadCardInternal(cardPath, parentPath, stack = []) {
|
|
|
70
149
|
graderDecks,
|
|
71
150
|
path: resolved,
|
|
72
151
|
cards: [],
|
|
152
|
+
...fragments,
|
|
153
|
+
permissions: normalizePermissionDeclaration(card.permissions, path.dirname(resolved)),
|
|
73
154
|
};
|
|
74
155
|
}
|
|
75
156
|
export async function loadCard(cardPath, parentPath, stack = []) {
|
|
76
157
|
const builtinPath = resolveBuiltinCardPath(cardPath);
|
|
77
|
-
const
|
|
158
|
+
const snippetPath = resolveBuiltinSnippetPath(cardPath);
|
|
159
|
+
const normalizedPath = snippetPath ?? builtinPath ?? cardPath;
|
|
78
160
|
if (isMarkdownFile(normalizedPath)) {
|
|
79
161
|
return await loadMarkdownCard(normalizedPath, parentPath, stack);
|
|
80
162
|
}
|
|
81
163
|
return await loadCardInternal(normalizedPath, parentPath, stack);
|
|
82
164
|
}
|
|
83
165
|
export async function loadDeck(deckPath, parentPath) {
|
|
84
|
-
|
|
85
|
-
|
|
166
|
+
const builtinDeck = resolveBuiltinDeckPath(deckPath);
|
|
167
|
+
const normalizedDeckPath = builtinDeck ?? deckPath;
|
|
168
|
+
const markdownParent = builtinDeck ? undefined : parentPath;
|
|
169
|
+
if (isMarkdownFile(normalizedDeckPath)) {
|
|
170
|
+
return await loadMarkdownDeck(normalizedDeckPath, markdownParent);
|
|
86
171
|
}
|
|
87
|
-
const resolved =
|
|
88
|
-
? path.resolve(path.dirname(
|
|
89
|
-
: path.resolve(
|
|
172
|
+
const resolved = markdownParent
|
|
173
|
+
? path.resolve(path.dirname(markdownParent), normalizedDeckPath)
|
|
174
|
+
: path.resolve(normalizedDeckPath);
|
|
90
175
|
const mod = await import(toFileUrl(resolved));
|
|
91
176
|
const deck = mod.default;
|
|
92
177
|
if (!isDeckDefinition(deck)) {
|
|
93
178
|
throw new Error(`Deck at ${resolved} did not export a valid deck definition`);
|
|
94
179
|
}
|
|
180
|
+
if (deck.mcpServers !== undefined) {
|
|
181
|
+
throw new Error(`Deck-level [[mcpServers]] is unsupported in this phase (${resolved})`);
|
|
182
|
+
}
|
|
95
183
|
const deckLabel = deck.label;
|
|
96
184
|
const cards = [];
|
|
97
185
|
const mergedActions = {};
|
|
@@ -111,12 +199,26 @@ export async function loadDeck(deckPath, parentPath) {
|
|
|
111
199
|
mergedActions[action.name] = action;
|
|
112
200
|
}
|
|
113
201
|
const actionDecks = Object.values(mergedActions);
|
|
114
|
-
|
|
115
|
-
|
|
202
|
+
const tools = normalizeExternalTools(deck.tools, resolved);
|
|
203
|
+
const actionNames = new Set(actionDecks.map((action) => action.name));
|
|
204
|
+
for (const tool of tools) {
|
|
205
|
+
if (actionNames.has(tool.name)) {
|
|
206
|
+
logger.warn(`[gambit] tool ${tool.name} is shadowed by an action in ${resolved}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
const schemaAliases = normalizeDeckSchemas(deck, resolved);
|
|
210
|
+
let inputSchema = schemaAliases.inputSchema;
|
|
211
|
+
let outputSchema = schemaAliases.outputSchema;
|
|
212
|
+
let contextSchema = schemaAliases.contextSchema;
|
|
213
|
+
let responseSchema = schemaAliases.responseSchema;
|
|
116
214
|
for (const card of allCards) {
|
|
117
215
|
inputSchema = mergeZodObjects(inputSchema, card.inputFragment);
|
|
118
216
|
outputSchema = mergeZodObjects(outputSchema, card.outputFragment);
|
|
217
|
+
contextSchema = mergeZodObjects(contextSchema, card.contextFragment);
|
|
218
|
+
responseSchema = mergeZodObjects(responseSchema, card.responseFragment);
|
|
119
219
|
}
|
|
220
|
+
inputSchema = contextSchema;
|
|
221
|
+
outputSchema = responseSchema;
|
|
120
222
|
const executor = typeof deck.run === "function"
|
|
121
223
|
? deck.run
|
|
122
224
|
: typeof deck.execute === "function"
|
|
@@ -163,11 +265,15 @@ export async function loadDeck(deckPath, parentPath) {
|
|
|
163
265
|
actions: actionDecks,
|
|
164
266
|
testDecks: normalizeCompanionDecks(deck.testDecks, resolved),
|
|
165
267
|
graderDecks: normalizeCompanionDecks(deck.graderDecks, resolved),
|
|
268
|
+
tools,
|
|
269
|
+
contextSchema,
|
|
270
|
+
responseSchema,
|
|
166
271
|
inputSchema,
|
|
167
272
|
outputSchema,
|
|
168
273
|
executor,
|
|
169
274
|
handlers,
|
|
170
275
|
respond: deck.respond,
|
|
276
|
+
permissions: normalizePermissionDeclaration(deck.permissions, path.dirname(resolved)),
|
|
171
277
|
};
|
|
172
278
|
}
|
|
173
279
|
function flattenCards(cards) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/src/markdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/src/markdown.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAKV,UAAU,EACV,UAAU,EAEX,MAAM,YAAY,CAAC;AAuVpB,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,GAAE,KAAK,CAAC,MAAM,CAAM,GACxB,OAAO,CAAC,UAAU,CAAC,CAsGrB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAqPrB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD"}
|