@contractspec/lib.support-bot 1.56.1 → 1.58.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/dist/bot/auto-responder.d.ts +19 -23
- package/dist/bot/auto-responder.d.ts.map +1 -1
- package/dist/bot/auto-responder.js +86 -68
- package/dist/bot/feedback-loop.d.ts +13 -17
- package/dist/bot/feedback-loop.d.ts.map +1 -1
- package/dist/bot/feedback-loop.js +38 -34
- package/dist/bot/index.d.ts +4 -4
- package/dist/bot/index.d.ts.map +1 -0
- package/dist/bot/index.js +268 -4
- package/dist/bot/tools.d.ts +9 -13
- package/dist/bot/tools.d.ts.map +1 -1
- package/dist/bot/tools.js +118 -123
- package/dist/browser/bot/auto-responder.js +101 -0
- package/dist/browser/bot/feedback-loop.js +38 -0
- package/dist/browser/bot/index.js +268 -0
- package/dist/browser/bot/tools.js +131 -0
- package/dist/browser/index.js +517 -0
- package/dist/browser/rag/index.js +65 -0
- package/dist/browser/rag/ticket-resolver.js +65 -0
- package/dist/browser/spec.js +33 -0
- package/dist/browser/tickets/classifier.js +156 -0
- package/dist/browser/tickets/index.js +156 -0
- package/dist/browser/types.js +0 -0
- package/dist/index.d.ts +6 -11
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +518 -9
- package/dist/node/bot/auto-responder.js +101 -0
- package/dist/node/bot/feedback-loop.js +38 -0
- package/dist/node/bot/index.js +268 -0
- package/dist/node/bot/tools.js +131 -0
- package/dist/node/index.js +517 -0
- package/dist/node/rag/index.js +65 -0
- package/dist/node/rag/ticket-resolver.js +65 -0
- package/dist/node/spec.js +33 -0
- package/dist/node/tickets/classifier.js +156 -0
- package/dist/node/tickets/index.js +156 -0
- package/dist/node/types.js +0 -0
- package/dist/rag/index.d.ts +2 -2
- package/dist/rag/index.d.ts.map +1 -0
- package/dist/rag/index.js +66 -3
- package/dist/rag/ticket-resolver.d.ts +17 -21
- package/dist/rag/ticket-resolver.d.ts.map +1 -1
- package/dist/rag/ticket-resolver.js +65 -63
- package/dist/spec.d.ts +7 -12
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +31 -32
- package/dist/tickets/classifier.d.ts +18 -22
- package/dist/tickets/classifier.d.ts.map +1 -1
- package/dist/tickets/classifier.js +153 -195
- package/dist/tickets/index.d.ts +2 -2
- package/dist/tickets/index.d.ts.map +1 -0
- package/dist/tickets/index.js +156 -2
- package/dist/types.d.ts +62 -67
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/package.json +127 -38
- package/dist/ai-agent/src/agent/contract-spec-agent.d.ts +0 -5
- package/dist/ai-agent/src/agent/index.d.ts +0 -2
- package/dist/ai-agent/src/agent/unified-agent.d.ts +0 -3
- package/dist/ai-agent/src/approval/index.d.ts +0 -1
- package/dist/ai-agent/src/approval/workflow.d.ts +0 -1
- package/dist/ai-agent/src/exporters/claude-agent-exporter.d.ts +0 -2
- package/dist/ai-agent/src/exporters/index.d.ts +0 -3
- package/dist/ai-agent/src/exporters/opencode-exporter.d.ts +0 -2
- package/dist/ai-agent/src/exporters/types.d.ts +0 -2
- package/dist/ai-agent/src/index.d.ts +0 -14
- package/dist/ai-agent/src/interop/index.d.ts +0 -3
- package/dist/ai-agent/src/interop/spec-consumer.d.ts +0 -2
- package/dist/ai-agent/src/interop/tool-consumer.d.ts +0 -3
- package/dist/ai-agent/src/interop/types.d.ts +0 -2
- package/dist/ai-agent/src/knowledge/index.d.ts +0 -1
- package/dist/ai-agent/src/knowledge/injector.d.ts +0 -1
- package/dist/ai-agent/src/providers/claude-agent-sdk/adapter.d.ts +0 -2
- package/dist/ai-agent/src/providers/claude-agent-sdk/index.d.ts +0 -3
- package/dist/ai-agent/src/providers/claude-agent-sdk/session-bridge.d.ts +0 -1
- package/dist/ai-agent/src/providers/claude-agent-sdk/tool-bridge.d.ts +0 -3
- package/dist/ai-agent/src/providers/index.d.ts +0 -4
- package/dist/ai-agent/src/providers/opencode-sdk/adapter.d.ts +0 -2
- package/dist/ai-agent/src/providers/opencode-sdk/agent-bridge.d.ts +0 -3
- package/dist/ai-agent/src/providers/opencode-sdk/index.d.ts +0 -3
- package/dist/ai-agent/src/providers/opencode-sdk/tool-bridge.d.ts +0 -3
- package/dist/ai-agent/src/providers/registry.d.ts +0 -1
- package/dist/ai-agent/src/providers/types.d.ts +0 -3
- package/dist/ai-agent/src/schema/index.d.ts +0 -2
- package/dist/ai-agent/src/schema/json-schema-to-zod.d.ts +0 -1
- package/dist/ai-agent/src/schema/schema-output.d.ts +0 -2
- package/dist/ai-agent/src/session/index.d.ts +0 -1
- package/dist/ai-agent/src/session/store.d.ts +0 -2
- package/dist/ai-agent/src/spec/index.d.ts +0 -2
- package/dist/ai-agent/src/spec/registry.d.ts +0 -2
- package/dist/ai-agent/src/spec/spec.d.ts +0 -115
- package/dist/ai-agent/src/spec/spec.d.ts.map +0 -1
- package/dist/ai-agent/src/telemetry/adapter.d.ts +0 -1
- package/dist/ai-agent/src/telemetry/index.d.ts +0 -1
- package/dist/ai-agent/src/tools/index.d.ts +0 -4
- package/dist/ai-agent/src/tools/knowledge-tool.d.ts +0 -2
- package/dist/ai-agent/src/tools/mcp-client.d.ts +0 -1
- package/dist/ai-agent/src/tools/mcp-server.d.ts +0 -3
- package/dist/ai-agent/src/tools/tool-adapter.d.ts +0 -3
- package/dist/ai-agent/src/types.d.ts +0 -1
- package/dist/bot/auto-responder.js.map +0 -1
- package/dist/bot/feedback-loop.js.map +0 -1
- package/dist/bot/tools.js.map +0 -1
- package/dist/contracts/src/app-config/lifecycle.d.ts +0 -1
- package/dist/contracts/src/app-config/runtime.d.ts +0 -13
- package/dist/contracts/src/app-config/spec.d.ts +0 -9
- package/dist/contracts/src/capabilities/capabilities.d.ts +0 -1
- package/dist/contracts/src/capabilities/context.d.ts +0 -1
- package/dist/contracts/src/capabilities/guards.d.ts +0 -4
- package/dist/contracts/src/capabilities/index.d.ts +0 -5
- package/dist/contracts/src/capabilities/openbanking.d.ts +0 -1
- package/dist/contracts/src/capabilities/validation.d.ts +0 -4
- package/dist/contracts/src/data-views/index.d.ts +0 -3
- package/dist/contracts/src/data-views/registry.d.ts +0 -2
- package/dist/contracts/src/data-views/report/contractVerificationTable.d.ts +0 -1
- package/dist/contracts/src/data-views/spec.d.ts +0 -3
- package/dist/contracts/src/data-views/types.d.ts +0 -2
- package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/commands/docsGenerate.command.d.ts +0 -1
- package/dist/contracts/src/docs/commands/docsPublish.command.d.ts +0 -1
- package/dist/contracts/src/docs/commands/index.d.ts +0 -2
- package/dist/contracts/src/docs/contracts.d.ts +0 -6
- package/dist/contracts/src/docs/events/docsGenerated.event.d.ts +0 -1
- package/dist/contracts/src/docs/events/docsPublished.event.d.ts +0 -1
- package/dist/contracts/src/docs/events/index.d.ts +0 -2
- package/dist/contracts/src/docs/forms/docsSearch.form.d.ts +0 -1
- package/dist/contracts/src/docs/forms/index.d.ts +0 -1
- package/dist/contracts/src/docs/index.d.ts +0 -30
- package/dist/contracts/src/docs/presentations.d.ts +0 -2
- package/dist/contracts/src/docs/queries/contractReference.query.d.ts +0 -1
- package/dist/contracts/src/docs/queries/docsIndex.query.d.ts +0 -1
- package/dist/contracts/src/docs/queries/index.d.ts +0 -2
- package/dist/contracts/src/docs/registry.d.ts +0 -10
- package/dist/contracts/src/docs/registry.d.ts.map +0 -1
- package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/README.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +0 -1
- package/dist/contracts/src/events.d.ts +0 -5
- package/dist/contracts/src/experiments/spec-resolver.d.ts +0 -4
- package/dist/contracts/src/experiments/spec.d.ts +0 -4
- package/dist/contracts/src/features/index.d.ts +0 -4
- package/dist/contracts/src/features/install.d.ts +0 -6
- package/dist/contracts/src/features/registry.d.ts +0 -2
- package/dist/contracts/src/features/types.d.ts +0 -5
- package/dist/contracts/src/features/validation.d.ts +0 -2
- package/dist/contracts/src/forms/forms.d.ts +0 -3
- package/dist/contracts/src/forms/index.d.ts +0 -1
- package/dist/contracts/src/install.d.ts +0 -7
- package/dist/contracts/src/integrations/connection.d.ts +0 -1
- package/dist/contracts/src/integrations/providers/llm.d.ts +0 -83
- package/dist/contracts/src/integrations/providers/llm.d.ts.map +0 -1
- package/dist/contracts/src/integrations/spec.d.ts +0 -3
- package/dist/contracts/src/knowledge/spec.d.ts +0 -9
- package/dist/contracts/src/knowledge/spec.d.ts.map +0 -1
- package/dist/contracts/src/operations/index.d.ts +0 -3
- package/dist/contracts/src/operations/operation.d.ts +0 -7
- package/dist/contracts/src/operations/registry.d.ts +0 -6
- package/dist/contracts/src/operations/report/getContractVerificationStatus.d.ts +0 -3
- package/dist/contracts/src/operations/report/index.d.ts +0 -4
- package/dist/contracts/src/ownership.d.ts +0 -164
- package/dist/contracts/src/ownership.d.ts.map +0 -1
- package/dist/contracts/src/policy/registry.d.ts +0 -2
- package/dist/contracts/src/policy/spec.d.ts +0 -13
- package/dist/contracts/src/policy/spec.d.ts.map +0 -1
- package/dist/contracts/src/presentations/index.d.ts +0 -3
- package/dist/contracts/src/presentations/presentations.d.ts +0 -3
- package/dist/contracts/src/presentations/registry.d.ts +0 -2
- package/dist/contracts/src/presentations/transform-engine.d.ts +0 -2
- package/dist/contracts/src/registry-utils.d.ts +0 -1
- package/dist/contracts/src/registry.d.ts +0 -3
- package/dist/contracts/src/resources.d.ts +0 -2
- package/dist/contracts/src/telemetry/anomaly.d.ts +0 -2
- package/dist/contracts/src/telemetry/index.d.ts +0 -3
- package/dist/contracts/src/telemetry/spec.d.ts +0 -2
- package/dist/contracts/src/telemetry/tracker.d.ts +0 -3
- package/dist/contracts/src/tests/spec.d.ts +0 -1
- package/dist/contracts/src/themes.d.ts +0 -2
- package/dist/contracts/src/types.d.ts +0 -5
- package/dist/contracts/src/versioning/refs.d.ts +0 -28
- package/dist/contracts/src/versioning/refs.d.ts.map +0 -1
- package/dist/contracts/src/workflow/overview.docblock.d.ts +0 -1
- package/dist/contracts/src/workflow/spec.d.ts +0 -5
- package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +0 -1
- package/dist/rag/ticket-resolver.js.map +0 -1
- package/dist/schema/src/EnumType.d.ts +0 -2
- package/dist/schema/src/FieldType.d.ts +0 -2
- package/dist/schema/src/GraphQLSchemaType.d.ts +0 -2
- package/dist/schema/src/JsonSchemaType.d.ts +0 -2
- package/dist/schema/src/ScalarTypeEnum.d.ts +0 -1
- package/dist/schema/src/SchemaModel.d.ts +0 -4
- package/dist/schema/src/SchemaModelType.d.ts +0 -1
- package/dist/schema/src/ZodSchemaType.d.ts +0 -2
- package/dist/schema/src/entity/defineEntity.d.ts +0 -1
- package/dist/schema/src/entity/generator.d.ts +0 -1
- package/dist/schema/src/entity/index.d.ts +0 -3
- package/dist/schema/src/entity/types.d.ts +0 -1
- package/dist/schema/src/index.d.ts +0 -9
- package/dist/spec.js.map +0 -1
- package/dist/tickets/classifier.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","names":[],"sources":["../../../../../ai-agent/src/spec/spec.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAOA;AAKiB,KALL,SAAA,GAAY,aAWb;AAgBX;AAgBA;AAcA;AAUiB,UA9DA,eAAA,CA8DqB;EAcrB;EAUA,IAAA,EAAA,MAAS;EAClB;EAQC,WAAA,CAAA,EAAA,MAAA;EAEE;EAEG,MAAA,CAAA,EA7FH,MA6FG,CAAA,MAAA,EAAA,OAAA,CAAA;EAEH;EAAW,UAAA,CAAA,EAAA,MAAA;;;;;;;;WArFX;;;;;UAMM,iBAAA;;;;;;aAMJ;;;;;;;;;UAUI,iBAAA;;;;;;;;;;;;;UAcA,qBAAA;;;;;;;;;UAUA,qBAAA;;;;;;;;;;;;;UAcA,WAAA;eACF;eACA;;;;;;;UAQE,SAAA;QACT;;;;;;;;SAQC;;WAEE;;cAEG;;WAEH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./adapter.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "ai";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-responder.js","names":[],"sources":["../../src/bot/auto-responder.ts"],"sourcesContent":["import type { LLMProvider } from '@contractspec/lib.contracts/integrations/providers/llm';\nimport type {\n SupportResponseDraft,\n SupportResolution,\n SupportTicket,\n TicketClassification,\n} from '../types';\n\nexport interface AutoResponderOptions {\n llm?: LLMProvider;\n model?: string;\n tone?: 'friendly' | 'formal';\n closing?: string;\n}\n\nexport class AutoResponder {\n private readonly llm?: LLMProvider;\n private readonly model?: string;\n private readonly tone: 'friendly' | 'formal';\n private readonly closing: string;\n\n constructor(options?: AutoResponderOptions) {\n this.llm = options?.llm;\n this.model = options?.model;\n this.tone = options?.tone ?? 'friendly';\n this.closing =\n options?.closing ??\n (this.tone === 'friendly'\n ? 'We remain available if you need anything else.'\n : 'Please let us know if you require additional assistance.');\n }\n\n async draft(\n ticket: SupportTicket,\n resolution: SupportResolution,\n classification: TicketClassification\n ): Promise<SupportResponseDraft> {\n if (this.llm) {\n return this.generateWithLLM(ticket, resolution, classification);\n }\n return this.generateTemplate(ticket, resolution, classification);\n }\n\n private async generateWithLLM(\n ticket: SupportTicket,\n resolution: SupportResolution,\n classification: TicketClassification\n ): Promise<SupportResponseDraft> {\n const prompt = `You are a ${this.tone} support agent. Draft an email response.\nTicket Subject: ${ticket.subject}\nTicket Body: ${ticket.body}\nDetected Category: ${classification.category}\nDetected Priority: ${classification.priority}\nResolution:\n${resolution.answer}\nCitations: ${resolution.citations.map((c) => c.label).join(', ')}`;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const response = await this.llm!.chat(\n [\n {\n role: 'system',\n content: [\n {\n type: 'text',\n text: 'Write empathetic, accurate support replies that cite sources when relevant.',\n },\n ],\n },\n {\n role: 'user',\n content: [{ type: 'text', text: prompt }],\n },\n ],\n { model: this.model }\n );\n\n const body = response.message.content\n .map((part) => ('text' in part ? part.text : ''))\n .join('')\n .trim();\n\n return this.buildDraft(ticket, resolution, classification, body);\n }\n\n private generateTemplate(\n ticket: SupportTicket,\n resolution: SupportResolution,\n classification: TicketClassification\n ): SupportResponseDraft {\n const greeting = ticket.customerName\n ? `Hi ${ticket.customerName},`\n : 'Hi there,';\n const body = `${greeting}\n\nThanks for contacting us about \"${ticket.subject}\". ${this.renderCategoryIntro(\n classification\n )}\n\n${resolution.answer}\n\n${this.renderCitations(resolution)}\n${this.closing}\n\n— ContractSpec Support`;\n\n return this.buildDraft(ticket, resolution, classification, body);\n }\n\n private buildDraft(\n ticket: SupportTicket,\n resolution: SupportResolution,\n classification: TicketClassification,\n body: string\n ): SupportResponseDraft {\n return {\n ticketId: ticket.id,\n subject: ticket.subject.startsWith('Re:')\n ? ticket.subject\n : `Re: ${ticket.subject}`,\n body,\n confidence: Math.min(resolution.confidence, classification.confidence),\n requiresEscalation:\n resolution.actions.some((action) => action.type === 'escalate') ||\n Boolean(classification.escalationRequired),\n citations: resolution.citations,\n };\n }\n\n private renderCategoryIntro(classification: TicketClassification) {\n switch (classification.category) {\n case 'billing':\n return 'I understand billing issues can be stressful, so let me clarify the situation.';\n case 'technical':\n return 'I see you encountered a technical issue. Here is what happened and how to fix it.';\n case 'product':\n return 'Thanks for sharing feedback about the product. Here are the next steps.';\n case 'account':\n return 'Account access is critical, so let me walk you through the resolution.';\n case 'compliance':\n return 'Compliance questions require precision. See the policy-aligned answer below.';\n default:\n return 'Here is what we found after reviewing your request.';\n }\n }\n\n private renderCitations(resolution: SupportResolution) {\n if (!resolution.citations.length) return '';\n const lines = resolution.citations.map((citation, index) => {\n const label = citation.label || `Source ${index + 1}`;\n const link = citation.url ? ` (${citation.url})` : '';\n return `- ${label}${link}`;\n });\n return `References:\\n${lines.join('\\n')}`;\n }\n}\n"],"mappings":";AAeA,IAAa,gBAAb,MAA2B;CACzB,AAAiB;CACjB,AAAiB;CACjB,AAAiB;CACjB,AAAiB;CAEjB,YAAY,SAAgC;AAC1C,OAAK,MAAM,SAAS;AACpB,OAAK,QAAQ,SAAS;AACtB,OAAK,OAAO,SAAS,QAAQ;AAC7B,OAAK,UACH,SAAS,YACR,KAAK,SAAS,aACX,mDACA;;CAGR,MAAM,MACJ,QACA,YACA,gBAC+B;AAC/B,MAAI,KAAK,IACP,QAAO,KAAK,gBAAgB,QAAQ,YAAY,eAAe;AAEjE,SAAO,KAAK,iBAAiB,QAAQ,YAAY,eAAe;;CAGlE,MAAc,gBACZ,QACA,YACA,gBAC+B;EAC/B,MAAM,SAAS,aAAa,KAAK,KAAK;kBACxB,OAAO,QAAQ;eAClB,OAAO,KAAK;qBACN,eAAe,SAAS;qBACxB,eAAe,SAAS;;EAE3C,WAAW,OAAO;aACP,WAAW,UAAU,KAAK,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK;EAsB5D,MAAM,QAnBW,MAAM,KAAK,IAAK,KAC/B,CACE;GACE,MAAM;GACN,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACP,CACF;GACF,EACD;GACE,MAAM;GACN,SAAS,CAAC;IAAE,MAAM;IAAQ,MAAM;IAAQ,CAAC;GAC1C,CACF,EACD,EAAE,OAAO,KAAK,OAAO,CACtB,EAEqB,QAAQ,QAC3B,KAAK,SAAU,UAAU,OAAO,KAAK,OAAO,GAAI,CAChD,KAAK,GAAG,CACR,MAAM;AAET,SAAO,KAAK,WAAW,QAAQ,YAAY,gBAAgB,KAAK;;CAGlE,AAAQ,iBACN,QACA,YACA,gBACsB;EAItB,MAAM,OAAO,GAHI,OAAO,eACpB,MAAM,OAAO,aAAa,KAC1B,YACqB;;kCAEK,OAAO,QAAQ,KAAK,KAAK,oBACrD,eACD,CAAC;;EAEJ,WAAW,OAAO;;EAElB,KAAK,gBAAgB,WAAW,CAAC;EACjC,KAAK,QAAQ;;;AAIX,SAAO,KAAK,WAAW,QAAQ,YAAY,gBAAgB,KAAK;;CAGlE,AAAQ,WACN,QACA,YACA,gBACA,MACsB;AACtB,SAAO;GACL,UAAU,OAAO;GACjB,SAAS,OAAO,QAAQ,WAAW,MAAM,GACrC,OAAO,UACP,OAAO,OAAO;GAClB;GACA,YAAY,KAAK,IAAI,WAAW,YAAY,eAAe,WAAW;GACtE,oBACE,WAAW,QAAQ,MAAM,WAAW,OAAO,SAAS,WAAW,IAC/D,QAAQ,eAAe,mBAAmB;GAC5C,WAAW,WAAW;GACvB;;CAGH,AAAQ,oBAAoB,gBAAsC;AAChE,UAAQ,eAAe,UAAvB;GACE,KAAK,UACH,QAAO;GACT,KAAK,YACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,KAAK,aACH,QAAO;GACT,QACE,QAAO;;;CAIb,AAAQ,gBAAgB,YAA+B;AACrD,MAAI,CAAC,WAAW,UAAU,OAAQ,QAAO;AAMzC,SAAO,gBALO,WAAW,UAAU,KAAK,UAAU,UAAU;AAG1D,UAAO,KAFO,SAAS,SAAS,UAAU,QAAQ,MACrC,SAAS,MAAM,KAAK,SAAS,IAAI,KAAK;IAEnD,CAC2B,KAAK,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-loop.js","names":[],"sources":["../../src/bot/feedback-loop.ts"],"sourcesContent":["import type { ResolutionResultPayload } from '../types';\n\nexport interface FeedbackMetrics {\n totalTickets: number;\n autoResolved: number;\n escalated: number;\n avgConfidence: number;\n avgResponseTimeMs: number;\n}\n\nexport class SupportFeedbackLoop {\n private readonly history: ResolutionResultPayload[] = [];\n private readonly responseTimes = new Map<string, number>();\n\n recordResolution(payload: ResolutionResultPayload, responseTimeMs?: number) {\n this.history.push(payload);\n if (responseTimeMs != null) {\n this.responseTimes.set(payload.ticket.id, responseTimeMs);\n }\n }\n\n metrics(): FeedbackMetrics {\n const total = this.history.length;\n const autoResolved = this.history.filter(\n (entry) =>\n !entry.resolution.actions.some((action) => action.type === 'escalate')\n ).length;\n const escalated = total - autoResolved;\n const avgConfidence =\n total === 0\n ? 0\n : this.history.reduce(\n (sum, entry) => sum + entry.resolution.confidence,\n 0\n ) / total;\n const avgResponseTimeMs =\n this.responseTimes.size === 0\n ? 0\n : [...this.responseTimes.values()].reduce((a, b) => a + b, 0) /\n this.responseTimes.size;\n\n return {\n totalTickets: total,\n autoResolved,\n escalated,\n avgConfidence: Number(avgConfidence.toFixed(2)),\n avgResponseTimeMs: Math.round(avgResponseTimeMs),\n };\n }\n\n feedbackSummary(limit = 5): string {\n const recent = this.history.slice(-limit);\n if (!recent.length) return 'No feedback recorded yet.';\n return recent\n .map((entry) => {\n const status = entry.resolution.actions.some(\n (action) => action.type === 'escalate'\n )\n ? 'Escalated'\n : 'Auto-resolved';\n return `${entry.ticket.subject} – ${status} (confidence: ${entry.resolution.confidence})`;\n })\n .join('\\n');\n }\n}\n"],"mappings":";AAUA,IAAa,sBAAb,MAAiC;CAC/B,AAAiB,UAAqC,EAAE;CACxD,AAAiB,gCAAgB,IAAI,KAAqB;CAE1D,iBAAiB,SAAkC,gBAAyB;AAC1E,OAAK,QAAQ,KAAK,QAAQ;AAC1B,MAAI,kBAAkB,KACpB,MAAK,cAAc,IAAI,QAAQ,OAAO,IAAI,eAAe;;CAI7D,UAA2B;EACzB,MAAM,QAAQ,KAAK,QAAQ;EAC3B,MAAM,eAAe,KAAK,QAAQ,QAC/B,UACC,CAAC,MAAM,WAAW,QAAQ,MAAM,WAAW,OAAO,SAAS,WAAW,CACzE,CAAC;EACF,MAAM,YAAY,QAAQ;EAC1B,MAAM,gBACJ,UAAU,IACN,IACA,KAAK,QAAQ,QACV,KAAK,UAAU,MAAM,MAAM,WAAW,YACvC,EACD,GAAG;EACV,MAAM,oBACJ,KAAK,cAAc,SAAS,IACxB,IACA,CAAC,GAAG,KAAK,cAAc,QAAQ,CAAC,CAAC,QAAQ,GAAG,MAAM,IAAI,GAAG,EAAE,GAC3D,KAAK,cAAc;AAEzB,SAAO;GACL,cAAc;GACd;GACA;GACA,eAAe,OAAO,cAAc,QAAQ,EAAE,CAAC;GAC/C,mBAAmB,KAAK,MAAM,kBAAkB;GACjD;;CAGH,gBAAgB,QAAQ,GAAW;EACjC,MAAM,SAAS,KAAK,QAAQ,MAAM,CAAC,MAAM;AACzC,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,SAAO,OACJ,KAAK,UAAU;GACd,MAAM,SAAS,MAAM,WAAW,QAAQ,MACrC,WAAW,OAAO,SAAS,WAC7B,GACG,cACA;AACJ,UAAO,GAAG,MAAM,OAAO,QAAQ,KAAK,OAAO,gBAAgB,MAAM,WAAW,WAAW;IACvF,CACD,KAAK,KAAK"}
|
package/dist/bot/tools.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","names":[],"sources":["../../src/bot/tools.ts"],"sourcesContent":["import type { TicketResolver } from '../rag/ticket-resolver';\nimport type { TicketClassifier } from '../tickets/classifier';\nimport type { AutoResponder } from './auto-responder';\nimport type {\n SupportAction,\n SupportCitation,\n SupportResolution,\n SupportTicket,\n TicketCategory,\n TicketClassification,\n TicketPriority,\n TicketSentiment,\n} from '../types';\nimport type { Tool } from '@ai-sdk/provider-utils';\nimport * as z from 'zod';\n\nconst ticketSchema = z.object({\n id: z.string(),\n subject: z.string(),\n body: z.string(),\n channel: z.enum(['email', 'chat', 'phone', 'portal']),\n customerName: z.string().optional(),\n customerEmail: z.string().optional(),\n metadata: z.object().optional(),\n}) satisfies z.ZodType<SupportTicket>;\nconst supportCitationSchema = z.object({\n label: z.string(),\n url: z.string().optional(),\n snippet: z.string().optional(),\n score: z.number().optional(),\n}) satisfies z.ZodType<SupportCitation>;\nconst supportActionSchema = z.object({\n type: z.enum(['respond', 'escalate', 'refund', 'manual']),\n label: z.string(),\n payload: z.record(z.string(), z.string()),\n}) satisfies z.ZodType<SupportAction>;\nconst supportResolutionSchema = z.object({\n ticketId: z.string(),\n answer: z.string(),\n confidence: z.number(),\n citations: supportCitationSchema.array(),\n actions: supportActionSchema.array(),\n escalationReason: z.string().optional(),\n knowledgeUpdates: z.array(z.string()).optional(),\n}) satisfies z.ZodType<SupportResolution>;\nconst ticketClassificationSchema = z.object({\n ticketId: z.string(),\n category: z.enum([\n 'billing',\n 'technical',\n 'product',\n 'account',\n 'compliance',\n 'other',\n ]) satisfies z.ZodType<TicketCategory>,\n priority: z.enum([\n 'urgent',\n 'high',\n 'medium',\n 'low',\n ]) satisfies z.ZodType<TicketPriority>,\n sentiment: z.enum([\n 'positive',\n 'neutral',\n 'negative',\n 'frustrated',\n ]) satisfies z.ZodType<TicketSentiment>,\n intents: z.array(z.string()),\n tags: z.array(z.string()),\n confidence: z.number(),\n escalationRequired: z.boolean().optional(),\n}) satisfies z.ZodType<TicketClassification>;\n\nfunction ensureTicket(input: unknown): SupportTicket {\n if (!input || typeof input !== 'object' || !('ticket' in input)) {\n throw new Error('Input must include ticket');\n }\n const ticket = (input as { ticket: SupportTicket }).ticket;\n if (!ticket?.id) throw new Error('Ticket is missing id');\n return ticket;\n}\n\nfunction extractResolution(input: unknown): SupportResolution | undefined {\n if (!input || typeof input !== 'object' || !('resolution' in input))\n return undefined;\n return (input as { resolution?: SupportResolution }).resolution;\n}\n\nfunction extractClassification(\n input: unknown\n): TicketClassification | undefined {\n if (!input || typeof input !== 'object' || !('classification' in input))\n return undefined;\n return (input as { classification?: TicketClassification }).classification;\n}\n\nexport interface SupportToolsetOptions {\n resolver: TicketResolver;\n classifier: TicketClassifier;\n responder: AutoResponder;\n}\n\nexport function createSupportTools(options: SupportToolsetOptions): Tool[] {\n const classifyTool: Tool = {\n title: 'support_classify_ticket',\n description: 'Classify a ticket for priority, sentiment, and category',\n inputSchema: z.object({ ticket: ticketSchema }),\n execute: async (input: unknown) => {\n const ticket = ensureTicket(input);\n const classification = await options.classifier.classify(ticket);\n return {\n content: JSON.stringify(classification),\n metadata: { ticketId: ticket.id },\n };\n },\n };\n\n const resolveTool: Tool = {\n title: 'support_resolve_ticket',\n description: 'Generate a knowledge-grounded resolution for a ticket',\n inputSchema: z.object({ ticket: ticketSchema }),\n execute: async (input: unknown) => {\n const ticket = ensureTicket(input);\n const resolution = await options.resolver.resolve(ticket);\n return {\n content: JSON.stringify(resolution),\n metadata: { ticketId: ticket.id },\n };\n },\n };\n\n const responderTool: Tool = {\n title: 'support_draft_response',\n description:\n 'Draft a user-facing reply based on resolution + classification',\n inputSchema: z.object({\n ticket: ticketSchema,\n resolution: supportResolutionSchema,\n classification: ticketClassificationSchema,\n }),\n execute: async (input: unknown) => {\n const ticket = ensureTicket(input);\n const resolution = extractResolution(input);\n const classification = extractClassification(input);\n if (!resolution || !classification) {\n throw new Error('resolution and classification are required');\n }\n const draft = await options.responder.draft(\n ticket,\n resolution,\n classification\n );\n return {\n content: JSON.stringify(draft),\n metadata: { ticketId: ticket.id },\n };\n },\n };\n\n return [classifyTool, resolveTool, responderTool];\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./spec.js";
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import "../policy/spec.js";
|
|
2
|
-
import "../telemetry/spec.js";
|
|
3
|
-
import "../capabilities/index.js";
|
|
4
|
-
import "../experiments/spec.js";
|
|
5
|
-
import "../data-views/index.js";
|
|
6
|
-
import "../features/index.js";
|
|
7
|
-
import "../workflow/spec.js";
|
|
8
|
-
import "../policy/registry.js";
|
|
9
|
-
import "../themes.js";
|
|
10
|
-
import "../integrations/spec.js";
|
|
11
|
-
import "../integrations/connection.js";
|
|
12
|
-
import "../knowledge/spec.js";
|
|
13
|
-
import "./spec.js";
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import "../policy/spec.js";
|
|
2
|
-
import "../capabilities/index.js";
|
|
3
|
-
import "../experiments/spec.js";
|
|
4
|
-
import "../features/index.js";
|
|
5
|
-
import "../themes.js";
|
|
6
|
-
import "../integrations/spec.js";
|
|
7
|
-
import "./lifecycle.js";
|
|
8
|
-
import "../registry.js";
|
|
9
|
-
import "../ownership.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../ownership.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./capabilities.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./docsSearch.form.js";
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import "./commands/index.js";
|
|
2
|
-
import "./queries/index.js";
|
|
3
|
-
import "./events/index.js";
|
|
4
|
-
import "./presentations.js";
|
|
5
|
-
import { DocId } from "./registry.js";
|
|
6
|
-
import "./contracts.js";
|
|
7
|
-
import "./forms/index.js";
|
|
8
|
-
import "./accessibility_wcag_compliance_specs.docblock.js";
|
|
9
|
-
import "./tech/lifecycle-stage-system.docblock.js";
|
|
10
|
-
import "./tech/presentation-runtime.docblock.js";
|
|
11
|
-
import "./tech/auth/better-auth-nextjs.docblock.js";
|
|
12
|
-
import "./tech/schema/README.docblock.js";
|
|
13
|
-
import "../workflow/overview.docblock.js";
|
|
14
|
-
import "./tech/mcp-endpoints.docblock.js";
|
|
15
|
-
import "./tech/vscode-extension.docblock.js";
|
|
16
|
-
import "./tech/telemetry-ingest.docblock.js";
|
|
17
|
-
import "./tech/contracts/README.docblock.js";
|
|
18
|
-
import "./tech/contracts/openapi-export.docblock.js";
|
|
19
|
-
import "./tech/contracts/openapi-import.docblock.js";
|
|
20
|
-
import "../workspace-config/workspace-config.docblock.js";
|
|
21
|
-
import "./tech/studio/workspaces.docblock.js";
|
|
22
|
-
import "./tech/studio/sandbox-unlogged.docblock.js";
|
|
23
|
-
import "./tech/studio/workspace-ops.docblock.js";
|
|
24
|
-
import "./tech/studio/project-routing.docblock.js";
|
|
25
|
-
import "./tech/studio/platform-admin-panel.docblock.js";
|
|
26
|
-
import "./tech/studio/learning-events.docblock.js";
|
|
27
|
-
import "./tech/studio/learning-journeys.docblock.js";
|
|
28
|
-
import "./tech/studio/project-access-teams.docblock.js";
|
|
29
|
-
import "./tech/studio/team-invitations.docblock.js";
|
|
30
|
-
import "./tech/llm/llm-integration.docblock.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../../../schema/src/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","names":[],"sources":["../../../../../contracts/src/docs/registry.ts"],"sourcesContent":[],"mappings":";;;;KASY,KAAA;EAAA,OAAA,EAAK,IAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./forms.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "./spec.js";
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
//#region ../contracts/src/integrations/providers/llm.d.ts
|
|
2
|
-
type LLMRole = 'system' | 'user' | 'assistant' | 'tool';
|
|
3
|
-
interface LLMTextPart {
|
|
4
|
-
type: 'text';
|
|
5
|
-
text: string;
|
|
6
|
-
}
|
|
7
|
-
interface LLMToolCallPart {
|
|
8
|
-
type: 'tool-call';
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
arguments: string;
|
|
12
|
-
}
|
|
13
|
-
interface LLMToolResultPart {
|
|
14
|
-
type: 'tool-result';
|
|
15
|
-
toolCallId: string;
|
|
16
|
-
output: string;
|
|
17
|
-
}
|
|
18
|
-
type LLMContentPart = LLMTextPart | LLMToolCallPart | LLMToolResultPart;
|
|
19
|
-
interface LLMMessage {
|
|
20
|
-
role: LLMRole;
|
|
21
|
-
content: LLMContentPart[];
|
|
22
|
-
name?: string;
|
|
23
|
-
toolCallId?: string;
|
|
24
|
-
metadata?: Record<string, string>;
|
|
25
|
-
}
|
|
26
|
-
interface LLMToolDefinition {
|
|
27
|
-
name: string;
|
|
28
|
-
description?: string;
|
|
29
|
-
inputSchema: unknown;
|
|
30
|
-
}
|
|
31
|
-
interface LLMTokenUsage {
|
|
32
|
-
promptTokens: number;
|
|
33
|
-
completionTokens: number;
|
|
34
|
-
totalTokens: number;
|
|
35
|
-
}
|
|
36
|
-
interface LLMChatOptions {
|
|
37
|
-
model?: string;
|
|
38
|
-
temperature?: number;
|
|
39
|
-
topP?: number;
|
|
40
|
-
maxOutputTokens?: number;
|
|
41
|
-
stopSequences?: string[];
|
|
42
|
-
responseFormat?: 'text' | 'json';
|
|
43
|
-
tools?: LLMToolDefinition[];
|
|
44
|
-
userId?: string;
|
|
45
|
-
metadata?: Record<string, string>;
|
|
46
|
-
timeoutMs?: number;
|
|
47
|
-
signal?: AbortSignal;
|
|
48
|
-
}
|
|
49
|
-
interface LLMResponse {
|
|
50
|
-
message: LLMMessage;
|
|
51
|
-
usage?: LLMTokenUsage;
|
|
52
|
-
finishReason?: 'stop' | 'length' | 'tool_call' | 'content_filter';
|
|
53
|
-
raw?: unknown;
|
|
54
|
-
}
|
|
55
|
-
type LLMStreamChunk = {
|
|
56
|
-
type: 'message_delta';
|
|
57
|
-
delta: LLMContentPart;
|
|
58
|
-
index: number;
|
|
59
|
-
} | {
|
|
60
|
-
type: 'tool_call';
|
|
61
|
-
call: LLMToolCallPart;
|
|
62
|
-
index: number;
|
|
63
|
-
} | {
|
|
64
|
-
type: 'usage';
|
|
65
|
-
usage: LLMTokenUsage;
|
|
66
|
-
} | {
|
|
67
|
-
type: 'error';
|
|
68
|
-
error: Error;
|
|
69
|
-
} | {
|
|
70
|
-
type: 'end';
|
|
71
|
-
response: LLMResponse;
|
|
72
|
-
};
|
|
73
|
-
interface TokenCountResult {
|
|
74
|
-
promptTokens: number;
|
|
75
|
-
}
|
|
76
|
-
interface LLMProvider {
|
|
77
|
-
chat(messages: LLMMessage[], options?: LLMChatOptions): Promise<LLMResponse>;
|
|
78
|
-
stream(messages: LLMMessage[], options?: LLMChatOptions): AsyncIterable<LLMStreamChunk>;
|
|
79
|
-
countTokens(messages: LLMMessage[]): Promise<TokenCountResult>;
|
|
80
|
-
}
|
|
81
|
-
//#endregion
|
|
82
|
-
export { LLMProvider };
|
|
83
|
-
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm.d.ts","names":[],"sources":["../../../../../../contracts/src/integrations/providers/llm.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;AAAA,UAEK,WAAA,CAFE;EAEF,IAAA,EAAA,MAAA;EAKA,IAAA,EAAA,MAAA;AAOjB;AAMY,UAbK,eAAA,CAaS;EAAG,IAAA,EAAA,WAAA;EAAc,EAAA,EAAA,MAAA;EAAkB,IAAA,EAAA,MAAA;EAAiB,SAAA,EAAA,MAAA;AAE9E;AACQ,UATS,iBAAA,CAST;EACG,IAAA,EAAA,aAAA;EAGE,UAAA,EAAA,MAAA;EAAM,MAAA,EAAA,MAAA;AAGnB;AAMiB,KAhBL,cAAA,GAAiB,WAgBC,GAhBa,eAgBb,GAhB+B,iBAgB/B;AAMb,UApBA,UAAA,CAoBc;EAOrB,IAAA,EA1BF,OA0BE;EAEG,OAAA,EA3BF,cA2BE,EAAA;EAEF,IAAA,CAAA,EAAA,MAAA;EAAW,UAAA,CAAA,EAAA,MAAA;EAGL,QAAA,CAAA,EA7BJ,MA6Be,CAAA,MAAA,EACjB,MAAA,CAAA;AAMX;AAGa,UApCI,iBAAA,CAoCJ;EAKD,IAAA,EAAA,MAAA;EAKC,WAAA,CAAA,EAAA,MAAA;EAIA,WAAA,EAAA,OAAA;;AAIc,UAhDV,aAAA,CAgDU;EAGV,YAAA,EAAA,MAAgB;EAIhB,gBAAW,EAAA,MAAA;EACX,WAAA,EAAA,MAAA;;AAAiD,UAlDjD,cAAA,CAkDiD;EAAR,KAAA,CAAA,EAAA,MAAA;EAE5C,WAAA,CAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACK,eAAA,CAAA,EAAA,MAAA;EAAd,aAAA,CAAA,EAAA,MAAA,EAAA;EACmB,cAAA,CAAA,EAAA,MAAA,GAAA,MAAA;EAAuB,KAAA,CAAA,EAhDrC,iBAgDqC,EAAA;EAAR,MAAA,CAAA,EAAA,MAAA;EAAO,QAAA,CAAA,EA9CjC,MA8CiC,CAAA,MAAA,EAAA,MAAA,CAAA;;WA5CnC;;UAGM,WAAA;WACN;UACD;;;;KAKE,cAAA;;SAGC;;;;QAKD;;;;SAKC;;;SAIA;;;YAIG;;UAGC,gBAAA;;;UAIA,WAAA;iBACA,wBAAwB,iBAAiB,QAAQ;mBAEpD,wBACA,iBACT,cAAc;wBACK,eAAe,QAAQ"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import "../policy/spec.js";
|
|
2
|
-
import "../registry.js";
|
|
3
|
-
import "../ownership.js";
|
|
4
|
-
|
|
5
|
-
//#region ../contracts/src/knowledge/spec.d.ts
|
|
6
|
-
type KnowledgeCategory = 'canonical' | 'operational' | 'external' | 'ephemeral';
|
|
7
|
-
//#endregion
|
|
8
|
-
export { KnowledgeCategory };
|
|
9
|
-
//# sourceMappingURL=spec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","names":[],"sources":["../../../../../contracts/src/knowledge/spec.ts"],"sourcesContent":[],"mappings":";;;;;KAIY,iBAAA"}
|