pi-fabric 0.92.13 → 0.92.15
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 +2 -0
- package/dist/agents/service-provider.d.ts.map +1 -1
- package/dist/agents/service-types.d.ts +3 -1
- package/dist/agents/service-types.d.ts.map +1 -1
- package/dist/agents/service.d.ts +2 -0
- package/dist/agents/service.d.ts.map +1 -1
- package/dist/agents.js +8 -2
- package/dist/agents.js.map +2 -2
- package/dist/audit/projection.d.ts.map +1 -1
- package/dist/chunks/{chunk-OAXSWVOB.js → chunk-2PZWDVJB.js} +7 -1
- package/dist/chunks/chunk-2PZWDVJB.js.map +7 -0
- package/dist/chunks/chunk-3MEHEH6B.js +41 -0
- package/dist/chunks/chunk-3MEHEH6B.js.map +7 -0
- package/dist/chunks/{chunk-BSGA3KSB.js → chunk-3WIGAX56.js} +2 -2
- package/dist/chunks/{chunk-FRONVGLX.js → chunk-7A6NVHB5.js} +2 -2
- package/dist/chunks/{chunk-T3UYWHLT.js → chunk-D5WKZONW.js} +10 -289
- package/dist/chunks/chunk-D5WKZONW.js.map +7 -0
- package/dist/chunks/chunk-G4LADAYY.js +287 -0
- package/dist/chunks/chunk-G4LADAYY.js.map +7 -0
- package/dist/chunks/{chunk-CQLOEDQZ.js → chunk-IWH6PCMK.js} +2 -2
- package/dist/chunks/chunk-LUX7VAM2.js +373 -0
- package/dist/chunks/chunk-LUX7VAM2.js.map +7 -0
- package/dist/chunks/{chunk-KNBPIZF7.js → chunk-MGDLRV2R.js} +2 -2
- package/dist/chunks/{chunk-WBDM7CH4.js → chunk-N5GUXC6F.js} +4 -4
- package/dist/chunks/{chunk-WBDM7CH4.js.map → chunk-N5GUXC6F.js.map} +2 -2
- package/dist/chunks/{chunk-WTGFGQ2K.js → chunk-NIUOPHLB.js} +5 -373
- package/dist/chunks/chunk-NIUOPHLB.js.map +7 -0
- package/dist/chunks/chunk-OX7BU3RX.js +590 -0
- package/dist/chunks/chunk-OX7BU3RX.js.map +7 -0
- package/dist/chunks/{chunk-UNN5OJQB.js → chunk-P7UQ5TWL.js} +3 -3
- package/dist/chunks/chunk-PSNXUZMY.js +218 -0
- package/dist/chunks/chunk-PSNXUZMY.js.map +7 -0
- package/dist/chunks/{chunk-RLFQHZ7K.js → chunk-QLJ5P7HV.js} +2 -2
- package/dist/chunks/{chunk-6ELA5OWI.js → chunk-RNOPHITP.js} +7 -5
- package/dist/chunks/{chunk-6ELA5OWI.js.map → chunk-RNOPHITP.js.map} +1 -1
- package/dist/chunks/chunk-T3A5GNCW.js +19 -0
- package/dist/chunks/chunk-T3A5GNCW.js.map +7 -0
- package/dist/chunks/chunk-TPLMVELH.js +118 -0
- package/dist/chunks/chunk-TPLMVELH.js.map +7 -0
- package/dist/chunks/{chunk-HUCNOAKK.js → chunk-U4NSXDRO.js} +2 -2
- package/dist/chunks/{chunk-EZ7YLET5.js → chunk-UDFDF7IY.js} +10 -4
- package/dist/chunks/chunk-UDFDF7IY.js.map +7 -0
- package/dist/chunks/{chunk-6GT4YJT2.js → chunk-UQ4LTUH4.js} +4 -4
- package/dist/chunks/{chunk-QJUDWDPL.js → chunk-VHEO26TE.js} +24 -204
- package/dist/chunks/chunk-VHEO26TE.js.map +7 -0
- package/dist/chunks/{chunk-DLYYHK6Z.js → chunk-VQMPHVLC.js} +6 -6
- package/dist/chunks/{chunk-R4AZTYXC.js → chunk-WMS5SDKD.js} +3 -3
- package/dist/chunks/{chunk-VJJFD42F.js → chunk-XT4346N7.js} +2 -2
- package/dist/chunks/{chunk-YVPUATQT.js → chunk-Y7KNRAFL.js} +36 -15
- package/dist/chunks/chunk-Y7KNRAFL.js.map +7 -0
- package/dist/chunks/{chunk-4VVD63BA.js → chunk-YSXGVO2N.js} +2 -1
- package/dist/chunks/{chunk-4VVD63BA.js.map → chunk-YSXGVO2N.js.map} +2 -2
- package/dist/chunks/{chunk-X45GMLON.js → chunk-ZDNGXLEC.js} +2 -2
- package/dist/chunks/{chunk-FN6Q4R4M.js → chunk-ZG3ELJHX.js} +47 -1
- package/dist/chunks/chunk-ZG3ELJHX.js.map +7 -0
- package/dist/compaction/hook.js +5 -4
- package/dist/components/provider-component.d.ts +1 -1
- package/dist/components/provider-component.d.ts.map +1 -1
- package/dist/config.d.ts +3 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/core/action-registry.js +4 -2
- package/dist/entropy/index.js +7 -6
- package/dist/fabric-runtime-state.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +96 -43
- package/dist/fabric-runtime-state.js.map +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -36
- package/dist/index.js.map +2 -2
- package/dist/jev/auth.d.ts +5 -0
- package/dist/jev/auth.d.ts.map +1 -0
- package/dist/jev/browser.d.ts +37 -0
- package/dist/jev/browser.d.ts.map +1 -0
- package/dist/jev/browser.js +13 -0
- package/dist/jev/browser.js.map +7 -0
- package/dist/jev/client.d.ts +29 -0
- package/dist/jev/client.d.ts.map +1 -0
- package/dist/jev/config.d.ts +17 -0
- package/dist/jev/config.d.ts.map +1 -0
- package/dist/jev/guest-types.d.ts +2 -0
- package/dist/jev/guest-types.d.ts.map +1 -0
- package/dist/jev/manager.d.ts +32 -0
- package/dist/jev/manager.d.ts.map +1 -0
- package/dist/jev/types.d.ts +95 -0
- package/dist/jev/types.d.ts.map +1 -0
- package/dist/jev/validation.d.ts +8 -0
- package/dist/jev/validation.d.ts.map +1 -0
- package/dist/jev.d.ts +8 -0
- package/dist/jev.d.ts.map +1 -0
- package/dist/jev.js +39 -0
- package/dist/jev.js.map +7 -0
- package/dist/memory/discovery.js +5 -4
- package/dist/memory/normalize.js +4 -3
- package/dist/memory/search.js +5 -4
- package/dist/memory.js +7 -6
- package/dist/memory.js.map +1 -1
- package/dist/providers/agents-actions.d.ts.map +1 -1
- package/dist/providers/agents-provider.d.ts.map +1 -1
- package/dist/providers/jev-provider.d.ts +55 -0
- package/dist/providers/jev-provider.d.ts.map +1 -0
- package/dist/providers/jev-provider.js +21 -0
- package/dist/providers/jev-provider.js.map +7 -0
- package/dist/providers/memory-provider.js +7 -6
- package/dist/residency/host.js +10 -8
- package/dist/residency/pi-entry.js +10 -8
- package/dist/residency/pi-entry.js.map +1 -1
- package/dist/runtime/core-override-guest-types.js +2 -2
- package/dist/runtime/guest-types.d.ts +1 -1
- package/dist/runtime/guest-types.d.ts.map +1 -1
- package/dist/runtime/guest-types.js +1 -1
- package/dist/runtime/kernel.d.ts +3 -0
- package/dist/runtime/kernel.d.ts.map +1 -1
- package/dist/runtime/monty-runtime.js +3 -2
- package/dist/runtime/monty-runtime.js.map +1 -1
- package/dist/runtime/node-process-runtime.js +3 -3
- package/dist/runtime/orchestration.d.ts.map +1 -1
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -1
- package/dist/runtime/quickjs-runtime.js +2 -2
- package/dist/runtime/type-checker.d.ts +1 -1
- package/dist/runtime/type-checker.d.ts.map +1 -1
- package/dist/runtime/type-checker.js +1 -1
- package/dist/runtime/typescript-kernel.d.ts +1 -1
- package/dist/runtime/typescript-kernel.d.ts.map +1 -1
- package/dist/runtime/typescript-kernel.js +10 -10
- package/dist/runtime/typescript-kernel.js.map +2 -2
- package/dist/runtime-state-builtins.d.ts.map +1 -1
- package/dist/ui/dashboard.js +1 -1
- package/dist/ui/fabric-render.d.ts.map +1 -1
- package/dist/ui/settings.js +3 -2
- package/dist/ui/settings.js.map +1 -1
- package/docs/agents.md +2 -0
- package/docs/components.md +1 -0
- package/docs/configuration.md +6 -0
- package/docs/jev.md +212 -0
- package/docs/skills.md +3 -2
- package/package.json +8 -2
- package/skillsets/python/fabric-exec/SKILL.md +10 -0
- package/skillsets/python/fabric-exec/references/agents.md +2 -0
- package/skillsets/python/fabric-guide/SKILL.md +3 -2
- package/skillsets/python/fabric-jev/SKILL.md +107 -0
- package/skillsets/typescript/fabric-exec/SKILL.md +15 -0
- package/skillsets/typescript/fabric-exec/references/agents.md +2 -0
- package/skillsets/typescript/fabric-guide/SKILL.md +3 -2
- package/skillsets/typescript/fabric-jev/SKILL.md +107 -0
- package/dist/chunks/chunk-EZ7YLET5.js.map +0 -7
- package/dist/chunks/chunk-FN6Q4R4M.js.map +0 -7
- package/dist/chunks/chunk-OAXSWVOB.js.map +0 -7
- package/dist/chunks/chunk-QJUDWDPL.js.map +0 -7
- package/dist/chunks/chunk-T3UYWHLT.js.map +0 -7
- package/dist/chunks/chunk-WTGFGQ2K.js.map +0 -7
- package/dist/chunks/chunk-YVPUATQT.js.map +0 -7
- /package/dist/chunks/{chunk-BSGA3KSB.js.map → chunk-3WIGAX56.js.map} +0 -0
- /package/dist/chunks/{chunk-FRONVGLX.js.map → chunk-7A6NVHB5.js.map} +0 -0
- /package/dist/chunks/{chunk-CQLOEDQZ.js.map → chunk-IWH6PCMK.js.map} +0 -0
- /package/dist/chunks/{chunk-KNBPIZF7.js.map → chunk-MGDLRV2R.js.map} +0 -0
- /package/dist/chunks/{chunk-UNN5OJQB.js.map → chunk-P7UQ5TWL.js.map} +0 -0
- /package/dist/chunks/{chunk-RLFQHZ7K.js.map → chunk-QLJ5P7HV.js.map} +0 -0
- /package/dist/chunks/{chunk-HUCNOAKK.js.map → chunk-U4NSXDRO.js.map} +0 -0
- /package/dist/chunks/{chunk-6GT4YJT2.js.map → chunk-UQ4LTUH4.js.map} +0 -0
- /package/dist/chunks/{chunk-DLYYHK6Z.js.map → chunk-VQMPHVLC.js.map} +0 -0
- /package/dist/chunks/{chunk-R4AZTYXC.js.map → chunk-WMS5SDKD.js.map} +0 -0
- /package/dist/chunks/{chunk-VJJFD42F.js.map → chunk-XT4346N7.js.map} +0 -0
- /package/dist/chunks/{chunk-X45GMLON.js.map → chunk-ZDNGXLEC.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/providers/jev-provider.ts", "../../src/jev/client.ts", "../../src/jev/validation.ts", "../../src/jev/manager.ts"],
|
|
4
|
+
"sourcesContent": ["import { Type } from \"typebox\";\nimport { validationMessage } from \"../core/action-arguments.js\";\nimport type { FabricActionDescriptor, FabricInvocationContext, FabricProvider, FabricProviderListRequest } from \"../protocol.js\";\nimport { JevClient, JevCredentials, type JevCredentialSource } from \"../jev/client.js\";\nimport { JevProgramManager, type JevManagerOptions } from \"../jev/manager.js\";\nimport type { JevLaunch, JevRequest } from \"../jev/types.js\";\n\nconst description = Type.Union([Type.String(), Type.Array(Type.Unknown()), Type.Record(Type.String(), Type.Unknown())]);\nconst question = Type.Union([\n Type.Object({ type: Type.Literal(\"noul\"), instructions: description, criteria: Type.Optional(Type.Object({ true: Type.Optional(description), false: Type.Optional(description) }, { additionalProperties: false })) }, { additionalProperties: false }),\n Type.Object({ type: Type.Literal(\"choice\"), instructions: description, criteria: Type.Record(Type.String(), Type.Union([description, Type.Null()]), { minProperties: 1, maxProperties: 255 }) }, { additionalProperties: false }),\n Type.Object({ type: Type.Literal(\"score\"), instructions: description, criteria: Type.Array(description, { minItems: 2, maxItems: 10 }) }, { additionalProperties: false }),\n]);\nexport const jevRequestSchema = Type.Object({\n state: description,\n questions: Type.Record(Type.String(), question, { minProperties: 1, maxProperties: 128 }),\n model: Type.Optional(Type.String({ minLength: 1, maxLength: 128 })),\n}, { additionalProperties: false });\nexport const jevLaunchSchema = Type.Object({\n program: Type.Object({\n name: Type.String({ minLength: 1, maxLength: 128 }),\n code: Type.String({ minLength: 1, maxLength: 65_536 }),\n inputSchema: Type.Record(Type.String(), Type.Unknown()),\n outputSchema: Type.Record(Type.String(), Type.Unknown()),\n requires: Type.Array(Type.String({ minLength: 3, maxLength: 256 }), { maxItems: 64, uniqueItems: true }),\n limits: Type.Optional(Type.Object({\n timeoutMs: Type.Optional(Type.Integer({ minimum: 1 })),\n maxEvaluations: Type.Optional(Type.Integer({ minimum: 1 })),\n maxToolCalls: Type.Optional(Type.Integer({ minimum: 1 })),\n maxTokens: Type.Optional(Type.Integer({ minimum: 1 })),\n }, { additionalProperties: false })),\n }, { additionalProperties: false }),\n input: Type.Unknown(),\n}, { additionalProperties: false });\nconst idSchema = Type.Object({ id: Type.String({ minLength: 1, maxLength: 128 }) }, { additionalProperties: false });\nconst statusSchema = Type.Object({\n id: Type.Optional(Type.String({ minLength: 1, maxLength: 128 })),\n after: Type.Optional(Type.Integer({ minimum: 0 })),\n}, { additionalProperties: false });\nexport const JEV_ACTION_DESCRIPTORS: FabricActionDescriptor[] = [\n { name: \"evaluate\", description: \"Ask Jev typed Choice, Noul (probability of yes), and Score questions over shared state. No generated text. Batch independent questions. Sends state to TypeSafe and consumes API credits; no automatic retries.\", inputSchema: jevRequestSchema as unknown as Record<string, unknown>, risk: \"network\", effect: { kind: \"emission\", resources: [\"typesafe:inference\"], ordering: \"unknown\" } },\n { name: \"run\", description: \"Run an isolated TypeScript System One program in the foreground. Returns a terminal run envelope with schema-validated result or error. Globals: input, jev.evaluate, program.sleep(ms), program.emit(value), and Fabric tools restricted to exact requires. Loops are supported; no host imports or secrets.\", inputSchema: jevLaunchSchema as unknown as Record<string, unknown>, risk: \"execute\" },\n { name: \"spawn\", description: \"Launch the same Jev program in the background and return its run ID. Session-owned, not restart-durable. Poll status for bounded events or join for completion; stop cancels future actions, not past effects.\", inputSchema: jevLaunchSchema as unknown as Record<string, unknown>, risk: \"execute\" },\n { name: \"status\", description: \"Without id: credential configuration status (never retrieves secrets) and run summaries. With id: state, usage, bounded events after sequence, logs, result/error. Retains at most 64 events; nextSequence allows detecting gaps.\", inputSchema: statusSchema as unknown as Record<string, unknown>, risk: \"read\" },\n { name: \"wait\", description: \"Wait for a background Jev program's terminal run envelope. Cancelling the wait does not cancel the program.\", inputSchema: idSchema as unknown as Record<string, unknown>, risk: \"read\" },\n { name: \"join\", description: \"Alias for jev.wait: wait for a background Jev program's terminal run envelope without cancelling the program when the wait is cancelled.\", inputSchema: idSchema as unknown as Record<string, unknown>, risk: \"read\" },\n { name: \"stop\", description: \"Cancel a Jev program and await sandbox cleanup. Idempotent for retained terminal runs; already-issued external effects cannot be undone.\", inputSchema: idSchema as unknown as Record<string, unknown>, risk: \"execute\" },\n];\n\nexport class JevProvider implements FabricProvider {\n readonly name = \"jev\";\n readonly description = \"TypeSafe System One judgments and foreground/background reactive TypeScript programs\";\n readonly manager: JevProgramManager;\n readonly client: JevClient;\n constructor(options: JevManagerOptions & { credentialSource?: JevCredentialSource }, client?: JevClient) {\n this.manager = new JevProgramManager(options);\n this.client = client ?? new JevClient(options.config.jev, undefined, new JevCredentials(options.config.jev.credentialCommand, process.env, options.credentialSource));\n }\n async list(request: FabricProviderListRequest): Promise<FabricActionDescriptor[]> {\n const query = request.query?.toLowerCase();\n return JEV_ACTION_DESCRIPTORS.filter(d => !query || `${d.name} ${d.description}`.toLowerCase().includes(query));\n }\n async describe(name: string): Promise<FabricActionDescriptor | undefined> { return JEV_ACTION_DESCRIPTORS.find(d => d.name === name); }\n async invoke(name: string, args: Record<string, unknown>, context: FabricInvocationContext): Promise<unknown> {\n const descriptor = await this.describe(name);\n if (!descriptor) throw new Error(`Unknown Jev action: ${name}`);\n const invalid = validationMessage(descriptor.inputSchema, args);\n if (invalid) throw new Error(`Invalid jev.${name} arguments: ${invalid}`);\n switch (name) {\n case \"evaluate\": return this.client.evaluate(args as unknown as JevRequest, context.signal ?? new AbortController().signal);\n case \"run\": return this.manager.launch(args as unknown as JevLaunch, context, false);\n case \"spawn\": return this.manager.launch(args as unknown as JevLaunch, context, true);\n case \"status\": return typeof args.id === \"string\" ? this.manager.status(args.id, args.after as number | undefined) : {\n credentials: this.client.credentials.status(), model: this.client.config.model, runs: this.manager.list(),\n };\n case \"join\":\n case \"wait\": return this.manager.wait(args.id as string, context.signal);\n case \"stop\": return this.manager.stop(args.id as string);\n }\n }\n async close(): Promise<void> { await this.manager.close(); this.client.close(); }\n}\n", "import { execFile } from \"node:child_process\";\nimport { runAbortable } from \"../async-settlement.js\";\nimport type { FabricJevConfig } from \"./config.js\";\nimport type { JevRequest, JevResponse } from \"./types.js\";\nimport { checkRequest, checkResponse, jsonText } from \"./validation.js\";\n\nexport interface JevCredentialSource {\n configured(): boolean;\n resolve(signal: AbortSignal): Promise<string | undefined>;\n}\nexport class JevCredentials {\n #cached: string | undefined;\n constructor(readonly command: readonly string[], private readonly env: NodeJS.ProcessEnv = process.env, private readonly providerAuth?: JevCredentialSource) {}\n status() {\n const source = this.providerAuth?.configured() ? \"pi\" : this.env.TYPESAFE_API_KEY?.trim() ? \"environment\" : this.command.length ? \"command\" : \"missing\";\n return { configured: source !== \"missing\", source, verified: false };\n }\n async resolve(signal: AbortSignal): Promise<string> {\n signal.throwIfAborted();\n if (this.providerAuth) {\n try {\n const key = await this.providerAuth.resolve(signal);\n signal.throwIfAborted();\n if (key?.trim()) return key.trim();\n } catch { throw new Error(\"Jev Pi credential resolution failed\"); }\n }\n const env = this.env.TYPESAFE_API_KEY?.trim();\n if (env) return env;\n if (this.#cached) return this.#cached;\n const [file, ...args] = this.command;\n if (!file) throw new Error(\"Jev credentials unavailable: set TYPESAFE_API_KEY or configure jev.credentialCommand\");\n const secret = await new Promise<string>((resolve, reject) => {\n execFile(file, args, { encoding: \"utf8\", timeout: 5_000, maxBuffer: 16_384, signal, windowsHide: true }, (error, stdout) => {\n // Never propagate subprocess errors: they can contain stdout/stderr secrets.\n if (error) reject(new Error(\"Jev credential resolver failed\"));\n else resolve(stdout.trim());\n });\n });\n signal.throwIfAborted();\n if (!secret || /[\\r\\n]/.test(secret)) throw new Error(\"Jev credential resolver returned an invalid credential\");\n this.#cached = secret;\n return secret;\n }\n clear(): void { this.#cached = undefined; }\n}\nexport class JevClient {\n readonly credentials: JevCredentials;\n constructor(readonly config: FabricJevConfig, private readonly fetcher: typeof fetch = fetch, credentials?: JevCredentials) {\n this.credentials = credentials ?? new JevCredentials(config.credentialCommand);\n }\n async evaluate(request: JevRequest, signal: AbortSignal): Promise<JevResponse> {\n checkRequest(request, this.config.maxRequestBytes);\n const timedSignal = AbortSignal.any([signal, AbortSignal.timeout(this.config.requestTimeoutMs)]);\n const key = await runAbortable(timedSignal, () => this.credentials.resolve(timedSignal));\n const body = jsonText({ ...request, model: request.model ?? this.config.model }, this.config.maxRequestBytes, \"Jev request\");\n let response: Response;\n try {\n response = await runAbortable(timedSignal, () => this.fetcher(\"https://api.typesafe.ai/v1/systemone\", {\n method: \"POST\", redirect: \"error\", signal: timedSignal,\n headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${key}` }, body,\n }));\n } catch {\n throw new Error(timedSignal.aborted ? \"Jev request cancelled or timed out\" : \"Jev network request failed\");\n }\n if (!response.ok) {\n await response.body?.cancel();\n // No automatic retry: the controller decides whether a delayed decision is still useful.\n throw new Error(`TypeSafe HTTP ${response.status}${[429, 529].includes(response.status) ? \": rate limited; back off before retrying\" : \"\"}`);\n }\n const reader = response.body?.getReader();\n if (!reader) throw new Error(\"TypeSafe returned an empty response\");\n const chunks: Uint8Array[] = [];\n let bytes = 0;\n try {\n for (;;) {\n const { value, done } = await runAbortable(timedSignal, () => reader.read());\n if (done) break;\n bytes += value.byteLength;\n if (bytes > 1_048_576) throw new Error(\"oversize\");\n chunks.push(value);\n }\n return checkResponse(JSON.parse(Buffer.concat(chunks).toString(\"utf8\")), request);\n } catch {\n throw new Error(timedSignal.aborted ? \"Jev response cancelled or timed out\" : \"TypeSafe returned an invalid or oversized typed response\");\n } finally { await reader.cancel().catch(() => undefined); }\n }\n close(): void { this.credentials.clear(); }\n}\n", "import { Value } from \"typebox/value\";\nimport type { JevJson, JevRequest, JevResponse, JevAnswer } from \"./types.js\";\n\nexport function jsonText(value: unknown, maxBytes: number, label: string): string {\n let nodes = 0;\n const visit = (v: unknown, depth: number): void => {\n if (++nodes > 100_000 || depth > 32) throw new Error(`${label} exceeds JSON complexity limits`);\n if (v === null || typeof v === \"string\" || typeof v === \"boolean\") return;\n if (typeof v === \"number\" && Number.isFinite(v)) return;\n if (Array.isArray(v)) { for (const item of v) visit(item, depth + 1); return; }\n if (typeof v === \"object\" && v !== null && Object.getPrototypeOf(v) === Object.prototype) {\n for (const item of Object.values(v)) visit(item, depth + 1);\n return;\n }\n throw new Error(`${label} must contain only finite JSON values`);\n };\n visit(value, 0);\n const text = JSON.stringify(value);\n if (Buffer.byteLength(text) > maxBytes) throw new Error(`${label} exceeds ${maxBytes} bytes`);\n return text;\n}\nexport const object = (v: unknown): v is Record<string, unknown> =>\n typeof v === \"object\" && v !== null && !Array.isArray(v);\nconst description = (v: unknown): boolean => typeof v === \"string\" || object(v) || Array.isArray(v);\nconst keysOnly = (v: Record<string, unknown>, keys: string[]) => Object.keys(v).every(k => keys.includes(k));\n\nexport function checkRequest(value: unknown, maxBytes: number): asserts value is JevRequest {\n jsonText(value, maxBytes, \"Jev request\");\n if (!object(value) || !keysOnly(value, [\"state\", \"questions\", \"model\"]) || !description(value.state) ||\n !object(value.questions) || Object.keys(value.questions).length < 1 || Object.keys(value.questions).length > 128 ||\n (value.model !== undefined && (typeof value.model !== \"string\" || !/^[a-zA-Z0-9._-]{1,128}$/.test(value.model)))) {\n throw new Error(\"Invalid Jev request: provide state, 1\u2013128 questions, and an optional model ID\");\n }\n for (const [id, q] of Object.entries(value.questions)) {\n if (!id || id.length > 128 || !object(q) || !keysOnly(q, [\"type\", \"instructions\", \"criteria\"]) || !description(q.instructions))\n throw new Error(\"Invalid Jev question: each question needs a type and complete instructions\");\n if (q.type === \"choice\") {\n if (!object(q.criteria) || Object.keys(q.criteria).length < 1 || Object.keys(q.criteria).length > 255 ||\n !Object.entries(q.criteria).every(([key, v]) => key.length > 0 && key.length <= 256 && (v === null || description(v))))\n throw new Error(\"Choice requires 1\u2013255 named options with descriptions or null\");\n } else if (q.type === \"score\") {\n if (!Array.isArray(q.criteria) || q.criteria.length < 2 || q.criteria.length > 10 || !q.criteria.every(description))\n throw new Error(\"Score requires 2\u201310 ordered descriptive levels\");\n } else if (q.type === \"noul\") {\n if (q.criteria !== undefined && (!object(q.criteria) || !keysOnly(q.criteria, [\"true\", \"false\"]) || !Object.values(q.criteria).every(description)))\n throw new Error(\"Noul criteria may describe true and false only\");\n } else throw new Error(\"Jev supports choice, score, and noul\u2014not free-text generation\");\n }\n}\nconst probability = (v: unknown): v is number => typeof v === \"number\" && Number.isFinite(v) && v >= 0 && v <= 1;\nexport function checkResponse(value: unknown, request: JevRequest): JevResponse {\n const invalid = (): never => { throw new Error(\"TypeSafe returned an invalid typed response\"); };\n if (!object(value) || typeof value.model !== \"string\" || value.model.length > 128 || !object(value.answers) || !object(value.usage)) return invalid();\n const usage = value.usage;\n if (![usage.input_tokens, usage.output_tokens].every(v => Number.isSafeInteger(v) && (v as number) >= 0)) return invalid();\n if (Object.keys(value.answers).length !== Object.keys(request.questions).length) return invalid();\n const entries: Array<[string, JevAnswer]> = [];\n for (const [id, question] of Object.entries(request.questions)) {\n const a = Object.hasOwn(value.answers, id) ? value.answers[id] : undefined;\n if (!object(a) || a.type !== question.type) return invalid();\n if (question.type === \"noul\") {\n if (!probability(a.noul)) return invalid();\n entries.push([id, { type: \"noul\", noul: a.noul }]);\n continue;\n }\n const keys = question.type === \"choice\" ? Object.keys(question.criteria) : question.criteria.map((_, i) => String(i));\n const p = a.probabilities;\n if (!probability(a.confidence) || !object(p) || Object.keys(p).length !== keys.length ||\n !keys.every(k => Object.hasOwn(p, k) && probability(p[k])) ||\n Math.abs(Object.values(p).reduce<number>((sum, v) => sum + (v as number), 0) - 1) > 0.02) return invalid();\n const probabilities = Object.fromEntries(keys.map(k => [k, p[k] as number]));\n if (question.type === \"choice\") {\n if (typeof a.choice !== \"string\" || !Object.hasOwn(question.criteria, a.choice)) return invalid();\n entries.push([id, { type: \"choice\", choice: a.choice, confidence: a.confidence, probabilities }]);\n } else {\n if (typeof a.score !== \"number\" || !Number.isFinite(a.score) || a.score < 0 || a.score > keys.length - 1) return invalid();\n // Rubrics come from the request, not arbitrary server-produced content.\n const legend = Object.fromEntries(question.criteria.map((level, i) => [String(i), level]));\n entries.push([id, { type: \"score\", score: a.score, confidence: a.confidence, probabilities, legend }]);\n }\n }\n return { model: value.model, answers: Object.fromEntries(entries), usage: {\n input_tokens: usage.input_tokens as number, output_tokens: usage.output_tokens as number,\n } };\n}\n\nconst schemaKeys = new Set([\"type\", \"properties\", \"required\", \"additionalProperties\", \"items\", \"enum\", \"const\", \"anyOf\", \"oneOf\", \"allOf\", \"minimum\", \"maximum\", \"minLength\", \"maxLength\", \"minItems\", \"maxItems\", \"minProperties\", \"maxProperties\", \"description\", \"title\"]);\nexport function checkSchema(schema: unknown): asserts schema is Record<string, unknown> {\n jsonText(schema, 16_384, \"Program schema\");\n let nodes = 0;\n const visit = (s: unknown, depth: number): void => {\n if (!object(s) || ++nodes > 128 || depth > 12 || Object.keys(s).some(k => !schemaKeys.has(k)))\n throw new Error(\"Unsupported program schema; use the documented bounded JSON Schema subset (no references or regexes)\");\n if (s.type !== undefined && ![\"object\", \"array\", \"string\", \"number\", \"integer\", \"boolean\", \"null\"].includes(s.type as string)) throw new Error(\"Invalid schema type\");\n if (s.properties !== undefined) {\n if (!object(s.properties)) throw new Error(\"Schema properties must be an object\");\n Object.values(s.properties).forEach(v => visit(v, depth + 1));\n }\n if (s.required !== undefined && (!Array.isArray(s.required) || !s.required.every(v => typeof v === \"string\"))) throw new Error(\"Schema required must be a string array\");\n if (s.additionalProperties !== undefined && typeof s.additionalProperties !== \"boolean\") visit(s.additionalProperties, depth + 1);\n if (s.items !== undefined) visit(s.items, depth + 1);\n for (const k of [\"anyOf\", \"oneOf\", \"allOf\"]) if (s[k] !== undefined) {\n if (!Array.isArray(s[k]) || s[k].length < 1 || s[k].length > 16) throw new Error(\"Invalid schema alternatives\");\n s[k].forEach(v => visit(v, depth + 1));\n }\n for (const k of [\"minimum\", \"maximum\", \"minLength\", \"maxLength\", \"minItems\", \"maxItems\", \"minProperties\", \"maxProperties\"])\n if (s[k] !== undefined && (typeof s[k] !== \"number\" || !Number.isFinite(s[k]) || (!['minimum', 'maximum'].includes(k) && (!Number.isSafeInteger(s[k]) || s[k] < 0)))) throw new Error(\"Invalid schema bound\");\n if (s.enum !== undefined && (!Array.isArray(s.enum) || s.enum.length === 0 || s.enum.length > 256)) throw new Error(\"Invalid schema enum\");\n };\n visit(schema, 0);\n}\nexport function checkValue(schema: Record<string, unknown>, value: unknown, label: string): asserts value is JevJson {\n jsonText(value, 32_768, label);\n if (!Value.Check(schema, value)) throw new Error(`${label} does not match its declared schema`);\n}\n", "import { randomUUID } from \"node:crypto\";\nimport { setTimeout as delay } from \"node:timers/promises\";\nimport { runAbortable } from \"../async-settlement.js\";\nimport type { ActionRegistry, FabricCapabilityViewLease, FabricCallAudit } from \"../core/action-registry.js\";\nimport { ApprovalController, FabricSessionApprovals } from \"../core/approval-controller.js\";\nimport type { FabricConfig } from \"../config.js\";\nimport type { FabricInvocationContext } from \"../protocol.js\";\nimport type { JevLaunch, JevRunInfo, JevJson, JevResponse } from \"./types.js\";\nimport { checkSchema, checkValue, jsonText, object } from \"./validation.js\";\n\ninterface Run {\n info: JevRunInfo;\n controller: AbortController;\n done: Promise<JevRunInfo>;\n}\nexport interface JevManagerOptions {\n registry: ActionRegistry;\n config: FabricConfig;\n authorize?(ref: string, parentToolCallId: string): Promise<void>;\n}\nconst prelude = `const input = JSON.parse(\u03C0.__jevInput);\nconst program = Object.freeze({\n sleep: (ms: number): Promise<unknown> => tools.call({ ref: \"jev.$sleep\", args: { ms } }),\n emit: (value: unknown): Promise<unknown> => tools.call({ ref: \"jev.$emit\", args: { value } }),\n});\\n`;\n\nexport class JevProgramManager {\n readonly #runs = new Map<string, Run>();\n readonly #approvals = new FabricSessionApprovals();\n #closed = false;\n #starting = 0;\n constructor(readonly options: JevManagerOptions) {}\n list() {\n return [...this.#runs.values()].map(({ info }) => ({\n id: info.id, name: info.name, state: info.state, background: info.background,\n startedAt: info.startedAt, evaluations: info.evaluations, toolCalls: info.toolCalls,\n }));\n }\n #get(id: string): Run {\n const run = this.#runs.get(id);\n if (!run) throw new Error(\"Unknown or expired Jev run ID\");\n return run;\n }\n status(id: string, after = 0): JevRunInfo {\n const info = this.#get(id).info;\n return structuredClone({ ...info, events: info.events.filter(e => e.sequence > after) });\n }\n async wait(id: string, signal?: AbortSignal): Promise<JevRunInfo> {\n return structuredClone(await runAbortable(signal, () => this.#get(id).done));\n }\n /** Alias for wait. */\n join(id: string, signal?: AbortSignal): Promise<JevRunInfo> {\n return this.wait(id, signal);\n }\n async stop(id: string): Promise<JevRunInfo> {\n const run = this.#get(id);\n if (run.info.state === \"running\") run.controller.abort(new Error(\"Jev run stopped\"));\n return structuredClone(await run.done);\n }\n async launch(request: JevLaunch, context: FabricInvocationContext, background: boolean): Promise<JevRunInfo> {\n const { config, registry } = this.options;\n if (this.#closed) throw new Error(\"Jev program manager is closed\");\n if (this.#starting + [...this.#runs.values()].filter(r => r.info.state === \"running\").length >= config.jev.maxConcurrentRuns)\n throw new Error(\"Jev concurrent run limit reached\");\n context.signal?.throwIfAborted();\n this.#starting++;\n let lease: FabricCapabilityViewLease | undefined;\n let starting = true;\n try {\n const { program: definition, input } = structuredClone(request);\n checkSchema(definition.inputSchema);\n checkSchema(definition.outputSchema);\n checkValue(definition.inputSchema, input, \"Program input\");\n const requires = [...new Set(definition.requires)];\n for (const ref of requires) {\n if (!/^[a-z][a-z0-9_-]*\\.[a-zA-Z0-9_.$-]+$/.test(ref) || (ref.startsWith(\"jev.\") && ref !== \"jev.evaluate\"))\n throw new Error(\"Programs require exact action refs; recursive Jev lifecycle calls are not allowed\");\n if (context.capabilityView && !Object.hasOwn(context.capabilityView.bindings, ref))\n throw new Error(`Jev program cannot widen its caller's capabilities: ${ref}`);\n if (!config.fullCodeMode && (ref.startsWith(\"pi.\") || ref.startsWith(\"extensions.\")))\n throw new Error(\"Full-code tool access is disabled\");\n }\n lease = await registry.acquireCapabilityView(requires, context);\n if (!lease.satisfied || !lease.view) throw new Error(`Missing Jev program capabilities: ${lease.missing.join(\", \")}`);\n if (context.capabilityView) for (const ref of requires) {\n const before = context.capabilityView.bindings[ref]!;\n const after = lease.view.bindings[ref]!;\n if (before.providerBindingId !== after.providerBindingId || before.descriptorHash !== after.descriptorHash)\n throw new Error(\"Caller capability generation changed; relaunch with a fresh commitment\");\n }\n const { TypeScriptKernelRuntime } = await import(\"../runtime/typescript-kernel.js\");\n const runtime = new TypeScriptKernelRuntime(\"quickjs\");\n const sources = await registry.guestTypeSources({ ...context, capabilityView: lease.view });\n const { code, checked } = runtime.prepare(prelude + definition.code, true, [], sources, [], true);\n if (checked.errors.length) throw new Error(`Jev program typecheck failed: ${checked.errors.map(e => e.message).join(\"; \").slice(0, 2000)}`);\n if (this.#closed) throw new Error(\"Jev program manager is closed\");\n context.signal?.throwIfAborted();\n const limits = definition.limits ?? {};\n const bounded = (value: number | undefined, fallback: number, ceiling: number) => Math.min(value ?? fallback, ceiling);\n const timeoutMs = bounded(limits.timeoutMs, 60_000, config.jev.maxDurationMs);\n const maxEvaluations = bounded(limits.maxEvaluations, 100, config.jev.maxEvaluations);\n const maxToolCalls = bounded(limits.maxToolCalls, 1000, config.jev.maxToolCalls);\n const maxTokens = bounded(limits.maxTokens, 100_000, config.jev.maxTokens);\n const id = randomUUID();\n const controller = new AbortController();\n const info: JevRunInfo = {\n id, name: definition.name, state: \"running\", background, startedAt: Date.now(),\n evaluations: 0, toolCalls: 0, usage: { input_tokens: 0, output_tokens: 0 },\n events: [], nextSequence: 1, logs: [],\n };\n let budgetFailure: string | undefined;\n const failBudget = (message: string): never => {\n budgetFailure = message;\n queueMicrotask(() => controller.abort(new Error(message)));\n throw new Error(message);\n };\n const approval = new ApprovalController(config.approvals, context.extensionContext, this.#approvals);\n const runLease = lease;\n lease = undefined;\n const abort = () => controller.abort(new Error(\"Foreground caller cancelled\"));\n if (!background) context.signal?.addEventListener(\"abort\", abort, { once: true });\n let timedOut = false;\n const timer = setTimeout(() => { timedOut = true; controller.abort(new Error(\"Jev deadline exceeded\")); }, timeoutMs);\n let evaluating = false;\n const audits: FabricCallAudit[] = [];\n const emit = (value: unknown) => {\n jsonText(value, 4096, \"Program event\");\n info.events.push({ sequence: info.nextSequence++, at: Date.now(), value: value as JevJson });\n if (info.events.length > 64) info.events.shift();\n };\n const run: Run = { info, controller, done: undefined! };\n this.#runs.set(id, run);\n this.#starting--;\n starting = false;\n this.#prune();\n // Yield before execution so spawn returns without running a controller tick inline.\n run.done = (async () => {\n try {\n await delay(0, undefined, { signal: controller.signal });\n const result = await runtime.execute(code, async (rawRef, rawArgs, signal) => {\n signal.throwIfAborted();\n controller.signal.throwIfAborted();\n if (budgetFailure) throw new Error(budgetFailure);\n if (++info.toolCalls > maxToolCalls) return failBudget(\"Jev tool-call budget exhausted\");\n const ref = rawRef === \"fabric.$call\" ? rawArgs.ref : rawRef;\n const args = rawRef === \"fabric.$call\" ? rawArgs.args ?? {} : rawArgs;\n if (typeof ref !== \"string\" || !object(args)) throw new Error(\"Invalid Jev program tool call\");\n if (ref === \"jev.$sleep\") {\n if (typeof args.ms !== \"number\" || !Number.isFinite(args.ms) || args.ms < 0 || args.ms > timeoutMs) throw new Error(\"Invalid program.sleep duration\");\n await delay(args.ms, undefined, { signal });\n return null;\n }\n if (ref === \"jev.$emit\") { emit(args.value); return null; }\n if (!Object.hasOwn(runLease.view!.bindings, ref)) throw new Error(`Capability not granted to Jev program: ${ref}`);\n if (ref === \"jev.evaluate\") {\n if (evaluating) throw new Error(\"One Jev evaluation may be in flight per program; batch independent questions in one request\");\n if (info.evaluations >= maxEvaluations || info.usage.input_tokens + info.usage.output_tokens >= maxTokens)\n return failBudget(\"Jev inference budget exhausted\");\n info.evaluations++;\n evaluating = true;\n }\n try {\n const value = await registry.invoke(ref, args, {\n cwd: context.cwd, extensionContext: context.extensionContext, signal, capabilityView: runLease.view!,\n ...(context.effectPolicy ? { effectPolicy: context.effectPolicy } : {}),\n parentToolCallId: `jev:${id}`, nestedToolCallId: `jev:${id}:${info.toolCalls}`,\n update() {}, activity() {}, attachMedia() {}, attachPreview() {},\n authorize: async action => { await this.options.authorize?.(action.ref, `jev:${id}`); },\n approve: async (action, prepared) => {\n if (action.ref === \"schema.commit\") {\n await approval.approve({ ...action, risk: \"write\" }, prepared);\n await approval.approve({ ...action, risk: \"execute\" }, prepared);\n } else await approval.approve(action, prepared);\n },\n audits, maxResultChars: ref === \"jev.evaluate\" ? 1_048_576 : config.executor.maxNestedResultChars,\n });\n if (ref === \"jev.evaluate\") {\n const response = value as JevResponse;\n info.usage.input_tokens += response.usage.input_tokens;\n info.usage.output_tokens += response.usage.output_tokens;\n if (info.usage.input_tokens + info.usage.output_tokens > maxTokens)\n return failBudget(\"Jev reported-token budget exhausted\");\n }\n return value;\n } finally {\n if (ref === \"jev.evaluate\") evaluating = false;\n // Keep audit retention bounded even in a long-lived loop.\n if (audits.length > 64) audits.splice(0, audits.length - 64);\n }\n }, {\n timeoutMs, memoryLimitBytes: Math.min(config.executor.memoryLimitBytes, 64 * 1024 * 1024),\n maxCpuSliceMs: 100, maxPendingTimers: 128, maxLogChars: 4096, strings: { __jevInput: JSON.stringify(input) }, signal: controller.signal,\n });\n info.logs = result.logs;\n if (budgetFailure) { info.state = \"failed\"; info.error = budgetFailure; }\n else if (timedOut || result.terminationReason === \"timed_out\") { info.state = \"timed_out\"; info.error = result.error ?? \"Jev deadline exceeded\"; }\n else if (controller.signal.aborted || result.terminationReason === \"aborted\") { info.state = \"cancelled\"; }\n else if (result.terminationReason !== \"completed\") { info.state = \"failed\"; info.error = result.error ?? \"Jev program failed\"; }\n else {\n checkValue(definition.outputSchema, result.value, \"Program output\");\n info.result = result.value;\n info.state = \"completed\";\n }\n } catch (error) {\n info.state = budgetFailure ? \"failed\" : timedOut ? \"timed_out\" : controller.signal.aborted ? \"cancelled\" : \"failed\";\n info.error = (budgetFailure ?? (error instanceof Error ? error.message : \"Jev program failed\")).slice(0, 2000);\n } finally {\n clearTimeout(timer);\n context.signal?.removeEventListener(\"abort\", abort);\n await runLease.release();\n info.endedAt = Date.now();\n this.#prune();\n }\n return info;\n })();\n return background ? this.status(id) : structuredClone(await run.done);\n } finally {\n if (starting) this.#starting--;\n await lease?.release();\n }\n }\n #prune(): void {\n for (const [id, run] of this.#runs) {\n if (this.#runs.size <= this.options.config.jev.maxRetainedRuns) break;\n if (run.info.state !== \"running\") this.#runs.delete(id);\n }\n }\n stopAll(): void {\n for (const run of this.#runs.values()) if (run.info.state === \"running\") run.controller.abort(new Error(\"Jev provider closed\"));\n }\n async close(): Promise<void> {\n this.#closed = true;\n // Terminal runs are already out of QuickJS and may be releasing the last\n // provider lease right now. Waiting for those here would self-deadlock.\n const running = [...this.#runs.values()].filter(r => r.info.state === \"running\");\n this.stopAll();\n await Promise.all(running.map(r => r.done));\n this.#runs.clear();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["question", "description"]
|
|
7
|
+
}
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
createGuestStackMap,
|
|
3
3
|
guestSetupSource,
|
|
4
4
|
remapGuestErrorText
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-Y7KNRAFL.js";
|
|
6
6
|
import {
|
|
7
7
|
transpileFabricCodeWithSourceMap
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N5GUXC6F.js";
|
|
9
9
|
import {
|
|
10
10
|
piBashExitMetadata
|
|
11
11
|
} from "./chunk-PAN6C3JM.js";
|
|
@@ -316,4 +316,4 @@ export {
|
|
|
316
316
|
NodeProcessRuntime,
|
|
317
317
|
BunProcessRuntime
|
|
318
318
|
};
|
|
319
|
-
//# sourceMappingURL=chunk-
|
|
319
|
+
//# sourceMappingURL=chunk-P7UQ5TWL.js.map
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import {
|
|
2
|
+
applyNormalFormPlan,
|
|
3
|
+
deriveNormalFormPlan
|
|
4
|
+
} from "./chunk-G4LADAYY.js";
|
|
5
|
+
|
|
6
|
+
// src/entropy/active.ts
|
|
7
|
+
var active;
|
|
8
|
+
var enabled = false;
|
|
9
|
+
var setActiveCompiledSurface = (file, enable = file !== void 0) => {
|
|
10
|
+
active = file;
|
|
11
|
+
enabled = enable;
|
|
12
|
+
};
|
|
13
|
+
var clearActiveCompiledSurface = () => {
|
|
14
|
+
active = void 0;
|
|
15
|
+
enabled = false;
|
|
16
|
+
};
|
|
17
|
+
var effectiveInputSchema = (_ref, liveSchema) => liveSchema;
|
|
18
|
+
var activeQuarantinedRefNames = () => /* @__PURE__ */ new Set();
|
|
19
|
+
var isActiveQuarantine = (_provider, _actionName, _liveSchema) => false;
|
|
20
|
+
var normalizeActiveArguments = (ref, schema, args) => {
|
|
21
|
+
if (!enabled) return { args };
|
|
22
|
+
const stored = active?.version === 2 ? active.normalizations?.find((plan) => plan.ref === ref) : void 0;
|
|
23
|
+
return applyNormalFormPlan(ref, schema, args, stored ?? deriveNormalFormPlan(ref, schema));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// src/repairs/active.ts
|
|
27
|
+
var active2;
|
|
28
|
+
var setActiveRepairCompiler = (compiler) => {
|
|
29
|
+
active2 = compiler;
|
|
30
|
+
};
|
|
31
|
+
var clearActiveRepairCompiler = (compiler) => {
|
|
32
|
+
if (compiler && active2 === compiler) active2 = void 0;
|
|
33
|
+
};
|
|
34
|
+
var getActiveRepairCompiler = () => active2;
|
|
35
|
+
var applyActiveArgRepairs = (ref, args, schema) => active2?.applyArgs(ref, args, schema) ?? args;
|
|
36
|
+
var applyActiveActionName = (provider, actionName, declared) => active2?.applyActionName(provider, actionName, declared) ?? actionName;
|
|
37
|
+
|
|
38
|
+
// src/core/action-result.ts
|
|
39
|
+
var PREVIEW_ARG_CHARS = 2e3;
|
|
40
|
+
var WRITE_PREVIEW_CONTENT_CHARS = 16e3;
|
|
41
|
+
var PREVIEW_ARG_KEYS = 32;
|
|
42
|
+
var PREVIEW_RESULT_CHARS = 16e3;
|
|
43
|
+
var PREVIEW_NESTED_CHARS = 16e3;
|
|
44
|
+
var MAX_AUDIT_VALUE_CHARS = 64e3;
|
|
45
|
+
var truncateString = (value, max) => value.length <= max ? value : `${value.slice(0, max)}\u2026`;
|
|
46
|
+
var boundedPreviewValue = (value, maxChars) => {
|
|
47
|
+
if (value === void 0 || value === null || typeof value !== "object") return value;
|
|
48
|
+
try {
|
|
49
|
+
const serialized = JSON.stringify(value);
|
|
50
|
+
if (serialized.length <= maxChars) return JSON.parse(serialized);
|
|
51
|
+
return {
|
|
52
|
+
fabricTruncated: true,
|
|
53
|
+
originalChars: serialized.length,
|
|
54
|
+
preview: serialized.slice(0, Math.max(1, maxChars - 100))
|
|
55
|
+
};
|
|
56
|
+
} catch {
|
|
57
|
+
return truncateString(String(value), maxChars);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var previewArgs = (ref, args) => {
|
|
61
|
+
const out = {};
|
|
62
|
+
let count = 0;
|
|
63
|
+
for (const [key, value] of Object.entries(args)) {
|
|
64
|
+
if (count++ >= PREVIEW_ARG_KEYS) break;
|
|
65
|
+
const maxChars = ref === "pi.write" && key === "content" ? WRITE_PREVIEW_CONTENT_CHARS : PREVIEW_ARG_CHARS;
|
|
66
|
+
out[key] = typeof value === "string" ? truncateString(value, maxChars) : boundedPreviewValue(value, PREVIEW_NESTED_CHARS);
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
};
|
|
70
|
+
var previewResult = (value) => {
|
|
71
|
+
if (typeof value === "string") return truncateString(value, PREVIEW_RESULT_CHARS);
|
|
72
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value)) {
|
|
73
|
+
const out = {};
|
|
74
|
+
let count = 0;
|
|
75
|
+
for (const [key, val] of Object.entries(value)) {
|
|
76
|
+
if (count++ >= PREVIEW_ARG_KEYS) break;
|
|
77
|
+
out[key] = typeof val === "string" ? truncateString(val, PREVIEW_RESULT_CHARS) : boundedPreviewValue(val, PREVIEW_NESTED_CHARS);
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
return boundedPreviewValue(value, PREVIEW_RESULT_CHARS);
|
|
82
|
+
};
|
|
83
|
+
var failedResultError = (value) => {
|
|
84
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return void 0;
|
|
85
|
+
const record = value;
|
|
86
|
+
const status = record.status;
|
|
87
|
+
if (status !== "failed" && status !== "stopped" && status !== "timed_out") return void 0;
|
|
88
|
+
const error = typeof record.error === "string" ? record.error.trim() : "";
|
|
89
|
+
return error ? truncateString(error, PREVIEW_RESULT_CHARS) : `Fabric action returned ${status}`;
|
|
90
|
+
};
|
|
91
|
+
var failedResultOutcome = (value) => {
|
|
92
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return "failed";
|
|
93
|
+
const status = value.status;
|
|
94
|
+
return status === "timed_out" ? "timed_out" : status === "stopped" ? "aborted" : "failed";
|
|
95
|
+
};
|
|
96
|
+
var boundedResult = (value, maxChars) => {
|
|
97
|
+
let serialized;
|
|
98
|
+
try {
|
|
99
|
+
const encoded = JSON.stringify(value);
|
|
100
|
+
if (encoded === void 0 && value !== void 0) {
|
|
101
|
+
throw new Error(`unsupported result type: ${typeof value}`);
|
|
102
|
+
}
|
|
103
|
+
serialized = encoded ?? "null";
|
|
104
|
+
} catch (error) {
|
|
105
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
106
|
+
throw new Error(`Fabric action returned a non-JSON-serializable value: ${message}`);
|
|
107
|
+
}
|
|
108
|
+
if (serialized.length <= maxChars) {
|
|
109
|
+
return { value, chars: serialized.length, truncated: false };
|
|
110
|
+
}
|
|
111
|
+
const previewChars = Math.max(1, maxChars - 200);
|
|
112
|
+
return {
|
|
113
|
+
value: {
|
|
114
|
+
fabricTruncated: true,
|
|
115
|
+
originalChars: serialized.length,
|
|
116
|
+
preview: serialized.slice(0, previewChars)
|
|
117
|
+
},
|
|
118
|
+
chars: serialized.length,
|
|
119
|
+
truncated: true
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
// src/core/action-arguments.ts
|
|
124
|
+
import { Value } from "typebox/value";
|
|
125
|
+
var MAX_VALIDATION_MESSAGE_CHARS = 2e3;
|
|
126
|
+
var unexpectedKeys = (schema, value) => {
|
|
127
|
+
if (schema.type !== "object") return [];
|
|
128
|
+
if (schema.additionalProperties !== false) return [];
|
|
129
|
+
if (schema.patternProperties !== void 0) return [];
|
|
130
|
+
const properties = schema.properties;
|
|
131
|
+
if (!properties) return [];
|
|
132
|
+
return Object.keys(value).filter((key) => !Object.hasOwn(properties, key));
|
|
133
|
+
};
|
|
134
|
+
var validationMessage = (schema, value) => {
|
|
135
|
+
try {
|
|
136
|
+
if (Value.Check(schema, value)) return void 0;
|
|
137
|
+
const messages = [...Value.Errors(schema, value)].slice(0, 5).map((error) => {
|
|
138
|
+
const at = error.path;
|
|
139
|
+
return typeof at === "string" && at !== "" && at !== "/" ? `${at}: ${error.message}` : error.message;
|
|
140
|
+
});
|
|
141
|
+
for (const key of unexpectedKeys(schema, value).slice(0, 5)) {
|
|
142
|
+
messages.push(`/${key}: must not have additional properties`);
|
|
143
|
+
}
|
|
144
|
+
return truncateString(
|
|
145
|
+
messages.join("; ") || "Schema validation failed",
|
|
146
|
+
MAX_VALIDATION_MESSAGE_CHARS
|
|
147
|
+
);
|
|
148
|
+
} catch {
|
|
149
|
+
return "Schema validator failed";
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
var declaredPropertyNames = (schema) => {
|
|
153
|
+
const properties = schema.properties;
|
|
154
|
+
return properties ? Object.keys(properties) : [];
|
|
155
|
+
};
|
|
156
|
+
var repairCatalogInput = (ref, schema, args) => {
|
|
157
|
+
const extras = unexpectedKeys(schema, args).sort();
|
|
158
|
+
const observedUnexpected = extras.length > 0 ? extras.join("\0") : void 0;
|
|
159
|
+
if (extras.length > 0) {
|
|
160
|
+
getActiveRepairCompiler()?.observeInvalidArgs(
|
|
161
|
+
ref,
|
|
162
|
+
args,
|
|
163
|
+
declaredPropertyNames(schema),
|
|
164
|
+
extras.join(","),
|
|
165
|
+
{ countError: false, extraKeys: extras }
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
return { args: applyActiveArgRepairs(ref, args, schema), observedUnexpected };
|
|
169
|
+
};
|
|
170
|
+
var validateCatalogArgs = (ref, schema, args, observedUnexpected) => {
|
|
171
|
+
const compiler = getActiveRepairCompiler();
|
|
172
|
+
const normalize = (input) => {
|
|
173
|
+
const result = normalizeActiveArguments(ref, schema, input);
|
|
174
|
+
return { args: result.args, ...result.witness ? { normalization: result.witness } : {} };
|
|
175
|
+
};
|
|
176
|
+
const first = normalize(applyActiveArgRepairs(ref, args, schema));
|
|
177
|
+
const invalid = validationMessage(schema, first.args);
|
|
178
|
+
if (!invalid) return first;
|
|
179
|
+
const extras = unexpectedKeys(schema, first.args).sort();
|
|
180
|
+
if (observedUnexpected === void 0 || extras.join("\0") !== observedUnexpected) {
|
|
181
|
+
compiler?.observeInvalidArgs(
|
|
182
|
+
ref,
|
|
183
|
+
first.args,
|
|
184
|
+
declaredPropertyNames(schema),
|
|
185
|
+
invalid,
|
|
186
|
+
{ countError: false, extraKeys: extras }
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
const second = normalize(applyActiveArgRepairs(ref, first.args, schema));
|
|
190
|
+
const stillInvalid = validationMessage(schema, second.args);
|
|
191
|
+
if (stillInvalid) compiler?.recordInvocationError();
|
|
192
|
+
return stillInvalid ? { args: second.args, invalid: stillInvalid } : second;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
export {
|
|
196
|
+
setActiveCompiledSurface,
|
|
197
|
+
clearActiveCompiledSurface,
|
|
198
|
+
effectiveInputSchema,
|
|
199
|
+
activeQuarantinedRefNames,
|
|
200
|
+
isActiveQuarantine,
|
|
201
|
+
normalizeActiveArguments,
|
|
202
|
+
setActiveRepairCompiler,
|
|
203
|
+
clearActiveRepairCompiler,
|
|
204
|
+
getActiveRepairCompiler,
|
|
205
|
+
applyActiveArgRepairs,
|
|
206
|
+
applyActiveActionName,
|
|
207
|
+
MAX_AUDIT_VALUE_CHARS,
|
|
208
|
+
boundedPreviewValue,
|
|
209
|
+
previewArgs,
|
|
210
|
+
previewResult,
|
|
211
|
+
failedResultError,
|
|
212
|
+
failedResultOutcome,
|
|
213
|
+
boundedResult,
|
|
214
|
+
validationMessage,
|
|
215
|
+
repairCatalogInput,
|
|
216
|
+
validateCatalogArgs
|
|
217
|
+
};
|
|
218
|
+
//# sourceMappingURL=chunk-PSNXUZMY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/entropy/active.ts", "../../src/repairs/active.ts", "../../src/core/action-result.ts", "../../src/core/action-arguments.ts"],
|
|
4
|
+
"sourcesContent": ["// Runtime-only compatibility policy. No schema or discovery entry changes.\nimport type { CompiledSurfaceFile } from \"./compiled-surface.js\";\nimport { applyNormalFormPlan, deriveNormalFormPlan, type NormalFormResult } from \"./normal-form.js\";\n\nlet active: CompiledSurfaceFile | undefined;\nlet enabled = false;\nexport const setActiveCompiledSurface = (file: CompiledSurfaceFile | undefined, enable = file !== undefined): void => {\n active = file;\n enabled = enable;\n};\nexport const clearActiveCompiledSurface = (): void => { active = undefined; enabled = false; };\nexport const effectiveInputSchema = (_ref: string, liveSchema: unknown): unknown => liveSchema;\nexport const activeQuarantinedRefNames = (): ReadonlySet<string> => new Set();\nexport const isActiveQuarantine = (_provider: string, _actionName: string, _liveSchema: unknown): boolean => false;\n\nexport const normalizeActiveArguments = (ref: string, schema: unknown, args: Record<string, unknown>): NormalFormResult => {\n if (!enabled) return { args };\n const stored = active?.version === 2 ? active.normalizations?.find((plan) => plan.ref === ref) : undefined;\n // New actions gain the same statically proven rules on their first call,\n // without waiting for session evidence or a background persistence tick.\n // A stored stale/forged plan is refused, never silently substituted.\n return applyNormalFormPlan(ref, schema, args, stored ?? deriveNormalFormPlan(ref, schema));\n};\n", "import type { RepairCompiler } from \"./compiler.js\";\n\nlet active: RepairCompiler | undefined;\n\nexport const setActiveRepairCompiler = (compiler: RepairCompiler | undefined): void => {\n active = compiler;\n};\n\nexport const clearActiveRepairCompiler = (compiler: RepairCompiler | undefined): void => {\n if (compiler && active === compiler) active = undefined;\n};\n\nexport const getActiveRepairCompiler = (): RepairCompiler | undefined => active;\n\nexport const applyActiveArgRepairs = (\n ref: string,\n args: Record<string, unknown>,\n schema: Record<string, unknown>,\n): Record<string, unknown> => active?.applyArgs(ref, args, schema) ?? args;\n\nexport const applyActiveActionName = (\n provider: string,\n actionName: string,\n declared: readonly string[],\n): string => active?.applyActionName(provider, actionName, declared) ?? actionName;\n", "const PREVIEW_ARG_CHARS = 2_000;\nconst WRITE_PREVIEW_CONTENT_CHARS = 16_000;\nconst PREVIEW_ARG_KEYS = 32;\nconst PREVIEW_RESULT_CHARS = 16_000;\nconst PREVIEW_NESTED_CHARS = 16_000;\nexport const MAX_AUDIT_VALUE_CHARS = 64_000;\n\nexport const truncateString = (value: string, max: number): string =>\n value.length <= max ? value : `${value.slice(0, max)}\u2026`;\n\nexport const boundedPreviewValue = (value: unknown, maxChars: number): unknown => {\n if (value === undefined || value === null || typeof value !== \"object\") return value;\n try {\n const serialized = JSON.stringify(value);\n if (serialized.length <= maxChars) return JSON.parse(serialized) as unknown;\n return {\n fabricTruncated: true,\n originalChars: serialized.length,\n preview: serialized.slice(0, Math.max(1, maxChars - 100)),\n };\n } catch {\n return truncateString(String(value), maxChars);\n }\n};\n\nexport const previewArgs = (ref: string, args: Record<string, unknown>): Record<string, unknown> => {\n const out: Record<string, unknown> = {};\n let count = 0;\n for (const [key, value] of Object.entries(args)) {\n if (count++ >= PREVIEW_ARG_KEYS) break;\n const maxChars =\n ref === \"pi.write\" && key === \"content\"\n ? WRITE_PREVIEW_CONTENT_CHARS\n : PREVIEW_ARG_CHARS;\n out[key] =\n typeof value === \"string\"\n ? truncateString(value, maxChars)\n : boundedPreviewValue(value, PREVIEW_NESTED_CHARS);\n }\n return out;\n};\n\nexport const previewResult = (value: unknown): unknown => {\n if (typeof value === \"string\") return truncateString(value, PREVIEW_RESULT_CHARS);\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) {\n const out: Record<string, unknown> = {};\n let count = 0;\n for (const [key, val] of Object.entries(value as Record<string, unknown>)) {\n if (count++ >= PREVIEW_ARG_KEYS) break;\n out[key] =\n typeof val === \"string\"\n ? truncateString(val, PREVIEW_RESULT_CHARS)\n : boundedPreviewValue(val, PREVIEW_NESTED_CHARS);\n }\n return out;\n }\n return boundedPreviewValue(value, PREVIEW_RESULT_CHARS);\n};\n\nexport const failedResultError = (value: unknown): string | undefined => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return undefined;\n const record = value as Record<string, unknown>;\n const status = record.status;\n if (status !== \"failed\" && status !== \"stopped\" && status !== \"timed_out\") return undefined;\n const error = typeof record.error === \"string\" ? record.error.trim() : \"\";\n return error ? truncateString(error, PREVIEW_RESULT_CHARS) : `Fabric action returned ${status}`;\n};\n\nexport const failedResultOutcome = (value: unknown): \"failed\" | \"aborted\" | \"timed_out\" => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return \"failed\";\n const status = (value as Record<string, unknown>).status;\n return status === \"timed_out\" ? \"timed_out\" : status === \"stopped\" ? \"aborted\" : \"failed\";\n};\n\nexport const boundedResult = (\n value: unknown,\n maxChars: number,\n): { value: unknown; chars: number; truncated: boolean } => {\n let serialized: string;\n try {\n const encoded = JSON.stringify(value);\n if (encoded === undefined && value !== undefined) {\n throw new Error(`unsupported result type: ${typeof value}`);\n }\n serialized = encoded ?? \"null\";\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`Fabric action returned a non-JSON-serializable value: ${message}`);\n }\n if (serialized.length <= maxChars) {\n return { value, chars: serialized.length, truncated: false };\n }\n const previewChars = Math.max(1, maxChars - 200);\n return {\n value: {\n fabricTruncated: true,\n originalChars: serialized.length,\n preview: serialized.slice(0, previewChars),\n },\n chars: serialized.length,\n truncated: true,\n };\n};\n\n", "import { Value } from \"typebox/value\";\nimport { normalizeActiveArguments } from \"../entropy/active.js\";\nimport type { NormalFormWitness } from \"../entropy/normal-form.js\";\nimport { applyActiveArgRepairs, getActiveRepairCompiler } from \"../repairs/active.js\";\nimport { truncateString } from \"./action-result.js\";\n\nconst MAX_VALIDATION_MESSAGE_CHARS = 2_000;\n\n// TypeBox reports additionalProperties failures against the object root\n// without naming the offending keys; name them so a rejected near-miss call\n// is actionable (e.g. a before/after guess on memory.expand surfaces as\n// \"/before: must not have additional properties\").\nconst unexpectedKeys = (\n schema: Record<string, unknown>,\n value: Record<string, unknown>,\n): string[] => {\n if ((schema as { type?: unknown }).type !== \"object\") return [];\n if ((schema as { additionalProperties?: unknown }).additionalProperties !== false) return [];\n if ((schema as { patternProperties?: unknown }).patternProperties !== undefined) return [];\n const properties = (schema as { properties?: Record<string, unknown> }).properties;\n if (!properties) return [];\n return Object.keys(value).filter((key) => !Object.hasOwn(properties, key));\n};\n\nexport const validationMessage = (\n schema: Record<string, unknown>,\n value: Record<string, unknown>,\n): string | undefined => {\n try {\n if (Value.Check(schema, value)) return undefined;\n const messages = [...Value.Errors(schema, value)]\n .slice(0, 5)\n .map((error) => {\n // Prefix nested failures with their property path.\n const at = (error as { path?: unknown }).path;\n return typeof at === \"string\" && at !== \"\" && at !== \"/\"\n ? `${at}: ${error.message}`\n : error.message;\n });\n for (const key of unexpectedKeys(schema, value).slice(0, 5)) {\n messages.push(`/${key}: must not have additional properties`);\n }\n return truncateString(\n messages.join(\"; \") || \"Schema validation failed\",\n MAX_VALIDATION_MESSAGE_CHARS,\n );\n } catch {\n return \"Schema validator failed\";\n }\n};\n\nconst declaredPropertyNames = (schema: Record<string, unknown>): string[] => {\n const properties = (schema as { properties?: Record<string, unknown> }).properties;\n return properties ? Object.keys(properties) : [];\n};\n\nexport const repairCatalogInput = (\n ref: string,\n schema: Record<string, unknown>,\n args: Record<string, unknown>,\n): { args: Record<string, unknown>; observedUnexpected: string | undefined } => {\n const extras = unexpectedKeys(schema, args).sort();\n const observedUnexpected = extras.length > 0 ? extras.join(\"\\0\") : undefined;\n if (extras.length > 0) {\n getActiveRepairCompiler()?.observeInvalidArgs(\n ref, args, declaredPropertyNames(schema), extras.join(\",\"),\n { countError: false, extraKeys: extras },\n );\n }\n return { args: applyActiveArgRepairs(ref, args, schema), observedUnexpected };\n};\n\nexport const validateCatalogArgs = (\n ref: string,\n schema: Record<string, unknown>,\n args: Record<string, unknown>,\n observedUnexpected: string | undefined,\n): { args: Record<string, unknown>; invalid?: string; normalization?: NormalFormWitness } => {\n const compiler = getActiveRepairCompiler();\n const normalize = (input: Record<string, unknown>) => {\n const result = normalizeActiveArguments(ref, schema, input);\n return { args: result.args, ...(result.witness ? { normalization: result.witness } : {}) };\n };\n // Provider-owned preparation has already run. Generic conventions may\n // recover leftover invalid representations, never override an adapter's\n // interpretation or bypass its preparation errors.\n const first = normalize(applyActiveArgRepairs(ref, args, schema));\n const invalid = validationMessage(schema, first.args);\n if (!invalid) return first;\n const extras = unexpectedKeys(schema, first.args).sort();\n if (observedUnexpected === undefined || extras.join(\"\\0\") !== observedUnexpected) {\n compiler?.observeInvalidArgs(\n ref, first.args, declaredPropertyNames(schema), invalid,\n { countError: false, extraKeys: extras },\n );\n }\n const second = normalize(applyActiveArgRepairs(ref, first.args, schema));\n const stillInvalid = validationMessage(schema, second.args);\n if (stillInvalid) compiler?.recordInvocationError();\n return stillInvalid ? { args: second.args, invalid: stillInvalid } : second;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["active"]
|
|
7
|
+
}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
FABRIC_BRANCH_SUMMARY_VERSION,
|
|
11
11
|
readFabricBranchSummaryDetails,
|
|
12
12
|
readFabricProjectionTrace
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ZDNGXLEC.js";
|
|
14
14
|
import {
|
|
15
15
|
MAX_SUMMARY_BYTES,
|
|
16
16
|
clipUtf8,
|
|
@@ -1921,4 +1921,4 @@ export {
|
|
|
1921
1921
|
compileFabricSummary,
|
|
1922
1922
|
registerCompactionHook
|
|
1923
1923
|
};
|
|
1924
|
-
//# sourceMappingURL=chunk-
|
|
1924
|
+
//# sourceMappingURL=chunk-QLJ5P7HV.js.map
|
|
@@ -7,30 +7,32 @@ import {
|
|
|
7
7
|
emptyCompiledSurface,
|
|
8
8
|
withExclusiveFileLock,
|
|
9
9
|
withExclusiveFileLockAsync
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3WIGAX56.js";
|
|
11
11
|
import {
|
|
12
12
|
sessionDirForCwd,
|
|
13
13
|
sessionsDirRoot
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MGDLRV2R.js";
|
|
15
15
|
import {
|
|
16
16
|
writeJsonAtomic,
|
|
17
17
|
writeJsonAtomicAsync
|
|
18
18
|
} from "./chunk-KAD7UWT2.js";
|
|
19
19
|
import {
|
|
20
20
|
FABRIC_EXECUTION_TRACE_KIND,
|
|
21
|
+
readFabricExecutionTraceV1
|
|
22
|
+
} from "./chunk-D5WKZONW.js";
|
|
23
|
+
import {
|
|
21
24
|
MAX_NORMAL_FORM_PLANS,
|
|
22
25
|
applyNormalFormPlan,
|
|
23
26
|
compareCodeUnits,
|
|
24
27
|
deriveNormalFormPlan,
|
|
25
28
|
provesNormalFormPlan,
|
|
26
|
-
readFabricExecutionTraceV1,
|
|
27
29
|
roundMetric,
|
|
28
30
|
shannonEntropyBits,
|
|
29
31
|
shapeSignature,
|
|
30
32
|
signatureDistance,
|
|
31
33
|
staticFreedomFromSchema,
|
|
32
34
|
trendFromScores
|
|
33
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-G4LADAYY.js";
|
|
34
36
|
import {
|
|
35
37
|
stableJsonHash
|
|
36
38
|
} from "./chunk-3YZUQESG.js";
|
|
@@ -1715,4 +1717,4 @@ export {
|
|
|
1715
1717
|
formatEntropyCompileNotice,
|
|
1716
1718
|
runEntropyTrial
|
|
1717
1719
|
};
|
|
1718
|
-
//# sourceMappingURL=chunk-
|
|
1720
|
+
//# sourceMappingURL=chunk-RNOPHITP.js.map
|