@plumbus/core 0.5.0 → 0.6.1

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.
Files changed (99) hide show
  1. package/README.md +1 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/ai/ai/cost-tracker.d.ts +93 -0
  4. package/dist/ai/ai/derive-ledger-usage.d.ts +10 -0
  5. package/dist/ai/ai/model-pricing.d.ts +51 -0
  6. package/dist/ai/ai/provider.d.ts +214 -0
  7. package/dist/ai/ai/refusal.d.ts +27 -0
  8. package/dist/ai/ai/usage-client.d.ts +30 -0
  9. package/dist/ai/ai-service.d.ts +1 -1
  10. package/dist/ai/ai-service.d.ts.map +1 -1
  11. package/dist/ai/ai-service.js +21 -16
  12. package/dist/ai/ai-service.js.map +1 -1
  13. package/dist/ai/cost-tracker.d.ts +17 -1
  14. package/dist/ai/cost-tracker.d.ts.map +1 -1
  15. package/dist/ai/cost-tracker.js +8 -6
  16. package/dist/ai/cost-tracker.js.map +1 -1
  17. package/dist/ai/derive-ledger-usage.d.ts +11 -0
  18. package/dist/ai/derive-ledger-usage.d.ts.map +1 -0
  19. package/dist/ai/derive-ledger-usage.js +36 -0
  20. package/dist/ai/derive-ledger-usage.js.map +1 -0
  21. package/dist/ai/index.d.ts +1 -0
  22. package/dist/ai/index.d.ts.map +1 -1
  23. package/dist/ai/index.js +1 -0
  24. package/dist/ai/index.js.map +1 -1
  25. package/dist/ai/types/config.d.ts +72 -0
  26. package/dist/ai/types/enums.d.ts +73 -0
  27. package/dist/cli/cli.d.ts.map +1 -1
  28. package/dist/cli/cli.js +2 -1
  29. package/dist/cli/cli.js.map +1 -1
  30. package/dist/cli/commands/flow-schedule-list.d.ts +31 -0
  31. package/dist/cli/commands/flow-schedule-list.d.ts.map +1 -0
  32. package/dist/cli/commands/flow-schedule-list.js +93 -0
  33. package/dist/cli/commands/flow-schedule-list.js.map +1 -0
  34. package/dist/cli/commands/flow.d.ts.map +1 -1
  35. package/dist/cli/commands/flow.js +26 -0
  36. package/dist/cli/commands/flow.js.map +1 -1
  37. package/dist/cli/commands/index.d.ts +1 -0
  38. package/dist/cli/commands/index.d.ts.map +1 -1
  39. package/dist/cli/commands/index.js +1 -0
  40. package/dist/cli/commands/index.js.map +1 -1
  41. package/dist/cli/commands/init.d.ts +1 -1
  42. package/dist/cli/commands/init.d.ts.map +1 -1
  43. package/dist/cli/commands/init.js +43 -2
  44. package/dist/cli/commands/init.js.map +1 -1
  45. package/dist/cli/commands/translation.d.ts.map +1 -1
  46. package/dist/cli/commands/translation.js +20 -2
  47. package/dist/cli/commands/translation.js.map +1 -1
  48. package/dist/cli/commands/ui.d.ts +4 -1
  49. package/dist/cli/commands/ui.d.ts.map +1 -1
  50. package/dist/cli/commands/ui.js +4 -1
  51. package/dist/cli/commands/ui.js.map +1 -1
  52. package/dist/cli/commands/voice.d.ts +12 -0
  53. package/dist/cli/commands/voice.d.ts.map +1 -0
  54. package/dist/cli/commands/voice.js +109 -0
  55. package/dist/cli/commands/voice.js.map +1 -0
  56. package/dist/cli/mcp-serve-context.d.ts.map +1 -1
  57. package/dist/cli/mcp-serve-context.js +133 -126
  58. package/dist/cli/mcp-serve-context.js.map +1 -1
  59. package/dist/cli/templates/resources.d.ts +2 -0
  60. package/dist/cli/templates/resources.d.ts.map +1 -1
  61. package/dist/cli/templates/resources.js +22 -1
  62. package/dist/cli/templates/resources.js.map +1 -1
  63. package/dist/cli/voice-agent-bootstrap.d.ts +22 -0
  64. package/dist/cli/voice-agent-bootstrap.d.ts.map +1 -0
  65. package/dist/cli/voice-agent-bootstrap.js +12 -0
  66. package/dist/cli/voice-agent-bootstrap.js.map +1 -0
  67. package/dist/cli/voice-serve-context.d.ts +7 -0
  68. package/dist/cli/voice-serve-context.d.ts.map +1 -0
  69. package/dist/cli/voice-serve-context.js +26 -0
  70. package/dist/cli/voice-serve-context.js.map +1 -0
  71. package/dist/execution/context-factory.d.ts.map +1 -1
  72. package/dist/execution/context-factory.js +6 -0
  73. package/dist/execution/context-factory.js.map +1 -1
  74. package/dist/flows/engine.d.ts.map +1 -1
  75. package/dist/flows/engine.js +2 -0
  76. package/dist/flows/engine.js.map +1 -1
  77. package/dist/index.d.ts +2 -2
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/server/bootstrap.d.ts.map +1 -1
  82. package/dist/server/bootstrap.js +6 -0
  83. package/dist/server/bootstrap.js.map +1 -1
  84. package/dist/testing/context.d.ts.map +1 -1
  85. package/dist/testing/context.js +2 -0
  86. package/dist/testing/context.js.map +1 -1
  87. package/dist/testing/e2e.d.ts +6 -0
  88. package/dist/testing/e2e.d.ts.map +1 -1
  89. package/dist/testing/e2e.js +2 -0
  90. package/dist/testing/e2e.js.map +1 -1
  91. package/dist/types/context.d.ts +15 -0
  92. package/dist/types/context.d.ts.map +1 -1
  93. package/instructions/cli.md +1 -0
  94. package/instructions/deployment.md +1 -0
  95. package/instructions/framework.md +1 -0
  96. package/instructions/mcp.md +1 -1
  97. package/instructions/peer-dependencies.md +46 -0
  98. package/instructions/translations.md +33 -3
  99. package/package.json +8 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/voice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE/D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CAGpF;AAED,wBAAgB,oCAAoC,IAAI,MAAM,CAE7D;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAInD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkG3D"}
