@plumbus/core 0.6.15 → 0.6.16
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 +14 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/ai/ai/provider.d.ts +20 -3
- package/dist/ai/ai-service.d.ts.map +1 -1
- package/dist/ai/ai-service.js +31 -10
- package/dist/ai/ai-service.js.map +1 -1
- package/dist/ai/provider.d.ts +20 -3
- package/dist/ai/provider.d.ts.map +1 -1
- package/dist/ai/provider.js +79 -18
- package/dist/ai/provider.js.map +1 -1
- package/dist/ai/types/config.d.ts +27 -0
- package/dist/ai/validation.d.ts +6 -0
- package/dist/ai/validation.d.ts.map +1 -1
- package/dist/ai/validation.js +12 -1
- package/dist/ai/validation.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 +19 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +37 -4
- package/dist/config/loader.js.map +1 -1
- package/dist/types/config.d.ts +27 -0
- package/dist/types/config.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/instructions/README.md +2 -0
- package/instructions/ai.md +31 -2
- package/instructions/peer-dependencies.md +5 -1
- package/package.json +9 -4
package/dist/types/config.d.ts
CHANGED
|
@@ -19,6 +19,14 @@ export interface QueueConfig {
|
|
|
19
19
|
}
|
|
20
20
|
export interface AIProviderConfig {
|
|
21
21
|
provider: string;
|
|
22
|
+
/**
|
|
23
|
+
* API key for OpenAI / Anthropic.
|
|
24
|
+
*
|
|
25
|
+
* Providers that authenticate some other way (Bedrock uses the AWS
|
|
26
|
+
* credential chain) carry an empty string here. Use
|
|
27
|
+
* {@link AIProviderSlotConfig} when constructing a provider slot by hand —
|
|
28
|
+
* it makes the field optional so keyless providers need no placeholder.
|
|
29
|
+
*/
|
|
22
30
|
apiKey: string;
|
|
23
31
|
model?: string;
|
|
24
32
|
baseUrl?: string;
|
|
@@ -26,7 +34,26 @@ export interface AIProviderConfig {
|
|
|
26
34
|
dailyCostLimit?: number;
|
|
27
35
|
/** Request timeout in milliseconds for AI provider calls (default: 120_000) */
|
|
28
36
|
requestTimeout?: number;
|
|
37
|
+
/** AWS region for Bedrock (and similar region-scoped providers). */
|
|
38
|
+
region?: string;
|
|
39
|
+
/** Path to a Bedrock normalized pricing JSON file (`AI_BEDROCK_PRICING_FILE`). */
|
|
40
|
+
pricingFilePath?: string;
|
|
41
|
+
/** Default embedding model id (Bedrock Titan, etc.). */
|
|
42
|
+
embeddingModel?: string;
|
|
43
|
+
/** In-memory TTL for auto-downloaded Bedrock Price List rates. */
|
|
44
|
+
pricingCacheTtlMs?: number;
|
|
29
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* A provider slot as accepted by `createProviderAdapter`.
|
|
48
|
+
*
|
|
49
|
+
* Identical to {@link AIProviderConfig} except that `apiKey` is optional,
|
|
50
|
+
* because not every provider authenticates with one — Bedrock uses the AWS
|
|
51
|
+
* credential chain (IAM / IRSA / instance role). Kept separate so that reading
|
|
52
|
+
* `config.ai.apiKey` still yields a `string`; only the factory input is widened.
|
|
53
|
+
*/
|
|
54
|
+
export type AIProviderSlotConfig = Omit<AIProviderConfig, 'apiKey'> & {
|
|
55
|
+
apiKey?: string;
|
|
56
|
+
};
|
|
30
57
|
export interface AuthAdapterConfig {
|
|
31
58
|
provider: string;
|
|
32
59
|
issuer?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { AuditRecord, AuditService } from './audit.js';
|
|
2
2
|
export type { ApiDeprecationConfig, ApiDocsConfig, ApiExposureConfig, ApiHttpMethod, ApiIdempotencyConfig, ApiStability, ApiTestConfig, ApiTestMode, CapabilityAuditConfig, CapabilityContract, CapabilityEffects, CapabilityExplanationConfig, CapabilityExposeAs, McpExposureConfig, } from './capability.js';
|
|
3
|
-
export type { AIProviderConfig, AIProvidersConfig, AuthAdapterConfig, DatabaseConfig, Environment, McpAgentConfig, McpConfig, PlumbusConfig, PromptModelOverride, QueueConfig, } from './config.js';
|
|
3
|
+
export type { AIProviderConfig, AIProvidersConfig, AIProviderSlotConfig, AuthAdapterConfig, DatabaseConfig, Environment, McpAgentConfig, McpConfig, PlumbusConfig, PromptModelOverride, QueueConfig, } from './config.js';
|
|
4
4
|
export type { AIDocument, AIFinalGenerateResult, AIGenerateConfig, AIGenerateResult, AIGenerateWithUsageConfig, AIService, AIStreamEvent, AITokenUsage, AIToolCallsGenerateResult, AIToolEnabledGenerateResult, ConfigService, DataService, EventService, ExecutionContext, FlowDescription, FlowExecution, FlowService, LoggerService, AggregateOptions, AggregateRow, AggregateValue, QueryOptions, Repository, ConditionalUpdateResult, RequestMeta, SecurityService, TimeService, } from './context.js';
|
|
5
5
|
export type { EntityDefinition, EntityIndexDefinition, EntityRetention } from './entity.js';
|
|
6
6
|
export { BackoffStrategy, CapabilityKind, ErrorCode, FieldClassification, FlowStepType, GovernanceSeverity, PolicyProfile, RelationType, RuleStatus, } from './enums.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/D,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,2BAA2B,EAC3B,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5F,OAAO,EACL,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAElE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/D,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,iEAAiE;AACjE,uEAAuE;AACvE,8EAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,iEAAiE;AACjE,uEAAuE;AACvE,8EAA8E;AAmE9E,0BAA0B;AAC1B,OAAO,EACL,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/instructions/README.md
CHANGED
|
@@ -26,6 +26,8 @@ For conceptual reference, see `docs/` in the Plumbus monorepo. These files are *
|
|
|
26
26
|
| [peer-dependencies.md](./peer-dependencies.md) | **Before editing add-on `peerDependencies`** — copy literals exactly. |
|
|
27
27
|
| [upgrading-0.5-capabilities.md](./upgrading-0.5-capabilities.md) | Canonical capability names, invoke policy, flow auth snapshot. |
|
|
28
28
|
|
|
29
|
+
Optional AI provider: after `pnpm add @plumbus/ai-bedrock`, read `node_modules/@plumbus/ai-bedrock/instructions/README.md` (framework + pricing pull).
|
|
30
|
+
|
|
29
31
|
Package quickstart: [../README.md](../README.md).
|
|
30
32
|
|
|
31
33
|
## Critical rules
|
package/instructions/ai.md
CHANGED
|
@@ -186,7 +186,9 @@ All AI responses are validated against the prompt's output Zod schema. On failur
|
|
|
186
186
|
|
|
187
187
|
Every AI invocation records: model used, input/output token counts, latency, and prompt name. Token counts come directly from provider responses.
|
|
188
188
|
|
|
189
|
-
**Per-request cost** is computed
|
|
189
|
+
**Per-request cost** for OpenAI/Anthropic is computed from a built-in pricing table (`calculateModelCost`). Unknown models (Ollama, custom endpoints) return cost `$0`. Cached-token and long-context adjustments are applied when providers return cache metadata.
|
|
190
|
+
|
|
191
|
+
**Provider-supplied cost:** when an adapter sets `cost` on `ProviderResponse` / stream `done` (Amazon Bedrock via `@plumbus/ai-bedrock`), `createAIService` **prefers that value** over `MODEL_PRICING`. Bedrock never returns USD — the add-on multiplies usage × AWS Price List rates (auto-download or `AI_BEDROCK_PRICING_FILE`). Do not alias Bedrock rates to Anthropic catalog rows.
|
|
190
192
|
|
|
191
193
|
`generateWithUsage()` and `streamGenerate()` expose `cost` on each call. Budget limits (`BudgetConfig`) can gate requests by tokens or dollar amounts.
|
|
192
194
|
|
|
@@ -219,7 +221,7 @@ AI_MODEL=gpt-4o-mini
|
|
|
219
221
|
|
|
220
222
|
### Multi-Provider
|
|
221
223
|
|
|
222
|
-
Set `AI_DEFAULT_PROVIDER` to enable multi-provider mode. Env-based discovery supports
|
|
224
|
+
Set `AI_DEFAULT_PROVIDER` to enable multi-provider mode. Env-based discovery supports **`AI_OPENAI_*`**, **`AI_ANTHROPIC_*`**, and **`AI_BEDROCK_*`** (region-based; no API key). Other `AI_{NAME}_API_KEY` values are ignored with a warning. Wire additional providers programmatically via `createProviderAdapter` / `createAIService`.
|
|
223
225
|
|
|
224
226
|
```bash
|
|
225
227
|
AI_DEFAULT_PROVIDER=openai
|
|
@@ -233,6 +235,33 @@ AI_ANTHROPIC_BASE_URL=https://custom-anthropic.com # optional
|
|
|
233
235
|
AI_ANTHROPIC_MODEL=claude-sonnet-4-20250514
|
|
234
236
|
```
|
|
235
237
|
|
|
238
|
+
### Amazon Bedrock
|
|
239
|
+
|
|
240
|
+
Requires `@plumbus/core` **≥ 0.6.16** (provider slot, env discovery, adapter `cost`, wiring v13).
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
pnpm add @plumbus/ai-bedrock
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
AI_DEFAULT_PROVIDER=bedrock
|
|
248
|
+
AI_BEDROCK_REGION=us-east-1
|
|
249
|
+
AI_BEDROCK_MODEL=anthropic.claude-sonnet-4-5-20250929-v1:0
|
|
250
|
+
# containers (recommended) — mount normalized rates; no Price List CDN egress:
|
|
251
|
+
# AI_BEDROCK_PRICING_FILE=/config/bedrock-pricing.json
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Auth is IAM / IRSA / default credential chain (SDK may honor `AWS_BEARER_TOKEN_BEDROCK`). Price List URLs, curl, normalize script, ConfigMap:
|
|
255
|
+
|
|
256
|
+
- `node_modules/@plumbus/ai-bedrock/instructions/framework.md`
|
|
257
|
+
- `node_modules/@plumbus/ai-bedrock/instructions/pricing.md`
|
|
258
|
+
|
|
259
|
+
Example rates URL (public, no IAM):
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrockFoundationModels/current/us-east-1/index.json
|
|
263
|
+
```
|
|
264
|
+
|
|
236
265
|
Each prompt's `model.provider` routes to the named provider; prompts without a provider field use `defaultProvider`.
|
|
237
266
|
|
|
238
267
|
### Default Model
|
|
@@ -16,6 +16,7 @@ Read this file **before** editing `peerDependencies` in any `packages/*/package.
|
|
|
16
16
|
| Most add-ons (chat, chat-ui, knowledge-base, mcp, api, browser-extension) | `"0.5.x \|\| 0.6.x"` | `packages/mcp/package.json` |
|
|
17
17
|
| Voice only (requires core 0.6+ media/cost APIs) | `"0.6.x"` | `packages/voice/package.json` |
|
|
18
18
|
| Auth only (requires core 0.6.8+ HttpAuthenticationRuntime) | `"0.6.x"` | `packages/auth/package.json` |
|
|
19
|
+
| AI Bedrock (requires provider `cost` preference + optional peer load; **runtime ≥ 0.6.16**) | `"0.6.x"` | `packages/ai-bedrock/package.json` |
|
|
19
20
|
|
|
20
21
|
When adding a **new** publishable add-on under `packages/`, use `"0.5.x || 0.6.x"` unless the package genuinely requires core 0.6+ only (then use the voice pattern).
|
|
21
22
|
|
|
@@ -26,6 +27,7 @@ When adding a **new** publishable add-on under `packages/`, use `"0.5.x || 0.6.x
|
|
|
26
27
|
| `@plumbus/chat` **0.1.11+** | `0.5.x \|\| 0.6.x` | `@plumbus/core` **≥ 0.6.11** (tool protocol + `updateWhere`) |
|
|
27
28
|
| `@plumbus/chat-ui` **0.1.7+** | `0.5.x \|\| 0.6.x` (+ `@plumbus/chat` `0.1.x`) | `@plumbus/chat` **≥ 0.1.11** (and thus core **≥ 0.6.11**) |
|
|
28
29
|
| `@plumbus/auth` | `0.6.x` | `@plumbus/core` **≥ 0.6.8** (`HttpAuthenticationRuntime`) |
|
|
30
|
+
| `@plumbus/api` **0.1.4+** | `0.5.x \|\| 0.6.x` | `@plumbus/core` **≥ 0.6.9** (`buildAuthenticationRequest` for partner session auth) |
|
|
29
31
|
|
|
30
32
|
## Other publishable peer strings
|
|
31
33
|
|
|
@@ -33,6 +35,8 @@ When adding a **new** publishable add-on under `packages/`, use `"0.5.x || 0.6.x
|
|
|
33
35
|
|---|---|---|---|---|
|
|
34
36
|
| `@plumbus/core` | `@plumbus/mcp` | `"0.5.x \|\| 0.6.x"` | optional | `packages/plumbus-core/package.json` |
|
|
35
37
|
| `@plumbus/core` | `@plumbus/api` | `"0.1.x"` | optional | `packages/plumbus-core/package.json` |
|
|
38
|
+
| `@plumbus/core` | `@plumbus/ai-bedrock` | `"0.1.x"` | optional | `packages/plumbus-core/package.json` |
|
|
39
|
+
| `@plumbus/ai-bedrock` | `@plumbus/core` | `"0.6.x"` | required | `packages/ai-bedrock/package.json` |
|
|
36
40
|
| `@plumbus/chat` | `@plumbus/knowledge-base` | `"^0.1.0"` | optional | `packages/chat/package.json` |
|
|
37
41
|
| `@plumbus/chat-ui` | `@plumbus/chat` | `"0.1.x"` | required | `packages/chat-ui/package.json` |
|
|
38
42
|
| `@plumbus/chat-ui` | `@plumbus/core` | `"0.5.x \|\| 0.6.x"` | required | `packages/chat-ui/package.json` |
|
|
@@ -46,7 +50,7 @@ When adding a **new** publishable add-on under `packages/`, use `"0.5.x || 0.6.x
|
|
|
46
50
|
| `@plumbus/voice` | `@plumbus/voice-minimax` | `"0.1.x"` | optional | `packages/voice/package.json` |
|
|
47
51
|
| `@plumbus/voice` | `@plumbus/voice-livekit` | `"0.1.x"` | optional | `packages/voice/package.json` |
|
|
48
52
|
|
|
49
|
-
**Peering direction:** add-ons declare `@plumbus/core` as a peer — consumer apps install both. `@plumbus/core` optionally peers `@plumbus/mcp
|
|
53
|
+
**Peering direction:** add-ons declare `@plumbus/core` as a peer — consumer apps install both. `@plumbus/core` optionally peers `@plumbus/mcp`, `@plumbus/api`, and `@plumbus/ai-bedrock` when those packages are present. `@plumbus/chat` optionally peers `@plumbus/knowledge-base` for registry-backed context sources — **not** the reverse. `@plumbus/knowledge-base` only peers `@plumbus/core`. `@plumbus/auth-cognito` peers `@plumbus/auth` only — not `@plumbus/core` directly. Voice provider packages peer `@plumbus/voice` `0.4.x` (and `@plumbus/core` `0.6.x`); `@plumbus/voice` does **not** peer the add-ons — apps install add-ons and pass `*_REGISTRATION` into `createProviderRegistry()` — **copy these literals; do not derive**.
|
|
50
54
|
|
|
51
55
|
## Forbidden patterns
|
|
52
56
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumbus/core",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.16",
|
|
4
4
|
"description": "Plumbus framework core — types, SDK, runtime, CLI, test utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@plumbus/api": "0.1.x",
|
|
78
|
+
"@plumbus/ai-bedrock": "0.1.x",
|
|
78
79
|
"@plumbus/mcp": "0.5.x || 0.6.x",
|
|
79
80
|
"cron-parser": "^4.9.0",
|
|
80
81
|
"redis": "^4.7.0"
|
|
@@ -83,6 +84,9 @@
|
|
|
83
84
|
"@plumbus/api": {
|
|
84
85
|
"optional": true
|
|
85
86
|
},
|
|
87
|
+
"@plumbus/ai-bedrock": {
|
|
88
|
+
"optional": true
|
|
89
|
+
},
|
|
86
90
|
"@plumbus/mcp": {
|
|
87
91
|
"optional": true
|
|
88
92
|
},
|
|
@@ -99,9 +103,10 @@
|
|
|
99
103
|
"@vitest/browser": "^3.0.0",
|
|
100
104
|
"esbuild": "^0.25.12",
|
|
101
105
|
"typescript": "^5.7.0",
|
|
102
|
-
"@plumbus/api": "0.1.
|
|
103
|
-
"@plumbus/
|
|
104
|
-
"@plumbus/voice": "0.4.3"
|
|
106
|
+
"@plumbus/api": "0.1.4",
|
|
107
|
+
"@plumbus/ai-bedrock": "0.1.0",
|
|
108
|
+
"@plumbus/voice": "0.4.3",
|
|
109
|
+
"@plumbus/mcp": "0.5.1"
|
|
105
110
|
},
|
|
106
111
|
"scripts": {
|
|
107
112
|
"build": "tsc -b",
|