@plumbus/core 0.2.5 → 0.2.7
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/.tsbuildinfo +1 -1
- package/dist/ai/__tests__/model-pricing.test.d.ts +2 -0
- package/dist/ai/__tests__/model-pricing.test.d.ts.map +1 -0
- package/dist/ai/__tests__/model-pricing.test.js +112 -0
- package/dist/ai/__tests__/model-pricing.test.js.map +1 -0
- package/dist/ai/__tests__/provider.test.js +15 -2
- package/dist/ai/__tests__/provider.test.js.map +1 -1
- package/dist/ai/ai-service.d.ts.map +1 -1
- package/dist/ai/ai-service.js +13 -1
- package/dist/ai/ai-service.js.map +1 -1
- package/dist/ai/index.d.ts +2 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +3 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/model-pricing.d.ts +29 -0
- package/dist/ai/model-pricing.d.ts.map +1 -0
- package/dist/ai/model-pricing.js +133 -0
- package/dist/ai/model-pricing.js.map +1 -0
- package/dist/ai/provider.d.ts +4 -0
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/provider.js +4 -0
- package/dist/ai/provider.js.map +1 -1
- package/dist/ai/validation.d.ts.map +1 -1
- package/dist/ai/validation.js +2 -0
- package/dist/ai/validation.js.map +1 -1
- package/dist/api/__tests__/route-generator.test.js +112 -0
- package/dist/api/__tests__/route-generator.test.js.map +1 -1
- package/dist/api/route-generator.d.ts +12 -0
- package/dist/api/route-generator.d.ts.map +1 -1
- package/dist/api/route-generator.js +69 -1
- package/dist/api/route-generator.js.map +1 -1
- package/dist/cli/__tests__/cli.test.js +4 -1
- package/dist/cli/__tests__/cli.test.js.map +1 -1
- package/dist/cli/__tests__/create.test.js +11 -1
- package/dist/cli/__tests__/create.test.js.map +1 -1
- package/dist/cli/__tests__/generate.test.js +120 -12
- package/dist/cli/__tests__/generate.test.js.map +1 -1
- package/dist/cli/__tests__/ui.test.js +15 -1
- package/dist/cli/__tests__/ui.test.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +12 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/create.js +2 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +130 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +6 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +94 -4
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +130 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/ui.d.ts +1 -0
- package/dist/cli/commands/ui.d.ts.map +1 -1
- package/dist/cli/commands/ui.js +41 -5
- package/dist/cli/commands/ui.js.map +1 -1
- package/dist/data/__tests__/repository.test.js +203 -0
- package/dist/data/__tests__/repository.test.js.map +1 -1
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +2 -0
- package/dist/data/index.js.map +1 -1
- package/dist/data/repository.d.ts +1 -1
- package/dist/data/repository.d.ts.map +1 -1
- package/dist/data/repository.js +67 -3
- package/dist/data/repository.js.map +1 -1
- package/dist/errors/__tests__/errors.test.js +30 -2
- package/dist/errors/__tests__/errors.test.js.map +1 -1
- package/dist/errors/http.d.ts +3 -3
- package/dist/errors/http.d.ts.map +1 -1
- package/dist/errors/http.js.map +1 -1
- package/dist/errors/index.d.ts +12 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +22 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/execution/__tests__/authorization.test.js +11 -0
- package/dist/execution/__tests__/authorization.test.js.map +1 -1
- package/dist/execution/authorization.d.ts.map +1 -1
- package/dist/execution/authorization.js +4 -0
- package/dist/execution/authorization.js.map +1 -1
- package/dist/execution/capability-executor.d.ts +2 -2
- package/dist/execution/capability-executor.d.ts.map +1 -1
- package/dist/execution/capability-executor.js +8 -2
- package/dist/execution/capability-executor.js.map +1 -1
- package/dist/flows/__tests__/step-executor.test.js +62 -10
- package/dist/flows/__tests__/step-executor.test.js.map +1 -1
- package/dist/flows/engine.d.ts +12 -1
- package/dist/flows/engine.d.ts.map +1 -1
- package/dist/flows/engine.js +56 -10
- package/dist/flows/engine.js.map +1 -1
- package/dist/flows/step-executor.d.ts +5 -2
- package/dist/flows/step-executor.d.ts.map +1 -1
- package/dist/flows/step-executor.js +38 -4
- package/dist/flows/step-executor.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/server/__tests__/bootstrap.test.js +108 -0
- package/dist/server/__tests__/bootstrap.test.js.map +1 -1
- package/dist/server/bootstrap.d.ts +50 -1
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +85 -2
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/testing/__tests__/simulate-flow.test.js +10 -0
- package/dist/testing/__tests__/simulate-flow.test.js.map +1 -1
- package/dist/testing/context.d.ts.map +1 -1
- package/dist/testing/context.js +73 -6
- package/dist/testing/context.js.map +1 -1
- package/dist/testing/simulate-flow.d.ts.map +1 -1
- package/dist/testing/simulate-flow.js +31 -4
- package/dist/testing/simulate-flow.js.map +1 -1
- package/dist/types/context.d.ts +31 -7
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/errors.d.ts +6 -6
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/registry.d.ts +6 -0
- package/dist/types/registry.d.ts.map +1 -1
- package/dist/types/registry.js +3 -1
- package/dist/types/registry.js.map +1 -1
- package/dist/types/security.d.ts +2 -0
- package/dist/types/security.d.ts.map +1 -1
- package/dist/worker/__tests__/bootstrap.test.js +23 -0
- package/dist/worker/__tests__/bootstrap.test.js.map +1 -1
- package/dist/worker/bootstrap.d.ts +12 -1
- package/dist/worker/bootstrap.d.ts.map +1 -1
- package/dist/worker/bootstrap.js +47 -8
- package/dist/worker/bootstrap.js.map +1 -1
- package/instructions/ai.md +30 -4
- package/instructions/capabilities.md +4 -0
- package/instructions/cli.md +2 -0
- package/instructions/framework.md +49 -0
- package/package.json +2 -1
|
@@ -207,5 +207,28 @@ describe('Worker Bootstrap', () => {
|
|
|
207
207
|
expect(pool).toBeDefined();
|
|
208
208
|
});
|
|
209
209
|
});
|
|
210
|
+
describe('flow trigger auto-registration', () => {
|
|
211
|
+
it('registers a flow trigger consumer when flows have event triggers', async () => {
|
|
212
|
+
const consumers = new ConsumerRegistry();
|
|
213
|
+
const flows = new FlowRegistry();
|
|
214
|
+
flows.register({
|
|
215
|
+
name: 'testFlow',
|
|
216
|
+
domain: 'test',
|
|
217
|
+
input: { safeParse: () => ({ success: true, data: {} }) },
|
|
218
|
+
steps: [{ name: 'step1', type: 'capability', capability: 'testCap' }],
|
|
219
|
+
trigger: { event: 'test.event_occurred' },
|
|
220
|
+
});
|
|
221
|
+
createWorkerPool(makePoolConfig({ consumers, flows }));
|
|
222
|
+
const matched = consumers.getConsumers('test.event_occurred');
|
|
223
|
+
expect(matched.length).toBe(1);
|
|
224
|
+
expect(matched[0]?.id).toBe('plumbus:flow-trigger');
|
|
225
|
+
});
|
|
226
|
+
it('does not register a trigger consumer when no flows have event triggers', () => {
|
|
227
|
+
const consumers = new ConsumerRegistry();
|
|
228
|
+
const flows = new FlowRegistry();
|
|
229
|
+
createWorkerPool(makePoolConfig({ consumers, flows }));
|
|
230
|
+
expect(consumers.getAll().length).toBe(0);
|
|
231
|
+
});
|
|
232
|
+
});
|
|
210
233
|
});
|
|
211
234
|
//# sourceMappingURL=bootstrap.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.test.js","sourceRoot":"","sources":["../../../src/worker/__tests__/bootstrap.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.test.js","sourceRoot":"","sources":["../../../src/worker/__tests__/bootstrap.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
|
|
2
2
|
import type { ConsumerRegistry } from '../events/consumer-registry.js';
|
|
3
3
|
import type { EventQueue } from '../events/queue.js';
|
|
4
|
+
import type { EventRegistry } from '../events/registry.js';
|
|
5
|
+
import type { FlowEngineConfig } from '../flows/engine.js';
|
|
4
6
|
import type { FlowRegistry } from '../flows/registry.js';
|
|
5
7
|
import type { StepExecutorDeps } from '../flows/step-executor.js';
|
|
6
8
|
import type { AuditService } from '../types/audit.js';
|
|
7
9
|
import type { PlumbusConfig } from '../types/config.js';
|
|
8
|
-
import type { LoggerService } from '../types/context.js';
|
|
10
|
+
import type { AIService, DataService, LoggerService } from '../types/context.js';
|
|
11
|
+
import type { AuthContext } from '../types/security.js';
|
|
9
12
|
export interface WorkerPoolConfig {
|
|
10
13
|
/** Plumbus framework config */
|
|
11
14
|
config: PlumbusConfig;
|
|
@@ -37,6 +40,14 @@ export interface WorkerPoolConfig {
|
|
|
37
40
|
enableScheduler?: boolean;
|
|
38
41
|
/** Whether to run flow execution worker loop (default: true) */
|
|
39
42
|
enableFlowRunner?: boolean;
|
|
43
|
+
/** Optional AI service for capability steps that use AI */
|
|
44
|
+
aiService?: AIService;
|
|
45
|
+
/** Optional data service factory for capability steps that access data */
|
|
46
|
+
createDataService?: (auth?: AuthContext) => DataService;
|
|
47
|
+
/** Optional event registry for capability steps that emit events */
|
|
48
|
+
eventRegistry?: EventRegistry;
|
|
49
|
+
/** Called when a flow fails permanently (after retries exhausted). */
|
|
50
|
+
onFlowError?: FlowEngineConfig['onFlowError'];
|
|
40
51
|
}
|
|
41
52
|
export interface WorkerPool {
|
|
42
53
|
/** Start all enabled workers */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAKvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,MAAM,EAAE,aAAa,CAAC;IACtB,0BAA0B;IAC1B,EAAE,EAAE,kBAAkB,CAAC;IACvB,kBAAkB;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,wBAAwB;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,oBAAoB;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,sBAAsB;IACtB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,8CAA8C;IAC9C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,WAAW,CAAC;IACxD,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sEAAsE;IACtE,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;CAC/C;AAID,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,4CAA4C;IAC5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,CA8MzE"}
|
package/dist/worker/bootstrap.js
CHANGED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
// Separate process that starts background workers:
|
|
3
3
|
// outbox dispatcher, event delivery worker, flow step executor,
|
|
4
4
|
// flow scheduler. Handles graceful shutdown.
|
|
5
|
+
import { createAuditService } from '../audit/service.js';
|
|
5
6
|
import { createOutboxDispatcher } from '../events/dispatcher.js';
|
|
7
|
+
import { createEventEmitter } from '../events/emitter.js';
|
|
6
8
|
import { createIdempotencyService } from '../events/idempotency.js';
|
|
7
9
|
import { createEventWorker } from '../events/worker.js';
|
|
8
10
|
import { createExecutionContext } from '../execution/context-factory.js';
|
|
9
11
|
import { createFlowEngine } from '../flows/engine.js';
|
|
10
12
|
import { createFlowScheduler } from '../flows/scheduler.js';
|
|
13
|
+
import { createFlowTriggerHandler } from '../flows/triggers.js';
|
|
11
14
|
/** Create and configure a worker pool with all background processes */
|
|
12
15
|
export function createWorkerPool(poolConfig) {
|
|
13
16
|
const { db, queue, consumers, flows, stepDeps, audit, outboxPollIntervalMs = 1000, schedulerPollIntervalMs = 60_000, flowPollIntervalMs = 1000, enableDispatcher = true, enableEventWorker = true, enableScheduler = true, enableFlowRunner = true, } = poolConfig;
|
|
@@ -30,14 +33,35 @@ export function createWorkerPool(poolConfig) {
|
|
|
30
33
|
};
|
|
31
34
|
const eventWorker = enableEventWorker ? createEventWorker(eventWorkerConfig) : null;
|
|
32
35
|
// Flow engine + scheduler
|
|
36
|
+
const { createDataService } = poolConfig;
|
|
33
37
|
const flowEngineConfig = {
|
|
34
38
|
db,
|
|
35
39
|
registry: flows,
|
|
36
40
|
stepDeps,
|
|
37
41
|
audit,
|
|
38
42
|
queue,
|
|
43
|
+
onFlowError: poolConfig.onFlowError,
|
|
44
|
+
createDataService: createDataService ? (auth) => createDataService(auth) : undefined,
|
|
39
45
|
};
|
|
40
46
|
const flowEngine = createFlowEngine(flowEngineConfig);
|
|
47
|
+
// Auto-register flow trigger consumer for all event-triggered flows
|
|
48
|
+
const triggerEventTypes = new Set();
|
|
49
|
+
for (const flow of flows.getAll()) {
|
|
50
|
+
if (flow.trigger?.event) {
|
|
51
|
+
triggerEventTypes.add(flow.trigger.event);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (triggerEventTypes.size > 0) {
|
|
55
|
+
const triggerHandler = createFlowTriggerHandler({ registry: flows, engine: flowEngine });
|
|
56
|
+
consumers.register({
|
|
57
|
+
id: 'plumbus:flow-trigger',
|
|
58
|
+
eventTypes: [...triggerEventTypes],
|
|
59
|
+
handler: async (envelope) => {
|
|
60
|
+
await triggerHandler.handleEvent(envelope);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
logger.info(`Registered flow trigger consumer for ${triggerEventTypes.size} event types`);
|
|
64
|
+
}
|
|
41
65
|
const schedulerConfig = {
|
|
42
66
|
db,
|
|
43
67
|
registry: flows,
|
|
@@ -55,15 +79,30 @@ export function createWorkerPool(poolConfig) {
|
|
|
55
79
|
const runnable = await flowEngine.listRunnable(50);
|
|
56
80
|
if (runnable.length === 0)
|
|
57
81
|
return;
|
|
82
|
+
const systemAuth = {
|
|
83
|
+
userId: 'system-flow-runner',
|
|
84
|
+
roles: ['system'],
|
|
85
|
+
scopes: [],
|
|
86
|
+
provider: 'worker',
|
|
87
|
+
};
|
|
88
|
+
const systemAudit = audit ?? createAuditService({ db, auth: systemAuth });
|
|
89
|
+
const dataService = poolConfig.createDataService
|
|
90
|
+
? poolConfig.createDataService()
|
|
91
|
+
: {};
|
|
92
|
+
const eventService = poolConfig.eventRegistry
|
|
93
|
+
? createEventEmitter({
|
|
94
|
+
db,
|
|
95
|
+
auth: systemAuth,
|
|
96
|
+
registry: poolConfig.eventRegistry,
|
|
97
|
+
audit: systemAudit,
|
|
98
|
+
})
|
|
99
|
+
: undefined;
|
|
58
100
|
const baseCtx = createExecutionContext({
|
|
59
|
-
auth:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
},
|
|
65
|
-
data: {},
|
|
66
|
-
audit,
|
|
101
|
+
auth: systemAuth,
|
|
102
|
+
data: dataService,
|
|
103
|
+
events: eventService,
|
|
104
|
+
ai: poolConfig.aiService,
|
|
105
|
+
audit: systemAudit,
|
|
67
106
|
logger,
|
|
68
107
|
config: poolConfig.config,
|
|
69
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,mDAAmD;AACnD,gEAAgE;AAChE,6CAA6C;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/instructions/ai.md
CHANGED
|
@@ -170,11 +170,37 @@ PROMPT_INTERVIEW_EXTRACT_METADATA_MODEL=gpt-4o-mini
|
|
|
170
170
|
|
|
171
171
|
When a prompt is invoked, the model is resolved in this order:
|
|
172
172
|
|
|
173
|
-
1. **
|
|
174
|
-
2. **
|
|
175
|
-
3. **
|
|
173
|
+
1. **Dynamic overrides** (`resolveAiOverrides` hook) — highest priority
|
|
174
|
+
2. **Per-prompt env override** (`PROMPT_{NAME}_MODEL`)
|
|
175
|
+
3. **Prompt definition** (`model.name` in `definePrompt`) — if set
|
|
176
|
+
4. **Default model** (`AI_DEFAULT_MODEL`) — global fallback
|
|
176
177
|
|
|
177
|
-
Provider resolution follows the same chain: per-prompt
|
|
178
|
+
Provider resolution follows the same chain: dynamic override → per-prompt env → prompt definition → `AI_DEFAULT_PROVIDER`.
|
|
179
|
+
|
|
180
|
+
## Dynamic AI Config (DB Overrides)
|
|
181
|
+
|
|
182
|
+
For runtime model configuration (e.g. admin dashboard changing models without restart), export a `resolveAiOverrides` function from `app/server.ts`:
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
import type { ServerConfig } from '@plumbus/core';
|
|
186
|
+
import { sql } from 'drizzle-orm';
|
|
187
|
+
|
|
188
|
+
export const resolveAiOverrides: NonNullable<ServerConfig['resolveAiOverrides']> = async (db) => {
|
|
189
|
+
const rows = await db.execute(sql`SELECT config_key, config_value FROM ai_config`);
|
|
190
|
+
// Parse rows into override format and return
|
|
191
|
+
return {
|
|
192
|
+
defaultModel: 'gpt-4o', // override global default
|
|
193
|
+
defaultProvider: 'openai', // override global provider
|
|
194
|
+
promptOverrides: { // per-prompt overrides (key = lowercase, dots → underscores)
|
|
195
|
+
interview_ask_next_question: { model: 'gpt-4o', temperature: 0.7 },
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
The framework calls this hook before each `generate()`, `generateWithUsage()`, and `streamGenerate()` call. Dynamic overrides merge with and take priority over env-based config.
|
|
202
|
+
|
|
203
|
+
**Important**: The resolver should implement caching (e.g. 60-second TTL) to avoid querying the database on every AI call. API credentials (API keys) always come from environment variables — only model selection, temperature, and maxTokens should be stored in the database.
|
|
178
204
|
|
|
179
205
|
## Security
|
|
180
206
|
|
|
@@ -140,6 +140,10 @@ These map to HTTP status codes: 400, 404, 403, 409, 500.
|
|
|
140
140
|
|
|
141
141
|
These are the **only** structured error types. If you need a custom error, use `ctx.errors.internal()` with a descriptive message.
|
|
142
142
|
|
|
143
|
+
Errors are `PlumbusError` instances (extends `Error`) with `code`, `message`, and optional `metadata`. They serialize to JSON via `toJSON()` and can be detected with `isPlumbusError()` (supports both `instanceof` and duck-type checks for cross-version compatibility).
|
|
144
|
+
|
|
145
|
+
**Do not** use `throw new Error(...)` in capability handlers — always use `ctx.errors.*()` for proper HTTP status mapping and structured error responses.
|
|
146
|
+
|
|
143
147
|
## Job Capabilities
|
|
144
148
|
|
|
145
149
|
Capabilities with `kind: "job"` are for long-running operations. They return immediately with a job handle, and the work executes asynchronously.
|
package/instructions/cli.md
CHANGED
|
@@ -166,3 +166,5 @@ export default async function (ctx: { sql: any; args: string[] }) {
|
|
|
166
166
|
- **Scaffolded files have TODOs**: After scaffolding, open the generated file and replace `// TODO` sections with your implementation.
|
|
167
167
|
- **`.plumbus/` is generated**: The `.plumbus/` directory contains auto-generated files. Don't edit them manually — they are regenerated by `plumbus generate`.
|
|
168
168
|
- **Use the framework's `define*()` functions**: Never create primitives by hand. Use the CLI to scaffold, then fill in the contracts using `defineEntity()`, `defineCapability()`, `defineFlow()`, `defineEvent()`, `definePrompt()`.
|
|
169
|
+
- **`plumbus ui generate` is safe to re-run**: It only regenerates contract-derived data files (`lib/client.ts`, `hooks/hooks.ts`, `lib/auth.ts`, `lib/form-hints.ts`, i18n). It never touches custom pages.
|
|
170
|
+
- **`plumbus ui nextjs` protects existing files**: Scaffold files (`page.tsx`, `layout.tsx`, `globals.css`, login, signup, etc.) are skipped if they already exist. Only contract-derived module files are overwritten. Use `--force` to overwrite scaffold files.
|
|
@@ -105,3 +105,52 @@ The framework provides common dependencies — **consumer apps must NOT install
|
|
|
105
105
|
| Watch mode | `plumbus test --watch` |
|
|
106
106
|
| Run e2e tests | `plumbus test --config frontend/e2e/vitest.config.e2e.ts` |
|
|
107
107
|
| Dev server | `plumbus dev` |
|
|
108
|
+
|
|
109
|
+
## Server Extensions (`app/server.ts`)
|
|
110
|
+
|
|
111
|
+
The optional `app/server.ts` file exports hooks that customize server behavior. The framework auto-discovers this file on `plumbus dev` and `plumbus start`.
|
|
112
|
+
|
|
113
|
+
### Available Hooks
|
|
114
|
+
|
|
115
|
+
| Hook | When it fires | Use for |
|
|
116
|
+
|------|--------------|---------|
|
|
117
|
+
| `onRoutesRegistered` | After capability routes are registered | Adding custom routes (e.g. streaming endpoints) |
|
|
118
|
+
| `onCapabilityError` | After a capability returns a non-success result | Logging capability failures to a system log table |
|
|
119
|
+
| `onFlowError` | After a flow fails permanently (retries exhausted) | Logging flow failures to a system log table |
|
|
120
|
+
| `onProcessError` | On uncaught exceptions, unhandled rejections, and Fastify-level errors | Logging process-level crashes that bypass capability/flow hooks |
|
|
121
|
+
| `resolveAiOverrides` | Before each AI call | Dynamic model/provider configuration from DB |
|
|
122
|
+
|
|
123
|
+
### Error Capture Coverage
|
|
124
|
+
|
|
125
|
+
The framework provides hooks for **every error category**:
|
|
126
|
+
|
|
127
|
+
| Error Type | Hook | Source Field |
|
|
128
|
+
|------------|------|-------------|
|
|
129
|
+
| Capability failure (handler throw, validation, access) | `onCapabilityError` | capability name, domain, error code |
|
|
130
|
+
| Flow permanent failure (retries exhausted) | `onFlowError` | flow name, step, execution ID |
|
|
131
|
+
| Uncaught exception (process crash) | `onProcessError` | `source: 'uncaughtException'` |
|
|
132
|
+
| Unhandled promise rejection | `onProcessError` | `source: 'unhandledRejection'` |
|
|
133
|
+
| Fastify request error (malformed request, timeout) | `onProcessError` | `source: 'fastify'` |
|
|
134
|
+
|
|
135
|
+
### Example: Full Error Logging
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
import type { ServerConfig } from '@plumbus/core';
|
|
139
|
+
|
|
140
|
+
// Capability errors
|
|
141
|
+
export const onCapabilityError: NonNullable<ServerConfig['onCapabilityError']> = async (info) => {
|
|
142
|
+
await db.insert({ level: 'error', message: `[${info.capabilityName}] ${info.errorMessage}`, source: 'backend' });
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// Flow errors
|
|
146
|
+
export const onFlowError = async (info) => {
|
|
147
|
+
await db.insert({ level: 'error', message: `[flow:${info.flowName}] ${info.error}`, source: 'flow-engine' });
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// Process-level errors (uncaught exceptions, unhandled rejections, Fastify errors)
|
|
151
|
+
export const onProcessError: NonNullable<ServerConfig['onProcessError']> = async (info) => {
|
|
152
|
+
await db.insert({ level: 'error', message: `[${info.source}] ${info.message}`, stack: info.stack, source: 'backend' });
|
|
153
|
+
};
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
All hooks are fire-and-forget — exceptions inside hooks are caught and swallowed to prevent logging from breaking the application.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumbus/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Plumbus framework core — types, SDK, runtime, CLI, test utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"drizzle-kit": "^0.31.9",
|
|
51
51
|
"drizzle-orm": "^0.45.1",
|
|
52
52
|
"fastify": "^5.8.2",
|
|
53
|
+
"jsonc-parser": "^3.3.1",
|
|
53
54
|
"playwright": "^1.52.0",
|
|
54
55
|
"postgres": "^3.4.8",
|
|
55
56
|
"tsx": "^4.19.0",
|