pyric 0.1.0-alpha.30.2 → 0.1.0-alpha.32
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/dist/ai/app-check-gate.d.ts +9 -2
- package/dist/ai/app-check-gate.d.ts.map +1 -1
- package/dist/ai/app-check-gate.js +36 -7
- package/dist/ai/app-check-gate.js.map +1 -1
- package/dist/ai/broker/broker.d.ts.map +1 -1
- package/dist/ai/broker/broker.js +17 -20
- package/dist/ai/broker/broker.js.map +1 -1
- package/dist/ai/broker/gemini-engine.d.ts +5 -2
- package/dist/ai/broker/gemini-engine.d.ts.map +1 -1
- package/dist/ai/broker/gemini-engine.js +41 -25
- package/dist/ai/broker/gemini-engine.js.map +1 -1
- package/dist/ai/broker/gemini-upstream.d.ts +7 -5
- package/dist/ai/broker/gemini-upstream.d.ts.map +1 -1
- package/dist/ai/broker/gemini-upstream.js +9 -7
- package/dist/ai/broker/gemini-upstream.js.map +1 -1
- package/dist/ai/broker/index.d.ts +2 -1
- package/dist/ai/broker/index.d.ts.map +1 -1
- package/dist/ai/broker/index.js +2 -1
- package/dist/ai/broker/index.js.map +1 -1
- package/dist/ai/broker/openai-engine.d.ts.map +1 -1
- package/dist/ai/broker/openai-engine.js +13 -2
- package/dist/ai/broker/openai-engine.js.map +1 -1
- package/dist/ai/broker/scripted-engine.d.ts +5 -1
- package/dist/ai/broker/scripted-engine.d.ts.map +1 -1
- package/dist/ai/broker/scripted-engine.js +8 -2
- package/dist/ai/broker/scripted-engine.js.map +1 -1
- package/dist/ai/broker/synthesizer.d.ts +7 -0
- package/dist/ai/broker/synthesizer.d.ts.map +1 -1
- package/dist/ai/broker/synthesizer.js +10 -1
- package/dist/ai/broker/synthesizer.js.map +1 -1
- package/dist/ai/broker/upstream-error-redaction.d.ts +12 -0
- package/dist/ai/broker/upstream-error-redaction.d.ts.map +1 -0
- package/dist/ai/broker/upstream-error-redaction.js +71 -0
- package/dist/ai/broker/upstream-error-redaction.js.map +1 -0
- package/dist/ai/errors.d.ts +21 -7
- package/dist/ai/errors.d.ts.map +1 -1
- package/dist/ai/errors.js +68 -10
- package/dist/ai/errors.js.map +1 -1
- package/dist/ai/instances.js +1 -0
- package/dist/ai/instances.js.map +1 -1
- package/dist/ai/internal.d.ts +5 -2
- package/dist/ai/internal.d.ts.map +1 -1
- package/dist/ai/internal.js +6 -2
- package/dist/ai/internal.js.map +1 -1
- package/dist/ai/sandbox-plane.js +1 -1
- package/dist/ai/sandbox-plane.js.map +1 -1
- package/dist/ai/types.d.ts +4 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/app/register-rules.d.ts.map +1 -1
- package/dist/app/register-rules.js +72 -9
- package/dist/app/register-rules.js.map +1 -1
- package/dist/app-check/index.d.ts.map +1 -1
- package/dist/app-check/index.js +14 -8
- package/dist/app-check/index.js.map +1 -1
- package/dist/app-check/never-settles-warning.d.ts +14 -0
- package/dist/app-check/never-settles-warning.d.ts.map +1 -0
- package/dist/app-check/never-settles-warning.js +23 -0
- package/dist/app-check/never-settles-warning.js.map +1 -0
- package/dist/app-check/providers.d.ts +23 -3
- package/dist/app-check/providers.d.ts.map +1 -1
- package/dist/app-check/providers.js +27 -0
- package/dist/app-check/providers.js.map +1 -1
- package/dist/app-check/state.d.ts +17 -5
- package/dist/app-check/state.d.ts.map +1 -1
- package/dist/app-check/state.js +88 -10
- package/dist/app-check/state.js.map +1 -1
- package/dist/auth/internal.d.ts +4 -0
- package/dist/auth/internal.d.ts.map +1 -1
- package/dist/auth/internal.js +3 -0
- package/dist/auth/internal.js.map +1 -1
- package/dist/auth/providers.d.ts +9 -0
- package/dist/auth/providers.d.ts.map +1 -1
- package/dist/auth/providers.js +14 -0
- package/dist/auth/providers.js.map +1 -1
- package/dist/auth/sandbox/driver.d.ts +11 -1
- package/dist/auth/sandbox/driver.d.ts.map +1 -1
- package/dist/auth/sandbox/driver.js +25 -0
- package/dist/auth/sandbox/driver.js.map +1 -1
- package/dist/auth/sandbox-backend.d.ts.map +1 -1
- package/dist/auth/sandbox-backend.js +7 -4
- package/dist/auth/sandbox-backend.js.map +1 -1
- package/dist/auth/sign-in.d.ts +8 -0
- package/dist/auth/sign-in.d.ts.map +1 -1
- package/dist/auth/sign-in.js +11 -3
- package/dist/auth/sign-in.js.map +1 -1
- package/dist/database/instances.d.ts.map +1 -1
- package/dist/database/instances.js +18 -5
- package/dist/database/instances.js.map +1 -1
- package/dist/database/internal.d.ts +1 -0
- package/dist/database/internal.d.ts.map +1 -1
- package/dist/database/internal.js +1 -0
- package/dist/database/internal.js.map +1 -1
- package/dist/database/on-disconnect.d.ts.map +1 -1
- package/dist/database/on-disconnect.js +3 -0
- package/dist/database/on-disconnect.js.map +1 -1
- package/dist/database/operations.d.ts +3 -0
- package/dist/database/operations.d.ts.map +1 -1
- package/dist/database/operations.js +13 -8
- package/dist/database/operations.js.map +1 -1
- package/dist/database/queries.js +1 -1
- package/dist/database/queries.js.map +1 -1
- package/dist/database/query-validation.d.ts +5 -1
- package/dist/database/query-validation.d.ts.map +1 -1
- package/dist/database/query-validation.js +9 -22
- package/dist/database/query-validation.js.map +1 -1
- package/dist/database/references.d.ts +6 -4
- package/dist/database/references.d.ts.map +1 -1
- package/dist/database/references.js +17 -13
- package/dist/database/references.js.map +1 -1
- package/dist/database/routing.d.ts +4 -0
- package/dist/database/routing.d.ts.map +1 -1
- package/dist/database/routing.js.map +1 -1
- package/dist/database/sandbox/normalize.d.ts +34 -12
- package/dist/database/sandbox/normalize.d.ts.map +1 -1
- package/dist/database/sandbox/normalize.js +113 -61
- package/dist/database/sandbox/normalize.js.map +1 -1
- package/dist/database/sandbox/query.d.ts.map +1 -1
- package/dist/database/sandbox/query.js +37 -13
- package/dist/database/sandbox/query.js.map +1 -1
- package/dist/database/sandbox/transactions.d.ts.map +1 -1
- package/dist/database/sandbox/transactions.js +2 -2
- package/dist/database/sandbox/transactions.js.map +1 -1
- package/dist/database/sandbox/write-plane.js +3 -3
- package/dist/database/sandbox/write-plane.js.map +1 -1
- package/dist/database/snapshots.d.ts.map +1 -1
- package/dist/database/snapshots.js +36 -32
- package/dist/database/snapshots.js.map +1 -1
- package/dist/database/writable-path.d.ts.map +1 -1
- package/dist/database/writable-path.js +5 -3
- package/dist/database/writable-path.js.map +1 -1
- package/dist/firestore/internal/implicit-order.d.ts +19 -0
- package/dist/firestore/internal/implicit-order.d.ts.map +1 -0
- package/dist/firestore/internal/implicit-order.js +36 -0
- package/dist/firestore/internal/implicit-order.js.map +1 -0
- package/dist/firestore/sandbox/collection-group-rule-proof.d.ts +4 -1
- package/dist/firestore/sandbox/collection-group-rule-proof.d.ts.map +1 -1
- package/dist/firestore/sandbox/collection-group-rule-proof.js +7 -1
- package/dist/firestore/sandbox/collection-group-rule-proof.js.map +1 -1
- package/dist/firestore/sandbox/query-execution.d.ts +2 -0
- package/dist/firestore/sandbox/query-execution.d.ts.map +1 -1
- package/dist/firestore/sandbox/query-execution.js +48 -43
- package/dist/firestore/sandbox/query-execution.js.map +1 -1
- package/dist/firestore/sandbox/query-value-order.d.ts +5 -30
- package/dist/firestore/sandbox/query-value-order.d.ts.map +1 -1
- package/dist/firestore/sandbox/query-value-order.js +94 -112
- package/dist/firestore/sandbox/query-value-order.js.map +1 -1
- package/dist/firestore/sandbox/rules-state.d.ts +6 -4
- package/dist/firestore/sandbox/rules-state.d.ts.map +1 -1
- package/dist/firestore/sandbox/rules-state.js +9 -10
- package/dist/firestore/sandbox/rules-state.js.map +1 -1
- package/dist/firestore/sandbox/value-equality.d.ts +23 -0
- package/dist/firestore/sandbox/value-equality.d.ts.map +1 -1
- package/dist/firestore/sandbox/value-equality.js +22 -3
- package/dist/firestore/sandbox/value-equality.js.map +1 -1
- package/dist/rules/api/firestore.d.ts +3 -2
- package/dist/rules/api/firestore.d.ts.map +1 -1
- package/dist/rules/api/firestore.js +29 -24
- package/dist/rules/api/firestore.js.map +1 -1
- package/dist/rules/api/values.d.ts +17 -4
- package/dist/rules/api/values.d.ts.map +1 -1
- package/dist/rules/api/values.js +47 -5
- package/dist/rules/api/values.js.map +1 -1
- package/dist/rules/generators/assembler.d.ts +4 -0
- package/dist/rules/generators/assembler.d.ts.map +1 -1
- package/dist/rules/generators/assembler.js +64 -24
- package/dist/rules/generators/assembler.js.map +1 -1
- package/dist/rules/grammar/compile-limits.d.ts.map +1 -1
- package/dist/rules/grammar/compile-limits.js +4 -14
- package/dist/rules/grammar/compile-limits.js.map +1 -1
- package/dist/rules/grammar/re2-pattern.d.ts +43 -0
- package/dist/rules/grammar/re2-pattern.d.ts.map +1 -1
- package/dist/rules/grammar/re2-pattern.js +172 -0
- package/dist/rules/grammar/re2-pattern.js.map +1 -1
- package/dist/rules/grammar/recursive-wildcard-minimum.d.ts +15 -0
- package/dist/rules/grammar/recursive-wildcard-minimum.d.ts.map +1 -0
- package/dist/rules/grammar/recursive-wildcard-minimum.js +17 -0
- package/dist/rules/grammar/recursive-wildcard-minimum.js.map +1 -0
- package/dist/rules/grammar/source-compile-limits.d.ts +25 -10
- package/dist/rules/grammar/source-compile-limits.d.ts.map +1 -1
- package/dist/rules/grammar/source-compile-limits.js +43 -2
- package/dist/rules/grammar/source-compile-limits.js.map +1 -1
- package/dist/rules/indexes/extract/classify.d.ts +6 -0
- package/dist/rules/indexes/extract/classify.d.ts.map +1 -1
- package/dist/rules/indexes/extract/classify.js +12 -2
- package/dist/rules/indexes/extract/classify.js.map +1 -1
- package/dist/rules/indexes/extract/extractor.d.ts.map +1 -1
- package/dist/rules/indexes/extract/extractor.js +10 -1
- package/dist/rules/indexes/extract/extractor.js.map +1 -1
- package/dist/rules/indexes/extract/types.d.ts +3 -1
- package/dist/rules/indexes/extract/types.d.ts.map +1 -1
- package/dist/rules/internal/index.d.ts +4 -1
- package/dist/rules/internal/index.d.ts.map +1 -1
- package/dist/rules/internal/index.js +3 -1
- package/dist/rules/internal/index.js.map +1 -1
- package/dist/rules/rtdb/simulation/spec.d.ts +6 -6
- package/dist/rules/simulator/evaluation-builtins.d.ts.map +1 -1
- package/dist/rules/simulator/evaluation-builtins.js +5 -3
- package/dist/rules/simulator/evaluation-builtins.js.map +1 -1
- package/dist/rules/simulator/firestore-values.d.ts +8 -0
- package/dist/rules/simulator/firestore-values.d.ts.map +1 -1
- package/dist/rules/simulator/firestore-values.js +16 -0
- package/dist/rules/simulator/firestore-values.js.map +1 -1
- package/dist/rules/simulator/handler.d.ts +9 -0
- package/dist/rules/simulator/handler.d.ts.map +1 -1
- package/dist/rules/simulator/handler.js +69 -50
- package/dist/rules/simulator/handler.js.map +1 -1
- package/dist/rules/simulator/list-query-proof.d.ts.map +1 -1
- package/dist/rules/simulator/list-query-proof.js +4 -8
- package/dist/rules/simulator/list-query-proof.js.map +1 -1
- package/dist/rules/simulator/match-resolution.d.ts +4 -3
- package/dist/rules/simulator/match-resolution.d.ts.map +1 -1
- package/dist/rules/simulator/match-resolution.js +15 -10
- package/dist/rules/simulator/match-resolution.js.map +1 -1
- package/dist/rules/simulator/re2-pattern-check.d.ts +3 -0
- package/dist/rules/simulator/re2-pattern-check.d.ts.map +1 -0
- package/dist/rules/simulator/re2-pattern-check.js +29 -0
- package/dist/rules/simulator/re2-pattern-check.js.map +1 -0
- package/dist/rules/simulator/root-match.d.ts +49 -0
- package/dist/rules/simulator/root-match.d.ts.map +1 -0
- package/dist/rules/simulator/root-match.js +145 -0
- package/dist/rules/simulator/root-match.js.map +1 -0
- package/dist/rules/simulator/rules-type.d.ts +14 -1
- package/dist/rules/simulator/rules-type.d.ts.map +1 -1
- package/dist/rules/simulator/rules-type.js +57 -14
- package/dist/rules/simulator/rules-type.js.map +1 -1
- package/dist/rules/simulator/string-split.d.ts +15 -0
- package/dist/rules/simulator/string-split.d.ts.map +1 -0
- package/dist/rules/simulator/string-split.js +28 -0
- package/dist/rules/simulator/string-split.js.map +1 -0
- package/dist/rules/simulator/string-trim.d.ts +13 -0
- package/dist/rules/simulator/string-trim.d.ts.map +1 -0
- package/dist/rules/simulator/string-trim.js +24 -0
- package/dist/rules/simulator/string-trim.js.map +1 -0
- package/dist/rules/simulator/wrappers/base.d.ts +9 -0
- package/dist/rules/simulator/wrappers/base.d.ts.map +1 -1
- package/dist/rules/simulator/wrappers/base.js +9 -0
- package/dist/rules/simulator/wrappers/base.js.map +1 -1
- package/dist/rules/simulator/wrappers/duration.d.ts +8 -0
- package/dist/rules/simulator/wrappers/duration.d.ts.map +1 -1
- package/dist/rules/simulator/wrappers/duration.js +17 -1
- package/dist/rules/simulator/wrappers/duration.js.map +1 -1
- package/dist/rules/simulator/wrappers/timestamp.d.ts +8 -0
- package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -1
- package/dist/rules/simulator/wrappers/timestamp.js +21 -1
- package/dist/rules/simulator/wrappers/timestamp.js.map +1 -1
- package/dist/rules/simulator-tools-impl.d.ts.map +1 -1
- package/dist/rules/simulator-tools-impl.js +14 -1
- package/dist/rules/simulator-tools-impl.js.map +1 -1
- package/dist/rules/test/case-refusals.d.ts +26 -0
- package/dist/rules/test/case-refusals.d.ts.map +1 -0
- package/dist/rules/test/case-refusals.js +40 -0
- package/dist/rules/test/case-refusals.js.map +1 -0
- package/dist/rules/test/case-shape.d.ts +6 -0
- package/dist/rules/test/case-shape.d.ts.map +1 -0
- package/dist/rules/test/case-shape.js +26 -0
- package/dist/rules/test/case-shape.js.map +1 -0
- package/dist/rules/test/handler.d.ts.map +1 -1
- package/dist/rules/test/handler.js +27 -1
- package/dist/rules/test/handler.js.map +1 -1
- package/dist/rules/test/spec.d.ts +14 -2
- package/dist/rules/test/spec.d.ts.map +1 -1
- package/dist/rules/test/spec.js +50 -8
- package/dist/rules/test/spec.js.map +1 -1
- package/dist/rules/test/wire-values.d.ts +10 -0
- package/dist/rules/test/wire-values.d.ts.map +1 -0
- package/dist/rules/test/wire-values.js +87 -0
- package/dist/rules/test/wire-values.js.map +1 -0
- package/dist/rules/tools.d.ts.map +1 -1
- package/dist/rules/tools.js +4 -1
- package/dist/rules/tools.js.map +1 -1
- package/dist/sandbox/attribution/attribution-mode.d.ts +15 -10
- package/dist/sandbox/attribution/attribution-mode.d.ts.map +1 -1
- package/dist/sandbox/attribution/attribution-mode.js +22 -28
- package/dist/sandbox/attribution/attribution-mode.js.map +1 -1
- package/dist/sandbox/clock.d.ts +50 -6
- package/dist/sandbox/clock.d.ts.map +1 -1
- package/dist/sandbox/clock.js +96 -34
- package/dist/sandbox/clock.js.map +1 -1
- package/dist/sandbox/internal/app-check-token.d.ts +6 -0
- package/dist/sandbox/internal/app-check-token.d.ts.map +1 -1
- package/dist/sandbox/internal/app-check-token.js +6 -0
- package/dist/sandbox/internal/app-check-token.js.map +1 -1
- package/dist/sandbox/internal/auth-token-claims.d.ts +10 -3
- package/dist/sandbox/internal/auth-token-claims.d.ts.map +1 -1
- package/dist/sandbox/internal/auth-token-claims.js +11 -9
- package/dist/sandbox/internal/auth-token-claims.js.map +1 -1
- package/dist/sandbox/internal/firestore-rules-config.d.ts +106 -0
- package/dist/sandbox/internal/firestore-rules-config.d.ts.map +1 -0
- package/dist/sandbox/internal/firestore-rules-config.js +194 -0
- package/dist/sandbox/internal/firestore-rules-config.js.map +1 -0
- package/dist/sandbox/internal/index.d.ts +4 -2
- package/dist/sandbox/internal/index.d.ts.map +1 -1
- package/dist/sandbox/internal/index.js +6 -2
- package/dist/sandbox/internal/index.js.map +1 -1
- package/dist/sandbox/internal/storage-rules-config.d.ts +79 -0
- package/dist/sandbox/internal/storage-rules-config.d.ts.map +1 -0
- package/dist/sandbox/internal/storage-rules-config.js +107 -0
- package/dist/sandbox/internal/storage-rules-config.js.map +1 -0
- package/dist/storage/enforce.d.ts.map +1 -1
- package/dist/storage/enforce.js +36 -20
- package/dist/storage/enforce.js.map +1 -1
- package/dist/storage/instances.d.ts.map +1 -1
- package/dist/storage/instances.js +24 -2
- package/dist/storage/instances.js.map +1 -1
- package/dist/storage/internal.d.ts +2 -1
- package/dist/storage/internal.d.ts.map +1 -1
- package/dist/storage/internal.js +2 -1
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/rules-resolution.d.ts.map +1 -1
- package/dist/storage/rules-resolution.js +4 -15
- package/dist/storage/rules-resolution.js.map +1 -1
- package/dist/storage/sandbox/rules-bucket-name.d.ts +25 -0
- package/dist/storage/sandbox/rules-bucket-name.d.ts.map +1 -0
- package/dist/storage/sandbox/rules-bucket-name.js +35 -0
- package/dist/storage/sandbox/rules-bucket-name.js.map +1 -0
- package/dist/storage/sandbox/rules-evaluator.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-evaluator.js +5 -4
- package/dist/storage/sandbox/rules-evaluator.js.map +1 -1
- package/dist/storage/sandbox/rules-firestore-lookup.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-firestore-lookup.js +65 -22
- package/dist/storage/sandbox/rules-firestore-lookup.js.map +1 -1
- package/dist/storage/sandbox/rules-operators.d.ts +2 -1
- package/dist/storage/sandbox/rules-operators.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-operators.js +15 -2
- package/dist/storage/sandbox/rules-operators.js.map +1 -1
- package/dist/storage/sandbox/rules-path-match.d.ts +8 -5
- package/dist/storage/sandbox/rules-path-match.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-path-match.js +10 -6
- package/dist/storage/sandbox/rules-path-match.js.map +1 -1
- package/dist/storage/sandbox/rules-string-methods.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-string-methods.js +17 -164
- package/dist/storage/sandbox/rules-string-methods.js.map +1 -1
- package/dist/storage/sandbox/rules-time-methods.d.ts.map +1 -1
- package/dist/storage/sandbox/rules-time-methods.js +17 -11
- package/dist/storage/sandbox/rules-time-methods.js.map +1 -1
- package/dist/storage/service.d.ts +56 -1
- package/dist/storage/service.d.ts.map +1 -1
- package/dist/storage/service.js +121 -2
- package/dist/storage/service.js.map +1 -1
- package/package.json +5 -1
- package/src/ai/app-check-gate.ts +43 -8
- package/src/ai/broker/broker.ts +24 -20
- package/src/ai/broker/gemini-engine.ts +51 -28
- package/src/ai/broker/gemini-upstream.ts +9 -7
- package/src/ai/broker/index.ts +2 -0
- package/src/ai/broker/openai-engine.ts +14 -2
- package/src/ai/broker/scripted-engine.ts +8 -2
- package/src/ai/broker/synthesizer.ts +15 -1
- package/src/ai/broker/upstream-error-redaction.ts +70 -0
- package/src/ai/errors.ts +74 -9
- package/src/ai/instances.ts +1 -0
- package/src/ai/internal.ts +14 -2
- package/src/ai/sandbox-plane.ts +1 -1
- package/src/ai/types.ts +4 -0
- package/src/app/register-rules.ts +83 -10
- package/src/app-check/index.ts +14 -8
- package/src/app-check/never-settles-warning.ts +26 -0
- package/src/app-check/providers.ts +42 -3
- package/src/app-check/state.ts +114 -14
- package/src/auth/internal.ts +4 -0
- package/src/auth/providers.ts +17 -0
- package/src/auth/sandbox/driver.ts +38 -6
- package/src/auth/sandbox-backend.ts +7 -4
- package/src/auth/sign-in.ts +15 -6
- package/src/database/instances.ts +18 -5
- package/src/database/internal.ts +1 -0
- package/src/database/on-disconnect.ts +3 -0
- package/src/database/operations.ts +12 -11
- package/src/database/queries.ts +1 -1
- package/src/database/query-validation.ts +9 -25
- package/src/database/references.ts +18 -14
- package/src/database/routing.ts +4 -0
- package/src/database/sandbox/normalize.ts +116 -61
- package/src/database/sandbox/query.ts +44 -23
- package/src/database/sandbox/transactions.ts +2 -1
- package/src/database/sandbox/write-plane.ts +3 -3
- package/src/database/snapshots.ts +45 -40
- package/src/database/writable-path.ts +5 -3
- package/src/firestore/internal/implicit-order.ts +49 -0
- package/src/firestore/sandbox/collection-group-rule-proof.ts +6 -1
- package/src/firestore/sandbox/query-execution.ts +48 -43
- package/src/firestore/sandbox/query-value-order.ts +102 -117
- package/src/firestore/sandbox/rules-state.ts +9 -11
- package/src/firestore/sandbox/value-equality.ts +24 -4
- package/src/rules/api/firestore.ts +35 -32
- package/src/rules/api/values.ts +50 -6
- package/src/rules/generators/assembler.ts +66 -23
- package/src/rules/grammar/compile-limits.ts +4 -13
- package/src/rules/grammar/re2-pattern.ts +169 -0
- package/src/rules/grammar/recursive-wildcard-minimum.ts +16 -0
- package/src/rules/grammar/source-compile-limits.ts +71 -12
- package/src/rules/indexes/extract/classify.ts +14 -2
- package/src/rules/indexes/extract/extractor.ts +10 -1
- package/src/rules/indexes/extract/types.ts +3 -0
- package/src/rules/internal/index.ts +9 -1
- package/src/rules/simulator/evaluation-builtins.ts +5 -3
- package/src/rules/simulator/firestore-values.ts +16 -0
- package/src/rules/simulator/handler.ts +81 -47
- package/src/rules/simulator/list-query-proof.ts +5 -8
- package/src/rules/simulator/match-resolution.ts +15 -8
- package/src/rules/simulator/re2-pattern-check.ts +26 -0
- package/src/rules/simulator/root-match.ts +184 -0
- package/src/rules/simulator/rules-type.ts +67 -14
- package/src/rules/simulator/string-split.ts +28 -0
- package/src/rules/simulator/string-trim.ts +22 -0
- package/src/rules/simulator/wrappers/base.ts +10 -0
- package/src/rules/simulator/wrappers/duration.ts +18 -1
- package/src/rules/simulator/wrappers/timestamp.ts +21 -1
- package/src/rules/simulator-tools-impl.ts +14 -1
- package/src/rules/test/case-refusals.ts +44 -0
- package/src/rules/test/case-shape.ts +37 -0
- package/src/rules/test/handler.ts +29 -3
- package/src/rules/test/spec.ts +48 -8
- package/src/rules/test/wire-values.ts +84 -0
- package/src/rules/tools.ts +4 -1
- package/src/sandbox/attribution/attribution-mode.ts +22 -26
- package/src/sandbox/clock.ts +105 -34
- package/src/sandbox/internal/app-check-token.ts +7 -0
- package/src/sandbox/internal/auth-token-claims.ts +11 -9
- package/src/sandbox/internal/firestore-rules-config.ts +266 -0
- package/src/sandbox/internal/index.ts +26 -2
- package/src/sandbox/internal/storage-rules-config.ts +169 -0
- package/src/storage/enforce.ts +36 -19
- package/src/storage/instances.ts +24 -2
- package/src/storage/internal.ts +5 -0
- package/src/storage/rules-resolution.ts +3 -16
- package/src/storage/sandbox/rules-bucket-name.ts +49 -0
- package/src/storage/sandbox/rules-evaluator.ts +5 -4
- package/src/storage/sandbox/rules-firestore-lookup.ts +69 -22
- package/src/storage/sandbox/rules-operators.ts +14 -2
- package/src/storage/sandbox/rules-path-match.ts +11 -5
- package/src/storage/sandbox/rules-string-methods.ts +17 -170
- package/src/storage/sandbox/rules-time-methods.ts +16 -11
- package/src/storage/service.ts +146 -2
|
@@ -18,14 +18,21 @@
|
|
|
18
18
|
*
|
|
19
19
|
* The error the app gets stays production's. Pyric's guidance rides beside
|
|
20
20
|
* it: on the `request_rejected` event the dev server prints, and once per app
|
|
21
|
-
* as a `console.warn` in the page or process.
|
|
21
|
+
* as a `console.warn` in the page or process. A server process (a registered
|
|
22
|
+
* Node process, a server-rendered module) gets its own guidance: the reCAPTCHA
|
|
23
|
+
* providers throw there and it has no `self`, so it sets the debug token on
|
|
24
|
+
* `globalThis` beside a CustomProvider, as `build/ai-logic.md` shows (#1639).
|
|
25
|
+
* A page's workers are browser realms: they have no `document`, but `self`
|
|
26
|
+
* works there, so they keep the page guidance.
|
|
22
27
|
*/
|
|
23
28
|
import type { FirebaseApp } from '../app/types.js';
|
|
24
29
|
import type { AppCheckClaim, WireErrorEnvelope } from './broker/types.js';
|
|
25
30
|
/** Production's message for a refused request (capture `app-check-ai-gate-wire`), verbatim. */
|
|
26
31
|
export declare const APP_CHECK_REQUIRED_MESSAGE = "Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check";
|
|
27
|
-
/** Pyric's guidance, printed beside production's error, never in place of it. */
|
|
32
|
+
/** Pyric's guidance for a page, printed beside production's error, never in place of it. */
|
|
28
33
|
export declare const APP_CHECK_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. Call initializeAppCheck(app, { provider }) before getAI(app). For local development, set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true before initializeAppCheck to use the debug provider; the sandbox accepts its tokens. https://firebase.google.com/docs/ai-logic/app-check";
|
|
34
|
+
/** Pyric's guidance for a server process, where reCAPTCHA throws and `self` does not exist. */
|
|
35
|
+
export declare const APP_CHECK_SERVER_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. This process has no document, so the reCAPTCHA providers throw here. For local development, set globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true, then call initializeAppCheck(app, { provider: new CustomProvider({ getToken }) }) before getAI(app). The sandbox does not call getToken while the debug token is set. Without the debug token, getToken returns { token, expireTimeMillis: Date.now() + ttlMillis } from a token your server mints with firebase-admin's getAppCheck().createToken(appId). https://firebase.google.com/docs/ai-logic/app-check";
|
|
29
36
|
/** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
|
|
30
37
|
export declare function appCheckRequired(): WireErrorEnvelope;
|
|
31
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-check-gate.d.ts","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-check-gate.d.ts","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,oMAC4J,CAAC;AAEpM,4FAA4F;AAC5F,eAAO,MAAM,cAAc,wWAC4U,CAAC;AAExW,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,4nBACylB,CAAC;AAgB5nB,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,iBAAiB,CAEpD;AAOD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,GAAE,MAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhH;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASzD;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,0FAA0F;IAC1F,WAAW,IAAI,IAAI,CAAC;CACrB;AAwBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAM/F"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import { appCheckActivationOf, appCheckTokenFor } from '../sandbox/internal/app-check-activation.js';
|
|
2
|
-
import { checkAppCheckToken } from '../sandbox/internal/app-check-token.js';
|
|
2
|
+
import { APP_CHECK_PLACEHOLDER_TOKEN, checkAppCheckToken } from '../sandbox/internal/app-check-token.js';
|
|
3
|
+
import { RequestHeadersFailure } from './errors.js';
|
|
3
4
|
/** Production's message for a refused request (capture `app-check-ai-gate-wire`), verbatim. */
|
|
4
5
|
export const APP_CHECK_REQUIRED_MESSAGE = 'Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check';
|
|
5
|
-
/** Pyric's guidance, printed beside production's error, never in place of it. */
|
|
6
|
+
/** Pyric's guidance for a page, printed beside production's error, never in place of it. */
|
|
6
7
|
export const APP_CHECK_HINT = 'Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. Call initializeAppCheck(app, { provider }) before getAI(app). For local development, set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true before initializeAppCheck to use the debug provider; the sandbox accepts its tokens. https://firebase.google.com/docs/ai-logic/app-check';
|
|
7
|
-
/**
|
|
8
|
-
const
|
|
8
|
+
/** Pyric's guidance for a server process, where reCAPTCHA throws and `self` does not exist. */
|
|
9
|
+
export const APP_CHECK_SERVER_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. This process has no document, so the reCAPTCHA providers throw here. For local development, set globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true, then call initializeAppCheck(app, { provider: new CustomProvider({ getToken }) }) before getAI(app). The sandbox does not call getToken while the debug token is set. Without the debug token, getToken returns { token, expireTimeMillis: Date.now() + ttlMillis } from a token your server mints with firebase-admin's getAppCheck().createToken(appId). https://firebase.google.com/docs/ai-logic/app-check";
|
|
10
|
+
/**
|
|
11
|
+
* The guidance for the realm the app runs in. A page has a `document`, and a
|
|
12
|
+
* page's Web Worker, SharedWorker or service worker has `WorkerGlobalScope`:
|
|
13
|
+
* both are browser realms. Anything else is a server process.
|
|
14
|
+
*/
|
|
15
|
+
function appCheckHintForThisRealm() {
|
|
16
|
+
const scope = globalThis;
|
|
17
|
+
const hasDocument = typeof scope.document !== 'undefined';
|
|
18
|
+
const isWorkerRealm = typeof scope.WorkerGlobalScope !== 'undefined';
|
|
19
|
+
const isBrowserRealm = hasDocument || isWorkerRealm;
|
|
20
|
+
if (isBrowserRealm)
|
|
21
|
+
return APP_CHECK_HINT;
|
|
22
|
+
return APP_CHECK_SERVER_HINT;
|
|
23
|
+
}
|
|
9
24
|
/** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
|
|
10
25
|
export function appCheckRequired() {
|
|
11
26
|
return { error: { code: 403, message: APP_CHECK_REQUIRED_MESSAGE, status: 'PERMISSION_DENIED' } };
|
|
@@ -23,7 +38,7 @@ export async function admitsAppCheckToken(token, nowMillis = Date.now()) {
|
|
|
23
38
|
const isMissing = token === null || token === '';
|
|
24
39
|
if (isMissing)
|
|
25
40
|
return false;
|
|
26
|
-
if (token ===
|
|
41
|
+
if (token === APP_CHECK_PLACEHOLDER_TOKEN)
|
|
27
42
|
return false;
|
|
28
43
|
const check = await checkAppCheckToken(token);
|
|
29
44
|
if (!check.ok)
|
|
@@ -47,7 +62,21 @@ function warnOnce(app) {
|
|
|
47
62
|
if (warnedApps.has(app))
|
|
48
63
|
return;
|
|
49
64
|
warnedApps.add(app);
|
|
50
|
-
console.warn(`[pyric/ai] ${
|
|
65
|
+
console.warn(`[pyric/ai] ${appCheckHintForThisRealm()}`);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The token a request carries. A limited-use token request can reject (the
|
|
69
|
+
* provider failed, with no placeholder to fall back on); upstream `getHeaders`
|
|
70
|
+
* lets that rejection reach `makeRequest`'s `catch`, which turns it into
|
|
71
|
+
* `AIError('error', 'Error fetching from <url>: <message>')`.
|
|
72
|
+
*/
|
|
73
|
+
async function tokenForRequest(app, limitedUse) {
|
|
74
|
+
try {
|
|
75
|
+
return await appCheckTokenFor(app, { limitedUse });
|
|
76
|
+
}
|
|
77
|
+
catch (reason) {
|
|
78
|
+
throw new RequestHeadersFailure(reason);
|
|
79
|
+
}
|
|
51
80
|
}
|
|
52
81
|
/**
|
|
53
82
|
* The attachment for a handle `getAI(app)` builds now. App Check is read once,
|
|
@@ -58,7 +87,7 @@ function warnOnce(app) {
|
|
|
58
87
|
export function appCheckAttachmentFor(app, limitedUse) {
|
|
59
88
|
const activeAtCreation = appCheckActivationOf(app) !== undefined;
|
|
60
89
|
return {
|
|
61
|
-
claim: async () => ({ token: activeAtCreation ? await
|
|
90
|
+
claim: async () => ({ token: activeAtCreation ? await tokenForRequest(app, limitedUse) : null }),
|
|
62
91
|
warnRefused: () => warnOnce(app),
|
|
63
92
|
};
|
|
64
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-check-gate.js","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-check-gate.js","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GACrC,iMAAiM,CAAC;AAEpM,4FAA4F;AAC5F,MAAM,CAAC,MAAM,cAAc,GACzB,qWAAqW,CAAC;AAExW,+FAA+F;AAC/F,MAAM,CAAC,MAAM,qBAAqB,GAChC,ynBAAynB,CAAC;AAE5nB;;;;GAIG;AACH,SAAS,wBAAwB;IAC/B,MAAM,KAAK,GAAG,UAAiE,CAAC;IAChF,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,WAAW,CAAC;IAC1D,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,iBAAiB,KAAK,WAAW,CAAC;IACrE,MAAM,cAAc,GAAG,WAAW,IAAI,aAAa,CAAC;IACpD,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,YAAY,CAAC,MAAyC,EAAE,SAAiB;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAoB,EAAE,YAAoB,IAAI,CAAC,GAAG,EAAE;IAC5F,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IACjD,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,KAAK,KAAK,2BAA2B;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,QAAQ,GAAI,KAAiD,EAAE,QAAQ,CAAC;IAC9E,MAAM,eAAe,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,0BAA0B,CAAC;IAC9G,IAAI,eAAe;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,KAA6E,CAAC;IAC/F,MAAM,YAAY,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,KAAK,GAAG;WACzD,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;WACpC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC;AACtB,CAAC;AAUD,MAAM,UAAU,GAAG,IAAI,OAAO,EAAU,CAAC;AAEzC,SAAS,QAAQ,CAAC,GAAgB;IAChC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,cAAc,wBAAwB,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,GAAgB,EAAE,UAAmB;IAClE,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAgB,EAAE,UAAmB;IACzE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACjE,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChG,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAClH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAClH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAiB7C,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EAEtB,WAAW,EACX,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAoBpB,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,4EAA4E;AAC5E,KAAK,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,OAAO,GAAE,eAAoB;IAsBzC,0FAA0F;IAC1F,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAQ9C,OAAO,CAAC,QAAQ;IAShB,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,cAAc,IAAI,cAAc;IAUhC,wFAAwF;IACxF,OAAO,CAAC,YAAY;IAgBpB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,0BAA0B;IASlC;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhF,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBlH;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC;IAmD/G,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBjH,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAYd;;;;OAIG;IACH,OAAO,CAAC,IAAI;CAmBb;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAYrE"}
|
package/dist/ai/broker/broker.js
CHANGED
|
@@ -2,30 +2,27 @@ import { aiEndpoint, getAiEvidence, setAiEvidence } from '../../sandbox/internal
|
|
|
2
2
|
import { emitSandboxEvent, getClock, makeServiceMutationEvent } from 'pyric/sandbox/internal';
|
|
3
3
|
import { describeResponseBlock } from '../blocked.js';
|
|
4
4
|
import { APP_CHECK_HINT, admitsAppCheckToken, appCheckRequired } from '../app-check-gate.js';
|
|
5
|
-
import { AiBrokerError, Synthesizer, badRole, emptyContents, missingThoughtSignature } from './synthesizer.js';
|
|
5
|
+
import { AiBrokerError, Synthesizer, badRole, emptyContents, functionRoleRefused, missingThoughtSignature, } from './synthesizer.js';
|
|
6
6
|
import { ScriptedEngine } from './scripted-engine.js';
|
|
7
7
|
import { OpenAiEngine } from './openai-engine.js';
|
|
8
8
|
import { GeminiEngine, GEMINI_DEFAULT_BASE_URL } from './gemini-engine.js';
|
|
9
9
|
/**
|
|
10
|
-
* Roles
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* accepted
|
|
16
|
-
*
|
|
10
|
+
* Roles the broker accepts, from the 2026-10 `ai-error-bad-role` text:
|
|
11
|
+
* "Please use a valid role: MODEL, USER." Compared case-insensitively (the
|
|
12
|
+
* SDK sends lowercase `user`/`model`). Function responses ride under `user`.
|
|
13
|
+
* Role `function`, which the installed SDK's `ChatSession` sends, is refused
|
|
14
|
+
* with its own captured text (`ai-error-function-role-refused`, #1410).
|
|
15
|
+
* Role `assistant` is accepted too, although that text leaves it out
|
|
16
|
+
* (`ai-contents-role-assistant`). Role `system` is refused with the
|
|
17
|
+
* unknown-role text (`ai-contents-role-system`).
|
|
17
18
|
*/
|
|
18
|
-
const ACCEPTED_ROLES = new Set([
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
'USER_CONTEXT',
|
|
26
|
-
'MODEL',
|
|
27
|
-
'FUNCTION',
|
|
28
|
-
]);
|
|
19
|
+
const ACCEPTED_ROLES = new Set(['MODEL', 'USER', 'ASSISTANT']);
|
|
20
|
+
/** The refusal production sends for a content role the broker does not accept. */
|
|
21
|
+
function roleRefusal(role) {
|
|
22
|
+
if (role.toUpperCase() === 'FUNCTION')
|
|
23
|
+
return functionRoleRefused();
|
|
24
|
+
return badRole(role);
|
|
25
|
+
}
|
|
29
26
|
function isAnswerEngine(value) {
|
|
30
27
|
return typeof value.generateContent === 'function';
|
|
31
28
|
}
|
|
@@ -340,7 +337,7 @@ export class AiBroker {
|
|
|
340
337
|
for (const content of contents) {
|
|
341
338
|
const role = content.role ?? '';
|
|
342
339
|
if (!ACCEPTED_ROLES.has(role.toUpperCase())) {
|
|
343
|
-
this.reject(model,
|
|
340
|
+
this.reject(model, roleRefusal(role));
|
|
344
341
|
}
|
|
345
342
|
}
|
|
346
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* A sandbox engine an app selects with `engine: { kind: 'gemini' }`. It runs
|
|
6
6
|
* on Pyric's backend server, authenticating via a local API key
|
|
7
|
-
* (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`
|
|
7
|
+
* (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`) or Google
|
|
8
8
|
* Cloud Application Default Credentials (`gcloud auth application-default login`)
|
|
9
9
|
* without exposing secrets to the browser. In a browser page or SharedWorker
|
|
10
10
|
* its base URL is the dev server's `/__pyric/ai-proxy/gemini` route, and the
|
|
@@ -42,7 +42,10 @@ export declare class GeminiEngine implements AnswerEngine {
|
|
|
42
42
|
* A non-2xx upstream answer becomes an {@link AiBrokerError} carrying the
|
|
43
43
|
* upstream's own error envelope: its HTTP code, `status` and message. A
|
|
44
44
|
* body that is not a Gemini error envelope keeps the HTTP code and reports
|
|
45
|
-
* the body text.
|
|
45
|
+
* the body text. Either way the credentials the request carried are masked
|
|
46
|
+
* in every form the upstream can quote them, in the message and the status
|
|
47
|
+
* alike, with the masking the gemini proxy applies to the same body
|
|
48
|
+
* (`upstream-error-redaction.ts`, #1660).
|
|
46
49
|
*/
|
|
47
50
|
private checkStatus;
|
|
48
51
|
generateContent(req: GenerateContentRequest, model: string): Promise<WireResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-engine.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-engine.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAuCnF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAExD,qBAAa,YAAa,YAAW,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,OAAO,CAAC,EAAE,mBAAmB;IAIzC;;;;;OAKG;IACH,gBAAgB,IAAI,OAAO;IAI3B,oFAAoF;YACtE,IAAI;IAUlB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAIrD,OAAO,CAAC,cAAc;IAItB;;;;;;;;OAQG;YACW,WAAW;IAiBnB,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKjF,qBAAqB,CAC1B,GAAG,EAAE,sBAAsB,EAC3B,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,SAAS,CAAC;IA2DrB,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAIxF"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* A sandbox engine an app selects with `engine: { kind: 'gemini' }`. It runs
|
|
6
6
|
* on Pyric's backend server, authenticating via a local API key
|
|
7
|
-
* (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`
|
|
7
|
+
* (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`) or Google
|
|
8
8
|
* Cloud Application Default Credentials (`gcloud auth application-default login`)
|
|
9
9
|
* without exposing secrets to the browser. In a browser page or SharedWorker
|
|
10
10
|
* its base URL is the dev server's `/__pyric/ai-proxy/gemini` route, and the
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* The requested model id goes upstream unchanged, and an upstream error
|
|
15
15
|
* reaches the caller with the upstream's own code, status and message.
|
|
16
16
|
*/
|
|
17
|
-
import { AiBrokerError, errorEnvelope
|
|
17
|
+
import { AiBrokerError, errorEnvelope } from './synthesizer.js';
|
|
18
18
|
import { GeminiUpstream } from './gemini-upstream.js';
|
|
19
|
+
import { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
|
|
19
20
|
export { GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey } from './gemini-upstream.js';
|
|
20
21
|
/** The `message` and `status` of a Gemini `{ error: { ... } }` body, or null. */
|
|
21
22
|
function parseUpstreamError(text) {
|
|
@@ -32,6 +33,24 @@ function parseUpstreamError(text) {
|
|
|
32
33
|
return null;
|
|
33
34
|
return { message: error.message, status: error.status };
|
|
34
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* One SSE event's data as a chunk, or undefined when it is not JSON. A 2xx
|
|
38
|
+
* stream can carry an error event mid-response; it passes through as the
|
|
39
|
+
* upstream sent it, with the credentials the request carried masked (#1660).
|
|
40
|
+
*/
|
|
41
|
+
function parseStreamData(data, credentials) {
|
|
42
|
+
let chunk;
|
|
43
|
+
try {
|
|
44
|
+
chunk = JSON.parse(data);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const isErrorEvent = chunk !== null && typeof chunk === 'object' && 'error' in chunk;
|
|
50
|
+
if (!isErrorEvent)
|
|
51
|
+
return chunk;
|
|
52
|
+
return JSON.parse(redactUpstreamError(data, credentials));
|
|
53
|
+
}
|
|
35
54
|
export class GeminiEngine {
|
|
36
55
|
upstream;
|
|
37
56
|
constructor(options) {
|
|
@@ -48,8 +67,9 @@ export class GeminiEngine {
|
|
|
48
67
|
}
|
|
49
68
|
/** Sends one upstream request; a non-2xx answer throws the upstream's own error. */
|
|
50
69
|
async send(model, action, body) {
|
|
51
|
-
const response = await this.upstream.
|
|
52
|
-
|
|
70
|
+
const { response, credentials } = await this.upstream.sendWithCredentials(this.normalizeModel(model), action, JSON.stringify(body));
|
|
71
|
+
await this.checkStatus(response, credentials);
|
|
72
|
+
return { response, credentials };
|
|
53
73
|
}
|
|
54
74
|
/**
|
|
55
75
|
* The model this engine calls upstream: always the requested one. The
|
|
@@ -67,25 +87,28 @@ export class GeminiEngine {
|
|
|
67
87
|
* A non-2xx upstream answer becomes an {@link AiBrokerError} carrying the
|
|
68
88
|
* upstream's own error envelope: its HTTP code, `status` and message. A
|
|
69
89
|
* body that is not a Gemini error envelope keeps the HTTP code and reports
|
|
70
|
-
* the body text.
|
|
90
|
+
* the body text. Either way the credentials the request carried are masked
|
|
91
|
+
* in every form the upstream can quote them, in the message and the status
|
|
92
|
+
* alike, with the masking the gemini proxy applies to the same body
|
|
93
|
+
* (`upstream-error-redaction.ts`, #1660).
|
|
71
94
|
*/
|
|
72
|
-
async checkStatus(response) {
|
|
95
|
+
async checkStatus(response, credentials) {
|
|
73
96
|
const isSuccess = response.ok;
|
|
74
97
|
if (isSuccess)
|
|
75
|
-
return
|
|
98
|
+
return;
|
|
76
99
|
const errorText = await response.text().catch(() => '');
|
|
77
|
-
const upstream = parseUpstreamError(errorText);
|
|
100
|
+
const upstream = parseUpstreamError(redactUpstreamError(errorText, credentials));
|
|
78
101
|
if (upstream !== null) {
|
|
79
|
-
throw new AiBrokerError(errorEnvelope(response.status,
|
|
102
|
+
throw new AiBrokerError(errorEnvelope(response.status, upstream.message, upstream.status));
|
|
80
103
|
}
|
|
81
|
-
throw new AiBrokerError(errorEnvelope(response.status, `Gemini API returned status ${response.status}: ${
|
|
104
|
+
throw new AiBrokerError(errorEnvelope(response.status, `Gemini API returned status ${response.status}: ${redactUpstreamText(errorText, credentials)}`, 'INTERNAL'));
|
|
82
105
|
}
|
|
83
106
|
async generateContent(req, model) {
|
|
84
|
-
const response = await this.send(model, 'generateContent', req);
|
|
107
|
+
const { response } = await this.send(model, 'generateContent', req);
|
|
85
108
|
return (await response.json());
|
|
86
109
|
}
|
|
87
110
|
async *streamGenerateContent(req, model) {
|
|
88
|
-
const response = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
111
|
+
const { response, credentials } = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
89
112
|
const hasBody = response.body !== null && response.body !== undefined;
|
|
90
113
|
if (!hasBody) {
|
|
91
114
|
throw new AiBrokerError(errorEnvelope(500, 'Gemini API returned an empty stream response.', 'INTERNAL'));
|
|
@@ -113,13 +136,10 @@ export class GeminiEngine {
|
|
|
113
136
|
if (isEmptyOrDone) {
|
|
114
137
|
continue;
|
|
115
138
|
}
|
|
116
|
-
|
|
117
|
-
|
|
139
|
+
// A malformed SSE chunk is skipped.
|
|
140
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
141
|
+
if (chunk !== undefined)
|
|
118
142
|
yield chunk;
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
// Ignore malformed SSE chunk in stream
|
|
122
|
-
}
|
|
123
143
|
}
|
|
124
144
|
}
|
|
125
145
|
const hasTrailingBuffer = buffer.trim().length > 0;
|
|
@@ -130,13 +150,9 @@ export class GeminiEngine {
|
|
|
130
150
|
const dataStr = line.slice(6).trim();
|
|
131
151
|
const isNotEmptyOrDone = dataStr !== '' && dataStr !== '[DONE]';
|
|
132
152
|
if (isNotEmptyOrDone) {
|
|
133
|
-
|
|
134
|
-
|
|
153
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
154
|
+
if (chunk !== undefined)
|
|
135
155
|
yield chunk;
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
// Ignore malformed SSE chunk in stream
|
|
139
|
-
}
|
|
140
156
|
}
|
|
141
157
|
}
|
|
142
158
|
}
|
|
@@ -146,7 +162,7 @@ export class GeminiEngine {
|
|
|
146
162
|
}
|
|
147
163
|
}
|
|
148
164
|
async countTokens(req, model) {
|
|
149
|
-
const response = await this.send(model, 'countTokens', req);
|
|
165
|
+
const { response } = await this.send(model, 'countTokens', req);
|
|
150
166
|
return (await response.json());
|
|
151
167
|
}
|
|
152
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAWxF,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,iFAAiF;AACjF,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAI,MAAqE,EAAE,KAAK,CAAC;IAC5F,MAAM,UAAU,GAAG,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;IAC1F,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAgB,EAAE,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,WAA8B;IACnE,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC;IACrF,IAAI,CAAC,YAAY;QAAE,OAAO,KAAkB,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAc,CAAC;AACzE,CAAC;AAUD,MAAM,OAAO,YAAY;IACN,QAAQ,CAAiB;IAE1C,YAAY,OAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC;IAED,oFAAoF;IAC5E,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,MAAc,EAAE,IAAa;QAC7D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CACvE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAC1B,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;QACF,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,KAAa;QACjC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC1E,CAAC;IAEO,cAAc,CAAC,KAAa;QAClC,OAAO,UAAU,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,WAAW,CAAC,QAAkB,EAAE,WAA8B;QAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC9B,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QACjF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,aAAa,CACX,QAAQ,CAAC,MAAM,EACf,8BAA8B,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAC9F,UAAU,CACX,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAA2B,EAAE,KAAa;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAC1B,GAA2B,EAC3B,KAAa;QAEb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;QAE/F,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;QACtE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CACrB,aAAa,CAAC,GAAG,EAAE,+CAA+C,EAAE,UAAU,CAAC,CAChF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;gBAC7B,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,SAAS;oBACX,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,aAAa,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,QAAQ,CAAC;oBAC7D,IAAI,aAAa,EAAE,CAAC;wBAClB,SAAS;oBACX,CAAC;oBACD,oCAAoC;oBACpC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBACpD,IAAI,KAAK,KAAK,SAAS;wBAAE,MAAM,KAAK,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,MAAM,gBAAgB,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,QAAQ,CAAC;oBAChE,IAAI,gBAAgB,EAAE,CAAC;wBACrB,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;wBACpD,IAAI,KAAK,KAAK,SAAS;4BAAE,MAAM,KAAK,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAuB,EAAE,KAAa;QACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* engine sends, and what Pyric's dev server sends on a browser engine's
|
|
4
4
|
* behalf.
|
|
5
5
|
*
|
|
6
|
-
* Credentials come from the explicit key, else `GEMINI_API_KEY
|
|
7
|
-
* `GOOGLE_GENAI_API_KEY`,
|
|
8
|
-
*
|
|
6
|
+
* Credentials come from the explicit key, else `GEMINI_API_KEY` or
|
|
7
|
+
* `GOOGLE_GENAI_API_KEY`, else Google Cloud Application Default Credentials.
|
|
8
|
+
* `VITE_GEMINI_API_KEY` is not read: Vite serves every `VITE_`-prefixed
|
|
9
|
+
* variable to the browser, so the Vite plugin refuses to start with it set
|
|
10
|
+
* (#1632). A browser engine is built with
|
|
9
11
|
* `serverAttachesAuth`: its base URL is the dev server's
|
|
10
12
|
* `/__pyric/ai-proxy/gemini`, which attaches the credentials itself, so none
|
|
11
13
|
* are sent and the browser never holds the key.
|
|
@@ -16,8 +18,8 @@
|
|
|
16
18
|
export declare const GEMINI_DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com";
|
|
17
19
|
/**
|
|
18
20
|
* Whether a static API key is configured: the explicit option, else the first
|
|
19
|
-
* of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY
|
|
20
|
-
*
|
|
21
|
+
* of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY` that is defined, which must
|
|
22
|
+
* then be non-blank. This is the engine's own precedence
|
|
21
23
|
* (a blank earlier variable shadows a later real one), published through
|
|
22
24
|
* `pyric/ai/internal` so the CLI's startup banner cannot disagree with it.
|
|
23
25
|
* Application Default Credentials are not consulted: a status read must never
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-upstream.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini-upstream.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;gDAEgD;AAChD,eAAO,MAAM,uBAAuB,8CAA8C,CAAC;AAqBnF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG3E;AAyDD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;gEAC4D;IAC5D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;oEACgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAmBD,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsE;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,SAAS,CAA8B;gBAEnC,OAAO,CAAC,EAAE,qBAAqB;IAS3C;;;;;OAKG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvG;;;;;OAKG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAgBzD;;;;OAIG;YACW,gBAAgB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAkBR,cAAc;IAa5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;YAuBf,IAAI;CAuBnB"}
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* engine sends, and what Pyric's dev server sends on a browser engine's
|
|
4
4
|
* behalf.
|
|
5
5
|
*
|
|
6
|
-
* Credentials come from the explicit key, else `GEMINI_API_KEY
|
|
7
|
-
* `GOOGLE_GENAI_API_KEY`,
|
|
8
|
-
*
|
|
6
|
+
* Credentials come from the explicit key, else `GEMINI_API_KEY` or
|
|
7
|
+
* `GOOGLE_GENAI_API_KEY`, else Google Cloud Application Default Credentials.
|
|
8
|
+
* `VITE_GEMINI_API_KEY` is not read: Vite serves every `VITE_`-prefixed
|
|
9
|
+
* variable to the browser, so the Vite plugin refuses to start with it set
|
|
10
|
+
* (#1632). A browser engine is built with
|
|
9
11
|
* `serverAttachesAuth`: its base URL is the dev server's
|
|
10
12
|
* `/__pyric/ai-proxy/gemini`, which attaches the credentials itself, so none
|
|
11
13
|
* are sent and the browser never holds the key.
|
|
@@ -15,7 +17,7 @@ import { AiBrokerError, errorEnvelope, redactUrl } from './synthesizer.js';
|
|
|
15
17
|
* through `pyric/ai/internal` so the CLI's startup banner can name the same
|
|
16
18
|
* endpoint instead of keeping its own copy. */
|
|
17
19
|
export const GEMINI_DEFAULT_BASE_URL = 'https://generativelanguage.googleapis.com';
|
|
18
|
-
const KEY_VARIABLES = ['GEMINI_API_KEY', 'GOOGLE_GENAI_API_KEY'
|
|
20
|
+
const KEY_VARIABLES = ['GEMINI_API_KEY', 'GOOGLE_GENAI_API_KEY'];
|
|
19
21
|
/** A variable from the runtime's environment, or undefined where there is
|
|
20
22
|
* none: a browser page or SharedWorker has no `process`. */
|
|
21
23
|
function readEnv(name) {
|
|
@@ -35,8 +37,8 @@ function configuredKey(explicitKey) {
|
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
39
|
* Whether a static API key is configured: the explicit option, else the first
|
|
38
|
-
* of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY
|
|
39
|
-
*
|
|
40
|
+
* of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY` that is defined, which must
|
|
41
|
+
* then be non-blank. This is the engine's own precedence
|
|
40
42
|
* (a blank earlier variable shadows a later real one), published through
|
|
41
43
|
* `pyric/ai/internal` so the CLI's startup banner cannot disagree with it.
|
|
42
44
|
* Application Default Credentials are not consulted: a status read must never
|
|
@@ -179,7 +181,7 @@ export class GeminiUpstream {
|
|
|
179
181
|
if (adcToken !== '') {
|
|
180
182
|
return { token: adcToken, isBearer: true, isAdc: true };
|
|
181
183
|
}
|
|
182
|
-
throw new AiBrokerError(errorEnvelope(401, 'The Pyric gemini AI engine requires GEMINI_API_KEY
|
|
184
|
+
throw new AiBrokerError(errorEnvelope(401, 'The Pyric gemini AI engine requires GEMINI_API_KEY or GOOGLE_GENAI_API_KEY in your server environment (or Application Default Credentials via `gcloud auth application-default login`).', 'UNAUTHENTICATED'));
|
|
183
185
|
}
|
|
184
186
|
/**
|
|
185
187
|
* The ADC access token, reused for {@link ADC_TOKEN_TTL_MS}. Concurrent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-upstream.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gemini-upstream.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ export { AiBroker, loadObservationEnvelope, type AiBrokerOptions, type AiEngineS
|
|
|
8
8
|
export { ScriptedEngine, lastUserText, promptTextOf } from './scripted-engine.js';
|
|
9
9
|
export { GeminiEngine, GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey, type GeminiEngineOptions } from './gemini-engine.js';
|
|
10
10
|
export { GeminiUpstream, type GeminiUpstreamOptions } from './gemini-upstream.js';
|
|
11
|
+
export { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
|
|
11
12
|
export { OpenAiEngine, ToolCallBuffer, SseParser, DONE_SENTINEL, geminiToOpenAIRequest, normalizeSchema, mapFinishReason, openAIToGeminiResponse, openAIChunkToParts, type OpenAiEngineOptions, type OpenAIRequest, type OpenAIResponse, type OpenAIStreamChunk, type OpenAIMessage, type OpenAIToolCall, } from './openai-engine.js';
|
|
12
|
-
export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, type SynthesizeOptions, } from './synthesizer.js';
|
|
13
|
+
export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, functionRoleRefused, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, type SynthesizeOptions, } from './synthesizer.js';
|
|
13
14
|
export type { AnswerEngine, AppCheckClaim, CountTokensRequest, CountTokensResponse, EngineConfig, GenerateContentRequest, RawEnvelope, ScriptEntry, ScriptMatcher, ScriptRespond, ScriptShorthand, WireCandidate, WireChunk, WireContent, WireErrorEnvelope, WirePart, WireResponse, WireUsageMetadata, } from './types.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
package/dist/ai/broker/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { AiBroker, loadObservationEnvelope } from './broker.js';
|
|
|
8
8
|
export { ScriptedEngine, lastUserText, promptTextOf } from './scripted-engine.js';
|
|
9
9
|
export { GeminiEngine, GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey } from './gemini-engine.js';
|
|
10
10
|
export { GeminiUpstream } from './gemini-upstream.js';
|
|
11
|
+
export { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
|
|
11
12
|
export { OpenAiEngine, ToolCallBuffer, SseParser, DONE_SENTINEL, geminiToOpenAIRequest, normalizeSchema, mapFinishReason, openAIToGeminiResponse, openAIChunkToParts, } from './openai-engine.js';
|
|
12
|
-
export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, } from './synthesizer.js';
|
|
13
|
+
export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, functionRoleRefused, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, } from './synthesizer.js';
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAA6C,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAA4B,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GAEV,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAA6C,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAA4B,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GAEV,MAAM,kBAAkB,CAAC"}
|