@vectros-ai/cli 0.6.5 → 0.6.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 +14 -0
- package/dist/cli.js +74 -13
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +74 -13
- package/dist/cli.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to `@vectros-ai/cli` are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org).
|
|
5
5
|
|
|
6
|
+
## 0.6.6 — 2026-07-03
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- **Bundled blueprint library updated to `@vectros-ai/blueprints` 0.6.4.** The
|
|
11
|
+
`agentic-sdlc` blueprint's record schemas (`control` / `convention` / `gotcha` /
|
|
12
|
+
`term`) now carry a `sourceRef` provenance field — the sync-back index that lets a
|
|
13
|
+
knowledge base stay in sync with the repo it mirrors — and its bundled guide and
|
|
14
|
+
agent prompt document that sync pattern. No CLI command or flag changes.
|
|
15
|
+
- Updated the bundled `@vectros-ai/sdk` to **0.32.0**, keeping the CLI aligned with
|
|
16
|
+
the current Vectros API. Documents gained a lifecycle `status` (archive/restore
|
|
17
|
+
without deleting) and their processing state moved to `indexStatus`; no CLI
|
|
18
|
+
command or flag changes.
|
|
19
|
+
|
|
6
20
|
## 0.6.5 — 2026-07-01
|
|
7
21
|
|
|
8
22
|
### Added
|
package/dist/cli.js
CHANGED
|
@@ -504,10 +504,18 @@ var DocumentRequest;
|
|
|
504
504
|
Text: "TEXT",
|
|
505
505
|
None: "NONE"
|
|
506
506
|
};
|
|
507
|
+
DocumentRequest2.Status = {
|
|
508
|
+
Active: "ACTIVE",
|
|
509
|
+
Archived: "ARCHIVED"
|
|
510
|
+
};
|
|
507
511
|
})(DocumentRequest || (DocumentRequest = {}));
|
|
508
512
|
var DocumentResponse;
|
|
509
513
|
((DocumentResponse2) => {
|
|
510
514
|
DocumentResponse2.Status = {
|
|
515
|
+
Active: "ACTIVE",
|
|
516
|
+
Archived: "ARCHIVED"
|
|
517
|
+
};
|
|
518
|
+
DocumentResponse2.IndexStatus = {
|
|
511
519
|
PendingUpload: "PENDING_UPLOAD",
|
|
512
520
|
Uploaded: "UPLOADED",
|
|
513
521
|
Extracting: "EXTRACTING",
|
|
@@ -5278,7 +5286,7 @@ var DocumentsClient = class {
|
|
|
5278
5286
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/documents/{id}/versions");
|
|
5279
5287
|
}
|
|
5280
5288
|
/**
|
|
5281
|
-
* Starts a file-based document by returning a short-lived presigned S3 PUT URL. Upload the file bytes directly to `uploadUrl`; the document is then automatically queued for text extraction and asynchronous indexing. Supplying an `externalId` makes this idempotent — re-initiating an upload with the same `externalId` re-issues a fresh presigned URL to the SAME existing document/object (so a re-upload inherently replaces the file body) rather than creating a duplicate. The response's `created` field (and the HTTP status — 201 when a new document was minted, 200 when an existing one was matched) tells the two apart. With `?upsert=true`, the submitted `payload`/`title` are also applied to the matched document (file-body divergence cannot be diffed at upload-init — the bytes have not arrived yet — so the re-upload itself replaces the body
|
|
5289
|
+
* Starts a file-based document by returning a short-lived presigned S3 PUT URL. Upload the file bytes directly to `uploadUrl`; the document is then automatically queued for text extraction and asynchronous indexing. Supplying an `externalId` makes this idempotent — re-initiating an upload with the same `externalId` re-issues a fresh presigned URL to the SAME existing document/object (so a re-upload inherently replaces the file body) rather than creating a duplicate. The response's `created` field (and the HTTP status — 201 when a new document was minted, 200 when an existing one was matched) tells the two apart. With `?upsert=true`, the submitted `payload`/`title` are also applied to the matched document (file-body divergence cannot be diffed at upload-init — the bytes have not arrived yet — so the re-upload itself replaces the body). Creating a NEW document requires the `documents:c` scope. Re-uploading over an EXISTING document overwrites (and re-indexes) its body, so it is an update: it requires the `documents:u` scope (as does `?upsert=true` for the metadata).
|
|
5282
5290
|
*
|
|
5283
5291
|
* @param {Vectros.FileUploadRequest} request
|
|
5284
5292
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -9683,9 +9691,10 @@ var DATA_PLANE_ACTIONS = [
|
|
|
9683
9691
|
"folders:r",
|
|
9684
9692
|
"folders:c"
|
|
9685
9693
|
];
|
|
9694
|
+
var EDITOR_ACTIONS = [...DATA_PLANE_ACTIONS, "records:d", "documents:d", "folders:d"];
|
|
9686
9695
|
var agenticSdlc = {
|
|
9687
9696
|
name: "agentic-sdlc",
|
|
9688
|
-
version: "1.
|
|
9697
|
+
version: "1.2.0",
|
|
9689
9698
|
description: "A whole-SDLC system of record for an AI development team \u2014 decisions, designs, references, runbooks, post-mortems (as documents) plus controls, conventions, gotchas, and a glossary (as records), cross-linked and recalled by meaning.",
|
|
9690
9699
|
contextId: "agentic-sdlc",
|
|
9691
9700
|
contextName: "Agentic SDLC Knowledge Base",
|
|
@@ -10120,6 +10129,19 @@ var agenticSdlc = {
|
|
|
10120
10129
|
fieldType: "date",
|
|
10121
10130
|
description: "ISO-8601 last-reviewed date. Range-queryable.",
|
|
10122
10131
|
renderHints: { label: "Reviewed on", widget: "date", order: 12 }
|
|
10132
|
+
},
|
|
10133
|
+
{
|
|
10134
|
+
// Provenance for sync: the source file this record was distilled from. A
|
|
10135
|
+
// record can't carry an in-file marker the way a document can (many records
|
|
10136
|
+
// come from one file), so it names its source instead — a change to that file
|
|
10137
|
+
// finds (equality lookup) and re-extracts exactly its records. Equality, not
|
|
10138
|
+
// range: file-level is the sync unit (re-extraction reprocesses the whole file),
|
|
10139
|
+
// and the schema keeps its single range lookup for the date row.
|
|
10140
|
+
fieldId: "sourceRef",
|
|
10141
|
+
fieldType: "string",
|
|
10142
|
+
filterable: true,
|
|
10143
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
10144
|
+
renderHints: { label: "Source ref", widget: "text", order: 13 }
|
|
10123
10145
|
}
|
|
10124
10146
|
],
|
|
10125
10147
|
lookupFields: [
|
|
@@ -10129,7 +10151,8 @@ var agenticSdlc = {
|
|
|
10129
10151
|
"area",
|
|
10130
10152
|
"verifiedBy",
|
|
10131
10153
|
"relatedDecision",
|
|
10132
|
-
{ fieldName: "reviewedOn", rangeEnabled: true }
|
|
10154
|
+
{ fieldName: "reviewedOn", rangeEnabled: true },
|
|
10155
|
+
"sourceRef"
|
|
10133
10156
|
]
|
|
10134
10157
|
},
|
|
10135
10158
|
{
|
|
@@ -10206,9 +10229,23 @@ var agenticSdlc = {
|
|
|
10206
10229
|
fieldType: "date",
|
|
10207
10230
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
10208
10231
|
renderHints: { label: "Updated on", widget: "date", order: 9 }
|
|
10232
|
+
},
|
|
10233
|
+
{
|
|
10234
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10235
|
+
fieldId: "sourceRef",
|
|
10236
|
+
fieldType: "string",
|
|
10237
|
+
filterable: true,
|
|
10238
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
10239
|
+
renderHints: { label: "Source ref", widget: "text", order: 10 }
|
|
10209
10240
|
}
|
|
10210
10241
|
],
|
|
10211
|
-
lookupFields: [
|
|
10242
|
+
lookupFields: [
|
|
10243
|
+
"area",
|
|
10244
|
+
"status",
|
|
10245
|
+
"establishedBy",
|
|
10246
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
10247
|
+
"sourceRef"
|
|
10248
|
+
]
|
|
10212
10249
|
},
|
|
10213
10250
|
{
|
|
10214
10251
|
// A GOTCHA / sharp edge: a symptom, its cause, and the fix. A tight typed
|
|
@@ -10262,9 +10299,22 @@ var agenticSdlc = {
|
|
|
10262
10299
|
fieldType: "date",
|
|
10263
10300
|
description: "ISO-8601 \u2014 when first hit. Range-queryable.",
|
|
10264
10301
|
renderHints: { label: "Discovered on", widget: "date", order: 7 }
|
|
10302
|
+
},
|
|
10303
|
+
{
|
|
10304
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10305
|
+
fieldId: "sourceRef",
|
|
10306
|
+
fieldType: "string",
|
|
10307
|
+
filterable: true,
|
|
10308
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
10309
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
10265
10310
|
}
|
|
10266
10311
|
],
|
|
10267
|
-
lookupFields: [
|
|
10312
|
+
lookupFields: [
|
|
10313
|
+
"area",
|
|
10314
|
+
"status",
|
|
10315
|
+
{ fieldName: "discoveredOn", rangeEnabled: true },
|
|
10316
|
+
"sourceRef"
|
|
10317
|
+
]
|
|
10268
10318
|
},
|
|
10269
10319
|
{
|
|
10270
10320
|
// A glossary TERM — a definition keyed by the term itself. Structure-dominant:
|
|
@@ -10324,6 +10374,14 @@ var agenticSdlc = {
|
|
|
10324
10374
|
fieldType: "date",
|
|
10325
10375
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
10326
10376
|
renderHints: { label: "Updated on", widget: "date", order: 7 }
|
|
10377
|
+
},
|
|
10378
|
+
{
|
|
10379
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10380
|
+
fieldId: "sourceRef",
|
|
10381
|
+
fieldType: "string",
|
|
10382
|
+
filterable: true,
|
|
10383
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
10384
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
10327
10385
|
}
|
|
10328
10386
|
],
|
|
10329
10387
|
// `term` is a UNIQUE equality lookup — exact "define X" + a one-per-term
|
|
@@ -10332,7 +10390,8 @@ var agenticSdlc = {
|
|
|
10332
10390
|
{ fieldName: "term", unique: true },
|
|
10333
10391
|
"area",
|
|
10334
10392
|
"relatedDecision",
|
|
10335
|
-
{ fieldName: "updatedOn", rangeEnabled: true }
|
|
10393
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
10394
|
+
"sourceRef"
|
|
10336
10395
|
]
|
|
10337
10396
|
}
|
|
10338
10397
|
],
|
|
@@ -10350,11 +10409,13 @@ var agenticSdlc = {
|
|
|
10350
10409
|
// grants the human none by default. Bind it after bootstrap with:
|
|
10351
10410
|
// vectros access grant --principal usr_<your-user-id> --context agentic-sdlc --role editor
|
|
10352
10411
|
// (or the admin app's Access > Contexts > agentic-sdlc > Profiles > Create).
|
|
10353
|
-
//
|
|
10354
|
-
//
|
|
10355
|
-
//
|
|
10412
|
+
// The editor gets the full data plane so a human curator can browse, write/correct,
|
|
10413
|
+
// AND hard-delete the KB (EDITOR_ACTIONS = the service key's set + delete). The
|
|
10414
|
+
// service key deliberately lacks delete and archives instead; the trusted human
|
|
10415
|
+
// owner may permanently remove genuine strays. Still no control-plane action, so
|
|
10416
|
+
// the scope gate accepts it as a data-plane-only role.
|
|
10356
10417
|
roles: {
|
|
10357
|
-
editor: [{ allowedActions:
|
|
10418
|
+
editor: [{ allowedActions: EDITOR_ACTIONS }]
|
|
10358
10419
|
},
|
|
10359
10420
|
servicePrincipal: {
|
|
10360
10421
|
externalId: "agentic-sdlc",
|
|
@@ -14033,9 +14094,9 @@ async function runBlueprintTest(fileOrName, opts, deps = {}) {
|
|
|
14033
14094
|
|
|
14034
14095
|
// src/build-info.ts
|
|
14035
14096
|
var BUILD_INFO = {
|
|
14036
|
-
cli: true ? "0.6.
|
|
14037
|
-
sdk: true ? "0.
|
|
14038
|
-
blueprints: true ? "0.6.
|
|
14097
|
+
cli: true ? "0.6.6" : "dev",
|
|
14098
|
+
sdk: true ? "0.32.0" : "dev",
|
|
14099
|
+
blueprints: true ? "0.6.4" : "dev"
|
|
14039
14100
|
};
|
|
14040
14101
|
function formatBuildInfo() {
|
|
14041
14102
|
return `vectros ${BUILD_INFO.cli} (sdk ${BUILD_INFO.sdk}, blueprints ${BUILD_INFO.blueprints})`;
|