@@ -0,0 +1,109 @@
1
+ import { fileURLToPath } from "node:url";
2
+ import { buildVoiceServeContext } from "../voice-serve-context.js";
3
+ import { info } from "../utils.js";
4
+ async function loadVoiceRuntime() {
5
+ try {
6
+ return await import("@plumbus/voice");
7
+ } catch {
8
+ console.error("");
9
+ console.error("Voice runtime not installed.");
10
+ console.error("Run: pnpm add @plumbus/voice");
11
+ console.error("");
12
+ process.exit(1);
13
+ }
14
+ }
15
+ function isVoiceWorkerDisabled() {
16
+ return process.env.VOICE_AGENT_ENABLED === "false";
17
+ }
18
+ function resolveVoiceWorkerBranch(opts) {
19
+ const roomName = opts.room ?? process.env.VOICE_AGENT_ROOM;
20
+ return roomName ? "join-room" : "agent-dispatch";
21
+ }
22
+ function resolveVoiceAgentBootstrapModulePath() {
23
+ return fileURLToPath(new URL("../voice-agent-bootstrap.js", import.meta.url));
24
+ }
25
+ function ensureVoiceAgentBootstrapEnv() {
26
+ if (!process.env.PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE) {
27
+ process.env.PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE = resolveVoiceAgentBootstrapModulePath();
28
+ }
29
+ }
30
+ function registerVoiceCommand(program) {
31
+ const voice = program.command("voice").description("Realtime voice worker and tooling");
32
+ voice.command("worker").description("Join a LiveKit voice room as the agent worker (dev: --room <sessionId>)").option("--room <room>", "LiveKit room name to join (typically interview sessionId)").option("--voice <name>", "Voice definition name to use").action(async (opts) => {
33
+ if (isVoiceWorkerDisabled()) {
34
+ info("Voice worker disabled (VOICE_AGENT_ENABLED=false)");
35
+ process.exit(0);
36
+ }
37
+ const voicePkg = await loadVoiceRuntime();
38
+ const ctx = await buildVoiceServeContext();
39
+ const branch = resolveVoiceWorkerBranch(opts);
40
+ if (branch === "agent-dispatch") {
41
+ info("Starting LiveKit voice agent dispatch worker");
42
+ ensureVoiceAgentBootstrapEnv();
43
+ const handle2 = await voicePkg.startVoiceAgentWorker({
44
+ voices: ctx.voices,
45
+ providers: ctx.providers,
46
+ createDependencies: (auth) => ctx.routeConfig.createDependencies(auth),
47
+ agentName: opts.voice,
48
+ bootstrapModule: process.env.PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE
49
+ });
50
+ const shutdown2 = async () => {
51
+ await handle2.stop();
52
+ await ctx.closeQueues();
53
+ await ctx.closeDb();
54
+ process.exit(0);
55
+ };
56
+ process.on("SIGINT", () => {
57
+ void shutdown2();
58
+ });
59
+ process.on("SIGTERM", () => {
60
+ void shutdown2();
61
+ });
62
+ info("Voice agent dispatch worker running \u2014 press Ctrl+C to stop");
63
+ return;
64
+ }
65
+ const selectedVoice = ctx.voices.find((candidate) => candidate.name === opts.voice) ?? ctx.voices.find((candidate) => candidate.transport.provider === "livekit");
66
+ if (!selectedVoice) {
67
+ console.error("No livekit voice definitions found under app/voices/");
68
+ process.exit(1);
69
+ }
70
+ info(
71
+ `Joining LiveKit room ${opts.room ?? process.env.VOICE_AGENT_ROOM} as voice "${selectedVoice.name}"`
72
+ );
73
+ const roomName = opts.room ?? process.env.VOICE_AGENT_ROOM ?? "";
74
+ const handle = await voicePkg.joinVoiceRoomSession({
75
+ voice: selectedVoice,
76
+ providers: ctx.providers,
77
+ roomName,
78
+ sessionId: roomName,
79
+ createExecutionContext: ({ userId, tenantId, metadata }) => {
80
+ const resolvedUserId = userId ?? (typeof metadata?.userId === "string" ? metadata.userId : void 0) ?? "voice-worker";
81
+ const resolvedTenantId = tenantId ?? (typeof metadata?.tenantId === "string" ? metadata.tenantId : void 0) ?? "default";
82
+ return voicePkg.createVoiceExecutionContext(ctx.routeConfig, {
83
+ userId: resolvedUserId,
84
+ tenantId: resolvedTenantId
85
+ });
86
+ }
87
+ });
88
+ const shutdown = async () => {
89
+ await handle.stop();
90
+ await ctx.closeQueues();
91
+ await ctx.closeDb();
92
+ process.exit(0);
93
+ };
94
+ process.on("SIGINT", () => {
95
+ void shutdown();
96
+ });
97
+ process.on("SIGTERM", () => {
98
+ void shutdown();
99
+ });
100
+ info("Voice worker connected \u2014 press Ctrl+C to stop");
101
+ });
102
+ }
103
+ export {
104
+ ensureVoiceAgentBootstrapEnv,
105
+ isVoiceWorkerDisabled,
106
+ registerVoiceCommand,
107
+ resolveVoiceAgentBootstrapModulePath,
108
+ resolveVoiceWorkerBranch
109
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../../src/cli/commands/voice.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-serve-context.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-serve-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAKlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,kBAAkB,CAAC;IACvB,YAAY,EAAE,kBAAkB,CAAC;IACjC,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAoBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CA8GrE"}
1
+ {"version":3,"file":"mcp-serve-context.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-serve-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAQtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,kBAAkB,CAAC;IACvB,YAAY,EAAE,kBAAkB,CAAC;IACjC,WAAW,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAoBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CA+GrE"}
@@ -1,134 +1,141 @@
1
- // ── Shared wiring for plumbus mcp serve ──
2
- // Builds registries, DB, auth, and RouteGeneratorConfig-compatible deps for MCP runtime.
3
- import { createAIService, singleProviderConfig } from '../ai/ai-service.js';
4
- import { createCostTracker } from '../ai/cost-tracker.js';
5
- import { createProviderAdapter } from '../ai/provider.js';
6
- import { createAuditService } from '../audit/service.js';
7
- import { createJwtAdapter } from '../auth/adapter.js';
8
- import { loadConfig } from '../config/loader.js';
9
- import { closeDatabaseConnection, resolveDatabaseConnection } from '../data/connection.js';
10
- import { EntityRegistry } from '../data/registry.js';
11
- import { createEventEmitter } from '../events/emitter.js';
12
- import { EventRegistry } from '../events/registry.js';
13
- import { CapabilityRegistry } from '../execution/capability-registry.js';
14
- import { buildCapabilityRuntimeDeps } from '../execution/capability-invocation.js';
15
- import { createInvocationEmitScope, resolveInvocationCausationId, } from '../execution/invocation-emit-scope.js';
16
- import { createFlowEngine } from '../flows/engine.js';
17
- import { createFlowService } from '../flows/flow-service.js';
18
- import { FlowRegistry } from '../flows/registry.js';
19
- import { createTranslationService, TranslationRegistry } from '../translations/index.js';
20
- import { resolveRuntimeQueues } from '../runtime/queue-factory.js';
21
- import { warn } from './utils.js';
22
- import { discoverResources } from './discover.js';
1
+ import { PromptRegistry } from "../ai/prompt-registry.js";
2
+ import { createAuditService } from "../audit/service.js";
3
+ import { createJwtAdapter } from "../auth/adapter.js";
4
+ import { loadConfig } from "../config/loader.js";
5
+ import { closeDatabaseConnection, resolveDatabaseConnection } from "../data/connection.js";
6
+ import { EntityRegistry } from "../data/registry.js";
7
+ import { createEventEmitter } from "../events/emitter.js";
8
+ import { EventRegistry } from "../events/registry.js";
9
+ import { CapabilityRegistry } from "../execution/capability-registry.js";
10
+ import { buildCapabilityRuntimeDeps } from "../execution/capability-invocation.js";
11
+ import {
12
+ createInvocationEmitScope,
13
+ resolveInvocationCausationId
14
+ } from "../execution/invocation-emit-scope.js";
15
+ import { createFlowEngine } from "../flows/engine.js";
16
+ import { createFlowService } from "../flows/flow-service.js";
17
+ import { FlowRegistry } from "../flows/registry.js";
18
+ import { createTranslationService, TranslationRegistry } from "../translations/index.js";
19
+ import { buildWorkerAiService } from "../runtime/bootstrap.js";
20
+ import { loadServerExtensions } from "../runtime/load-extensions.js";
21
+ import { resolveRuntimeQueues } from "../runtime/queue-factory.js";
22
+ import { warn } from "./utils.js";
23
+ import { discoverResources } from "./discover.js";
23
24
  async function resolveMcpServeAuthAdapter(config) {
24
- if (config.mcp?.agents && Object.keys(config.mcp.agents).length > 0) {
25
- const { createMcpAuthAdapter } = await import('@plumbus/mcp');
26
- return createMcpAuthAdapter({
27
- agents: config.mcp.agents,
28
- envToken: process.env.PLUMBUS_MCP_TOKEN,
29
- });
30
- }
31
- warn('plumbus.config.mcp.agents is not configured — MCP requests will be anonymous and only `access.public: true` capabilities will be callable. See docs/mcp/agent-authentication.md.');
32
- return createJwtAdapter({
33
- secret: config.auth.secret ?? 'development-secret-placeholder-32chars-min',
34
- issuer: config.auth.issuer,
35
- audience: config.auth.audience,
25
+ if (config.mcp?.agents && Object.keys(config.mcp.agents).length > 0) {
26
+ const { createMcpAuthAdapter } = await import("@plumbus/mcp");
27
+ return createMcpAuthAdapter({
28
+ agents: config.mcp.agents,
29
+ envToken: process.env.PLUMBUS_MCP_TOKEN
36
30
  });
31
+ }
32
+ warn(
33
+ "plumbus.config.mcp.agents is not configured \u2014 MCP requests will be anonymous and only `access.public: true` capabilities will be callable. See docs/mcp/agent-authentication.md."
34
+ );
35
+ return createJwtAdapter({
36
+ secret: config.auth.secret ?? "development-secret-placeholder-32chars-min",
37
+ issuer: config.auth.issuer,
38
+ audience: config.auth.audience
39
+ });
37
40
  }
38
- export async function buildMcpServeContext() {
39
- const config = loadConfig({ environment: 'development' });
40
- const resources = await discoverResources();
41
- const capabilities = new CapabilityRegistry();
42
- capabilities.registerAll(resources.capabilities);
43
- const entities = new EntityRegistry();
44
- entities.registerAll(resources.entities);
45
- const events = new EventRegistry();
46
- events.registerAll(resources.events);
47
- const flows = new FlowRegistry();
48
- flows.registerAll(resources.flows);
49
- const dbConnection = await resolveDatabaseConnection(config.database, {});
50
- const db = dbConnection.db;
51
- const queues = await resolveRuntimeQueues(config);
52
- const logger = {
53
- info: (msg) => console.log(msg),
54
- warn: (msg) => console.warn(msg),
55
- error: (msg) => console.error(msg),
56
- debug: (msg) => console.debug(msg),
57
- };
58
- const translationRegistry = new TranslationRegistry();
59
- translationRegistry.registerAll(resources.translations ?? []);
60
- const defaultLocale = resources.translations?.[0]?.defaultLocale ?? 'en';
61
- const authAdapter = await resolveMcpServeAuthAdapter(config);
62
- let aiService;
63
- if (config.ai) {
64
- const adapter = createProviderAdapter(config.ai.provider, config.ai);
65
- const costTracker = createCostTracker({
66
- maxTokensPerRequest: config.ai.maxTokensPerRequest,
67
- dailyCostLimit: config.ai.dailyCostLimit,
68
- });
69
- aiService = createAIService(singleProviderConfig(adapter, {
70
- costTracker,
71
- }));
41
+ async function buildMcpServeContext() {
42
+ const config = loadConfig({ environment: "development" });
43
+ const resources = await discoverResources();
44
+ const capabilities = new CapabilityRegistry();
45
+ capabilities.registerAll(resources.capabilities);
46
+ const promptRegistry = new PromptRegistry();
47
+ for (const prompt of resources.prompts) {
48
+ promptRegistry.register(prompt);
49
+ }
50
+ const entities = new EntityRegistry();
51
+ entities.registerAll(resources.entities);
52
+ const events = new EventRegistry();
53
+ events.registerAll(resources.events);
54
+ const flows = new FlowRegistry();
55
+ flows.registerAll(resources.flows);
56
+ const dbConnection = await resolveDatabaseConnection(config.database, {});
57
+ const db = dbConnection.db;
58
+ const queues = await resolveRuntimeQueues(config);
59
+ const logger = {
60
+ info: (msg) => console.log(msg),
61
+ warn: (msg) => console.warn(msg),
62
+ error: (msg) => console.error(msg),
63
+ debug: (msg) => console.debug(msg)
64
+ };
65
+ const translationRegistry = new TranslationRegistry();
66
+ translationRegistry.registerAll(resources.translations ?? []);
67
+ const defaultLocale = resources.translations?.[0]?.defaultLocale ?? "en";
68
+ const authAdapter = await resolveMcpServeAuthAdapter(config);
69
+ const extensions = await loadServerExtensions();
70
+ const aiService = buildWorkerAiService({
71
+ config,
72
+ db,
73
+ promptRegistry,
74
+ onAICostRecorded: extensions.onAICostRecorded,
75
+ resolveAiOverrides: extensions.resolveAiOverrides,
76
+ enableStrictStructuredOutputs: extensions.enableStrictStructuredOutputs
77
+ });
78
+ const requestFlowEngine = createFlowEngine({
79
+ db,
80
+ registry: flows,
81
+ stepDeps: {
82
+ async executeCapability() {
83
+ return {
84
+ success: false,
85
+ error: "Flow execution is worker-owned in MCP serve bootstrap"
86
+ };
87
+ },
88
+ evaluateCondition() {
89
+ return false;
90
+ }
72
91
  }
73
- const requestFlowEngine = createFlowEngine({
92
+ });
93
+ const routeConfig = {
94
+ db,
95
+ authAdapter,
96
+ createDependencies: (auth, options) => {
97
+ const audit = createAuditService({ db, auth });
98
+ const data = entities.createDataService({
74
99
  db,
75
- registry: flows,
76
- stepDeps: {
77
- async executeCapability() {
78
- return {
79
- success: false,
80
- error: 'Flow execution is worker-owned in MCP serve bootstrap',
81
- };
82
- },
83
- evaluateCondition() {
84
- return false;
85
- },
86
- },
87
- });
88
- const routeConfig = {
100
+ auth,
101
+ audit,
102
+ bypassTenantScope: options?.bypassTenantScope
103
+ });
104
+ const invocationEmitScope = createInvocationEmitScope();
105
+ const eventService = createEventEmitter({
89
106
  db,
90
- authAdapter,
91
- createDependencies: (auth, options) => {
92
- const audit = createAuditService({ db, auth });
93
- const data = entities.createDataService({
94
- db,
95
- auth,
96
- audit,
97
- bypassTenantScope: options?.bypassTenantScope,
98
- });
99
- const invocationEmitScope = createInvocationEmitScope();
100
- const eventService = createEventEmitter({
101
- db,
102
- auth,
103
- registry: events,
104
- audit,
105
- getCausationId: () => resolveInvocationCausationId(invocationEmitScope),
106
- });
107
- return {
108
- auth,
109
- data,
110
- events: eventService,
111
- flows: createFlowService(requestFlowEngine, auth),
112
- ai: aiService,
113
- audit,
114
- logger,
115
- config: config,
116
- translations: createTranslationService(translationRegistry, defaultLocale),
117
- invocationEmitScope,
118
- ...buildCapabilityRuntimeDeps(capabilities),
119
- };
120
- },
121
- };
122
- return {
107
+ auth,
108
+ registry: events,
109
+ audit,
110
+ getCausationId: () => resolveInvocationCausationId(invocationEmitScope)
111
+ });
112
+ return {
113
+ auth,
114
+ data,
115
+ events: eventService,
116
+ flows: createFlowService(requestFlowEngine, auth),
117
+ ai: aiService,
118
+ audit,
119
+ logger,
123
120
  config,
124
- db,
125
- capabilities,
126
- routeConfig,
127
- ...(queues.isDurable ? { jobQueue: queues.jobs } : {}),
128
- closeQueues: () => queues.close(),
129
- closeDb: async () => {
130
- await closeDatabaseConnection(dbConnection);
131
- },
132
- };
121
+ translations: createTranslationService(translationRegistry, defaultLocale),
122
+ invocationEmitScope,
123
+ ...buildCapabilityRuntimeDeps(capabilities)
124
+ };
125
+ }
126
+ };
127
+ return {
128
+ config,
129
+ db,
130
+ capabilities,
131
+ routeConfig,
132
+ ...queues.isDurable ? { jobQueue: queues.jobs } : {},
133
+ closeQueues: () => queues.close(),
134
+ closeDb: async () => {
135
+ await closeDatabaseConnection(dbConnection);
136
+ }
137
+ };
133
138
  }
134
- //# sourceMappingURL=mcp-serve-context.js.map
139
+ export {
140
+ buildMcpServeContext
141
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-serve-context.js","sourceRoot":"","sources":["../../src/cli/mcp-serve-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-serve-context.js","sourceRoot":"","sources":["../../src/cli/mcp-serve-context.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,yFAAyF;AAGzF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAYlD,KAAK,UAAU,0BAA0B,CAAC,MAAqB;IAC7D,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9D,OAAO,oBAAoB,CAAC;YAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM;YACzB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;SACxC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CACF,kLAAkL,CACnL,CAAC;IACF,OAAO,gBAAgB,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,4CAA4C;QAC1E,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAE5C,MAAM,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC9C,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IACjC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;IAE3B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACxC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KAC3C,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACtD,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,IAAI,CAAC;IAEzE,MAAM,WAAW,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAEhD,MAAM,SAAS,GAAG,oBAAoB,CAAC;QACrC,MAAM;QACN,EAAE;QACF,cAAc;QACd,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;QACjD,6BAA6B,EAAE,UAAU,CAAC,6BAA6B;KACxE,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;QACzC,EAAE;QACF,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE;YACR,KAAK,CAAC,iBAAiB;gBACrB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uDAAuD;iBAC/D,CAAC;YACJ,CAAC;YACD,iBAAiB;gBACf,OAAO,KAAK,CAAC;YACf,CAAC;SACF;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAyB;QACxC,EAAE;QACF,WAAW;QACX,kBAAkB,EAAE,CAAC,IAAiB,EAAE,OAAQ,EAAuB,EAAE;YACvE,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,iBAAiB,CAAC;gBACtC,EAAE;gBACF,IAAI;gBACJ,KAAK;gBACL,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;aAC9C,CAAC,CAAC;YACH,MAAM,mBAAmB,GAAG,yBAAyB,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACtC,EAAE;gBACF,IAAI;gBACJ,QAAQ,EAAE,MAAM;gBAChB,KAAK;gBACL,cAAc,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,mBAAmB,CAAC;aACxE,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI;gBACJ,IAAI;gBACJ,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC;gBACjD,EAAE,EAAE,SAAS;gBACb,KAAK;gBACL,MAAM;gBACN,MAAM,EAAE,MAA4C;gBACpD,YAAY,EAAE,wBAAwB,CAAC,mBAAmB,EAAE,aAAa,CAAC;gBAC1E,mBAAmB;gBACnB,GAAG,0BAA0B,CAAC,YAAY,CAAC;aAC5C,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,EAAE;QACF,YAAY;QACZ,WAAW;QACX,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -6,4 +6,6 @@ export declare function flowTestTemplate(name: string, _domain: string): string;
6
6
  export declare function eventTemplate(name: string): string;
7
7
  export declare function promptTemplate(name: string): string;
8
8
  export declare function translationTemplate(name: string): string;
9
+ export declare function localeMessagesTemplate(): string;
10
+ export declare function localeFolderTranslationTemplate(name: string): string;
9
11
  //# sourceMappingURL=resources.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/resources.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAuDrF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAW5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0BtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAexD"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/resources.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAuDrF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAW5E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0BtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAexD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcpE"}
@@ -1,6 +1,6 @@
1
1
  // ── Resource Templates ──
2
2
  // Code templates for scaffolding new resources
3
- import { toCamelCase, toPascalCase } from '../utils.js';
3
+ import { toCamelCase, toKebabCase, toPascalCase } from '../utils.js';
4
4
  export function capabilityTemplate(name, kind, domain) {
5
5
  const pascal = toPascalCase(name);
6
6
  return `import { defineCapability } from "@plumbus/core";
@@ -187,4 +187,25 @@ export const ${toCamelCase(name)}Translation = defineTranslation({
187
187
  });
188
188
  `;
189
189
  }
190
+ export function localeMessagesTemplate() {
191
+ return `export const messages = {
192
+ // TODO: add message keys
193
+ } as const satisfies Record<string, string>;
194
+ `;
195
+ }
196
+ export function localeFolderTranslationTemplate(name) {
197
+ const kebab = toKebabCase(name);
198
+ const camel = toCamelCase(name);
199
+ return `import { defineTranslation } from "@plumbus/core";
200
+ import { messages as en } from "./en/${kebab}.messages.js";
201
+ import { messages as he } from "./he/${kebab}.messages.js";
202
+
203
+ export const ${camel}Translation = defineTranslation({
204
+ name: "${name}",
205
+ defaultLocale: "en",
206
+ locales: ["en", "he"],
207
+ messages: { en, he },
208
+ });
209
+ `;
210
+ }
190
211
  //# sourceMappingURL=resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/cli/templates/resources.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;WACJ,IAAI;aACF,MAAM;;;;;;wDAMqC,IAAI;;;;;;yBAMnC,MAAM,IAAI,IAAI;;;;;;;;;;;;;;;;;;;;;;;yBAuBd,MAAM;;MAG3B,IAAI,KAAK,cAAc;QACrB,CAAC,CAAC;;;8CAGsC;QACxC,CAAC,CAAC,EACN;;CAED,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,OAAe;IAClE,OAAO;cACK,WAAW,CAAC,IAAI,CAAC;;YAEnB,YAAY,CAAC,IAAI,CAAC;;;;;;CAM7B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO;;eAEM,WAAW,CAAC,IAAI,CAAC;WACrB,MAAM;;;;;;;;;;;;CAYhB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACvD,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;aACF,MAAM;;;;;;;;;;qBAUE,MAAM;;;;CAI1B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,OAAO;;WAEE,WAAW,CAAC,IAAI,CAAC;;YAEhB,YAAY,CAAC,IAAI,CAAC;;wCAEU,WAAW,CAAC,IAAI,CAAC;;;;;;;;wCAQjB,WAAW,CAAC,IAAI,CAAC;;;;;;;;;;CAUxD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;CAMd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;;;;;;;;;;;CAgBd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO;;eAEM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;;;;;CAUd,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/cli/templates/resources.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IAC3E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;WACJ,IAAI;aACF,MAAM;;;;;;wDAMqC,IAAI;;;;;;yBAMnC,MAAM,IAAI,IAAI;;;;;;;;;;;;;;;;;;;;;;;yBAuBd,MAAM;;MAG3B,IAAI,KAAK,cAAc;QACrB,CAAC,CAAC;;;8CAGsC;QACxC,CAAC,CAAC,EACN;;CAED,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,OAAe;IAClE,OAAO;cACK,WAAW,CAAC,IAAI,CAAC;;YAEnB,YAAY,CAAC,IAAI,CAAC;;;;;;CAM7B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO;;eAEM,WAAW,CAAC,IAAI,CAAC;WACrB,MAAM;;;;;;;;;;;;CAYhB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACvD,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;aACF,MAAM;;;;;;;;;;qBAUE,MAAM;;;;CAI1B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAC5D,OAAO;;WAEE,WAAW,CAAC,IAAI,CAAC;;YAEhB,YAAY,CAAC,IAAI,CAAC;;wCAEU,WAAW,CAAC,IAAI,CAAC;;;;;;;;wCAQjB,WAAW,CAAC,IAAI,CAAC;;;;;;;;;;CAUxD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;CAMd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO;;;eAGM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;;;;;;;;;;;CAgBd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO;;eAEM,WAAW,CAAC,IAAI,CAAC;WACrB,IAAI;;;;;;;;;;CAUd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;CAGR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAY;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO;uCAC8B,KAAK;uCACL,KAAK;;eAE7B,KAAK;WACT,IAAI;;;;;CAKd,CAAC;AACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ContextDependencies } from '../execution/context-factory.js';
2
+ import type { VoiceDefinition } from '@plumbus/voice';
3
+ import type { VoiceProvidersConfig } from '@plumbus/voice';
4
+ import type { VoiceSessionBudgetConfig } from '@plumbus/voice';
5
+ export interface VoiceAgentBootstrapResult {
6
+ voices: VoiceDefinition[];
7
+ providers: VoiceProvidersConfig;
8
+ createDependencies: (auth: {
9
+ userId: string;
10
+ tenantId?: string;
11
+ roles: string[];
12
+ scopes: string[];
13
+ provider: string;
14
+ }) => ContextDependencies;
15
+ sessionBudget?: VoiceSessionBudgetConfig;
16
+ }
17
+ /**
18
+ * Builds app voice runtime config for LiveKit agent child processes.
19
+ * Child job processes import this module via PLUMBUS_VOICE_AGENT_BOOTSTRAP_MODULE.
20
+ */
21
+ export declare function bootstrapVoiceAgentRuntime(): Promise<VoiceAgentBootstrapResult>;
22
+ //# sourceMappingURL=voice-agent-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-agent-bootstrap.d.ts","sourceRoot":"","sources":["../../src/cli/voice-agent-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG/D,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,EAAE,oBAAoB,CAAC;IAChC,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,KAAK,mBAAmB,CAAC;IAC1B,aAAa,CAAC,EAAE,wBAAwB,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAOrF"}
@@ -0,0 +1,12 @@
1
+ import { buildVoiceServeContext } from "./voice-serve-context.js";
2
+ async function bootstrapVoiceAgentRuntime() {
3
+ const ctx = await buildVoiceServeContext();
4
+ return {
5
+ voices: ctx.voices,
6
+ providers: ctx.providers,
7
+ createDependencies: (auth) => ctx.routeConfig.createDependencies(auth)
8
+ };
9
+ }
10
+ export {
11
+ bootstrapVoiceAgentRuntime
12
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-agent-bootstrap.js","sourceRoot":"","sources":["../../src/cli/voice-agent-bootstrap.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAelE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,GAAG,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC3C,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type McpServeContext } from './mcp-serve-context.js';
2
+ export interface VoiceServeContext extends McpServeContext {
3
+ voices: Awaited<ReturnType<typeof import('@plumbus/voice').discoverVoices>>;
4
+ providers: ReturnType<typeof import('@plumbus/voice').resolveVoiceProvidersFromEnv>;
5
+ }
6
+ export declare function buildVoiceServeContext(): Promise<VoiceServeContext>;
7
+ //# sourceMappingURL=voice-serve-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-serve-context.d.ts","sourceRoot":"","sources":["../../src/cli/voice-serve-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpF,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC;IAC5E,SAAS,EAAE,UAAU,CAAC,cAAc,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;CACrF;AAcD,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAWzE"}
@@ -0,0 +1,26 @@
1
+ import { buildMcpServeContext } from "./mcp-serve-context.js";
2
+ async function loadVoicePackage() {
3
+ try {
4
+ return await import("@plumbus/voice");
5
+ } catch {
6
+ console.error("");
7
+ console.error("Voice runtime not installed.");
8
+ console.error("Run: pnpm add @plumbus/voice");
9
+ console.error("");
10
+ process.exit(1);
11
+ }
12
+ }
13
+ async function buildVoiceServeContext() {
14
+ const voicePkg = await loadVoicePackage();
15
+ const base = await buildMcpServeContext();
16
+ const voices = await voicePkg.discoverVoices();
17
+ const providers = voicePkg.resolveVoiceProvidersFromEnv();
18
+ return {
19
+ ...base,
20
+ voices,
21
+ providers
22
+ };
23
+ }
24
+ export {
25
+ buildVoiceServeContext
26
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-serve-context.js","sourceRoot":"","sources":["../../src/cli/voice-serve-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAC;AAOpF,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,4BAA4B,EAAE,CAAC;IAE1D,OAAO;QACL,GAAG,IAAI;QACP,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-factory.d.ts","sourceRoot":"","sources":["../../src/execution/context-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,gBAAgB,EAKjB,MAAM,qBAAqB,CAAC;AAK7B,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAmG/D;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CA8BlF"}
1
+ {"version":3,"file":"context-factory.d.ts","sourceRoot":"","sources":["../../src/execution/context-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,gBAAgB,EAKjB,MAAM,qBAAqB,CAAC;AAK7B,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAyG/D;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CA8BlF"}
@@ -23,6 +23,12 @@ const noopFlows = {
23
23
  async heartbeat() { },
24
24
  };
25
25
  const noopAI = {
26
+ async recordProviderCost() {
27
+ throw new Error('AI service not configured');
28
+ },
29
+ checkProviderCostBudget() {
30
+ throw new Error('AI service not configured');
31
+ },
26
32
  async generate() {
27
33
  throw new Error('AI service not configured');
28
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"context-factory.js","sourceRoot":"","sources":["../../src/execution/context-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcxD,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAIhF,MAAM,SAAS,GAAiB;IAC9B,KAAK,CAAC,MAAM,KAAI,CAAC;CAClB,CAAC;AAEF,MAAM,gBAAgB,GAAuB;IAC3C,MAAM,EAAE,IAAI;IACZ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;CAChB,CAAC;AAEF,MAAM,UAAU,GAAiB;IAC/B,KAAK,CAAC,IAAI,KAAI,CAAC;IACf,KAAK,CAAC,QAAQ,KAAI,CAAC;CACpB,CAAC;AAEF,MAAM,SAAS,GAAgB;IAC7B,KAAK,CAAC,KAAK;QACT,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,MAAM,KAAI,CAAC;IACjB,KAAK,CAAC,MAAM,KAAI,CAAC;IACjB,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,SAAS,KAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,GAAc;IACxB,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,cAAc;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;CACF,CAAC;AAEF,MAAM,aAAa,GAAkB;IACnC,KAAK,CAAC,OAAO,EAAE,QAAQ;QACrB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,QAAQ;QACpB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,QAAQ;QACpB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,QAAQ;QACrB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,MAAM,QAAQ,GAAgB;IAC5B,GAAG;QACD,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;CACF,CAAC;AAEF,SAAS,qBAAqB,CAAC,IAAiB;IAC9C,OAAO;QACL,OAAO,CAAC,IAAY;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,QAAQ,CAAC,KAAa;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,WAAW,CAAC,KAAe;YACzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,YAAY,CAAC,MAAgB;YAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,WAAW,CAAC,IAAY;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAa;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,KAAK,GAAG,CAAC,EAAE;oBACrE,IAAI,EAAE,WAAW;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAyB;IAC9D,MAAM,WAAW,GAAG;QAClB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;KAC9C,CAAC;IAEF,MAAM,GAAG,GAAqB;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,MAAM,EAAE,kBAAkB,EAAE;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,aAAa;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACzB,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,gBAAgB;QACnD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,kCAAkC,CAAC,EAAsB,CAAC;QACxE,SAAS,EAAE,WAAW;KACvB,CAAC;IAEF,GAAG,CAAC,YAAY,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAC;IAE3D,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"context-factory.js","sourceRoot":"","sources":["../../src/execution/context-factory.ts"],"names":[],"mappings":"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"}