@vectros-ai/blueprints 0.5.0 → 0.6.2
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 +51 -0
- package/README.md +11 -2
- package/dist/index.d.mts +152 -15
- package/dist/index.d.ts +152 -15
- package/dist/index.js +734 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +734 -2
- package/dist/index.mjs.map +1 -1
- package/guides/agentic-sdlc.md +210 -0
- package/package.json +3 -1
- package/prompts/agentic-sdlc-agent.md +127 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,57 @@
|
|
|
3
3
|
All notable changes to `@vectros-ai/blueprints` are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org).
|
|
5
5
|
|
|
6
|
+
## 0.6.2 — 2026-06-29
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- **`agentic-sdlc` ingest guidance corrected for explicit upsert.** The guide and the
|
|
11
|
+
ingest-agent prompt now describe syncing accurately: re-ingesting an unchanged item
|
|
12
|
+
returns it as-is (`created: false`), and propagating **edited** source requires
|
|
13
|
+
`upsert: true` — a plain re-create returns the existing item unchanged rather than
|
|
14
|
+
applying the edit. Pick stable `externalId`s and re-ingest with `upsert` to keep the
|
|
15
|
+
knowledge base in sync; a from-scratch rebuild into an empty context is unaffected.
|
|
16
|
+
|
|
17
|
+
## 0.6.1 — 2026-06-28
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- New bundled blueprint **`agentic-sdlc`** — a whole-SDLC system of
|
|
22
|
+
record for an AI development team, organized by **content vs structure**. Nine
|
|
23
|
+
schemas: ADRs (`decision`), `design`/specs, `reference`, `runbook`, and
|
|
24
|
+
`postmortem` bind the **document** surface (the markdown body is the artifact);
|
|
25
|
+
`control`, `convention`, `gotcha`, and a glossary `term` are **records** (the
|
|
26
|
+
typed fields are the artifact). They form a **cross-surface knowledge graph** —
|
|
27
|
+
records reference documents (`control` → the `runbook` that verifies it;
|
|
28
|
+
`convention`/`term` → the `decision` behind them) and documents reference
|
|
29
|
+
documents (a `design` → its `decision`, a `runbook` → the `postmortem` it was
|
|
30
|
+
born from, an ADR → the one it supersedes). Shows hybrid search + grounded
|
|
31
|
+
`rag_ask` over document bodies, range/sort on every artifact's date, a
|
|
32
|
+
governance `control` that carries its evidence, a `convention` with distinct
|
|
33
|
+
rule/why/howToApply fields, and a glossary `term` with a `unique` lookup. Ships
|
|
34
|
+
without bundled seeds (the cross-surface graph is populated by the ingest agent).
|
|
35
|
+
- Usage guide (`guides/agentic-sdlc.md`) and drop-in agent orientation prompt
|
|
36
|
+
(`prompts/agentic-sdlc-agent.md`) shipped with the package.
|
|
37
|
+
|
|
38
|
+
## 0.6.0 — 2026-06-28
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- **Document seeds.** A seed entry now declares a **surface**: `surface: record`
|
|
43
|
+
(a structured record — the existing behavior) or `surface: document` (a
|
|
44
|
+
text-ingested document carrying a `title` and `text`, with optional structured
|
|
45
|
+
`fields`). A blueprint can now pre-populate documents, not just records, and
|
|
46
|
+
model a **cross-surface graph** — a record's `reference` can target a seeded
|
|
47
|
+
document by `externalId`, and vice versa. A seed's surface is validated against
|
|
48
|
+
the bound schema's `allowedSurfaces`.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **Breaking (format):** every seed entry must now declare `surface`. Existing
|
|
53
|
+
record seeds add `surface: record`. The discriminator is explicit by design — a
|
|
54
|
+
document seed's first-class `title`/`text` are distinct from a record's
|
|
55
|
+
`fields`, so the two shapes are validated separately.
|
|
56
|
+
|
|
6
57
|
## 0.5.0 — 2026-06-20
|
|
7
58
|
|
|
8
59
|
Initial public release of the Vectros blueprints library.
|
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# @vectros-ai/blueprints
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@vectros-ai/blueprints)
|
|
4
|
+
[](https://www.apache.org/licenses/LICENSE-2.0)
|
|
5
|
+
|
|
3
6
|
The Vectros **blueprint** format + the curated bundled library.
|
|
4
7
|
|
|
5
8
|
A **blueprint** is a versioned, reviewed bundle for one use case: a schema
|
|
@@ -39,8 +42,14 @@ already-parsed object. Both throw `BlueprintValidationError` on a bad shape.
|
|
|
39
42
|
`MCP — <name>` when the blueprint omits `contextName`.
|
|
40
43
|
- `BUNDLED_BLUEPRINTS` / `BLUEPRINT_NAMES` / `getBlueprint(name)` — the
|
|
41
44
|
curated library: `task-management` (the minimal authoring exemplar),
|
|
42
|
-
`coding-agent-memory`, `
|
|
43
|
-
|
|
45
|
+
`coding-agent-memory`, `agentic-sdlc` (a whole-SDLC system of
|
|
46
|
+
record for an AI dev team: nine schemas split by content vs structure — ADRs,
|
|
47
|
+
designs, references, runbooks, and post-mortems as **documents**; controls,
|
|
48
|
+
conventions, gotchas, and a glossary as **records** — linked into a
|
|
49
|
+
**cross-surface** knowledge graph, with hybrid search + grounded `rag_ask`; see
|
|
50
|
+
[`guides/agentic-sdlc.md`](guides/agentic-sdlc.md) and the drop-in agent prompt
|
|
51
|
+
[`prompts/agentic-sdlc-agent.md`](prompts/agentic-sdlc-agent.md)),
|
|
52
|
+
`second-brain`, and `clinical-intake` (the PHI/sensitive-field exemplar).
|
|
44
53
|
|
|
45
54
|
## The format, field by field
|
|
46
55
|
|
package/dist/index.d.mts
CHANGED
|
@@ -751,19 +751,89 @@ declare const IdentitiesDeclSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
751
751
|
displayName?: string | undefined;
|
|
752
752
|
metadata?: Record<string, unknown> | undefined;
|
|
753
753
|
}>>;
|
|
754
|
-
declare const
|
|
754
|
+
declare const RecordSeedSchema: z.ZodObject<{
|
|
755
|
+
/** The record payload, validated against the bound schema. */
|
|
756
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
755
757
|
typeName: z.ZodString;
|
|
756
758
|
externalId: z.ZodString;
|
|
757
|
-
|
|
759
|
+
surface: z.ZodLiteral<"record">;
|
|
758
760
|
}, "strict", z.ZodTypeAny, {
|
|
759
761
|
typeName: string;
|
|
760
762
|
fields: Record<string, unknown>;
|
|
761
763
|
externalId: string;
|
|
764
|
+
surface: "record";
|
|
762
765
|
}, {
|
|
763
766
|
typeName: string;
|
|
764
767
|
fields: Record<string, unknown>;
|
|
765
768
|
externalId: string;
|
|
769
|
+
surface: "record";
|
|
766
770
|
}>;
|
|
771
|
+
declare const DocumentSeedSchema: z.ZodObject<{
|
|
772
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
773
|
+
title: z.ZodString;
|
|
774
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
775
|
+
text: z.ZodString;
|
|
776
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
777
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
778
|
+
typeName: z.ZodString;
|
|
779
|
+
externalId: z.ZodString;
|
|
780
|
+
surface: z.ZodLiteral<"document">;
|
|
781
|
+
}, "strict", z.ZodTypeAny, {
|
|
782
|
+
typeName: string;
|
|
783
|
+
text: string;
|
|
784
|
+
externalId: string;
|
|
785
|
+
surface: "document";
|
|
786
|
+
title: string;
|
|
787
|
+
fields?: Record<string, unknown> | undefined;
|
|
788
|
+
}, {
|
|
789
|
+
typeName: string;
|
|
790
|
+
text: string;
|
|
791
|
+
externalId: string;
|
|
792
|
+
surface: "document";
|
|
793
|
+
title: string;
|
|
794
|
+
fields?: Record<string, unknown> | undefined;
|
|
795
|
+
}>;
|
|
796
|
+
declare const BlueprintSeedRecordSchema: z.ZodDiscriminatedUnion<"surface", [z.ZodObject<{
|
|
797
|
+
/** The record payload, validated against the bound schema. */
|
|
798
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
799
|
+
typeName: z.ZodString;
|
|
800
|
+
externalId: z.ZodString;
|
|
801
|
+
surface: z.ZodLiteral<"record">;
|
|
802
|
+
}, "strict", z.ZodTypeAny, {
|
|
803
|
+
typeName: string;
|
|
804
|
+
fields: Record<string, unknown>;
|
|
805
|
+
externalId: string;
|
|
806
|
+
surface: "record";
|
|
807
|
+
}, {
|
|
808
|
+
typeName: string;
|
|
809
|
+
fields: Record<string, unknown>;
|
|
810
|
+
externalId: string;
|
|
811
|
+
surface: "record";
|
|
812
|
+
}>, z.ZodObject<{
|
|
813
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
814
|
+
title: z.ZodString;
|
|
815
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
816
|
+
text: z.ZodString;
|
|
817
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
818
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
819
|
+
typeName: z.ZodString;
|
|
820
|
+
externalId: z.ZodString;
|
|
821
|
+
surface: z.ZodLiteral<"document">;
|
|
822
|
+
}, "strict", z.ZodTypeAny, {
|
|
823
|
+
typeName: string;
|
|
824
|
+
text: string;
|
|
825
|
+
externalId: string;
|
|
826
|
+
surface: "document";
|
|
827
|
+
title: string;
|
|
828
|
+
fields?: Record<string, unknown> | undefined;
|
|
829
|
+
}, {
|
|
830
|
+
typeName: string;
|
|
831
|
+
text: string;
|
|
832
|
+
externalId: string;
|
|
833
|
+
surface: "document";
|
|
834
|
+
title: string;
|
|
835
|
+
fields?: Record<string, unknown> | undefined;
|
|
836
|
+
}>]>;
|
|
767
837
|
declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
768
838
|
/** Stable blueprint id (the `--blueprint <name>` selector + idempotency key). */
|
|
769
839
|
name: z.ZodString;
|
|
@@ -1167,19 +1237,47 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1167
1237
|
displayName: string;
|
|
1168
1238
|
externalId: string;
|
|
1169
1239
|
}>;
|
|
1170
|
-
seed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1240
|
+
seed: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"surface", [z.ZodObject<{
|
|
1241
|
+
/** The record payload, validated against the bound schema. */
|
|
1242
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
1171
1243
|
typeName: z.ZodString;
|
|
1172
1244
|
externalId: z.ZodString;
|
|
1173
|
-
|
|
1245
|
+
surface: z.ZodLiteral<"record">;
|
|
1174
1246
|
}, "strict", z.ZodTypeAny, {
|
|
1175
1247
|
typeName: string;
|
|
1176
1248
|
fields: Record<string, unknown>;
|
|
1177
1249
|
externalId: string;
|
|
1250
|
+
surface: "record";
|
|
1178
1251
|
}, {
|
|
1179
1252
|
typeName: string;
|
|
1180
1253
|
fields: Record<string, unknown>;
|
|
1181
1254
|
externalId: string;
|
|
1182
|
-
|
|
1255
|
+
surface: "record";
|
|
1256
|
+
}>, z.ZodObject<{
|
|
1257
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
1258
|
+
title: z.ZodString;
|
|
1259
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
1260
|
+
text: z.ZodString;
|
|
1261
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
1262
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1263
|
+
typeName: z.ZodString;
|
|
1264
|
+
externalId: z.ZodString;
|
|
1265
|
+
surface: z.ZodLiteral<"document">;
|
|
1266
|
+
}, "strict", z.ZodTypeAny, {
|
|
1267
|
+
typeName: string;
|
|
1268
|
+
text: string;
|
|
1269
|
+
externalId: string;
|
|
1270
|
+
surface: "document";
|
|
1271
|
+
title: string;
|
|
1272
|
+
fields?: Record<string, unknown> | undefined;
|
|
1273
|
+
}, {
|
|
1274
|
+
typeName: string;
|
|
1275
|
+
text: string;
|
|
1276
|
+
externalId: string;
|
|
1277
|
+
surface: "document";
|
|
1278
|
+
title: string;
|
|
1279
|
+
fields?: Record<string, unknown> | undefined;
|
|
1280
|
+
}>]>, "many">>;
|
|
1183
1281
|
/** Optional multi-clause roles, bound to principals via `access grant --role`. */
|
|
1184
1282
|
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
1185
1283
|
allowedActions: z.ZodArray<z.ZodString, "many">;
|
|
@@ -1280,11 +1378,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1280
1378
|
externalId: string;
|
|
1281
1379
|
};
|
|
1282
1380
|
contextName?: string | undefined;
|
|
1283
|
-
seed?: {
|
|
1381
|
+
seed?: ({
|
|
1284
1382
|
typeName: string;
|
|
1285
1383
|
fields: Record<string, unknown>;
|
|
1286
1384
|
externalId: string;
|
|
1287
|
-
|
|
1385
|
+
surface: "record";
|
|
1386
|
+
} | {
|
|
1387
|
+
typeName: string;
|
|
1388
|
+
text: string;
|
|
1389
|
+
externalId: string;
|
|
1390
|
+
surface: "document";
|
|
1391
|
+
title: string;
|
|
1392
|
+
fields?: Record<string, unknown> | undefined;
|
|
1393
|
+
})[] | undefined;
|
|
1288
1394
|
roles?: Record<string, {
|
|
1289
1395
|
allowedActions: string[];
|
|
1290
1396
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1367,11 +1473,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1367
1473
|
orgId?: string | undefined;
|
|
1368
1474
|
clientId?: string | undefined;
|
|
1369
1475
|
}[] | undefined;
|
|
1370
|
-
seed?: {
|
|
1476
|
+
seed?: ({
|
|
1371
1477
|
typeName: string;
|
|
1372
1478
|
fields: Record<string, unknown>;
|
|
1373
1479
|
externalId: string;
|
|
1374
|
-
|
|
1480
|
+
surface: "record";
|
|
1481
|
+
} | {
|
|
1482
|
+
typeName: string;
|
|
1483
|
+
text: string;
|
|
1484
|
+
externalId: string;
|
|
1485
|
+
surface: "document";
|
|
1486
|
+
title: string;
|
|
1487
|
+
fields?: Record<string, unknown> | undefined;
|
|
1488
|
+
})[] | undefined;
|
|
1375
1489
|
roles?: Record<string, {
|
|
1376
1490
|
allowedActions: string[];
|
|
1377
1491
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1454,11 +1568,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1454
1568
|
externalId: string;
|
|
1455
1569
|
};
|
|
1456
1570
|
contextName?: string | undefined;
|
|
1457
|
-
seed?: {
|
|
1571
|
+
seed?: ({
|
|
1458
1572
|
typeName: string;
|
|
1459
1573
|
fields: Record<string, unknown>;
|
|
1460
1574
|
externalId: string;
|
|
1461
|
-
|
|
1575
|
+
surface: "record";
|
|
1576
|
+
} | {
|
|
1577
|
+
typeName: string;
|
|
1578
|
+
text: string;
|
|
1579
|
+
externalId: string;
|
|
1580
|
+
surface: "document";
|
|
1581
|
+
title: string;
|
|
1582
|
+
fields?: Record<string, unknown> | undefined;
|
|
1583
|
+
})[] | undefined;
|
|
1462
1584
|
roles?: Record<string, {
|
|
1463
1585
|
allowedActions: string[];
|
|
1464
1586
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1541,11 +1663,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1541
1663
|
orgId?: string | undefined;
|
|
1542
1664
|
clientId?: string | undefined;
|
|
1543
1665
|
}[] | undefined;
|
|
1544
|
-
seed?: {
|
|
1666
|
+
seed?: ({
|
|
1545
1667
|
typeName: string;
|
|
1546
1668
|
fields: Record<string, unknown>;
|
|
1547
1669
|
externalId: string;
|
|
1548
|
-
|
|
1670
|
+
surface: "record";
|
|
1671
|
+
} | {
|
|
1672
|
+
typeName: string;
|
|
1673
|
+
text: string;
|
|
1674
|
+
externalId: string;
|
|
1675
|
+
surface: "document";
|
|
1676
|
+
title: string;
|
|
1677
|
+
fields?: Record<string, unknown> | undefined;
|
|
1678
|
+
})[] | undefined;
|
|
1549
1679
|
roles?: Record<string, {
|
|
1550
1680
|
allowedActions: string[];
|
|
1551
1681
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1560,7 +1690,14 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1560
1690
|
type Blueprint = z.infer<typeof BlueprintSchema>;
|
|
1561
1691
|
type BlueprintFieldDef = z.infer<typeof BlueprintFieldDefSchema>;
|
|
1562
1692
|
type BlueprintSchemaDef = z.infer<typeof BlueprintSchemaSchema>;
|
|
1563
|
-
|
|
1693
|
+
/** A single seed entry — a record seed OR a document seed (discriminated on `surface`). */
|
|
1694
|
+
type BlueprintSeed = z.infer<typeof BlueprintSeedRecordSchema>;
|
|
1695
|
+
/** The record-surface seed variant (`surface: 'record'`; the default). */
|
|
1696
|
+
type BlueprintRecordSeed = z.infer<typeof RecordSeedSchema>;
|
|
1697
|
+
/** The document-surface seed variant (`surface: 'document'`; carries `title` + `text`). */
|
|
1698
|
+
type BlueprintDocumentSeed = z.infer<typeof DocumentSeedSchema>;
|
|
1699
|
+
/** @deprecated The element type of `seed[]`, now a union — use {@link BlueprintSeed}. */
|
|
1700
|
+
type BlueprintSeedRecord = BlueprintSeed;
|
|
1564
1701
|
type BlueprintValidationRules = z.infer<typeof ValidationRulesSchema>;
|
|
1565
1702
|
type BlueprintRenderHints = z.infer<typeof RenderHintsSchema>;
|
|
1566
1703
|
type BlueprintLookupField = z.infer<typeof BlueprintLookupFieldSchema>;
|
|
@@ -1769,4 +1906,4 @@ declare const BLUEPRINT_NAMES: readonly string[];
|
|
|
1769
1906
|
/** Look up a bundled blueprint by name; `undefined` if none matches. */
|
|
1770
1907
|
declare function getBlueprint(name: string): Blueprint | undefined;
|
|
1771
1908
|
|
|
1772
|
-
export { BLUEPRINT_NAMES, BUNDLED_BLUEPRINTS, type Blueprint, type BlueprintFieldDef, BlueprintIdentityError, BlueprintInputError, type BlueprintIssue, type BlueprintLookupField, type BlueprintRenderHints, type BlueprintRoleClause, type BlueprintRoles, BlueprintSchema, type BlueprintSchemaDef, type BlueprintSeedRecord, BlueprintValidationError, type BlueprintValidationRules, type IdentitiesDecl, type IdentityDecl, type IdentityResolver, type InputDecl, type InputScalar, type InputsDecl, InputsDeclSchema, collectIdentityReferences, contextNameOf, deriveSuffix, getBlueprint, parseBlueprint, parseBlueprintJson, resolveBlueprintIdentities, resolveBlueprintInputs };
|
|
1909
|
+
export { BLUEPRINT_NAMES, BUNDLED_BLUEPRINTS, type Blueprint, type BlueprintDocumentSeed, type BlueprintFieldDef, BlueprintIdentityError, BlueprintInputError, type BlueprintIssue, type BlueprintLookupField, type BlueprintRecordSeed, type BlueprintRenderHints, type BlueprintRoleClause, type BlueprintRoles, BlueprintSchema, type BlueprintSchemaDef, type BlueprintSeed, type BlueprintSeedRecord, BlueprintValidationError, type BlueprintValidationRules, type IdentitiesDecl, type IdentityDecl, type IdentityResolver, type InputDecl, type InputScalar, type InputsDecl, InputsDeclSchema, collectIdentityReferences, contextNameOf, deriveSuffix, getBlueprint, parseBlueprint, parseBlueprintJson, resolveBlueprintIdentities, resolveBlueprintInputs };
|
package/dist/index.d.ts
CHANGED
|
@@ -751,19 +751,89 @@ declare const IdentitiesDeclSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
751
751
|
displayName?: string | undefined;
|
|
752
752
|
metadata?: Record<string, unknown> | undefined;
|
|
753
753
|
}>>;
|
|
754
|
-
declare const
|
|
754
|
+
declare const RecordSeedSchema: z.ZodObject<{
|
|
755
|
+
/** The record payload, validated against the bound schema. */
|
|
756
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
755
757
|
typeName: z.ZodString;
|
|
756
758
|
externalId: z.ZodString;
|
|
757
|
-
|
|
759
|
+
surface: z.ZodLiteral<"record">;
|
|
758
760
|
}, "strict", z.ZodTypeAny, {
|
|
759
761
|
typeName: string;
|
|
760
762
|
fields: Record<string, unknown>;
|
|
761
763
|
externalId: string;
|
|
764
|
+
surface: "record";
|
|
762
765
|
}, {
|
|
763
766
|
typeName: string;
|
|
764
767
|
fields: Record<string, unknown>;
|
|
765
768
|
externalId: string;
|
|
769
|
+
surface: "record";
|
|
766
770
|
}>;
|
|
771
|
+
declare const DocumentSeedSchema: z.ZodObject<{
|
|
772
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
773
|
+
title: z.ZodString;
|
|
774
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
775
|
+
text: z.ZodString;
|
|
776
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
777
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
778
|
+
typeName: z.ZodString;
|
|
779
|
+
externalId: z.ZodString;
|
|
780
|
+
surface: z.ZodLiteral<"document">;
|
|
781
|
+
}, "strict", z.ZodTypeAny, {
|
|
782
|
+
typeName: string;
|
|
783
|
+
text: string;
|
|
784
|
+
externalId: string;
|
|
785
|
+
surface: "document";
|
|
786
|
+
title: string;
|
|
787
|
+
fields?: Record<string, unknown> | undefined;
|
|
788
|
+
}, {
|
|
789
|
+
typeName: string;
|
|
790
|
+
text: string;
|
|
791
|
+
externalId: string;
|
|
792
|
+
surface: "document";
|
|
793
|
+
title: string;
|
|
794
|
+
fields?: Record<string, unknown> | undefined;
|
|
795
|
+
}>;
|
|
796
|
+
declare const BlueprintSeedRecordSchema: z.ZodDiscriminatedUnion<"surface", [z.ZodObject<{
|
|
797
|
+
/** The record payload, validated against the bound schema. */
|
|
798
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
799
|
+
typeName: z.ZodString;
|
|
800
|
+
externalId: z.ZodString;
|
|
801
|
+
surface: z.ZodLiteral<"record">;
|
|
802
|
+
}, "strict", z.ZodTypeAny, {
|
|
803
|
+
typeName: string;
|
|
804
|
+
fields: Record<string, unknown>;
|
|
805
|
+
externalId: string;
|
|
806
|
+
surface: "record";
|
|
807
|
+
}, {
|
|
808
|
+
typeName: string;
|
|
809
|
+
fields: Record<string, unknown>;
|
|
810
|
+
externalId: string;
|
|
811
|
+
surface: "record";
|
|
812
|
+
}>, z.ZodObject<{
|
|
813
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
814
|
+
title: z.ZodString;
|
|
815
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
816
|
+
text: z.ZodString;
|
|
817
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
818
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
819
|
+
typeName: z.ZodString;
|
|
820
|
+
externalId: z.ZodString;
|
|
821
|
+
surface: z.ZodLiteral<"document">;
|
|
822
|
+
}, "strict", z.ZodTypeAny, {
|
|
823
|
+
typeName: string;
|
|
824
|
+
text: string;
|
|
825
|
+
externalId: string;
|
|
826
|
+
surface: "document";
|
|
827
|
+
title: string;
|
|
828
|
+
fields?: Record<string, unknown> | undefined;
|
|
829
|
+
}, {
|
|
830
|
+
typeName: string;
|
|
831
|
+
text: string;
|
|
832
|
+
externalId: string;
|
|
833
|
+
surface: "document";
|
|
834
|
+
title: string;
|
|
835
|
+
fields?: Record<string, unknown> | undefined;
|
|
836
|
+
}>]>;
|
|
767
837
|
declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
768
838
|
/** Stable blueprint id (the `--blueprint <name>` selector + idempotency key). */
|
|
769
839
|
name: z.ZodString;
|
|
@@ -1167,19 +1237,47 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1167
1237
|
displayName: string;
|
|
1168
1238
|
externalId: string;
|
|
1169
1239
|
}>;
|
|
1170
|
-
seed: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1240
|
+
seed: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"surface", [z.ZodObject<{
|
|
1241
|
+
/** The record payload, validated against the bound schema. */
|
|
1242
|
+
fields: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
1171
1243
|
typeName: z.ZodString;
|
|
1172
1244
|
externalId: z.ZodString;
|
|
1173
|
-
|
|
1245
|
+
surface: z.ZodLiteral<"record">;
|
|
1174
1246
|
}, "strict", z.ZodTypeAny, {
|
|
1175
1247
|
typeName: string;
|
|
1176
1248
|
fields: Record<string, unknown>;
|
|
1177
1249
|
externalId: string;
|
|
1250
|
+
surface: "record";
|
|
1178
1251
|
}, {
|
|
1179
1252
|
typeName: string;
|
|
1180
1253
|
fields: Record<string, unknown>;
|
|
1181
1254
|
externalId: string;
|
|
1182
|
-
|
|
1255
|
+
surface: "record";
|
|
1256
|
+
}>, z.ZodObject<{
|
|
1257
|
+
/** Human-readable document title — REQUIRED by the text-ingest path. */
|
|
1258
|
+
title: z.ZodString;
|
|
1259
|
+
/** Raw text content to ingest + index — REQUIRED and non-empty (the platform rejects a blank ingest). */
|
|
1260
|
+
text: z.ZodString;
|
|
1261
|
+
/** Optional structured payload bound to the schema (the document's `fields`). */
|
|
1262
|
+
fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1263
|
+
typeName: z.ZodString;
|
|
1264
|
+
externalId: z.ZodString;
|
|
1265
|
+
surface: z.ZodLiteral<"document">;
|
|
1266
|
+
}, "strict", z.ZodTypeAny, {
|
|
1267
|
+
typeName: string;
|
|
1268
|
+
text: string;
|
|
1269
|
+
externalId: string;
|
|
1270
|
+
surface: "document";
|
|
1271
|
+
title: string;
|
|
1272
|
+
fields?: Record<string, unknown> | undefined;
|
|
1273
|
+
}, {
|
|
1274
|
+
typeName: string;
|
|
1275
|
+
text: string;
|
|
1276
|
+
externalId: string;
|
|
1277
|
+
surface: "document";
|
|
1278
|
+
title: string;
|
|
1279
|
+
fields?: Record<string, unknown> | undefined;
|
|
1280
|
+
}>]>, "many">>;
|
|
1183
1281
|
/** Optional multi-clause roles, bound to principals via `access grant --role`. */
|
|
1184
1282
|
roles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
|
|
1185
1283
|
allowedActions: z.ZodArray<z.ZodString, "many">;
|
|
@@ -1280,11 +1378,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1280
1378
|
externalId: string;
|
|
1281
1379
|
};
|
|
1282
1380
|
contextName?: string | undefined;
|
|
1283
|
-
seed?: {
|
|
1381
|
+
seed?: ({
|
|
1284
1382
|
typeName: string;
|
|
1285
1383
|
fields: Record<string, unknown>;
|
|
1286
1384
|
externalId: string;
|
|
1287
|
-
|
|
1385
|
+
surface: "record";
|
|
1386
|
+
} | {
|
|
1387
|
+
typeName: string;
|
|
1388
|
+
text: string;
|
|
1389
|
+
externalId: string;
|
|
1390
|
+
surface: "document";
|
|
1391
|
+
title: string;
|
|
1392
|
+
fields?: Record<string, unknown> | undefined;
|
|
1393
|
+
})[] | undefined;
|
|
1288
1394
|
roles?: Record<string, {
|
|
1289
1395
|
allowedActions: string[];
|
|
1290
1396
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1367,11 +1473,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1367
1473
|
orgId?: string | undefined;
|
|
1368
1474
|
clientId?: string | undefined;
|
|
1369
1475
|
}[] | undefined;
|
|
1370
|
-
seed?: {
|
|
1476
|
+
seed?: ({
|
|
1371
1477
|
typeName: string;
|
|
1372
1478
|
fields: Record<string, unknown>;
|
|
1373
1479
|
externalId: string;
|
|
1374
|
-
|
|
1480
|
+
surface: "record";
|
|
1481
|
+
} | {
|
|
1482
|
+
typeName: string;
|
|
1483
|
+
text: string;
|
|
1484
|
+
externalId: string;
|
|
1485
|
+
surface: "document";
|
|
1486
|
+
title: string;
|
|
1487
|
+
fields?: Record<string, unknown> | undefined;
|
|
1488
|
+
})[] | undefined;
|
|
1375
1489
|
roles?: Record<string, {
|
|
1376
1490
|
allowedActions: string[];
|
|
1377
1491
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1454,11 +1568,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1454
1568
|
externalId: string;
|
|
1455
1569
|
};
|
|
1456
1570
|
contextName?: string | undefined;
|
|
1457
|
-
seed?: {
|
|
1571
|
+
seed?: ({
|
|
1458
1572
|
typeName: string;
|
|
1459
1573
|
fields: Record<string, unknown>;
|
|
1460
1574
|
externalId: string;
|
|
1461
|
-
|
|
1575
|
+
surface: "record";
|
|
1576
|
+
} | {
|
|
1577
|
+
typeName: string;
|
|
1578
|
+
text: string;
|
|
1579
|
+
externalId: string;
|
|
1580
|
+
surface: "document";
|
|
1581
|
+
title: string;
|
|
1582
|
+
fields?: Record<string, unknown> | undefined;
|
|
1583
|
+
})[] | undefined;
|
|
1462
1584
|
roles?: Record<string, {
|
|
1463
1585
|
allowedActions: string[];
|
|
1464
1586
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1541,11 +1663,19 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1541
1663
|
orgId?: string | undefined;
|
|
1542
1664
|
clientId?: string | undefined;
|
|
1543
1665
|
}[] | undefined;
|
|
1544
|
-
seed?: {
|
|
1666
|
+
seed?: ({
|
|
1545
1667
|
typeName: string;
|
|
1546
1668
|
fields: Record<string, unknown>;
|
|
1547
1669
|
externalId: string;
|
|
1548
|
-
|
|
1670
|
+
surface: "record";
|
|
1671
|
+
} | {
|
|
1672
|
+
typeName: string;
|
|
1673
|
+
text: string;
|
|
1674
|
+
externalId: string;
|
|
1675
|
+
surface: "document";
|
|
1676
|
+
title: string;
|
|
1677
|
+
fields?: Record<string, unknown> | undefined;
|
|
1678
|
+
})[] | undefined;
|
|
1549
1679
|
roles?: Record<string, {
|
|
1550
1680
|
allowedActions: string[];
|
|
1551
1681
|
dataScope?: Record<string, (string | null)[]> | undefined;
|
|
@@ -1560,7 +1690,14 @@ declare const BlueprintSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1560
1690
|
type Blueprint = z.infer<typeof BlueprintSchema>;
|
|
1561
1691
|
type BlueprintFieldDef = z.infer<typeof BlueprintFieldDefSchema>;
|
|
1562
1692
|
type BlueprintSchemaDef = z.infer<typeof BlueprintSchemaSchema>;
|
|
1563
|
-
|
|
1693
|
+
/** A single seed entry — a record seed OR a document seed (discriminated on `surface`). */
|
|
1694
|
+
type BlueprintSeed = z.infer<typeof BlueprintSeedRecordSchema>;
|
|
1695
|
+
/** The record-surface seed variant (`surface: 'record'`; the default). */
|
|
1696
|
+
type BlueprintRecordSeed = z.infer<typeof RecordSeedSchema>;
|
|
1697
|
+
/** The document-surface seed variant (`surface: 'document'`; carries `title` + `text`). */
|
|
1698
|
+
type BlueprintDocumentSeed = z.infer<typeof DocumentSeedSchema>;
|
|
1699
|
+
/** @deprecated The element type of `seed[]`, now a union — use {@link BlueprintSeed}. */
|
|
1700
|
+
type BlueprintSeedRecord = BlueprintSeed;
|
|
1564
1701
|
type BlueprintValidationRules = z.infer<typeof ValidationRulesSchema>;
|
|
1565
1702
|
type BlueprintRenderHints = z.infer<typeof RenderHintsSchema>;
|
|
1566
1703
|
type BlueprintLookupField = z.infer<typeof BlueprintLookupFieldSchema>;
|
|
@@ -1769,4 +1906,4 @@ declare const BLUEPRINT_NAMES: readonly string[];
|
|
|
1769
1906
|
/** Look up a bundled blueprint by name; `undefined` if none matches. */
|
|
1770
1907
|
declare function getBlueprint(name: string): Blueprint | undefined;
|
|
1771
1908
|
|
|
1772
|
-
export { BLUEPRINT_NAMES, BUNDLED_BLUEPRINTS, type Blueprint, type BlueprintFieldDef, BlueprintIdentityError, BlueprintInputError, type BlueprintIssue, type BlueprintLookupField, type BlueprintRenderHints, type BlueprintRoleClause, type BlueprintRoles, BlueprintSchema, type BlueprintSchemaDef, type BlueprintSeedRecord, BlueprintValidationError, type BlueprintValidationRules, type IdentitiesDecl, type IdentityDecl, type IdentityResolver, type InputDecl, type InputScalar, type InputsDecl, InputsDeclSchema, collectIdentityReferences, contextNameOf, deriveSuffix, getBlueprint, parseBlueprint, parseBlueprintJson, resolveBlueprintIdentities, resolveBlueprintInputs };
|
|
1909
|
+
export { BLUEPRINT_NAMES, BUNDLED_BLUEPRINTS, type Blueprint, type BlueprintDocumentSeed, type BlueprintFieldDef, BlueprintIdentityError, BlueprintInputError, type BlueprintIssue, type BlueprintLookupField, type BlueprintRecordSeed, type BlueprintRenderHints, type BlueprintRoleClause, type BlueprintRoles, BlueprintSchema, type BlueprintSchemaDef, type BlueprintSeed, type BlueprintSeedRecord, BlueprintValidationError, type BlueprintValidationRules, type IdentitiesDecl, type IdentityDecl, type IdentityResolver, type InputDecl, type InputScalar, type InputsDecl, InputsDeclSchema, collectIdentityReferences, contextNameOf, deriveSuffix, getBlueprint, parseBlueprint, parseBlueprintJson, resolveBlueprintIdentities, resolveBlueprintInputs };
|