prefix-safe-json 0.0.1-alpha.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +4 -0
- package/README.md +2 -2
- package/package.json +2 -1
- package/dist/coordinator/coordinator.d.ts +0 -53
- package/dist/coordinator/coordinator.d.ts.map +0 -1
- package/dist/coordinator/coordinator.js +0 -448
- package/dist/coordinator/coordinator.js.map +0 -1
- package/dist/coordinator/diagnostic-codes.d.ts +0 -11
- package/dist/coordinator/diagnostic-codes.d.ts.map +0 -1
- package/dist/coordinator/diagnostic-codes.js +0 -22
- package/dist/coordinator/diagnostic-codes.js.map +0 -1
- package/dist/coordinator/protocol.d.ts +0 -61
- package/dist/coordinator/protocol.d.ts.map +0 -1
- package/dist/coordinator/protocol.js +0 -2
- package/dist/coordinator/protocol.js.map +0 -1
- package/dist/coordinator/types.d.ts +0 -104
- package/dist/coordinator/types.d.ts.map +0 -1
- package/dist/coordinator/types.js +0 -7
- package/dist/coordinator/types.js.map +0 -1
- package/dist/diagnostics/codes.d.ts +0 -24
- package/dist/diagnostics/codes.d.ts.map +0 -1
- package/dist/diagnostics/codes.js +0 -28
- package/dist/diagnostics/codes.js.map +0 -1
- package/dist/diagnostics/factory.d.ts +0 -8
- package/dist/diagnostics/factory.d.ts.map +0 -1
- package/dist/diagnostics/factory.js +0 -17
- package/dist/diagnostics/factory.js.map +0 -1
- package/dist/gate/decide.d.ts +0 -27
- package/dist/gate/decide.d.ts.map +0 -1
- package/dist/gate/decide.js +0 -138
- package/dist/gate/decide.js.map +0 -1
- package/dist/gate/gate.d.ts +0 -25
- package/dist/gate/gate.d.ts.map +0 -1
- package/dist/gate/gate.js +0 -96
- package/dist/gate/gate.js.map +0 -1
- package/dist/gate/types.d.ts +0 -184
- package/dist/gate/types.d.ts.map +0 -1
- package/dist/gate/types.js +0 -2
- package/dist/gate/types.js.map +0 -1
- package/dist/grammar/frame.d.ts +0 -58
- package/dist/grammar/frame.d.ts.map +0 -1
- package/dist/grammar/frame.js +0 -87
- package/dist/grammar/frame.js.map +0 -1
- package/dist/grammar/pointer.d.ts +0 -10
- package/dist/grammar/pointer.d.ts.map +0 -1
- package/dist/grammar/pointer.js +0 -20
- package/dist/grammar/pointer.js.map +0 -1
- package/dist/grammar/stack.d.ts +0 -73
- package/dist/grammar/stack.d.ts.map +0 -1
- package/dist/grammar/stack.js +0 -168
- package/dist/grammar/stack.js.map +0 -1
- package/dist/guard/ai-sdk.d.ts +0 -48
- package/dist/guard/ai-sdk.d.ts.map +0 -1
- package/dist/guard/ai-sdk.js +0 -51
- package/dist/guard/ai-sdk.js.map +0 -1
- package/dist/guard/provider-guard.d.ts +0 -4
- package/dist/guard/provider-guard.d.ts.map +0 -1
- package/dist/guard/provider-guard.js +0 -38
- package/dist/guard/provider-guard.js.map +0 -1
- package/dist/guard/types.d.ts +0 -48
- package/dist/guard/types.d.ts.map +0 -1
- package/dist/guard/types.js +0 -2
- package/dist/guard/types.js.map +0 -1
- package/dist/index.d.ts +0 -45
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -45
- package/dist/index.js.map +0 -1
- package/dist/lexer/scanner.d.ts +0 -106
- package/dist/lexer/scanner.d.ts.map +0 -1
- package/dist/lexer/scanner.js +0 -658
- package/dist/lexer/scanner.js.map +0 -1
- package/dist/lexer/states.d.ts +0 -31
- package/dist/lexer/states.d.ts.map +0 -1
- package/dist/lexer/states.js +0 -35
- package/dist/lexer/states.js.map +0 -1
- package/dist/lexer/tokens.d.ts +0 -22
- package/dist/lexer/tokens.d.ts.map +0 -1
- package/dist/lexer/tokens.js +0 -22
- package/dist/lexer/tokens.js.map +0 -1
- package/dist/limits.d.ts +0 -14
- package/dist/limits.d.ts.map +0 -1
- package/dist/limits.js +0 -23
- package/dist/limits.js.map +0 -1
- package/dist/parser.d.ts +0 -6
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -922
- package/dist/parser.js.map +0 -1
- package/dist/providers/adapter.d.ts +0 -10
- package/dist/providers/adapter.d.ts.map +0 -1
- package/dist/providers/adapter.js +0 -2
- package/dist/providers/adapter.js.map +0 -1
- package/dist/providers/ai-sdk.d.ts +0 -58
- package/dist/providers/ai-sdk.d.ts.map +0 -1
- package/dist/providers/ai-sdk.js +0 -212
- package/dist/providers/ai-sdk.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -45
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js +0 -112
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/gemini.d.ts +0 -31
- package/dist/providers/gemini.d.ts.map +0 -1
- package/dist/providers/gemini.js +0 -94
- package/dist/providers/gemini.js.map +0 -1
- package/dist/providers/openai-compatible.d.ts +0 -33
- package/dist/providers/openai-compatible.d.ts.map +0 -1
- package/dist/providers/openai-compatible.js +0 -160
- package/dist/providers/openai-compatible.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -55
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -263
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/openrouter.d.ts +0 -35
- package/dist/providers/openrouter.d.ts.map +0 -1
- package/dist/providers/openrouter.js +0 -55
- package/dist/providers/openrouter.js.map +0 -1
- package/dist/semantic/builder.d.ts +0 -55
- package/dist/semantic/builder.d.ts.map +0 -1
- package/dist/semantic/builder.js +0 -140
- package/dist/semantic/builder.js.map +0 -1
- package/dist/semantic/events.d.ts +0 -2
- package/dist/semantic/events.d.ts.map +0 -1
- package/dist/semantic/events.js +0 -5
- package/dist/semantic/events.js.map +0 -1
- package/dist/semantic/snapshot.d.ts +0 -56
- package/dist/semantic/snapshot.d.ts.map +0 -1
- package/dist/semantic/snapshot.js +0 -230
- package/dist/semantic/snapshot.js.map +0 -1
- package/dist/types.d.ts +0 -156
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -5
- package/dist/types.js.map +0 -1
- package/dist/utf8/decoder.d.ts +0 -53
- package/dist/utf8/decoder.d.ts.map +0 -1
- package/dist/utf8/decoder.js +0 -323
- package/dist/utf8/decoder.js.map +0 -1
package/dist/guard/ai-sdk.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { AiSdkExecutionGuard, ExecutionGuardOptions } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* @public (Experimental)
|
|
4
|
-
* Drop-in fail-closed execution guard for the Vercel AI SDK's `fullStream`.
|
|
5
|
-
* Composes `AiSdkStreamAdapter` with `createToolCallExecutionGate()` - same
|
|
6
|
-
* decision logic, same fail-closed guarantees, no new parser or coordinator.
|
|
7
|
-
* Does not depend on the `ai` package at runtime and does not import its
|
|
8
|
-
* types; `push()` accepts `unknown` and reads only the fields it needs.
|
|
9
|
-
*
|
|
10
|
-
* ```ts
|
|
11
|
-
* const guard = createAiSdkExecutionGuard({
|
|
12
|
-
* schemas: {
|
|
13
|
-
* write_file: {
|
|
14
|
-
* type: "object",
|
|
15
|
-
* properties: { path: { type: "string" }, content: { type: "string" } },
|
|
16
|
-
* required: ["path", "content"],
|
|
17
|
-
* },
|
|
18
|
-
* },
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* for await (const part of result.fullStream) {
|
|
22
|
-
* guard.push(part);
|
|
23
|
-
* }
|
|
24
|
-
*
|
|
25
|
-
* const final = guard.finish();
|
|
26
|
-
* for (const decision of final.decisions) {
|
|
27
|
-
* if (decision.action === "execute") {
|
|
28
|
-
* await tools[decision.name](decision.value);
|
|
29
|
-
* }
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* Equivalent to composing the low-level API yourself:
|
|
34
|
-
*
|
|
35
|
-
* ```ts
|
|
36
|
-
* const gate = createToolCallExecutionGate(undefined, undefined, schemas);
|
|
37
|
-
* const adapter = new AiSdkStreamAdapter();
|
|
38
|
-
* for await (const part of result.fullStream) {
|
|
39
|
-
* for (const normalized of adapter.push(part)) gate.push(normalized);
|
|
40
|
-
* }
|
|
41
|
-
* const final = gate.finish();
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* Both APIs remain public; use this one for the common case, the low-level
|
|
45
|
-
* one when you need direct access to the adapter or gate instance.
|
|
46
|
-
*/
|
|
47
|
-
export declare function createAiSdkExecutionGuard(options?: ExecutionGuardOptions): AiSdkExecutionGuard;
|
|
48
|
-
//# sourceMappingURL=ai-sdk.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,CAE9F"}
|
package/dist/guard/ai-sdk.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { AiSdkStreamAdapter } from "../providers/ai-sdk.js";
|
|
2
|
-
import { createProviderExecutionGuard } from "./provider-guard.js";
|
|
3
|
-
/**
|
|
4
|
-
* @public (Experimental)
|
|
5
|
-
* Drop-in fail-closed execution guard for the Vercel AI SDK's `fullStream`.
|
|
6
|
-
* Composes `AiSdkStreamAdapter` with `createToolCallExecutionGate()` - same
|
|
7
|
-
* decision logic, same fail-closed guarantees, no new parser or coordinator.
|
|
8
|
-
* Does not depend on the `ai` package at runtime and does not import its
|
|
9
|
-
* types; `push()` accepts `unknown` and reads only the fields it needs.
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* const guard = createAiSdkExecutionGuard({
|
|
13
|
-
* schemas: {
|
|
14
|
-
* write_file: {
|
|
15
|
-
* type: "object",
|
|
16
|
-
* properties: { path: { type: "string" }, content: { type: "string" } },
|
|
17
|
-
* required: ["path", "content"],
|
|
18
|
-
* },
|
|
19
|
-
* },
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* for await (const part of result.fullStream) {
|
|
23
|
-
* guard.push(part);
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* const final = guard.finish();
|
|
27
|
-
* for (const decision of final.decisions) {
|
|
28
|
-
* if (decision.action === "execute") {
|
|
29
|
-
* await tools[decision.name](decision.value);
|
|
30
|
-
* }
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* Equivalent to composing the low-level API yourself:
|
|
35
|
-
*
|
|
36
|
-
* ```ts
|
|
37
|
-
* const gate = createToolCallExecutionGate(undefined, undefined, schemas);
|
|
38
|
-
* const adapter = new AiSdkStreamAdapter();
|
|
39
|
-
* for await (const part of result.fullStream) {
|
|
40
|
-
* for (const normalized of adapter.push(part)) gate.push(normalized);
|
|
41
|
-
* }
|
|
42
|
-
* const final = gate.finish();
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* Both APIs remain public; use this one for the common case, the low-level
|
|
46
|
-
* one when you need direct access to the adapter or gate instance.
|
|
47
|
-
*/
|
|
48
|
-
export function createAiSdkExecutionGuard(options) {
|
|
49
|
-
return createProviderExecutionGuard(new AiSdkStreamAdapter(), options);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=ai-sdk.js.map
|
package/dist/guard/ai-sdk.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA+B;IACvE,OAAO,4BAA4B,CAAC,IAAI,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ProviderStreamAdapter } from "../providers/adapter.js";
|
|
2
|
-
import { ExecutionGuard, ExecutionGuardOptions } from "./types.js";
|
|
3
|
-
export declare function createProviderExecutionGuard<TRawEvent>(adapter: ProviderStreamAdapter<TRawEvent>, options?: ExecutionGuardOptions): ExecutionGuard<TRawEvent>;
|
|
4
|
-
//# sourceMappingURL=provider-guard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-guard.d.ts","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,4BAA4B,CAAC,SAAS,EACpD,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACzC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,SAAS,CAAC,CA0B3B"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// createProviderExecutionGuard — internal composition helper.
|
|
3
|
-
//
|
|
4
|
-
// Not exported from the package root in this release. Every high-level
|
|
5
|
-
// per-provider guard (currently only createAiSdkExecutionGuard) is this
|
|
6
|
-
// function applied to one ProviderStreamAdapter instance - no duplicated
|
|
7
|
-
// state, no duplicated decision logic, no new parser or coordinator. Kept
|
|
8
|
-
// internal (rather than public) until a second provider guard actually
|
|
9
|
-
// needs it, per the "don't expose abstraction for its own sake" scoping
|
|
10
|
-
// this release deliberately holds to - promoting it to a public export is a
|
|
11
|
-
// non-breaking addition whenever that happens.
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
import { createToolCallExecutionGate } from "../gate/gate.js";
|
|
14
|
-
export function createProviderExecutionGuard(adapter, options) {
|
|
15
|
-
const gate = createToolCallExecutionGate(options?.limits, options?.parserOptions, options?.schemas);
|
|
16
|
-
return {
|
|
17
|
-
push(rawEvent) {
|
|
18
|
-
for (const normalized of adapter.push(rawEvent)) {
|
|
19
|
-
gate.push(normalized);
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
snapshot() {
|
|
23
|
-
return gate.snapshot();
|
|
24
|
-
},
|
|
25
|
-
finish(meta) {
|
|
26
|
-
// If the provider stream already delivered its own terminal event
|
|
27
|
-
// through push() (the common case), the adapter is already
|
|
28
|
-
// `finished` and this is a no-op - meta is only consulted as a
|
|
29
|
-
// fail-closed backstop for a stream that ends without ever reporting
|
|
30
|
-
// why (see ProviderStreamAdapter.finish()'s own contract).
|
|
31
|
-
for (const normalized of adapter.finish(meta)) {
|
|
32
|
-
gate.push(normalized);
|
|
33
|
-
}
|
|
34
|
-
return gate.finish(meta);
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=provider-guard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-guard.js","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,wEAAwE;AACxE,4EAA4E;AAC5E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAM9D,MAAM,UAAU,4BAA4B,CAC1C,OAAyC,EACzC,OAA+B;IAE/B,MAAM,IAAI,GAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpG,OAAO;QACL,IAAI,CAAC,QAAmB;YACtB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,QAAQ;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,CAAC,IAA4D;YACjE,kEAAkE;YAClE,2DAA2D;YAC3D,+DAA+D;YAC/D,qEAAqE;YACrE,2DAA2D;YAC3D,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/guard/types.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { StreamEndReason } from "../coordinator/protocol.js";
|
|
2
|
-
import { CoordinatorLimits, JsonSchemaLike } from "../coordinator/types.js";
|
|
3
|
-
import { ToolCallExecutionGateFinalResult, ExecutionDecision } from "../gate/types.js";
|
|
4
|
-
import { ParserOptions } from "../types.js";
|
|
5
|
-
/**
|
|
6
|
-
* High-level, provider-agnostic execution guard: composes a
|
|
7
|
-
* `ProviderStreamAdapter` with a `ToolCallExecutionGate` behind three
|
|
8
|
-
* methods. `push()`/`snapshot()`/`finish()` mirror the underlying gate's own
|
|
9
|
-
* shape exactly - this is a thinner call surface over the same object, not a
|
|
10
|
-
* parallel implementation with its own state or decision logic.
|
|
11
|
-
*/
|
|
12
|
-
export interface ExecutionGuard<TRawEvent = unknown> {
|
|
13
|
-
/** Feed one raw provider event (e.g. one `fullStream` part) through the adapter into the gate. */
|
|
14
|
-
push(rawEvent: TRawEvent): void;
|
|
15
|
-
/**
|
|
16
|
-
* In-flight view of every call's current decision. As with the underlying
|
|
17
|
-
* gate, every decision here is `"retry"` or `"reject"` - `"execute"` is
|
|
18
|
-
* only ever returned from `finish()`.
|
|
19
|
-
*/
|
|
20
|
-
snapshot(): readonly ExecutionDecision[];
|
|
21
|
-
/**
|
|
22
|
-
* Signals stream completion and returns the final decision for every tool
|
|
23
|
-
* call the stream ever produced. Safe to call even if the underlying
|
|
24
|
-
* provider stream already delivered its own terminal event through
|
|
25
|
-
* `push()` - `meta` is only used as a fallback for a stream that ends
|
|
26
|
-
* without ever reporting why.
|
|
27
|
-
*/
|
|
28
|
-
finish(meta?: {
|
|
29
|
-
reason?: StreamEndReason;
|
|
30
|
-
providerReason?: string;
|
|
31
|
-
}): ToolCallExecutionGateFinalResult;
|
|
32
|
-
}
|
|
33
|
-
/** Options accepted by every high-level provider execution guard factory. */
|
|
34
|
-
export interface ExecutionGuardOptions {
|
|
35
|
-
/**
|
|
36
|
-
* Optional JSON Schema (draft-07) per tool name - same option
|
|
37
|
-
* `createToolCallExecutionGate()`/`createToolCallStreamCoordinator()`
|
|
38
|
-
* accept as their third constructor argument.
|
|
39
|
-
*/
|
|
40
|
-
schemas?: Record<string, JsonSchemaLike>;
|
|
41
|
-
/** Coordinator-level limits (concurrent tool calls, tool name size, etc.). */
|
|
42
|
-
limits?: Partial<CoordinatorLimits>;
|
|
43
|
-
/** Per-call parser configuration (resource limits, repairs). */
|
|
44
|
-
parserOptions?: ParserOptions;
|
|
45
|
-
}
|
|
46
|
-
/** A guard specialized for the Vercel AI SDK's `fullStream` part shape. See `createAiSdkExecutionGuard`. */
|
|
47
|
-
export type AiSdkExecutionGuard = ExecutionGuard<unknown>;
|
|
48
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guard/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,GAAG,OAAO;IACjD,kGAAkG;IAClG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,IAAI,SAAS,iBAAiB,EAAE,CAAC;IAEzC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gCAAgC,CAAC;CACxG;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,gEAAgE;IAChE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,4GAA4G;AAC5G,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/guard/types.js
DELETED
package/dist/guard/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/guard/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public (Stable)
|
|
3
|
-
* Creates a new Incremental JSON Parser instance.
|
|
4
|
-
*/
|
|
5
|
-
export { createParser } from "./parser.js";
|
|
6
|
-
export type { IncrementalJsonParser, ParserOptions, PushResult, ParserSnapshot, FinalResult, ParserEvent, ValueCommittedEvent, ContainerClosedEvent, RepairAppliedEvent, DiagnosticEvent, DocumentCompleteEvent, StreamFinishedEvent, JsonValue, JsonObject, JsonArray, SyntaxStatus, StreamEndReason, PendingToken, RepairAction, Diagnostic, ParserLimits, } from "./types.js";
|
|
7
|
-
export { DEFAULT_LIMITS } from "./limits.js";
|
|
8
|
-
export { DiagnosticCode } from "./diagnostics/codes.js";
|
|
9
|
-
/**
|
|
10
|
-
* @public (Stable)
|
|
11
|
-
* Creates a stream coordinator for mapping overlapping multi-tool streams.
|
|
12
|
-
*/
|
|
13
|
-
export { createToolCallStreamCoordinator } from "./coordinator/coordinator.js";
|
|
14
|
-
export type { ToolCallStreamCoordinator, ToolCallState, JsonSchemaLike, CoordinatorLimits, CoordinatorDiagnostic, } from "./coordinator/types.js";
|
|
15
|
-
export type { NormalizedToolStreamEvent, ProviderName } from "./coordinator/protocol.js";
|
|
16
|
-
export { CONTENT_FILTERED_DIAGNOSTIC_CODE } from "./coordinator/diagnostic-codes.js";
|
|
17
|
-
/**
|
|
18
|
-
* @public (Stable)
|
|
19
|
-
* Fail-closed execution-decision layer built on top of the coordinator.
|
|
20
|
-
* Answers one question per tool call: is it safe to execute right now?
|
|
21
|
-
* See docs/EXECUTION_GATE.md.
|
|
22
|
-
*/
|
|
23
|
-
export { createToolCallExecutionGate } from "./gate/gate.js";
|
|
24
|
-
export type { ToolCallExecutionGate, ToolCallExecutionGateFinalResult, ExecutionDecision, ExecuteDecision, NonExecutableDecision, ExecutionAction, ExecutionReason, DecisionEvidence, } from "./gate/types.js";
|
|
25
|
-
/**
|
|
26
|
-
* @public (Experimental)
|
|
27
|
-
* Drop-in fail-closed execution guard for the Vercel AI SDK's `fullStream`.
|
|
28
|
-
* Composes `AiSdkStreamAdapter` and `createToolCallExecutionGate()` - see
|
|
29
|
-
* `docs/EXECUTION_GATE.md#high-level-guards`.
|
|
30
|
-
*/
|
|
31
|
-
export { createAiSdkExecutionGuard } from "./guard/ai-sdk.js";
|
|
32
|
-
export type { ExecutionGuard, AiSdkExecutionGuard, ExecutionGuardOptions } from "./guard/types.js";
|
|
33
|
-
export type { ProviderStreamAdapter } from "./providers/adapter.js";
|
|
34
|
-
/**
|
|
35
|
-
* @public (Experimental)
|
|
36
|
-
* Provider adapters for various LLM network shapes.
|
|
37
|
-
* These are experimental and may change if upstream APIs change.
|
|
38
|
-
*/
|
|
39
|
-
export { OpenAIStreamAdapter } from "./providers/openai.js";
|
|
40
|
-
export { OpenAICompatibleStreamAdapter } from "./providers/openai-compatible.js";
|
|
41
|
-
export { AnthropicStreamAdapter } from "./providers/anthropic.js";
|
|
42
|
-
export { GeminiStreamAdapter } from "./providers/gemini.js";
|
|
43
|
-
export { OpenRouterStreamAdapter } from "./providers/openrouter.js";
|
|
44
|
-
export { AiSdkStreamAdapter } from "./providers/ai-sdk.js";
|
|
45
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,YAAY,EAEV,qBAAqB,EACrB,aAAa,EAGb,UAAU,EACV,cAAc,EACd,WAAW,EAGX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EAGnB,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACV,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAGrF;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,gCAAgC,EAChC,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGnG,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// Public API — prefix-safe-json
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
/**
|
|
5
|
-
* @public (Stable)
|
|
6
|
-
* Creates a new Incremental JSON Parser instance.
|
|
7
|
-
*/
|
|
8
|
-
export { createParser } from "./parser.js";
|
|
9
|
-
export { DEFAULT_LIMITS } from "./limits.js";
|
|
10
|
-
export { DiagnosticCode } from "./diagnostics/codes.js";
|
|
11
|
-
// Coordinator API
|
|
12
|
-
/**
|
|
13
|
-
* @public (Stable)
|
|
14
|
-
* Creates a stream coordinator for mapping overlapping multi-tool streams.
|
|
15
|
-
*/
|
|
16
|
-
export { createToolCallStreamCoordinator } from "./coordinator/coordinator.js";
|
|
17
|
-
export { CONTENT_FILTERED_DIAGNOSTIC_CODE } from "./coordinator/diagnostic-codes.js";
|
|
18
|
-
// Execution Safety Gate API
|
|
19
|
-
/**
|
|
20
|
-
* @public (Stable)
|
|
21
|
-
* Fail-closed execution-decision layer built on top of the coordinator.
|
|
22
|
-
* Answers one question per tool call: is it safe to execute right now?
|
|
23
|
-
* See docs/EXECUTION_GATE.md.
|
|
24
|
-
*/
|
|
25
|
-
export { createToolCallExecutionGate } from "./gate/gate.js";
|
|
26
|
-
// High-level execution guards
|
|
27
|
-
/**
|
|
28
|
-
* @public (Experimental)
|
|
29
|
-
* Drop-in fail-closed execution guard for the Vercel AI SDK's `fullStream`.
|
|
30
|
-
* Composes `AiSdkStreamAdapter` and `createToolCallExecutionGate()` - see
|
|
31
|
-
* `docs/EXECUTION_GATE.md#high-level-guards`.
|
|
32
|
-
*/
|
|
33
|
-
export { createAiSdkExecutionGuard } from "./guard/ai-sdk.js";
|
|
34
|
-
/**
|
|
35
|
-
* @public (Experimental)
|
|
36
|
-
* Provider adapters for various LLM network shapes.
|
|
37
|
-
* These are experimental and may change if upstream APIs change.
|
|
38
|
-
*/
|
|
39
|
-
export { OpenAIStreamAdapter } from "./providers/openai.js";
|
|
40
|
-
export { OpenAICompatibleStreamAdapter } from "./providers/openai-compatible.js";
|
|
41
|
-
export { AnthropicStreamAdapter } from "./providers/anthropic.js";
|
|
42
|
-
export { GeminiStreamAdapter } from "./providers/gemini.js";
|
|
43
|
-
export { OpenRouterStreamAdapter } from "./providers/openrouter.js";
|
|
44
|
-
export { AiSdkStreamAdapter } from "./providers/ai-sdk.js";
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,kBAAkB;AAClB;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAS/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,4BAA4B;AAC5B;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAY7D,8BAA8B;AAC9B;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAM9D;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/lexer/scanner.d.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { ScannerState } from "./states.js";
|
|
2
|
-
import type { Token } from "./tokens.js";
|
|
3
|
-
import type { Diagnostic, RepairAction, ParserOptions } from "../types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Incremental JSON scanner.
|
|
6
|
-
* Feed characters one at a time via feedChar().
|
|
7
|
-
* Collect tokens via takeTokens().
|
|
8
|
-
*/
|
|
9
|
-
export declare class Scanner {
|
|
10
|
-
private options;
|
|
11
|
-
private maxStringBytes;
|
|
12
|
-
constructor(options?: ParserOptions);
|
|
13
|
-
private state;
|
|
14
|
-
private tokens;
|
|
15
|
-
private diagnostics;
|
|
16
|
-
private repairs;
|
|
17
|
-
private stringBuffer;
|
|
18
|
-
private stringIsKey;
|
|
19
|
-
private stringByteStart;
|
|
20
|
-
private unicodeHexBuffer;
|
|
21
|
-
private highSurrogate;
|
|
22
|
-
/** Tracks position in surrogate pair sequence: 0=initial, 1=saw backslash, 2=saw 'u' */
|
|
23
|
-
private surrogatePhase;
|
|
24
|
-
private numberBuffer;
|
|
25
|
-
private numberByteStart;
|
|
26
|
-
private numberHasDigit;
|
|
27
|
-
private literalTarget;
|
|
28
|
-
private literalIndex;
|
|
29
|
-
private literalByteStart;
|
|
30
|
-
/** Byte offset of the current character being fed. Set by the caller. */
|
|
31
|
-
private currentByteOffset;
|
|
32
|
-
/** Whether we're in a key position for string parsing. */
|
|
33
|
-
private nextStringIsKey;
|
|
34
|
-
get currentState(): ScannerState;
|
|
35
|
-
/**
|
|
36
|
-
* Feed a single character to the scanner.
|
|
37
|
-
* @param ch - The character to process.
|
|
38
|
-
* @param byteOffset - Absolute byte offset of this character in the input stream.
|
|
39
|
-
* @param charByteLength - Number of bytes this character occupies in UTF-8.
|
|
40
|
-
*/
|
|
41
|
-
feedChar(ch: string, byteOffset: number, charByteLength: number): void;
|
|
42
|
-
/**
|
|
43
|
-
* Take all tokens accumulated since the last call.
|
|
44
|
-
* Clears the internal token buffer.
|
|
45
|
-
*/
|
|
46
|
-
takeTokens(): Token[];
|
|
47
|
-
/**
|
|
48
|
-
* Take all diagnostics accumulated since the last call.
|
|
49
|
-
* Clears the internal diagnostic buffer.
|
|
50
|
-
*/
|
|
51
|
-
takeDiagnostics(): Diagnostic[];
|
|
52
|
-
takeRepairs(): RepairAction[];
|
|
53
|
-
/**
|
|
54
|
-
* Set whether the next string to be scanned should be treated as an object key.
|
|
55
|
-
*/
|
|
56
|
-
setNextStringIsKey(isKey: boolean): void;
|
|
57
|
-
/**
|
|
58
|
-
* Get info about any pending (incomplete) value.
|
|
59
|
-
*/
|
|
60
|
-
getPendingInfo(): {
|
|
61
|
-
type: "string" | "number" | "literal" | "unicode_escape" | "surrogate" | "none";
|
|
62
|
-
buffer: string;
|
|
63
|
-
byteStart: number;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Check numberBuffer against the parts of RFC 8259's number grammar that
|
|
67
|
-
* aren't already enforced by the state machine's character-by-character
|
|
68
|
-
* transitions: no leading zero in the integer part, and no trailing
|
|
69
|
-
* "." or exponent marker with no digit following it. Returns an error
|
|
70
|
-
* message if invalid, or null if the buffer is a well-formed number.
|
|
71
|
-
*/
|
|
72
|
-
private numberGrammarError;
|
|
73
|
-
/**
|
|
74
|
-
* Attempt to finalize a pending number (at end of input or finish()).
|
|
75
|
-
* - "finalized": a valid number token was emitted.
|
|
76
|
-
* - "invalid": there was a complete-looking buffer, but it violates JSON
|
|
77
|
-
* number grammar (leading zero, trailing "." or exponent marker with
|
|
78
|
-
* no digit after it). Nothing is emitted; numberBuffer is left as-is.
|
|
79
|
-
* - "not_ready": scanner isn't in a finalizable number state at all
|
|
80
|
-
* (e.g. buffer is just "-", or ends right at a bare "e"/"E" with no
|
|
81
|
-
* sign or digit yet) — unchanged pre-existing behavior, callers should
|
|
82
|
-
* not newly diagnose this case.
|
|
83
|
-
*/
|
|
84
|
-
finalizeNumber(): "finalized" | "invalid" | "not_ready";
|
|
85
|
-
/**
|
|
86
|
-
* Attempt to finalize a pending literal (at end of input or finish).
|
|
87
|
-
* Returns true if a literal token was emitted.
|
|
88
|
-
*/
|
|
89
|
-
finalizeLiteral(): boolean;
|
|
90
|
-
private processStructural;
|
|
91
|
-
private processString;
|
|
92
|
-
private processEscape;
|
|
93
|
-
private processUnicodeEscape;
|
|
94
|
-
private processSurrogatePending;
|
|
95
|
-
private processNumber;
|
|
96
|
-
private processLiteral;
|
|
97
|
-
private beginString;
|
|
98
|
-
private beginNumber;
|
|
99
|
-
private beginLiteral;
|
|
100
|
-
private commitNumber;
|
|
101
|
-
private isValueTerminator;
|
|
102
|
-
private reprocessChar;
|
|
103
|
-
private emitToken;
|
|
104
|
-
private emitDiagnostic;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/lexer/scanner.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAsB3E;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,CAAC,EAAE,aAAa;IAQnC,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAAsB;IAGrC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAK;IAG5B,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,aAAa,CAAK;IAC1B,wFAAwF;IACxF,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,gBAAgB,CAAK;IAG7B,yEAAyE;IACzE,OAAO,CAAC,iBAAiB,CAAK;IAG9B,0DAA0D;IAC1D,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAqCtE;;;OAGG;IACH,UAAU,IAAI,KAAK,EAAE;IAMrB;;;OAGG;IACH,eAAe,IAAI,UAAU,EAAE;IAM/B,WAAW,IAAI,YAAY,EAAE;IAM7B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,cAAc,IAAI;QAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,WAAW,GAAG,MAAM,CAAC;QAChF,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB;IA2CD;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;;;;;;;;OAUG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS,GAAG,WAAW;IAuBvD;;;OAGG;IACH,eAAe,IAAI,OAAO;IA8B1B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,aAAa;IAiErB,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,oBAAoB;IA8D5B,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,aAAa;IAiHrB,OAAO,CAAC,cAAc;IAwDtB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;CAWvB"}
|