@plumbus/core 0.8.0-beta.4 → 0.8.0-beta.6
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/CHANGELOG.md +46 -0
- package/README.md +6 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/ai/ai/cost-tracker.d.ts +5 -1
- package/dist/ai/ai/model-pricing.d.ts +3 -2
- package/dist/ai/ai-service.d.ts +3 -0
- package/dist/ai/ai-service.d.ts.map +1 -1
- package/dist/ai/ai-service.js +146 -24
- package/dist/ai/ai-service.js.map +1 -1
- package/dist/ai/cost-tracker.d.ts +5 -1
- package/dist/ai/cost-tracker.d.ts.map +1 -1
- package/dist/ai/cost-tracker.js +7 -2
- package/dist/ai/cost-tracker.js.map +1 -1
- package/dist/ai/explainability.d.ts +2 -1
- package/dist/ai/explainability.d.ts.map +1 -1
- package/dist/ai/explainability.js +1 -0
- package/dist/ai/explainability.js.map +1 -1
- package/dist/ai/model-pricing.d.ts +3 -2
- package/dist/ai/model-pricing.d.ts.map +1 -1
- package/dist/ai/model-pricing.js +23 -2
- package/dist/ai/model-pricing.js.map +1 -1
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/provider.js +10 -0
- package/dist/ai/provider.js.map +1 -1
- package/dist/api/route-generator.js +6 -6
- package/dist/api/route-generator.js.map +1 -1
- package/dist/audit/service.js +1 -1
- package/dist/audit/service.js.map +1 -1
- package/dist/cli/commands/browser-extension.d.ts +16 -0
- package/dist/cli/commands/browser-extension.d.ts.map +1 -1
- package/dist/cli/commands/browser-extension.js +16 -5
- package/dist/cli/commands/browser-extension.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +2 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/generate-openapi-from-zod.d.ts.map +1 -1
- package/dist/cli/commands/generate-openapi-from-zod.js +9 -1
- package/dist/cli/commands/generate-openapi-from-zod.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +5 -0
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +2 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/worker.js +1 -1
- package/dist/cli/commands/worker.js.map +1 -1
- package/dist/cli/discover.d.ts +2 -0
- package/dist/cli/discover.d.ts.map +1 -1
- package/dist/cli/discover.js +19 -2
- package/dist/cli/discover.js.map +1 -1
- package/dist/events/dispatcher.d.ts +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 +23 -9
- package/dist/execution/capability-executor.js.map +1 -1
- package/dist/execution/context-factory.d.ts.map +1 -1
- package/dist/execution/context-factory.js +3 -0
- package/dist/execution/context-factory.js.map +1 -1
- package/dist/flows/engine.d.ts.map +1 -1
- package/dist/flows/engine.js +2 -0
- package/dist/flows/engine.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +3 -1
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +19 -4
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/load-extensions.d.ts +2 -1
- package/dist/runtime/load-extensions.d.ts.map +1 -1
- package/dist/runtime/load-extensions.js +8 -1
- package/dist/runtime/load-extensions.js.map +1 -1
- package/dist/runtime/start-worker-pool.d.ts.map +1 -1
- package/dist/runtime/start-worker-pool.js +1 -0
- package/dist/runtime/start-worker-pool.js.map +1 -1
- package/dist/server/bootstrap.d.ts +3 -0
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +22 -3
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/testing/context.d.ts +2 -0
- package/dist/testing/context.d.ts.map +1 -1
- package/dist/testing/context.js +7 -3
- package/dist/testing/context.js.map +1 -1
- package/dist/types/context.d.ts +15 -1
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/worker/bootstrap.d.ts.map +1 -1
- package/dist/worker/bootstrap.js +98 -84
- package/dist/worker/bootstrap.js.map +1 -1
- package/instructions/README.md +2 -1
- package/instructions/ai-classification.md +114 -0
- package/instructions/ai.md +27 -0
- package/instructions/peer-dependencies.md +1 -1
- package/package.json +4 -3
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.d.ts +0 -5
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.d.ts.map +0 -1
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.js +0 -15
- package/dist/ai/__typecheck-fixtures__/legacy-cost-api.js.map +0 -1
package/dist/worker/bootstrap.js
CHANGED
|
@@ -211,7 +211,7 @@ export function createWorkerPool(poolConfig) {
|
|
|
211
211
|
resolver: dataPlaneResolver,
|
|
212
212
|
spineDb: db,
|
|
213
213
|
listTenantRefs: listedTenantRefs,
|
|
214
|
-
// The pump reads `dispatch_outbox` where the engine below writes it
|
|
214
|
+
// The pump reads `dispatch_outbox` where the engine below writes it.
|
|
215
215
|
...(frameworkSchema ? { frameworkSchema } : {}),
|
|
216
216
|
}
|
|
217
217
|
: {}),
|
|
@@ -275,7 +275,7 @@ export function createWorkerPool(poolConfig) {
|
|
|
275
275
|
// The host's framework schema (PLUMBUS_FRAMEWORK_SCHEMA): the engine qualifies the
|
|
276
276
|
// tenant's durable tables with it when it writes dispatch acceptance and outbox
|
|
277
277
|
// rows. Without it the engine falls back to the compiled-in default, which drifts
|
|
278
|
-
// from a host that provisioned its planes under another schema name
|
|
278
|
+
// from a host that provisioned its planes under another schema name.
|
|
279
279
|
coreSchema: frameworkSchema ?? resolveFrameworkSchema() ?? FRAMEWORK_SCHEMA,
|
|
280
280
|
}
|
|
281
281
|
: undefined,
|
|
@@ -351,96 +351,106 @@ export function createWorkerPool(poolConfig) {
|
|
|
351
351
|
}
|
|
352
352
|
const scheduler = enableScheduler ? createFlowScheduler(schedulerConfig) : null;
|
|
353
353
|
let flowRunnerTimer = null;
|
|
354
|
+
let flowCycleRunning = false;
|
|
354
355
|
async function runFlowCycle() {
|
|
355
|
-
if (!enableFlowRunner)
|
|
356
|
+
if (!enableFlowRunner || !running || flowCycleRunning)
|
|
356
357
|
return;
|
|
358
|
+
flowCycleRunning = true;
|
|
357
359
|
try {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
// The unit's auth carries the row's tenant, so the repositories, audit and durable
|
|
376
|
-
// schema the context is wired with are the resolved plane's — not the pool's.
|
|
377
|
-
const unitTenantRef = resolveTenantRef({
|
|
378
|
-
...systemAuth,
|
|
379
|
-
tenantId: claimedTenantRef(row),
|
|
380
|
-
});
|
|
381
|
-
const unitAuth = unitTenantRef ? { ...systemAuth, tenantId: unitTenantRef } : systemAuth;
|
|
382
|
-
const ctx = baseCtx ?? buildFlowRunnerContext(unitAuth, await resolveUnitDataPlane(unitTenantRef));
|
|
383
|
-
// Drain consecutive in-flow steps in a single tick.
|
|
384
|
-
//
|
|
385
|
-
// Why: claimNext() acquires a lease (status='running',
|
|
386
|
-
// lease_expires_at = now()+leaseDurationMs) for the whole flow
|
|
387
|
-
// execution row. runNext() runs ONE step and, on normal
|
|
388
|
-
// advancement (next sequential step, parallel completion, or
|
|
389
|
-
// conditional branch), updates currentStep but intentionally
|
|
390
|
-
// leaves status='running' and the lease intact. If we returned
|
|
391
|
-
// here after a single step, the row would sit idle until the
|
|
392
|
-
// lease expired (default 5 min) before claimNext() picked it up
|
|
393
|
-
// again — producing multi-minute "no errors, no progress" gaps
|
|
394
|
-
// between successive steps of the same flow execution.
|
|
395
|
-
//
|
|
396
|
-
// Looping while status === Running means the worker that holds
|
|
397
|
-
// the lease keeps running steps until the flow either Waits
|
|
398
|
-
// (event/delay), Completes, Fails, or is Cancelled. Heartbeats
|
|
399
|
-
// inside runNext extend the lease while a step is executing;
|
|
400
|
-
// between steps the lease is still valid because we never
|
|
401
|
-
// released it. A hard cap (`maxStepsPerCycle`) bounds the loop
|
|
402
|
-
// so a runaway conditional/loop in a flow can't monopolise the
|
|
403
|
-
// worker forever — when the cap is hit we break, the lease will
|
|
404
|
-
// expire normally and another claim cycle (or the same worker)
|
|
405
|
-
// will pick the row up.
|
|
406
|
-
const maxStepsPerCycle = 1000;
|
|
407
|
-
let stepsRun = 0;
|
|
408
|
-
while (stepsRun < maxStepsPerCycle) {
|
|
409
|
-
const result = await flowEngine.runNext(row.id, ctx);
|
|
410
|
-
stepsRun += 1;
|
|
411
|
-
if (result.status !== FlowStatus.Running) {
|
|
412
|
-
break;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
if (stepsRun >= maxStepsPerCycle) {
|
|
416
|
-
logger.warn('Flow drain hit maxStepsPerCycle; releasing for next cycle', {
|
|
417
|
-
executionId: row.id,
|
|
418
|
-
workerId: flowEngine.workerId,
|
|
419
|
-
stepsRun,
|
|
420
|
-
maxStepsPerCycle,
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
catch (err) {
|
|
425
|
-
logger.error('Flow execution run failed', {
|
|
426
|
-
executionId: row.id,
|
|
427
|
-
workerId: flowEngine.workerId,
|
|
428
|
-
...describeError(err),
|
|
429
|
-
});
|
|
430
|
-
// Finalize the row as failed so the next poll cycle doesn't re-claim
|
|
431
|
-
// it via the `status='running' AND lease_expires_at < now()`
|
|
432
|
-
// crash-recovery branch in claimNext and spin forever. The engine
|
|
433
|
-
// method is idempotent and guards on status, so this is safe even
|
|
434
|
-
// if the row was concurrently finalized by cancel() or a peer worker.
|
|
360
|
+
// Lease only work that can start now. Prefetched rows otherwise wait behind
|
|
361
|
+
// long steps without a heartbeat, and another poll can reclaim them.
|
|
362
|
+
const cycleLimit = poolConfig.flowClaimBatchSize ?? 50;
|
|
363
|
+
for (let count = 0; count < cycleLimit && running; count += 1) {
|
|
364
|
+
const claimed = await flowEngine.claimNext(1);
|
|
365
|
+
if (claimed.length === 0)
|
|
366
|
+
break;
|
|
367
|
+
const systemAuth = {
|
|
368
|
+
userId: 'system-flow-runner',
|
|
369
|
+
roles: ['system'],
|
|
370
|
+
scopes: [],
|
|
371
|
+
provider: 'worker',
|
|
372
|
+
};
|
|
373
|
+
// Build a shared-plane context for this claim; the resolver path instead
|
|
374
|
+
// builds the context from the claimed tenant below.
|
|
375
|
+
const baseCtx = dataPlaneResolver ? undefined : buildFlowRunnerContext(systemAuth);
|
|
376
|
+
for (const row of claimed) {
|
|
435
377
|
try {
|
|
436
|
-
|
|
378
|
+
// Resolving inside the per-row try means an unknown or absent tenant
|
|
379
|
+
// fails this execution the same way a failing step does, instead of
|
|
380
|
+
// aborting the cycle for every other tenant in the batch.
|
|
381
|
+
// The unit's auth carries the row's tenant, so the repositories, audit and durable
|
|
382
|
+
// schema the context is wired with are the resolved plane's — not the pool's.
|
|
383
|
+
const unitTenantRef = resolveTenantRef({
|
|
384
|
+
...systemAuth,
|
|
385
|
+
tenantId: claimedTenantRef(row),
|
|
386
|
+
});
|
|
387
|
+
const unitAuth = unitTenantRef
|
|
388
|
+
? { ...systemAuth, tenantId: unitTenantRef }
|
|
389
|
+
: systemAuth;
|
|
390
|
+
const ctx = baseCtx ??
|
|
391
|
+
buildFlowRunnerContext(unitAuth, await resolveUnitDataPlane(unitTenantRef));
|
|
392
|
+
// Drain consecutive in-flow steps in a single tick.
|
|
393
|
+
//
|
|
394
|
+
// Why: claimNext() acquires a lease (status='running',
|
|
395
|
+
// lease_expires_at = now()+leaseDurationMs) for the whole flow
|
|
396
|
+
// execution row. runNext() runs ONE step and, on normal
|
|
397
|
+
// advancement (next sequential step, parallel completion, or
|
|
398
|
+
// conditional branch), updates currentStep but intentionally
|
|
399
|
+
// leaves status='running' and the lease intact. If we returned
|
|
400
|
+
// here after a single step, the row would sit idle until the
|
|
401
|
+
// lease expired (default 5 min) before claimNext() picked it up
|
|
402
|
+
// again — producing multi-minute "no errors, no progress" gaps
|
|
403
|
+
// between successive steps of the same flow execution.
|
|
404
|
+
//
|
|
405
|
+
// Looping while status === Running means the worker that holds
|
|
406
|
+
// the lease keeps running steps until the flow either Waits
|
|
407
|
+
// (event/delay), Completes, Fails, or is Cancelled. Heartbeats
|
|
408
|
+
// inside runNext extend the lease while a step is executing;
|
|
409
|
+
// between steps the lease is still valid because we never
|
|
410
|
+
// released it. A hard cap (`maxStepsPerCycle`) bounds the loop
|
|
411
|
+
// so a runaway conditional/loop in a flow can't monopolise the
|
|
412
|
+
// worker forever — when the cap is hit we break, the lease will
|
|
413
|
+
// expire normally and another claim cycle (or the same worker)
|
|
414
|
+
// will pick the row up.
|
|
415
|
+
const maxStepsPerCycle = 1000;
|
|
416
|
+
let stepsRun = 0;
|
|
417
|
+
while (stepsRun < maxStepsPerCycle) {
|
|
418
|
+
const result = await flowEngine.runNext(row.id, ctx);
|
|
419
|
+
stepsRun += 1;
|
|
420
|
+
if (result.status !== FlowStatus.Running) {
|
|
421
|
+
break;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
if (stepsRun >= maxStepsPerCycle) {
|
|
425
|
+
logger.warn('Flow drain hit maxStepsPerCycle; releasing for next cycle', {
|
|
426
|
+
executionId: row.id,
|
|
427
|
+
workerId: flowEngine.workerId,
|
|
428
|
+
stepsRun,
|
|
429
|
+
maxStepsPerCycle,
|
|
430
|
+
});
|
|
431
|
+
}
|
|
437
432
|
}
|
|
438
|
-
catch (
|
|
439
|
-
logger.error('
|
|
433
|
+
catch (err) {
|
|
434
|
+
logger.error('Flow execution run failed', {
|
|
440
435
|
executionId: row.id,
|
|
441
436
|
workerId: flowEngine.workerId,
|
|
442
|
-
...describeError(
|
|
437
|
+
...describeError(err),
|
|
443
438
|
});
|
|
439
|
+
// Finalize the row as failed so the next poll cycle doesn't re-claim
|
|
440
|
+
// it via the `status='running' AND lease_expires_at < now()`
|
|
441
|
+
// crash-recovery branch in claimNext and spin forever. The engine
|
|
442
|
+
// method is idempotent and guards on status, so this is safe even
|
|
443
|
+
// if the row was concurrently finalized by cancel() or a peer worker.
|
|
444
|
+
try {
|
|
445
|
+
await flowEngine.markFailedFromRunner(row.id, err);
|
|
446
|
+
}
|
|
447
|
+
catch (finalizeErr) {
|
|
448
|
+
logger.error('Failed to finalize flow execution after run error', {
|
|
449
|
+
executionId: row.id,
|
|
450
|
+
workerId: flowEngine.workerId,
|
|
451
|
+
...describeError(finalizeErr),
|
|
452
|
+
});
|
|
453
|
+
}
|
|
444
454
|
}
|
|
445
455
|
}
|
|
446
456
|
}
|
|
@@ -448,6 +458,9 @@ export function createWorkerPool(poolConfig) {
|
|
|
448
458
|
catch (err) {
|
|
449
459
|
logger.error('Flow claim cycle failed', describeError(err));
|
|
450
460
|
}
|
|
461
|
+
finally {
|
|
462
|
+
flowCycleRunning = false;
|
|
463
|
+
}
|
|
451
464
|
}
|
|
452
465
|
/**
|
|
453
466
|
* Build the base context a claimed unit of work runs with.
|
|
@@ -608,6 +621,7 @@ export function createWorkerPool(poolConfig) {
|
|
|
608
621
|
async stop() {
|
|
609
622
|
if (!running)
|
|
610
623
|
return;
|
|
624
|
+
running = false;
|
|
611
625
|
logger.info('Shutting down worker pool...');
|
|
612
626
|
// Stop in reverse order: new work first, then in-flight
|
|
613
627
|
if (scheduler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/worker/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/instructions/README.md
CHANGED
|
@@ -15,6 +15,7 @@ For conceptual reference, see `docs/` in the Plumbus monorepo. These files are *
|
|
|
15
15
|
| [flows.md](./flows.md) | `defineFlow()`, steps, triggers, retries. |
|
|
16
16
|
| [prompts.md](./prompts.md) | `definePrompt()`, `system`/`description`, model resolution. |
|
|
17
17
|
| [ai.md](./ai.md) | `ctx.ai` operations (incl. provider-native tool calling + `runToolLoop`), cost tracking, env-based provider config. |
|
|
18
|
+
| [ai-classification.md](./ai-classification.md) | **Classification, categorization, provider/model selection, TypeSafe/Jev or Laya, `classify()` vs `decide()`** (core 0.7.4+ / 0.8.0-beta.6+). |
|
|
18
19
|
| [translations.md](./translations.md) | `defineTranslation()`, `ctx.translations`. |
|
|
19
20
|
| [security.md](./security.md) | Access policies, tenant isolation, auth adapters. |
|
|
20
21
|
| [governance.md](./governance.md) | Advisory rules, `plumbus verify`, compliance profiles. |
|
|
@@ -37,5 +38,5 @@ Package quickstart: [../README.md](../README.md).
|
|
|
37
38
|
- **Use `ctx.*` subsystems** — do not bypass the framework with ad hoc infrastructure unless documented.
|
|
38
39
|
- **Never edit `.plumbus/generated/`** — regenerate with `plumbus generate`.
|
|
39
40
|
- **Do not install framework-provided deps** — import Zod from `@plumbus/core/zod`; run tests with `plumbus test`.
|
|
40
|
-
- **Mock AI by operation** — `mockAI({ generate, extract, classify, retrieve })`, not by prompt name.
|
|
41
|
+
- **Mock AI by operation** — `mockAI({ generate, extract, classify, decide, retrieve })`, not by prompt name.
|
|
41
42
|
- **MCP tool names are canonical** — `<domain>.<name>` (e.g. `billing.getRefund`).
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# AI classification: provider and model selection
|
|
2
|
+
|
|
3
|
+
Read this when implementing classification, categorization, label selection, or
|
|
4
|
+
TypeSafe/Jev and Laya integration. Requires **@plumbus/core 0.7.4+** (0.8 family: **0.8.0-beta.6+**) for the
|
|
5
|
+
`classify()` provider/model options. Use this recipe inside Plumbus capabilities
|
|
6
|
+
and flows; preserve their access policies and declare `effects.ai: true`.
|
|
7
|
+
|
|
8
|
+
## Choose the operation
|
|
9
|
+
|
|
10
|
+
| Need | Operation |
|
|
11
|
+
| --- | --- |
|
|
12
|
+
| Matching labels from a known list, using a generative or decision model | `ctx.ai.classify()` → `string[]` |
|
|
13
|
+
| Typed choices, ordinal scores, probabilities, or mixed questions | `ctx.ai.decide()` → typed answers |
|
|
14
|
+
| Generated text or structured output from a prompt | `ctx.ai.generate()` |
|
|
15
|
+
|
|
16
|
+
Do not call vendor adapters directly for application business logic. Both native
|
|
17
|
+
classification and decisions use core validation, security, budgets, identity,
|
|
18
|
+
cancellation, and accounting. Predictions never replace authorization.
|
|
19
|
+
|
|
20
|
+
## Register the provider
|
|
21
|
+
|
|
22
|
+
Install only the decision provider needed by the app:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pnpm add @plumbus/core@~0.7.4 @plumbus/ai-decision-typesafe@~0.2.2
|
|
26
|
+
# For self-hosted Laya, use @plumbus/ai-decision-laya@~0.2.2 instead.
|
|
27
|
+
# 0.8 beta family: pnpm add @plumbus/core@plumbus-next @plumbus/ai-decision-typesafe@plumbus-next
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Export registration at the server boundary so API and workers share it:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
// app/server.ts
|
|
34
|
+
import { createTypeSafeDecisionAdapter } from '@plumbus/ai-decision-typesafe';
|
|
35
|
+
|
|
36
|
+
export const decisions = {
|
|
37
|
+
providers: {
|
|
38
|
+
typesafe: createTypeSafeDecisionAdapter({
|
|
39
|
+
apiKey: process.env.TYPESAFE_API_KEY ?? '',
|
|
40
|
+
model: 'jev-1.13.0',
|
|
41
|
+
}),
|
|
42
|
+
},
|
|
43
|
+
defaultProvider: 'typesafe',
|
|
44
|
+
};
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For Laya, register `laya: createLayaDecisionAdapter({ baseUrl, apiKey })` using the
|
|
48
|
+
factory from `@plumbus/ai-decision-laya`. Keep credentials and adapter construction
|
|
49
|
+
on the server. Laya requires a separately running service. For programmatic
|
|
50
|
+
bootstrap, pass `decisions` to `createServer()` / `buildWorkerAiService()` or
|
|
51
|
+
`createAIService()`. Decision adapters belong under `decisions.providers`, not the
|
|
52
|
+
text-completion `providers` map. Use distinct names across those two maps.
|
|
53
|
+
|
|
54
|
+
## Select a provider and model per call
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
// Inside a capability handler or flow step:
|
|
58
|
+
const labels = await ctx.ai.classify({
|
|
59
|
+
text: input.ticketText,
|
|
60
|
+
labels: ['billing', 'technical', 'refund'],
|
|
61
|
+
provider: 'typesafe',
|
|
62
|
+
model: 'jev-1.13.0',
|
|
63
|
+
threshold: 0.5,
|
|
64
|
+
signal: ctx.signal,
|
|
65
|
+
costContext: { projectId: input.projectId },
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`provider` is the registered map key; `model` is a model ID supported by that
|
|
70
|
+
endpoint. For Laya automatic language routing use `provider: 'laya', model: 'auto'`;
|
|
71
|
+
an explicit checkpoint must be configured on your Laya service.
|
|
72
|
+
|
|
73
|
+
| Setting | Resolution |
|
|
74
|
+
| --- | --- |
|
|
75
|
+
| Omitted `provider` | Existing default text provider, even when `decisions.defaultProvider` is set |
|
|
76
|
+
| Decision `model` | Per-call `model` → `decisions.defaultModel` → adapter default |
|
|
77
|
+
| Text `model` | Per-call `model` → AI service `defaultModel` → adapter default |
|
|
78
|
+
| Decision `threshold` | Inclusive probability cutoff in [0, 1], default 0.5 |
|
|
79
|
+
|
|
80
|
+
For a generative provider, pass its registered name and model and omit `threshold`:
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
const labels = await ctx.ai.classify({
|
|
84
|
+
text: input.ticketText,
|
|
85
|
+
labels: ['billing', 'technical'],
|
|
86
|
+
provider: 'openai',
|
|
87
|
+
model: 'gpt-6-sol',
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Native classification accepts 1–256 nonempty labels, batches one independent
|
|
92
|
+
probability question per label, and returns matching labels in input order. Zero
|
|
93
|
+
or multiple matches are valid. `threshold` is rejected for text providers. Use
|
|
94
|
+
`decide()` with a choice question when exactly one choice and its distribution
|
|
95
|
+
are required; generative models are not a `decide()` backend.
|
|
96
|
+
|
|
97
|
+
## Cost recording and tests
|
|
98
|
+
|
|
99
|
+
Persist the existing `onAICostRecorded` hook. Native classification records one
|
|
100
|
+
`operation: 'classify'` row per dispatched logical call, including failures, with
|
|
101
|
+
actual model, usage, cost, tenant/actor, and `costContext`. It does not create an
|
|
102
|
+
extra `decide` row. Unknown cost remains `null`; never invent zero to bypass a
|
|
103
|
+
budget. TypeSafe uses adapter pricing; Laya uses optional `costPerRequestUsd`.
|
|
104
|
+
|
|
105
|
+
Use `mockAI({ classify: ['billing'] })` through `createTestContext` and
|
|
106
|
+
`runCapability` / `simulateFlow` for application tests. Read the installed provider's
|
|
107
|
+
`instructions/README.md` for adapter tests. Live Laya inference is opt-in; keep it
|
|
108
|
+
out of routine tests.
|
|
109
|
+
|
|
110
|
+
After upgrading core, run `plumbus init --patch --agent all` and `plumbus doctor`
|
|
111
|
+
to refresh agent wiring to **v17**, preserving app-owned text outside managed blocks.
|
|
112
|
+
|
|
113
|
+
See [AI operations](ai.md), [instruction index](README.md), and the
|
|
114
|
+
[decision provider guide](https://github.com/plumbus-framework/plumbus/blob/main/docs/ai/decision-providers.md).
|
package/instructions/ai.md
CHANGED
|
@@ -70,6 +70,11 @@ const invoice = await ctx.ai.extract({
|
|
|
70
70
|
|
|
71
71
|
### Classify
|
|
72
72
|
|
|
73
|
+
**Start with [the classification recipe](ai-classification.md)** for provider/model
|
|
74
|
+
selection, TypeSafe/Jev and Laya registration, defaults, thresholds, and cost hooks
|
|
75
|
+
(core **0.7.4+** / **0.8.0-beta.6+**). Use `classify()` for matching labels and `decide()` for richer
|
|
76
|
+
typed questions. Keep calls inside capabilities/flows.
|
|
77
|
+
|
|
73
78
|
Classify text into provided categories:
|
|
74
79
|
|
|
75
80
|
```ts
|
|
@@ -382,3 +387,25 @@ See `docs/ai/ai-integration.md` and `docs/upgrading-contract-alignment.md` §12.
|
|
|
382
387
|
- With security configured, generate/stream/extract/classify apply the field-classification policy. Extract/classify use the `text` field; arbitrary free-text PII is not automatically detected. Explainability stores redacted input.
|
|
383
388
|
- Unknown prior spend rejects further requests when a dollar cap is configured. Local/unpriced providers still work without dollar caps; explicit free prices stay supported. Never supply fake zero costs to bypass budgets.
|
|
384
389
|
- Read [the security release checklist](./upgrading-security-release.md) before upgrading custom cost hooks or AI wrappers.
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
## Typed decisions (core 0.7.4+ / 0.8.0-beta.6+)
|
|
393
|
+
|
|
394
|
+
For choices, scores, and probabilities, use `ctx.ai.decide()` inside capabilities
|
|
395
|
+
and flows. Define reusable contracts with `defineDecision` from
|
|
396
|
+
`@plumbus/ai-decision`; CLI startup discovers `app/decisions/`. The shared contract
|
|
397
|
+
package is provided by core; install only the TypeSafe/Laya provider required by
|
|
398
|
+
the app. Export `decisions = { providers, defaultProvider }` from `app/server.ts`
|
|
399
|
+
for both API and workers, using `createTypeSafeDecisionAdapter` or
|
|
400
|
+
`createLayaDecisionAdapter` at that server-owned boundary. Do not register these
|
|
401
|
+
adapters as text-completion providers or call them directly for app business logic.
|
|
402
|
+
|
|
403
|
+
Core records `operation: 'decide'` with actual model, usage, cost, tenant/actor,
|
|
404
|
+
optional `decisionName`, and the caller's `costContext`. Existing
|
|
405
|
+
`onAICostRecorded(record, costContext, db)` hooks persist these rows; include the
|
|
406
|
+
new operation in any app-owned ledger enum/schema. Failed responses and cancelled
|
|
407
|
+
calls also produce rows. Unknown USD cost is null, never a free zero. Security
|
|
408
|
+
scans state and structured questions; budgets are checked before provider work.
|
|
409
|
+
Use `mockAI({ decide: result })` and test through `runCapability`/`simulateFlow`.
|
|
410
|
+
|
|
411
|
+
Guide: https://github.com/plumbus-framework/plumbus/blob/main/docs/ai/decision-providers.md
|
|
@@ -43,4 +43,4 @@ Run lint, format checking, typechecking, tests, and packed npm install checks be
|
|
|
43
43
|
|
|
44
44
|
## Consumer upgrade
|
|
45
45
|
|
|
46
|
-
Read [upgrading-security-release.md](./upgrading-security-release.md) and the 0.8 notes in the root docs, explicitly select the new package versions for every installed Plumbus add-on, and run `plumbus init --patch` for agent wiring **
|
|
46
|
+
Read [upgrading-security-release.md](./upgrading-security-release.md) and the 0.8 notes in the root docs, explicitly select the new package versions for every installed Plumbus add-on, and run `plumbus init --patch --agent all` for current agent wiring (**v17** with core 0.7.4+ / 0.8.0-beta.6+). For classification/provider/model selection, read [ai-classification.md](./ai-classification.md). Keep application business logic in Plumbus primitives and `ctx.*`; do not bypass security checks to make a migration pass.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumbus/core",
|
|
3
|
-
"version": "0.8.0-beta.
|
|
3
|
+
"version": "0.8.0-beta.6",
|
|
4
4
|
"description": "Plumbus framework core — types, SDK, runtime, CLI, test utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -89,7 +89,8 @@
|
|
|
89
89
|
"xml-crypto": "^6.1.2",
|
|
90
90
|
"xpath": "^0.0.34",
|
|
91
91
|
"zod": "^3.24.0",
|
|
92
|
-
"zod-to-json-schema": "^3.25.2"
|
|
92
|
+
"zod-to-json-schema": "^3.25.2",
|
|
93
|
+
"@plumbus/ai-decision": "~0.3.0-beta.0"
|
|
93
94
|
},
|
|
94
95
|
"peerDependencies": {
|
|
95
96
|
"@plumbus/api": ">=0.3.0-beta.0 <0.4.0",
|
|
@@ -123,7 +124,7 @@
|
|
|
123
124
|
"typescript": "^5.7.0",
|
|
124
125
|
"@plumbus/ai-bedrock": "0.3.0-beta.0",
|
|
125
126
|
"@plumbus/api": "0.3.0-beta.0",
|
|
126
|
-
"@plumbus/voice": "0.6.0-beta.
|
|
127
|
+
"@plumbus/voice": "0.6.0-beta.1",
|
|
127
128
|
"@plumbus/mcp": "0.7.0-beta.0"
|
|
128
129
|
},
|
|
129
130
|
"scripts": {
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type AIService, type RAGPipelineConfig, type RunToolLoopParams } from '@plumbus/core';
|
|
2
|
-
export declare function legacyConsumer(ai: AIService, params: RunToolLoopParams): Promise<number>;
|
|
3
|
-
export declare const legacyEmbeddingCallback: RAGPipelineConfig['onEmbeddingCost'];
|
|
4
|
-
export declare const uncheckedEstimate: number;
|
|
5
|
-
//# sourceMappingURL=legacy-cost-api.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-cost-api.d.ts","sourceRoot":"","sources":["../../../src/ai/__typecheck-fixtures__/legacy-cost-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAEvB,wBAAsB,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM9F;AAED,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,CAAC,iBAAiB,CAGxE,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAyC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { calculateModelCost, estimateModelCost, runToolLoop, } from '@plumbus/core';
|
|
2
|
-
export async function legacyConsumer(ai, params) {
|
|
3
|
-
const result = await ai.generateWithUsage({ prompt: 'p', input: {} });
|
|
4
|
-
const cost = result.cost;
|
|
5
|
-
const loop = await runToolLoop(ai, params);
|
|
6
|
-
const total = loop.aggregatedCost;
|
|
7
|
-
return cost + total + calculateModelCost(1, 1, 'local');
|
|
8
|
-
}
|
|
9
|
-
export const legacyEmbeddingCallback = (info) => {
|
|
10
|
-
const numericCost = info.cost;
|
|
11
|
-
void numericCost;
|
|
12
|
-
};
|
|
13
|
-
// @ts-expect-error Unknown-aware estimates cannot be treated as definitely priced.
|
|
14
|
-
export const uncheckedEstimate = estimateModelCost(1, 1, 'local');
|
|
15
|
-
//# sourceMappingURL=legacy-cost-api.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-cost-api.js","sourceRoot":"","sources":["../../../src/ai/__typecheck-fixtures__/legacy-cost-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,GAIZ,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAa,EAAE,MAAyB;IAC3E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAW,IAAI,CAAC,cAAc,CAAC;IAC1C,OAAO,IAAI,GAAG,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAyC,CAAC,IAAI,EAAE,EAAE;IACpF,MAAM,WAAW,GAAW,IAAI,CAAC,IAAI,CAAC;IACtC,KAAK,WAAW,CAAC;AACnB,CAAC,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC"}
|