@lssm/example.locale-jurisdiction-gate 0.0.0-canary-20251217080011 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +26 -43
- package/dist/contracts/assistant.js +1 -117
- package/dist/contracts/index.js +1 -3
- package/dist/docs/index.js +1 -1
- package/dist/docs/locale-jurisdiction-gate.docblock.js +3 -37
- package/dist/entities/index.js +1 -3
- package/dist/entities/models.js +1 -170
- package/dist/events.js +1 -102
- package/dist/example.js +1 -39
- package/dist/handlers/demo.handlers.js +1 -85
- package/dist/handlers/index.js +1 -3
- package/dist/index.js +1 -12
- package/dist/locale-jurisdiction-gate.feature.js +1 -49
- package/dist/policy/guard.js +2 -72
- package/dist/policy/index.js +1 -3
- package/package.json +20 -22
- package/tsconfig.tsbuildinfo +1 -1
- package/.turbo/turbo-build$colon$bundle.log +0 -232
- package/CHANGELOG.md +0 -13
- package/dist/contracts/assistant.d.ts +0 -244
- package/dist/contracts/index.d.ts +0 -2
- package/dist/docs/index.d.ts +0 -1
- package/dist/docs/locale-jurisdiction-gate.docblock.d.ts +0 -1
- package/dist/entities/index.d.ts +0 -2
- package/dist/entities/models.d.ts +0 -185
- package/dist/events.d.ts +0 -68
- package/dist/example.d.ts +0 -35
- package/dist/handlers/demo.handlers.d.ts +0 -58
- package/dist/handlers/index.d.ts +0 -2
- package/dist/index.d.ts +0 -9
- package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
- package/dist/libs/contracts/dist/client/index.js +0 -5
- package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
- package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
- package/dist/libs/contracts/dist/client/react/index.js +0 -4
- package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/index.js +0 -29
- package/dist/libs/contracts/dist/docs/presentations.js +0 -71
- package/dist/libs/contracts/dist/docs/registry.js +0 -44
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
- package/dist/libs/contracts/dist/events.js +0 -10
- package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
- package/dist/libs/contracts/dist/index.js +0 -71
- package/dist/libs/contracts/dist/install.js +0 -2
- package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
- package/dist/libs/contracts/dist/integrations/index.js +0 -18
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
- package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
- package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
- package/dist/libs/contracts/dist/jsonschema.js +0 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
- package/dist/libs/contracts/dist/knowledge/index.js +0 -7
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
- package/dist/libs/contracts/dist/llm/exporters.js +0 -19
- package/dist/libs/contracts/dist/llm/index.js +0 -2
- package/dist/libs/contracts/dist/llm/prompts.js +0 -1
- package/dist/libs/contracts/dist/onboarding-base.js +0 -196
- package/dist/libs/contracts/dist/openapi.js +0 -1
- package/dist/libs/contracts/dist/ownership.js +0 -21
- package/dist/libs/contracts/dist/presentations.js +0 -1
- package/dist/libs/contracts/dist/presentations.v2.js +0 -11
- package/dist/libs/contracts/dist/prompt.js +0 -1
- package/dist/libs/contracts/dist/promptRegistry.js +0 -1
- package/dist/libs/contracts/dist/regenerator/index.js +0 -1
- package/dist/libs/contracts/dist/regenerator/service.js +0 -6
- package/dist/libs/contracts/dist/registry.js +0 -2
- package/dist/libs/contracts/dist/resources.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
- package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
- package/dist/libs/contracts/dist/server/index.js +0 -8
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
- package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
- package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
- package/dist/libs/contracts/dist/server/rest-express.js +0 -1
- package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
- package/dist/libs/contracts/dist/spec.js +0 -34
- package/dist/libs/contracts/dist/telemetry/index.js +0 -1
- package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
- package/dist/libs/contracts/dist/tests/index.js +0 -1
- package/dist/libs/contracts/dist/tests/runner.js +0 -2
- package/dist/libs/contracts/dist/workflow/index.js +0 -1
- package/dist/libs/contracts/dist/workflow/runner.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -56
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/index.js +0 -6
- package/dist/locale-jurisdiction-gate.feature.d.ts +0 -6
- package/dist/policy/guard.d.ts +0 -26
- package/dist/policy/index.d.ts +0 -3
- package/dist/policy/types.d.ts +0 -15
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,43 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
[
|
|
4
|
-
[34mℹ[39m
|
|
5
|
-
[34mℹ[39m
|
|
6
|
-
[34mℹ[39m
|
|
7
|
-
[34mℹ[39m
|
|
8
|
-
[34mℹ[39m
|
|
9
|
-
[34mℹ[39m
|
|
10
|
-
[34mℹ[39m
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[
|
|
12
|
-
[34mℹ[39m [2mdist/[22m[
|
|
13
|
-
[34mℹ[39m [2mdist/[22m[
|
|
14
|
-
[34mℹ[39m [2mdist/[22m[
|
|
15
|
-
[34mℹ[39m [2mdist/[22m[
|
|
16
|
-
[34mℹ[39m [2mdist/[22m[
|
|
17
|
-
[34mℹ[39m [2mdist/[22m[
|
|
18
|
-
[34mℹ[39m [2mdist/[22m[
|
|
19
|
-
[34mℹ[39m [2mdist/[22m[
|
|
20
|
-
[34mℹ[39m [2mdist/[22m[
|
|
21
|
-
[34mℹ[39m [2mdist/[22m[
|
|
22
|
-
[34mℹ[39m [2mdist/[22m[
|
|
23
|
-
[34mℹ[39m [2mdist/[22m[
|
|
24
|
-
[34mℹ[39m
|
|
25
|
-
[
|
|
26
|
-
|
|
27
|
-
[34mℹ[39m [2mdist/[22m[32m[1mentities/models.d.ts[22m[39m [2m5.05 kB[22m [2m│ gzip: 0.65 kB[22m
|
|
28
|
-
[34mℹ[39m [2mdist/[22m[32m[1mevents.d.ts[22m[39m [2m1.99 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
29
|
-
[34mℹ[39m [2mdist/[22m[32m[1mhandlers/demo.handlers.d.ts[22m[39m [2m1.43 kB[22m [2m│ gzip: 0.53 kB[22m
|
|
30
|
-
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.ts[22m[39m [2m1.37 kB[22m [2m│ gzip: 0.41 kB[22m
|
|
31
|
-
[34mℹ[39m [2mdist/[22m[32m[1mexample.d.ts[22m[39m [2m1.16 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
32
|
-
[34mℹ[39m [2mdist/[22m[32m[1mpolicy/guard.d.ts[22m[39m [2m0.89 kB[22m [2m│ gzip: 0.40 kB[22m
|
|
33
|
-
[34mℹ[39m [2mdist/[22m[32m[1mpolicy/types.d.ts[22m[39m [2m0.42 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
34
|
-
[34mℹ[39m [2mdist/[22m[32m[1mentities/index.d.ts[22m[39m [2m0.36 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
35
|
-
[34mℹ[39m [2mdist/[22m[32m[1mpolicy/index.d.ts[22m[39m [2m0.26 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
36
|
-
[34mℹ[39m [2mdist/[22m[32m[1mlocale-jurisdiction-gate.feature.d.ts[22m[39m [2m0.23 kB[22m [2m│ gzip: 0.16 kB[22m
|
|
37
|
-
[34mℹ[39m [2mdist/[22m[32m[1mcontracts/index.d.ts[22m[39m [2m0.16 kB[22m [2m│ gzip: 0.10 kB[22m
|
|
38
|
-
[34mℹ[39m [2mdist/[22m[32m[1mhandlers/index.d.ts[22m[39m [2m0.15 kB[22m [2m│ gzip: 0.09 kB[22m
|
|
39
|
-
[34mℹ[39m [2mdist/[22m[32m[1mdocs/index.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
40
|
-
[34mℹ[39m [2mdist/[22m[32m[1mdocs/locale-jurisdiction-gate.docblock.d.ts[22m[39m [2m0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
41
|
-
[34mℹ[39m 30 files, total: 34.46 kB
|
|
42
|
-
[32m✔[39m Build complete in [32m8621ms[39m
|
|
43
|
-
[0m[2m[35m$[0m [2m[1mtsc --noEmit[0m
|
|
1
|
+
$ bun build:bundle && bun build:types
|
|
2
|
+
$ tsdown
|
|
3
|
+
[34mℹ[39m tsdown [2mv0.17.4[22m powered by rolldown [2mv1.0.0-beta.53[22m
|
|
4
|
+
[34mℹ[39m config file: [4m/home/runner/work/contractspec/contractspec/packages/examples/locale-jurisdiction-gate/tsdown.config.js[24m
|
|
5
|
+
[34mℹ[39m entry: [34msrc/events.ts, src/example.ts, src/index.ts, src/locale-jurisdiction-gate.feature.ts, src/contracts/assistant.ts, src/contracts/index.ts, src/docs/index.ts, src/docs/locale-jurisdiction-gate.docblock.ts, src/entities/index.ts, src/entities/models.ts, src/handlers/demo.handlers.ts, src/handlers/index.ts, src/policy/guard.ts, src/policy/index.ts, src/policy/types.ts[39m
|
|
6
|
+
[34mℹ[39m target: [34mesnext[39m
|
|
7
|
+
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
8
|
+
[34mℹ[39m Build start
|
|
9
|
+
[34mℹ[39m [2mdist/[22m[1mentities/models.js[22m [2m2.50 kB[22m [2m│ gzip: 0.74 kB[22m
|
|
10
|
+
[34mℹ[39m [2mdist/[22m[1mcontracts/assistant.js[22m [2m2.34 kB[22m [2m│ gzip: 0.93 kB[22m
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1mevents.js[22m [2m1.69 kB[22m [2m│ gzip: 0.48 kB[22m
|
|
12
|
+
[34mℹ[39m [2mdist/[22m[1mhandlers/demo.handlers.js[22m [2m1.55 kB[22m [2m│ gzip: 0.69 kB[22m
|
|
13
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/locale-jurisdiction-gate.docblock.js[22m [2m1.40 kB[22m [2m│ gzip: 0.67 kB[22m
|
|
14
|
+
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m1.34 kB[22m [2m│ gzip: 0.47 kB[22m
|
|
15
|
+
[34mℹ[39m [2mdist/[22m[1mpolicy/guard.js[22m [2m1.18 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
16
|
+
[34mℹ[39m [2mdist/[22m[1mlocale-jurisdiction-gate.feature.js[22m [2m0.72 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
17
|
+
[34mℹ[39m [2mdist/[22m[1mexample.js[22m [2m0.67 kB[22m [2m│ gzip: 0.40 kB[22m
|
|
18
|
+
[34mℹ[39m [2mdist/[22m[1mentities/index.js[22m [2m0.41 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
19
|
+
[34mℹ[39m [2mdist/[22m[1mpolicy/index.js[22m [2m0.17 kB[22m [2m│ gzip: 0.12 kB[22m
|
|
20
|
+
[34mℹ[39m [2mdist/[22m[1mcontracts/index.js[22m [2m0.17 kB[22m [2m│ gzip: 0.11 kB[22m
|
|
21
|
+
[34mℹ[39m [2mdist/[22m[1mhandlers/index.js[22m [2m0.11 kB[22m [2m│ gzip: 0.09 kB[22m
|
|
22
|
+
[34mℹ[39m [2mdist/[22m[1mdocs/index.js[22m [2m0.05 kB[22m [2m│ gzip: 0.07 kB[22m
|
|
23
|
+
[34mℹ[39m [2mdist/[22m[1mpolicy/types.js[22m [2m0.00 kB[22m [2m│ gzip: 0.02 kB[22m
|
|
24
|
+
[34mℹ[39m 15 files, total: 14.30 kB
|
|
25
|
+
[32m✔[39m Build complete in [32m81ms[39m
|
|
26
|
+
$ tsc --noEmit
|
|
@@ -1,117 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../libs/contracts/dist/index.js";
|
|
3
|
-
import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
|
|
4
|
-
import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
|
|
5
|
-
import "../libs/schema/dist/index.js";
|
|
6
|
-
import { AssistantAnswerIRModel, LLMCallEnvelopeModel } from "../entities/models.js";
|
|
7
|
-
|
|
8
|
-
//#region src/contracts/assistant.ts
|
|
9
|
-
const AssistantQuestionInput = defineSchemaModel({
|
|
10
|
-
name: "AssistantQuestionInput",
|
|
11
|
-
description: "Input for assistant calls with mandatory envelope.",
|
|
12
|
-
fields: {
|
|
13
|
-
envelope: {
|
|
14
|
-
type: LLMCallEnvelopeModel,
|
|
15
|
-
isOptional: false
|
|
16
|
-
},
|
|
17
|
-
question: {
|
|
18
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
19
|
-
isOptional: false
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
const AssistantConceptInput = defineSchemaModel({
|
|
24
|
-
name: "AssistantConceptInput",
|
|
25
|
-
description: "Input for explaining a concept with mandatory envelope.",
|
|
26
|
-
fields: {
|
|
27
|
-
envelope: {
|
|
28
|
-
type: LLMCallEnvelopeModel,
|
|
29
|
-
isOptional: false
|
|
30
|
-
},
|
|
31
|
-
conceptKey: {
|
|
32
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
33
|
-
isOptional: false
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
const AssistantAnswerContract = defineCommand({
|
|
38
|
-
meta: {
|
|
39
|
-
name: "assistant.answer",
|
|
40
|
-
version: 1,
|
|
41
|
-
stability: "experimental",
|
|
42
|
-
owners: ["examples"],
|
|
43
|
-
tags: [
|
|
44
|
-
"assistant",
|
|
45
|
-
"policy",
|
|
46
|
-
"locale",
|
|
47
|
-
"jurisdiction",
|
|
48
|
-
"knowledge"
|
|
49
|
-
],
|
|
50
|
-
description: "Answer a user question using a KB snapshot with strict locale/jurisdiction gating.",
|
|
51
|
-
goal: "Provide policy-safe answers that cite a KB snapshot or refuse.",
|
|
52
|
-
context: "Called by UI or workflows; must fail-closed if envelope is invalid or citations are missing."
|
|
53
|
-
},
|
|
54
|
-
io: {
|
|
55
|
-
input: AssistantQuestionInput,
|
|
56
|
-
output: AssistantAnswerIRModel,
|
|
57
|
-
errors: {
|
|
58
|
-
LOCALE_REQUIRED: {
|
|
59
|
-
description: "Locale is required and must be supported",
|
|
60
|
-
http: 400,
|
|
61
|
-
gqlCode: "LOCALE_REQUIRED",
|
|
62
|
-
when: "locale is missing or unsupported"
|
|
63
|
-
},
|
|
64
|
-
JURISDICTION_REQUIRED: {
|
|
65
|
-
description: "Jurisdiction is required",
|
|
66
|
-
http: 400,
|
|
67
|
-
gqlCode: "JURISDICTION_REQUIRED",
|
|
68
|
-
when: "jurisdiction is missing"
|
|
69
|
-
},
|
|
70
|
-
KB_SNAPSHOT_REQUIRED: {
|
|
71
|
-
description: "KB snapshot id is required",
|
|
72
|
-
http: 400,
|
|
73
|
-
gqlCode: "KB_SNAPSHOT_REQUIRED",
|
|
74
|
-
when: "kbSnapshotId is missing"
|
|
75
|
-
},
|
|
76
|
-
CITATIONS_REQUIRED: {
|
|
77
|
-
description: "Answers must include citations to a KB snapshot",
|
|
78
|
-
http: 422,
|
|
79
|
-
gqlCode: "CITATIONS_REQUIRED",
|
|
80
|
-
when: "answer has no citations"
|
|
81
|
-
},
|
|
82
|
-
SCOPE_VIOLATION: {
|
|
83
|
-
description: "Answer violates allowed scope and must be refused/escalated",
|
|
84
|
-
http: 403,
|
|
85
|
-
gqlCode: "SCOPE_VIOLATION",
|
|
86
|
-
when: "output includes forbidden content under the given allowedScope"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
policy: { auth: "user" }
|
|
91
|
-
});
|
|
92
|
-
const AssistantExplainConceptContract = defineCommand({
|
|
93
|
-
meta: {
|
|
94
|
-
name: "assistant.explainConcept",
|
|
95
|
-
version: 1,
|
|
96
|
-
stability: "experimental",
|
|
97
|
-
owners: ["examples"],
|
|
98
|
-
tags: [
|
|
99
|
-
"assistant",
|
|
100
|
-
"policy",
|
|
101
|
-
"knowledge",
|
|
102
|
-
"concepts"
|
|
103
|
-
],
|
|
104
|
-
description: "Explain a concept using a KB snapshot with strict locale/jurisdiction gating.",
|
|
105
|
-
goal: "Explain concepts with citations or refuse.",
|
|
106
|
-
context: "Same constraints as assistant.answer."
|
|
107
|
-
},
|
|
108
|
-
io: {
|
|
109
|
-
input: AssistantConceptInput,
|
|
110
|
-
output: AssistantAnswerIRModel,
|
|
111
|
-
errors: AssistantAnswerContract.io.errors
|
|
112
|
-
},
|
|
113
|
-
policy: { auth: "user" }
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
//#endregion
|
|
117
|
-
export { AssistantAnswerContract, AssistantExplainConceptContract };
|
|
1
|
+
import{AssistantAnswerIRModel as e,LLMCallEnvelopeModel as t}from"../entities/models.js";import{defineCommand as n}from"@lssm/lib.contracts";import{ScalarTypeEnum as r,defineSchemaModel as i}from"@lssm/lib.schema";const a=i({name:`AssistantQuestionInput`,description:`Input for assistant calls with mandatory envelope.`,fields:{envelope:{type:t,isOptional:!1},question:{type:r.String_unsecure(),isOptional:!1}}}),o=i({name:`AssistantConceptInput`,description:`Input for explaining a concept with mandatory envelope.`,fields:{envelope:{type:t,isOptional:!1},conceptKey:{type:r.String_unsecure(),isOptional:!1}}}),s=n({meta:{name:`assistant.answer`,version:1,stability:`experimental`,owners:[`examples`],tags:[`assistant`,`policy`,`locale`,`jurisdiction`,`knowledge`],description:`Answer a user question using a KB snapshot with strict locale/jurisdiction gating.`,goal:`Provide policy-safe answers that cite a KB snapshot or refuse.`,context:`Called by UI or workflows; must fail-closed if envelope is invalid or citations are missing.`},io:{input:a,output:e,errors:{LOCALE_REQUIRED:{description:`Locale is required and must be supported`,http:400,gqlCode:`LOCALE_REQUIRED`,when:`locale is missing or unsupported`},JURISDICTION_REQUIRED:{description:`Jurisdiction is required`,http:400,gqlCode:`JURISDICTION_REQUIRED`,when:`jurisdiction is missing`},KB_SNAPSHOT_REQUIRED:{description:`KB snapshot id is required`,http:400,gqlCode:`KB_SNAPSHOT_REQUIRED`,when:`kbSnapshotId is missing`},CITATIONS_REQUIRED:{description:`Answers must include citations to a KB snapshot`,http:422,gqlCode:`CITATIONS_REQUIRED`,when:`answer has no citations`},SCOPE_VIOLATION:{description:`Answer violates allowed scope and must be refused/escalated`,http:403,gqlCode:`SCOPE_VIOLATION`,when:`output includes forbidden content under the given allowedScope`}}},policy:{auth:`user`}}),c=n({meta:{name:`assistant.explainConcept`,version:1,stability:`experimental`,owners:[`examples`],tags:[`assistant`,`policy`,`knowledge`,`concepts`],description:`Explain a concept using a KB snapshot with strict locale/jurisdiction gating.`,goal:`Explain concepts with citations or refuse.`,context:`Same constraints as assistant.answer.`},io:{input:o,output:e,errors:s.io.errors},policy:{auth:`user`}});export{s as AssistantAnswerContract,c as AssistantExplainConceptContract};
|
package/dist/contracts/index.js
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export { AssistantAnswerContract, AssistantExplainConceptContract };
|
|
1
|
+
import{AssistantAnswerContract as e,AssistantExplainConceptContract as t}from"./assistant.js";export{e as AssistantAnswerContract,t as AssistantExplainConceptContract};
|
package/dist/docs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"./locale-jurisdiction-gate.docblock.js";
|
|
@@ -1,42 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../libs/contracts/dist/docs/index.js";
|
|
3
|
-
|
|
4
|
-
//#region src/docs/locale-jurisdiction-gate.docblock.ts
|
|
5
|
-
registerDocBlocks([{
|
|
6
|
-
id: "docs.examples.locale-jurisdiction-gate.goal",
|
|
7
|
-
title: "Locale/Jurisdiction Gate — Goal",
|
|
8
|
-
summary: "Fail-closed gate that forces locale + jurisdiction + kbSnapshotId + allowedScope for assistant calls.",
|
|
9
|
-
kind: "goal",
|
|
10
|
-
visibility: "public",
|
|
11
|
-
route: "/docs/examples/locale-jurisdiction-gate/goal",
|
|
12
|
-
tags: [
|
|
13
|
-
"assistant",
|
|
14
|
-
"policy",
|
|
15
|
-
"locale",
|
|
16
|
-
"jurisdiction",
|
|
17
|
-
"knowledge"
|
|
18
|
-
],
|
|
19
|
-
body: `## Why it matters
|
|
1
|
+
import{registerDocBlocks as e}from"@lssm/lib.contracts/docs";e([{id:`docs.examples.locale-jurisdiction-gate.goal`,title:`Locale/Jurisdiction Gate — Goal`,summary:`Fail-closed gate that forces locale + jurisdiction + kbSnapshotId + allowedScope for assistant calls.`,kind:`goal`,visibility:`public`,route:`/docs/examples/locale-jurisdiction-gate/goal`,tags:[`assistant`,`policy`,`locale`,`jurisdiction`,`knowledge`],body:`## Why it matters
|
|
20
2
|
- Forces all assistant behavior to be bound to explicit inputs (no guessing).
|
|
21
3
|
- Requires KB snapshot citations to make answers traceable and regenerable.
|
|
22
4
|
|
|
23
5
|
## Guardrails
|
|
24
6
|
- Missing locale/jurisdiction/snapshot/scope => refuse (structured).
|
|
25
7
|
- Missing citations => refuse.
|
|
26
|
-
- Scope violations under education_only => refuse/escalate.`
|
|
27
|
-
}, {
|
|
28
|
-
id: "docs.examples.locale-jurisdiction-gate.reference",
|
|
29
|
-
title: "Locale/Jurisdiction Gate — Reference",
|
|
30
|
-
summary: "Contracts, models, and events exposed by the gate example.",
|
|
31
|
-
kind: "reference",
|
|
32
|
-
visibility: "public",
|
|
33
|
-
route: "/docs/examples/locale-jurisdiction-gate",
|
|
34
|
-
tags: [
|
|
35
|
-
"assistant",
|
|
36
|
-
"policy",
|
|
37
|
-
"reference"
|
|
38
|
-
],
|
|
39
|
-
body: `## Contracts
|
|
8
|
+
- Scope violations under education_only => refuse/escalate.`},{id:`docs.examples.locale-jurisdiction-gate.reference`,title:`Locale/Jurisdiction Gate — Reference`,summary:`Contracts, models, and events exposed by the gate example.`,kind:`reference`,visibility:`public`,route:`/docs/examples/locale-jurisdiction-gate`,tags:[`assistant`,`policy`,`reference`],body:`## Contracts
|
|
40
9
|
- assistant.answer (v1)
|
|
41
10
|
- assistant.explainConcept (v1)
|
|
42
11
|
|
|
@@ -47,7 +16,4 @@ registerDocBlocks([{
|
|
|
47
16
|
## Events
|
|
48
17
|
- assistant.answer.requested
|
|
49
18
|
- assistant.answer.blocked
|
|
50
|
-
- assistant.answer.delivered`
|
|
51
|
-
}]);
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
19
|
+
- assistant.answer.delivered`}]);
|
package/dist/entities/index.js
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export { AllowedScopeEnum, AssistantAnswerIRModel, AssistantAnswerSectionModel, AssistantCitationModel, LLMCallEnvelopeModel, RegulatoryContextModel, UserProfileModel };
|
|
1
|
+
import{AllowedScopeEnum as e,AssistantAnswerIRModel as t,AssistantAnswerSectionModel as n,AssistantCitationModel as r,LLMCallEnvelopeModel as i,RegulatoryContextModel as a,UserProfileModel as o}from"./models.js";export{e as AllowedScopeEnum,t as AssistantAnswerIRModel,n as AssistantAnswerSectionModel,r as AssistantCitationModel,i as LLMCallEnvelopeModel,a as RegulatoryContextModel,o as UserProfileModel};
|
package/dist/entities/models.js
CHANGED
|
@@ -1,170 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
|
|
3
|
-
import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
|
|
4
|
-
import "../libs/schema/dist/index.js";
|
|
5
|
-
|
|
6
|
-
//#region src/entities/models.ts
|
|
7
|
-
const AllowedScopeEnum = defineEnum("AllowedScope", [
|
|
8
|
-
"education_only",
|
|
9
|
-
"generic_info",
|
|
10
|
-
"escalation_required"
|
|
11
|
-
]);
|
|
12
|
-
const UserProfileModel = defineSchemaModel({
|
|
13
|
-
name: "UserProfile",
|
|
14
|
-
description: "User profile inputs used to derive regulatory context.",
|
|
15
|
-
fields: {
|
|
16
|
-
preferredLocale: {
|
|
17
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
18
|
-
isOptional: true
|
|
19
|
-
},
|
|
20
|
-
residencyCountry: {
|
|
21
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
22
|
-
isOptional: true
|
|
23
|
-
},
|
|
24
|
-
taxResidenceCountry: {
|
|
25
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
26
|
-
isOptional: true
|
|
27
|
-
},
|
|
28
|
-
clientType: {
|
|
29
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
30
|
-
isOptional: true
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
const RegulatoryContextModel = defineSchemaModel({
|
|
35
|
-
name: "RegulatoryContext",
|
|
36
|
-
description: "Explicit regulatory context (no guessing).",
|
|
37
|
-
fields: {
|
|
38
|
-
jurisdiction: {
|
|
39
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
40
|
-
isOptional: false
|
|
41
|
-
},
|
|
42
|
-
region: {
|
|
43
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
44
|
-
isOptional: true
|
|
45
|
-
},
|
|
46
|
-
clientType: {
|
|
47
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
48
|
-
isOptional: true
|
|
49
|
-
},
|
|
50
|
-
allowedScope: {
|
|
51
|
-
type: AllowedScopeEnum,
|
|
52
|
-
isOptional: false
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
const LLMCallEnvelopeModel = defineSchemaModel({
|
|
57
|
-
name: "LLMCallEnvelope",
|
|
58
|
-
description: "Mandatory envelope for assistant calls. All fields are explicit and required for policy gating.",
|
|
59
|
-
fields: {
|
|
60
|
-
traceId: {
|
|
61
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
62
|
-
isOptional: false
|
|
63
|
-
},
|
|
64
|
-
locale: {
|
|
65
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
66
|
-
isOptional: false
|
|
67
|
-
},
|
|
68
|
-
regulatoryContext: {
|
|
69
|
-
type: RegulatoryContextModel,
|
|
70
|
-
isOptional: false
|
|
71
|
-
},
|
|
72
|
-
kbSnapshotId: {
|
|
73
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
74
|
-
isOptional: false
|
|
75
|
-
},
|
|
76
|
-
allowedScope: {
|
|
77
|
-
type: AllowedScopeEnum,
|
|
78
|
-
isOptional: false
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
const AssistantCitationModel = defineSchemaModel({
|
|
83
|
-
name: "AssistantCitation",
|
|
84
|
-
description: "Citation referencing a KB snapshot + a specific item within it.",
|
|
85
|
-
fields: {
|
|
86
|
-
kbSnapshotId: {
|
|
87
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
88
|
-
isOptional: false
|
|
89
|
-
},
|
|
90
|
-
sourceType: {
|
|
91
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
92
|
-
isOptional: false
|
|
93
|
-
},
|
|
94
|
-
sourceId: {
|
|
95
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
96
|
-
isOptional: false
|
|
97
|
-
},
|
|
98
|
-
title: {
|
|
99
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
100
|
-
isOptional: true
|
|
101
|
-
},
|
|
102
|
-
excerpt: {
|
|
103
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
104
|
-
isOptional: true
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
const AssistantAnswerSectionModel = defineSchemaModel({
|
|
109
|
-
name: "AssistantAnswerSection",
|
|
110
|
-
description: "Structured answer section.",
|
|
111
|
-
fields: {
|
|
112
|
-
heading: {
|
|
113
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
114
|
-
isOptional: false
|
|
115
|
-
},
|
|
116
|
-
body: {
|
|
117
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
118
|
-
isOptional: false
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
const AssistantAnswerIRModel = defineSchemaModel({
|
|
123
|
-
name: "AssistantAnswerIR",
|
|
124
|
-
description: "Structured assistant answer with mandatory citations and explicit locale/jurisdiction.",
|
|
125
|
-
fields: {
|
|
126
|
-
locale: {
|
|
127
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
128
|
-
isOptional: false
|
|
129
|
-
},
|
|
130
|
-
jurisdiction: {
|
|
131
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
132
|
-
isOptional: false
|
|
133
|
-
},
|
|
134
|
-
allowedScope: {
|
|
135
|
-
type: AllowedScopeEnum,
|
|
136
|
-
isOptional: false
|
|
137
|
-
},
|
|
138
|
-
sections: {
|
|
139
|
-
type: AssistantAnswerSectionModel,
|
|
140
|
-
isArray: true,
|
|
141
|
-
isOptional: false
|
|
142
|
-
},
|
|
143
|
-
citations: {
|
|
144
|
-
type: AssistantCitationModel,
|
|
145
|
-
isArray: true,
|
|
146
|
-
isOptional: false
|
|
147
|
-
},
|
|
148
|
-
disclaimers: {
|
|
149
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
150
|
-
isArray: true,
|
|
151
|
-
isOptional: true
|
|
152
|
-
},
|
|
153
|
-
riskFlags: {
|
|
154
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
155
|
-
isArray: true,
|
|
156
|
-
isOptional: true
|
|
157
|
-
},
|
|
158
|
-
refused: {
|
|
159
|
-
type: ScalarTypeEnum.Boolean(),
|
|
160
|
-
isOptional: true
|
|
161
|
-
},
|
|
162
|
-
refusalReason: {
|
|
163
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
164
|
-
isOptional: true
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
//#endregion
|
|
170
|
-
export { AllowedScopeEnum, AssistantAnswerIRModel, AssistantAnswerSectionModel, AssistantCitationModel, LLMCallEnvelopeModel, RegulatoryContextModel, UserProfileModel };
|
|
1
|
+
import{ScalarTypeEnum as e,defineEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";const r=t(`AllowedScope`,[`education_only`,`generic_info`,`escalation_required`]),i=n({name:`UserProfile`,description:`User profile inputs used to derive regulatory context.`,fields:{preferredLocale:{type:e.String_unsecure(),isOptional:!0},residencyCountry:{type:e.String_unsecure(),isOptional:!0},taxResidenceCountry:{type:e.String_unsecure(),isOptional:!0},clientType:{type:e.String_unsecure(),isOptional:!0}}}),a=n({name:`RegulatoryContext`,description:`Explicit regulatory context (no guessing).`,fields:{jurisdiction:{type:e.String_unsecure(),isOptional:!1},region:{type:e.String_unsecure(),isOptional:!0},clientType:{type:e.String_unsecure(),isOptional:!0},allowedScope:{type:r,isOptional:!1}}}),o=n({name:`LLMCallEnvelope`,description:`Mandatory envelope for assistant calls. All fields are explicit and required for policy gating.`,fields:{traceId:{type:e.String_unsecure(),isOptional:!1},locale:{type:e.String_unsecure(),isOptional:!1},regulatoryContext:{type:a,isOptional:!1},kbSnapshotId:{type:e.String_unsecure(),isOptional:!1},allowedScope:{type:r,isOptional:!1}}}),s=n({name:`AssistantCitation`,description:`Citation referencing a KB snapshot + a specific item within it.`,fields:{kbSnapshotId:{type:e.String_unsecure(),isOptional:!1},sourceType:{type:e.String_unsecure(),isOptional:!1},sourceId:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!0},excerpt:{type:e.String_unsecure(),isOptional:!0}}}),c=n({name:`AssistantAnswerSection`,description:`Structured answer section.`,fields:{heading:{type:e.String_unsecure(),isOptional:!1},body:{type:e.String_unsecure(),isOptional:!1}}}),l=n({name:`AssistantAnswerIR`,description:`Structured assistant answer with mandatory citations and explicit locale/jurisdiction.`,fields:{locale:{type:e.String_unsecure(),isOptional:!1},jurisdiction:{type:e.String_unsecure(),isOptional:!1},allowedScope:{type:r,isOptional:!1},sections:{type:c,isArray:!0,isOptional:!1},citations:{type:s,isArray:!0,isOptional:!1},disclaimers:{type:e.String_unsecure(),isArray:!0,isOptional:!0},riskFlags:{type:e.String_unsecure(),isArray:!0,isOptional:!0},refused:{type:e.Boolean(),isOptional:!0},refusalReason:{type:e.String_unsecure(),isOptional:!0}}});export{r as AllowedScopeEnum,l as AssistantAnswerIRModel,c as AssistantAnswerSectionModel,s as AssistantCitationModel,o as LLMCallEnvelopeModel,a as RegulatoryContextModel,i as UserProfileModel};
|
package/dist/events.js
CHANGED
|
@@ -1,102 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { defineEvent } from "./libs/contracts/dist/events.js";
|
|
3
|
-
import "./libs/contracts/dist/index.js";
|
|
4
|
-
import { ScalarTypeEnum } from "./libs/schema/dist/ScalarTypeEnum.js";
|
|
5
|
-
import "./libs/schema/dist/index.js";
|
|
6
|
-
|
|
7
|
-
//#region src/events.ts
|
|
8
|
-
const AssistantAnswerRequestedPayload = defineSchemaModel({
|
|
9
|
-
name: "AssistantAnswerRequestedPayload",
|
|
10
|
-
description: "Emitted when an assistant answer is requested (pre-gate).",
|
|
11
|
-
fields: {
|
|
12
|
-
traceId: {
|
|
13
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
14
|
-
isOptional: false
|
|
15
|
-
},
|
|
16
|
-
locale: {
|
|
17
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
18
|
-
isOptional: false
|
|
19
|
-
},
|
|
20
|
-
jurisdiction: {
|
|
21
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
22
|
-
isOptional: false
|
|
23
|
-
},
|
|
24
|
-
kbSnapshotId: {
|
|
25
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
26
|
-
isOptional: false
|
|
27
|
-
},
|
|
28
|
-
allowedScope: {
|
|
29
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
30
|
-
isOptional: false
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
const AssistantAnswerRequestedEvent = defineEvent({
|
|
35
|
-
name: "assistant.answer.requested",
|
|
36
|
-
version: 1,
|
|
37
|
-
description: "Assistant answer requested (policy gate will run).",
|
|
38
|
-
payload: AssistantAnswerRequestedPayload
|
|
39
|
-
});
|
|
40
|
-
const AssistantAnswerBlockedPayload = defineSchemaModel({
|
|
41
|
-
name: "AssistantAnswerBlockedPayload",
|
|
42
|
-
description: "Emitted when a request is blocked by the gate.",
|
|
43
|
-
fields: {
|
|
44
|
-
traceId: {
|
|
45
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
46
|
-
isOptional: false
|
|
47
|
-
},
|
|
48
|
-
reasonCode: {
|
|
49
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
50
|
-
isOptional: false
|
|
51
|
-
},
|
|
52
|
-
reason: {
|
|
53
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
54
|
-
isOptional: false
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
const AssistantAnswerBlockedEvent = defineEvent({
|
|
59
|
-
name: "assistant.answer.blocked",
|
|
60
|
-
version: 1,
|
|
61
|
-
description: "Assistant answer blocked (fail-closed).",
|
|
62
|
-
payload: AssistantAnswerBlockedPayload
|
|
63
|
-
});
|
|
64
|
-
const AssistantAnswerDeliveredPayload = defineSchemaModel({
|
|
65
|
-
name: "AssistantAnswerDeliveredPayload",
|
|
66
|
-
description: "Emitted when a structured, cited answer is delivered.",
|
|
67
|
-
fields: {
|
|
68
|
-
traceId: {
|
|
69
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
70
|
-
isOptional: false
|
|
71
|
-
},
|
|
72
|
-
locale: {
|
|
73
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
74
|
-
isOptional: false
|
|
75
|
-
},
|
|
76
|
-
jurisdiction: {
|
|
77
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
78
|
-
isOptional: false
|
|
79
|
-
},
|
|
80
|
-
kbSnapshotId: {
|
|
81
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
82
|
-
isOptional: false
|
|
83
|
-
},
|
|
84
|
-
allowedScope: {
|
|
85
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
86
|
-
isOptional: false
|
|
87
|
-
},
|
|
88
|
-
citationsCount: {
|
|
89
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
90
|
-
isOptional: false
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
const AssistantAnswerDeliveredEvent = defineEvent({
|
|
95
|
-
name: "assistant.answer.delivered",
|
|
96
|
-
version: 1,
|
|
97
|
-
description: "Assistant answer delivered (must include KB snapshot citations).",
|
|
98
|
-
payload: AssistantAnswerDeliveredPayload
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
//#endregion
|
|
102
|
-
export { AssistantAnswerBlockedEvent, AssistantAnswerDeliveredEvent, AssistantAnswerRequestedEvent };
|
|
1
|
+
import{defineEvent as e,defineSchemaModel as t}from"@lssm/lib.contracts";import{ScalarTypeEnum as n}from"@lssm/lib.schema";const r=e({name:`assistant.answer.requested`,version:1,description:`Assistant answer requested (policy gate will run).`,payload:t({name:`AssistantAnswerRequestedPayload`,description:`Emitted when an assistant answer is requested (pre-gate).`,fields:{traceId:{type:n.String_unsecure(),isOptional:!1},locale:{type:n.String_unsecure(),isOptional:!1},jurisdiction:{type:n.String_unsecure(),isOptional:!1},kbSnapshotId:{type:n.String_unsecure(),isOptional:!1},allowedScope:{type:n.String_unsecure(),isOptional:!1}}})}),i=e({name:`assistant.answer.blocked`,version:1,description:`Assistant answer blocked (fail-closed).`,payload:t({name:`AssistantAnswerBlockedPayload`,description:`Emitted when a request is blocked by the gate.`,fields:{traceId:{type:n.String_unsecure(),isOptional:!1},reasonCode:{type:n.String_unsecure(),isOptional:!1},reason:{type:n.String_unsecure(),isOptional:!1}}})}),a=e({name:`assistant.answer.delivered`,version:1,description:`Assistant answer delivered (must include KB snapshot citations).`,payload:t({name:`AssistantAnswerDeliveredPayload`,description:`Emitted when a structured, cited answer is delivered.`,fields:{traceId:{type:n.String_unsecure(),isOptional:!1},locale:{type:n.String_unsecure(),isOptional:!1},jurisdiction:{type:n.String_unsecure(),isOptional:!1},kbSnapshotId:{type:n.String_unsecure(),isOptional:!1},allowedScope:{type:n.String_unsecure(),isOptional:!1},citationsCount:{type:n.Int_unsecure(),isOptional:!1}}})});export{i as AssistantAnswerBlockedEvent,a as AssistantAnswerDeliveredEvent,r as AssistantAnswerRequestedEvent};
|
package/dist/example.js
CHANGED
|
@@ -1,39 +1 @@
|
|
|
1
|
-
|
|
2
|
-
const example = {
|
|
3
|
-
id: "locale-jurisdiction-gate",
|
|
4
|
-
title: "Locale / Jurisdiction Gate",
|
|
5
|
-
summary: "Fail-closed gating for assistant calls: locale + jurisdiction + kbSnapshotId + allowedScope must be explicit, answers must cite a snapshot.",
|
|
6
|
-
tags: [
|
|
7
|
-
"policy",
|
|
8
|
-
"locale",
|
|
9
|
-
"jurisdiction",
|
|
10
|
-
"assistant",
|
|
11
|
-
"gating"
|
|
12
|
-
],
|
|
13
|
-
kind: "knowledge",
|
|
14
|
-
visibility: "public",
|
|
15
|
-
docs: { rootDocId: "docs.examples.locale-jurisdiction-gate" },
|
|
16
|
-
entrypoints: {
|
|
17
|
-
packageName: "@lssm/example.locale-jurisdiction-gate",
|
|
18
|
-
feature: "./feature",
|
|
19
|
-
contracts: "./contracts",
|
|
20
|
-
handlers: "./handlers",
|
|
21
|
-
docs: "./docs"
|
|
22
|
-
},
|
|
23
|
-
surfaces: {
|
|
24
|
-
templates: true,
|
|
25
|
-
sandbox: {
|
|
26
|
-
enabled: true,
|
|
27
|
-
modes: ["markdown", "specs"]
|
|
28
|
-
},
|
|
29
|
-
studio: {
|
|
30
|
-
enabled: true,
|
|
31
|
-
installable: true
|
|
32
|
-
},
|
|
33
|
-
mcp: { enabled: true }
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var example_default = example;
|
|
37
|
-
|
|
38
|
-
//#endregion
|
|
39
|
-
export { example_default as default };
|
|
1
|
+
var e={id:`locale-jurisdiction-gate`,title:`Locale / Jurisdiction Gate`,summary:`Fail-closed gating for assistant calls: locale + jurisdiction + kbSnapshotId + allowedScope must be explicit, answers must cite a snapshot.`,tags:[`policy`,`locale`,`jurisdiction`,`assistant`,`gating`],kind:`knowledge`,visibility:`public`,docs:{rootDocId:`docs.examples.locale-jurisdiction-gate`},entrypoints:{packageName:`@lssm/example.locale-jurisdiction-gate`,feature:`./feature`,contracts:`./contracts`,handlers:`./handlers`,docs:`./docs`},surfaces:{templates:!0,sandbox:{enabled:!0,modes:[`markdown`,`specs`]},studio:{enabled:!0,installable:!0},mcp:{enabled:!0}}};export{e as default};
|