@bolt-foundry/gambit-core 0.8.6-rc.2 → 0.8.6-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/esm/mod.d.ts +2 -0
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -0
- package/esm/src/openresponses_run_events.d.ts +46 -0
- package/esm/src/openresponses_run_events.d.ts.map +1 -0
- package/esm/src/openresponses_run_events.js +90 -0
- package/package.json +1 -1
- package/script/mod.d.ts +2 -0
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +6 -1
- package/script/src/openresponses_run_events.d.ts +46 -0
- package/script/src/openresponses_run_events.d.ts.map +1 -0
- package/script/src/openresponses_run_events.js +96 -0
package/esm/mod.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export type { HandlersConfig } from "./src/types.js";
|
|
|
28
28
|
export type { JSONValue } from "./src/types.js";
|
|
29
29
|
/** Open Responses content payload types. */
|
|
30
30
|
export type { CreateResponseRequest, CreateResponseResponse, ResponseEvent, ResponseExtensionItem, ResponseFunctionCallItem, ResponseFunctionCallOutputItem, ResponseItem, ResponseItemExtensionDefinition, ResponseMessageItem, ResponseTextContent, ResponseToolChoice, ResponseToolDefinition, ResponseUsage, } from "./src/types.js";
|
|
31
|
+
export type { AppendOpenResponsesRunEventV0Input, ListOpenResponsesRunEventsV0Input, OpenResponsesRunEventPayload, OpenResponsesRunEventStoreV0, OpenResponsesRunEventV0, SubscribeOpenResponsesRunEventsV0Input, } from "./src/openresponses_run_events.js";
|
|
32
|
+
export { isOpenResponsesRunEventPayload, isOpenResponsesRunEventV0, serializeOpenResponsesRunEventV0, toOpenResponsesRunEventV0, } from "./src/openresponses_run_events.js";
|
|
31
33
|
/** Test deck definition shape. */
|
|
32
34
|
export type { TestDeckDefinition } from "./src/types.js";
|
|
33
35
|
/** Permission declaration shape used by deck metadata and config layers. */
|
package/esm/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
package/esm/mod.js
CHANGED
|
@@ -8,6 +8,7 @@ import "./_dnt.polyfills.js";
|
|
|
8
8
|
export { defineCard } from "./src/definitions.js";
|
|
9
9
|
/** Define a deck, the primary unit of execution. */
|
|
10
10
|
export { defineDeck } from "./src/definitions.js";
|
|
11
|
+
export { isOpenResponsesRunEventPayload, isOpenResponsesRunEventV0, serializeOpenResponsesRunEventV0, toOpenResponsesRunEventV0, } from "./src/openresponses_run_events.js";
|
|
11
12
|
/** Permission contract helpers (normalization/intersection/matching). */
|
|
12
13
|
export { canRunCommand, canRunPath, intersectPermissions, normalizePermissionDeclaration, resolveEffectivePermissions, } from "./src/permissions.js";
|
|
13
14
|
/** Check if a value is an explicit end-of-run signal. */
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { JSONValue, ResponseEvent } from "./types.js";
|
|
2
|
+
export type OpenResponsesInputItemEvent = {
|
|
3
|
+
type: "input.item";
|
|
4
|
+
role: "user" | "system" | "developer" | "assistant";
|
|
5
|
+
content: string | Record<string, unknown> | Array<Record<string, unknown>>;
|
|
6
|
+
message_id?: string;
|
|
7
|
+
source?: string;
|
|
8
|
+
};
|
|
9
|
+
export type OpenResponsesRunEventPayload = ResponseEvent | OpenResponsesInputItemEvent | Record<string, unknown>;
|
|
10
|
+
export type OpenResponsesRunEventV0 = {
|
|
11
|
+
workspace_id: string;
|
|
12
|
+
run_id: string;
|
|
13
|
+
sequence: number;
|
|
14
|
+
event_type: string;
|
|
15
|
+
payload: OpenResponsesRunEventPayload;
|
|
16
|
+
idempotency_key: string;
|
|
17
|
+
created_at: string;
|
|
18
|
+
};
|
|
19
|
+
export type AppendOpenResponsesRunEventV0Input = {
|
|
20
|
+
workspace_id: string;
|
|
21
|
+
run_id: string;
|
|
22
|
+
event_type: string;
|
|
23
|
+
payload: OpenResponsesRunEventPayload;
|
|
24
|
+
idempotency_key: string;
|
|
25
|
+
created_at?: string;
|
|
26
|
+
};
|
|
27
|
+
export type ListOpenResponsesRunEventsV0Input = {
|
|
28
|
+
workspace_id: string;
|
|
29
|
+
run_id: string;
|
|
30
|
+
from_sequence?: number;
|
|
31
|
+
};
|
|
32
|
+
export type SubscribeOpenResponsesRunEventsV0Input = ListOpenResponsesRunEventsV0Input & {
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
};
|
|
35
|
+
export type OpenResponsesRunEventStoreV0 = {
|
|
36
|
+
append: (input: AppendOpenResponsesRunEventV0Input) => Promise<OpenResponsesRunEventV0>;
|
|
37
|
+
list: (input: ListOpenResponsesRunEventsV0Input) => Promise<Array<OpenResponsesRunEventV0>>;
|
|
38
|
+
subscribe: (input: SubscribeOpenResponsesRunEventsV0Input) => AsyncIterable<OpenResponsesRunEventV0>;
|
|
39
|
+
};
|
|
40
|
+
export declare function isOpenResponsesRunEventPayload(value: unknown): value is OpenResponsesRunEventPayload;
|
|
41
|
+
export declare function isOpenResponsesRunEventV0(value: unknown): value is OpenResponsesRunEventV0;
|
|
42
|
+
export declare function toOpenResponsesRunEventV0(input: AppendOpenResponsesRunEventV0Input & {
|
|
43
|
+
sequence: number;
|
|
44
|
+
}): OpenResponsesRunEventV0;
|
|
45
|
+
export declare function serializeOpenResponsesRunEventV0(event: OpenResponsesRunEventV0): Record<string, JSONValue>;
|
|
46
|
+
//# sourceMappingURL=openresponses_run_events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openresponses_run_events.d.ts","sourceRoot":"","sources":["../../src/src/openresponses_run_events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IACpD,OAAO,EACH,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACpC,aAAa,GACb,2BAA2B,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,4BAA4B,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,4BAA4B,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAC9C,iCAAiC,GACjC;IACA,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEJ,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,CACN,KAAK,EAAE,kCAAkC,KACtC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,IAAI,EAAE,CACJ,KAAK,EAAE,iCAAiC,KACrC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7C,SAAS,EAAE,CACT,KAAK,EAAE,sCAAsC,KAC1C,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC7C,CAAC;AAcF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAKvC;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CASlC;AAyCD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kCAAkC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC/D,uBAAuB,CAezB;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,uBAAuB,GAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAW3B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
function isFiniteNonNegativeInteger(value) {
|
|
2
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0;
|
|
3
|
+
}
|
|
4
|
+
function isNonEmptyString(value) {
|
|
5
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
6
|
+
}
|
|
7
|
+
function isObjectRecord(value) {
|
|
8
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
9
|
+
}
|
|
10
|
+
export function isOpenResponsesRunEventPayload(value) {
|
|
11
|
+
if (!isObjectRecord(value))
|
|
12
|
+
return false;
|
|
13
|
+
const type = value.type;
|
|
14
|
+
if (typeof type !== "string" || type.trim().length === 0)
|
|
15
|
+
return false;
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
export function isOpenResponsesRunEventV0(value) {
|
|
19
|
+
if (!isObjectRecord(value))
|
|
20
|
+
return false;
|
|
21
|
+
return isNonEmptyString(value.workspace_id) &&
|
|
22
|
+
isNonEmptyString(value.run_id) &&
|
|
23
|
+
isFiniteNonNegativeInteger(value.sequence) &&
|
|
24
|
+
isNonEmptyString(value.event_type) &&
|
|
25
|
+
isOpenResponsesRunEventPayload(value.payload) &&
|
|
26
|
+
isNonEmptyString(value.idempotency_key) &&
|
|
27
|
+
isNonEmptyString(value.created_at);
|
|
28
|
+
}
|
|
29
|
+
function toNormalizedEventType(payload) {
|
|
30
|
+
const type = payload.type;
|
|
31
|
+
return typeof type === "string" ? type : "response.event";
|
|
32
|
+
}
|
|
33
|
+
function normalizeCreatedAt(value) {
|
|
34
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
35
|
+
return new Date().toISOString();
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
function assertAppendInput(input) {
|
|
40
|
+
if (!isNonEmptyString(input.workspace_id)) {
|
|
41
|
+
throw new Error("workspace_id is required");
|
|
42
|
+
}
|
|
43
|
+
if (!isNonEmptyString(input.run_id)) {
|
|
44
|
+
throw new Error("run_id is required");
|
|
45
|
+
}
|
|
46
|
+
if (!isNonEmptyString(input.event_type)) {
|
|
47
|
+
throw new Error("event_type is required");
|
|
48
|
+
}
|
|
49
|
+
if (!isOpenResponsesRunEventPayload(input.payload)) {
|
|
50
|
+
throw new Error("payload must be an object with a non-empty type");
|
|
51
|
+
}
|
|
52
|
+
if (!isNonEmptyString(input.idempotency_key)) {
|
|
53
|
+
throw new Error("idempotency_key is required");
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
...input,
|
|
57
|
+
workspace_id: input.workspace_id.trim(),
|
|
58
|
+
run_id: input.run_id.trim(),
|
|
59
|
+
event_type: input.event_type.trim(),
|
|
60
|
+
idempotency_key: input.idempotency_key.trim(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function toOpenResponsesRunEventV0(input) {
|
|
64
|
+
const normalized = assertAppendInput(input);
|
|
65
|
+
if (!isFiniteNonNegativeInteger(input.sequence)) {
|
|
66
|
+
throw new Error("sequence must be a non-negative integer");
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
workspace_id: normalized.workspace_id,
|
|
70
|
+
run_id: normalized.run_id,
|
|
71
|
+
sequence: input.sequence,
|
|
72
|
+
event_type: normalized.event_type ||
|
|
73
|
+
toNormalizedEventType(normalized.payload),
|
|
74
|
+
payload: normalized.payload,
|
|
75
|
+
idempotency_key: normalized.idempotency_key,
|
|
76
|
+
created_at: normalizeCreatedAt(normalized.created_at),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function serializeOpenResponsesRunEventV0(event) {
|
|
80
|
+
return {
|
|
81
|
+
workspace_id: event.workspace_id,
|
|
82
|
+
run_id: event.run_id,
|
|
83
|
+
sequence: event.sequence,
|
|
84
|
+
event_type: event.event_type,
|
|
85
|
+
// Payload shape is validated by runtime guards before persistence.
|
|
86
|
+
payload: event.payload,
|
|
87
|
+
idempotency_key: event.idempotency_key,
|
|
88
|
+
created_at: event.created_at,
|
|
89
|
+
};
|
|
90
|
+
}
|
package/package.json
CHANGED
package/script/mod.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export type { HandlersConfig } from "./src/types.js";
|
|
|
28
28
|
export type { JSONValue } from "./src/types.js";
|
|
29
29
|
/** Open Responses content payload types. */
|
|
30
30
|
export type { CreateResponseRequest, CreateResponseResponse, ResponseEvent, ResponseExtensionItem, ResponseFunctionCallItem, ResponseFunctionCallOutputItem, ResponseItem, ResponseItemExtensionDefinition, ResponseMessageItem, ResponseTextContent, ResponseToolChoice, ResponseToolDefinition, ResponseUsage, } from "./src/types.js";
|
|
31
|
+
export type { AppendOpenResponsesRunEventV0Input, ListOpenResponsesRunEventsV0Input, OpenResponsesRunEventPayload, OpenResponsesRunEventStoreV0, OpenResponsesRunEventV0, SubscribeOpenResponsesRunEventsV0Input, } from "./src/openresponses_run_events.js";
|
|
32
|
+
export { isOpenResponsesRunEventPayload, isOpenResponsesRunEventV0, serializeOpenResponsesRunEventV0, toOpenResponsesRunEventV0, } from "./src/openresponses_run_events.js";
|
|
31
33
|
/** Test deck definition shape. */
|
|
32
34
|
export type { TestDeckDefinition } from "./src/types.js";
|
|
33
35
|
/** Permission declaration shape used by deck metadata and config layers. */
|
package/script/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,yEAAyE;AACzE,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,oDAAoD;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,oCAAoC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,6BAA6B;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,6BAA6B;AAC7B,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,iCAAiC;AACjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,yCAAyC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,oCAAoC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,uCAAuC;AACvC,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,8CAA8C;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,2DAA2D;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,4CAA4C;AAC5C,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,YAAY,EACZ,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,kCAAkC;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,4EAA4E;AAC5E,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,yEAAyE;AACzE,OAAO,EACL,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,yDAAyD;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,kDAAkD;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,iDAAiD;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,iDAAiD;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,uDAAuD;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,kDAAkD;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,kCAAkC;AAClC,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,yCAAyC;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,2DAA2D;AAC3D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,kDAAkD;AAClD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,wCAAwC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,iCAAiC;AACjC,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,4CAA4C;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,sDAAsD;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,8CAA8C;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,iDAAiD;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,iDAAiD;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,6CAA6C;AAC7C,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
|
package/script/mod.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.saveState = exports.loadState = exports.loadDeck = exports.GAMBIT_TOOL_INIT = exports.GAMBIT_TOOL_CONTEXT = exports.toJsonSchema = exports.assertZodSchema = exports.renderDeck = exports.RESERVED_TOOL_PREFIX = exports.DEFAULT_GUARDRAILS = exports.RunCanceledError = exports.isRunCanceledError = exports.runDeck = exports.isGambitEndSignal = exports.resolveEffectivePermissions = exports.normalizePermissionDeclaration = exports.intersectPermissions = exports.canRunPath = exports.canRunCommand = exports.defineDeck = exports.defineCard = void 0;
|
|
3
|
+
exports.saveState = exports.loadState = exports.loadDeck = exports.GAMBIT_TOOL_INIT = exports.GAMBIT_TOOL_CONTEXT = exports.toJsonSchema = exports.assertZodSchema = exports.renderDeck = exports.RESERVED_TOOL_PREFIX = exports.DEFAULT_GUARDRAILS = exports.RunCanceledError = exports.isRunCanceledError = exports.runDeck = exports.isGambitEndSignal = exports.resolveEffectivePermissions = exports.normalizePermissionDeclaration = exports.intersectPermissions = exports.canRunPath = exports.canRunCommand = exports.toOpenResponsesRunEventV0 = exports.serializeOpenResponsesRunEventV0 = exports.isOpenResponsesRunEventV0 = exports.isOpenResponsesRunEventPayload = exports.defineDeck = exports.defineCard = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Gambit core exports for authoring and running decks/cards with runtime helpers.
|
|
6
6
|
*
|
|
@@ -13,6 +13,11 @@ Object.defineProperty(exports, "defineCard", { enumerable: true, get: function (
|
|
|
13
13
|
/** Define a deck, the primary unit of execution. */
|
|
14
14
|
var definitions_js_2 = require("./src/definitions.js");
|
|
15
15
|
Object.defineProperty(exports, "defineDeck", { enumerable: true, get: function () { return definitions_js_2.defineDeck; } });
|
|
16
|
+
var openresponses_run_events_js_1 = require("./src/openresponses_run_events.js");
|
|
17
|
+
Object.defineProperty(exports, "isOpenResponsesRunEventPayload", { enumerable: true, get: function () { return openresponses_run_events_js_1.isOpenResponsesRunEventPayload; } });
|
|
18
|
+
Object.defineProperty(exports, "isOpenResponsesRunEventV0", { enumerable: true, get: function () { return openresponses_run_events_js_1.isOpenResponsesRunEventV0; } });
|
|
19
|
+
Object.defineProperty(exports, "serializeOpenResponsesRunEventV0", { enumerable: true, get: function () { return openresponses_run_events_js_1.serializeOpenResponsesRunEventV0; } });
|
|
20
|
+
Object.defineProperty(exports, "toOpenResponsesRunEventV0", { enumerable: true, get: function () { return openresponses_run_events_js_1.toOpenResponsesRunEventV0; } });
|
|
16
21
|
/** Permission contract helpers (normalization/intersection/matching). */
|
|
17
22
|
var permissions_js_1 = require("./src/permissions.js");
|
|
18
23
|
Object.defineProperty(exports, "canRunCommand", { enumerable: true, get: function () { return permissions_js_1.canRunCommand; } });
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { JSONValue, ResponseEvent } from "./types.js";
|
|
2
|
+
export type OpenResponsesInputItemEvent = {
|
|
3
|
+
type: "input.item";
|
|
4
|
+
role: "user" | "system" | "developer" | "assistant";
|
|
5
|
+
content: string | Record<string, unknown> | Array<Record<string, unknown>>;
|
|
6
|
+
message_id?: string;
|
|
7
|
+
source?: string;
|
|
8
|
+
};
|
|
9
|
+
export type OpenResponsesRunEventPayload = ResponseEvent | OpenResponsesInputItemEvent | Record<string, unknown>;
|
|
10
|
+
export type OpenResponsesRunEventV0 = {
|
|
11
|
+
workspace_id: string;
|
|
12
|
+
run_id: string;
|
|
13
|
+
sequence: number;
|
|
14
|
+
event_type: string;
|
|
15
|
+
payload: OpenResponsesRunEventPayload;
|
|
16
|
+
idempotency_key: string;
|
|
17
|
+
created_at: string;
|
|
18
|
+
};
|
|
19
|
+
export type AppendOpenResponsesRunEventV0Input = {
|
|
20
|
+
workspace_id: string;
|
|
21
|
+
run_id: string;
|
|
22
|
+
event_type: string;
|
|
23
|
+
payload: OpenResponsesRunEventPayload;
|
|
24
|
+
idempotency_key: string;
|
|
25
|
+
created_at?: string;
|
|
26
|
+
};
|
|
27
|
+
export type ListOpenResponsesRunEventsV0Input = {
|
|
28
|
+
workspace_id: string;
|
|
29
|
+
run_id: string;
|
|
30
|
+
from_sequence?: number;
|
|
31
|
+
};
|
|
32
|
+
export type SubscribeOpenResponsesRunEventsV0Input = ListOpenResponsesRunEventsV0Input & {
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
};
|
|
35
|
+
export type OpenResponsesRunEventStoreV0 = {
|
|
36
|
+
append: (input: AppendOpenResponsesRunEventV0Input) => Promise<OpenResponsesRunEventV0>;
|
|
37
|
+
list: (input: ListOpenResponsesRunEventsV0Input) => Promise<Array<OpenResponsesRunEventV0>>;
|
|
38
|
+
subscribe: (input: SubscribeOpenResponsesRunEventsV0Input) => AsyncIterable<OpenResponsesRunEventV0>;
|
|
39
|
+
};
|
|
40
|
+
export declare function isOpenResponsesRunEventPayload(value: unknown): value is OpenResponsesRunEventPayload;
|
|
41
|
+
export declare function isOpenResponsesRunEventV0(value: unknown): value is OpenResponsesRunEventV0;
|
|
42
|
+
export declare function toOpenResponsesRunEventV0(input: AppendOpenResponsesRunEventV0Input & {
|
|
43
|
+
sequence: number;
|
|
44
|
+
}): OpenResponsesRunEventV0;
|
|
45
|
+
export declare function serializeOpenResponsesRunEventV0(event: OpenResponsesRunEventV0): Record<string, JSONValue>;
|
|
46
|
+
//# sourceMappingURL=openresponses_run_events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openresponses_run_events.d.ts","sourceRoot":"","sources":["../../src/src/openresponses_run_events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IACpD,OAAO,EACH,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACpC,aAAa,GACb,2BAA2B,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,4BAA4B,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,4BAA4B,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAC9C,iCAAiC,GACjC;IACA,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEJ,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,CACN,KAAK,EAAE,kCAAkC,KACtC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,IAAI,EAAE,CACJ,KAAK,EAAE,iCAAiC,KACrC,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7C,SAAS,EAAE,CACT,KAAK,EAAE,sCAAsC,KAC1C,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC7C,CAAC;AAcF,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAKvC;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CASlC;AAyCD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kCAAkC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC/D,uBAAuB,CAezB;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,uBAAuB,GAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAW3B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOpenResponsesRunEventPayload = isOpenResponsesRunEventPayload;
|
|
4
|
+
exports.isOpenResponsesRunEventV0 = isOpenResponsesRunEventV0;
|
|
5
|
+
exports.toOpenResponsesRunEventV0 = toOpenResponsesRunEventV0;
|
|
6
|
+
exports.serializeOpenResponsesRunEventV0 = serializeOpenResponsesRunEventV0;
|
|
7
|
+
function isFiniteNonNegativeInteger(value) {
|
|
8
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0;
|
|
9
|
+
}
|
|
10
|
+
function isNonEmptyString(value) {
|
|
11
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
12
|
+
}
|
|
13
|
+
function isObjectRecord(value) {
|
|
14
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function isOpenResponsesRunEventPayload(value) {
|
|
17
|
+
if (!isObjectRecord(value))
|
|
18
|
+
return false;
|
|
19
|
+
const type = value.type;
|
|
20
|
+
if (typeof type !== "string" || type.trim().length === 0)
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
function isOpenResponsesRunEventV0(value) {
|
|
25
|
+
if (!isObjectRecord(value))
|
|
26
|
+
return false;
|
|
27
|
+
return isNonEmptyString(value.workspace_id) &&
|
|
28
|
+
isNonEmptyString(value.run_id) &&
|
|
29
|
+
isFiniteNonNegativeInteger(value.sequence) &&
|
|
30
|
+
isNonEmptyString(value.event_type) &&
|
|
31
|
+
isOpenResponsesRunEventPayload(value.payload) &&
|
|
32
|
+
isNonEmptyString(value.idempotency_key) &&
|
|
33
|
+
isNonEmptyString(value.created_at);
|
|
34
|
+
}
|
|
35
|
+
function toNormalizedEventType(payload) {
|
|
36
|
+
const type = payload.type;
|
|
37
|
+
return typeof type === "string" ? type : "response.event";
|
|
38
|
+
}
|
|
39
|
+
function normalizeCreatedAt(value) {
|
|
40
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
41
|
+
return new Date().toISOString();
|
|
42
|
+
}
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
function assertAppendInput(input) {
|
|
46
|
+
if (!isNonEmptyString(input.workspace_id)) {
|
|
47
|
+
throw new Error("workspace_id is required");
|
|
48
|
+
}
|
|
49
|
+
if (!isNonEmptyString(input.run_id)) {
|
|
50
|
+
throw new Error("run_id is required");
|
|
51
|
+
}
|
|
52
|
+
if (!isNonEmptyString(input.event_type)) {
|
|
53
|
+
throw new Error("event_type is required");
|
|
54
|
+
}
|
|
55
|
+
if (!isOpenResponsesRunEventPayload(input.payload)) {
|
|
56
|
+
throw new Error("payload must be an object with a non-empty type");
|
|
57
|
+
}
|
|
58
|
+
if (!isNonEmptyString(input.idempotency_key)) {
|
|
59
|
+
throw new Error("idempotency_key is required");
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
...input,
|
|
63
|
+
workspace_id: input.workspace_id.trim(),
|
|
64
|
+
run_id: input.run_id.trim(),
|
|
65
|
+
event_type: input.event_type.trim(),
|
|
66
|
+
idempotency_key: input.idempotency_key.trim(),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function toOpenResponsesRunEventV0(input) {
|
|
70
|
+
const normalized = assertAppendInput(input);
|
|
71
|
+
if (!isFiniteNonNegativeInteger(input.sequence)) {
|
|
72
|
+
throw new Error("sequence must be a non-negative integer");
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
workspace_id: normalized.workspace_id,
|
|
76
|
+
run_id: normalized.run_id,
|
|
77
|
+
sequence: input.sequence,
|
|
78
|
+
event_type: normalized.event_type ||
|
|
79
|
+
toNormalizedEventType(normalized.payload),
|
|
80
|
+
payload: normalized.payload,
|
|
81
|
+
idempotency_key: normalized.idempotency_key,
|
|
82
|
+
created_at: normalizeCreatedAt(normalized.created_at),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function serializeOpenResponsesRunEventV0(event) {
|
|
86
|
+
return {
|
|
87
|
+
workspace_id: event.workspace_id,
|
|
88
|
+
run_id: event.run_id,
|
|
89
|
+
sequence: event.sequence,
|
|
90
|
+
event_type: event.event_type,
|
|
91
|
+
// Payload shape is validated by runtime guards before persistence.
|
|
92
|
+
payload: event.payload,
|
|
93
|
+
idempotency_key: event.idempotency_key,
|
|
94
|
+
created_at: event.created_at,
|
|
95
|
+
};
|
|
96
|
+
}
|