@vectros-ai/cli 0.6.5 → 0.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/cli.js +75 -13
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +75 -13
- package/dist/cli.mjs.map +1 -1
- package/package.json +3 -3
package/dist/cli.mjs
CHANGED
|
@@ -481,10 +481,18 @@ var DocumentRequest;
|
|
|
481
481
|
Text: "TEXT",
|
|
482
482
|
None: "NONE"
|
|
483
483
|
};
|
|
484
|
+
DocumentRequest2.Status = {
|
|
485
|
+
Active: "ACTIVE",
|
|
486
|
+
Archived: "ARCHIVED"
|
|
487
|
+
};
|
|
484
488
|
})(DocumentRequest || (DocumentRequest = {}));
|
|
485
489
|
var DocumentResponse;
|
|
486
490
|
((DocumentResponse2) => {
|
|
487
491
|
DocumentResponse2.Status = {
|
|
492
|
+
Active: "ACTIVE",
|
|
493
|
+
Archived: "ARCHIVED"
|
|
494
|
+
};
|
|
495
|
+
DocumentResponse2.IndexStatus = {
|
|
488
496
|
PendingUpload: "PENDING_UPLOAD",
|
|
489
497
|
Uploaded: "UPLOADED",
|
|
490
498
|
Extracting: "EXTRACTING",
|
|
@@ -5255,7 +5263,7 @@ var DocumentsClient = class {
|
|
|
5255
5263
|
return handleNonStatusCodeError(_response.error, _response.rawResponse, "GET", "/v1/documents/{id}/versions");
|
|
5256
5264
|
}
|
|
5257
5265
|
/**
|
|
5258
|
-
* 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
|
|
5266
|
+
* 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).
|
|
5259
5267
|
*
|
|
5260
5268
|
* @param {Vectros.FileUploadRequest} request
|
|
5261
5269
|
* @param {DocumentsClient.RequestOptions} requestOptions - Request-specific configuration.
|
|
@@ -9657,12 +9665,14 @@ var DATA_PLANE_ACTIONS = [
|
|
|
9657
9665
|
"inference:r",
|
|
9658
9666
|
"documents:r",
|
|
9659
9667
|
"documents:c",
|
|
9668
|
+
"documents:u",
|
|
9660
9669
|
"folders:r",
|
|
9661
9670
|
"folders:c"
|
|
9662
9671
|
];
|
|
9672
|
+
var EDITOR_ACTIONS = [...DATA_PLANE_ACTIONS, "records:d", "documents:d", "folders:d"];
|
|
9663
9673
|
var agenticSdlc = {
|
|
9664
9674
|
name: "agentic-sdlc",
|
|
9665
|
-
version: "1.
|
|
9675
|
+
version: "1.3.0",
|
|
9666
9676
|
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.",
|
|
9667
9677
|
contextId: "agentic-sdlc",
|
|
9668
9678
|
contextName: "Agentic SDLC Knowledge Base",
|
|
@@ -10097,6 +10107,19 @@ var agenticSdlc = {
|
|
|
10097
10107
|
fieldType: "date",
|
|
10098
10108
|
description: "ISO-8601 last-reviewed date. Range-queryable.",
|
|
10099
10109
|
renderHints: { label: "Reviewed on", widget: "date", order: 12 }
|
|
10110
|
+
},
|
|
10111
|
+
{
|
|
10112
|
+
// Provenance for sync: the source file this record was distilled from. A
|
|
10113
|
+
// record can't carry an in-file marker the way a document can (many records
|
|
10114
|
+
// come from one file), so it names its source instead — a change to that file
|
|
10115
|
+
// finds (equality lookup) and re-extracts exactly its records. Equality, not
|
|
10116
|
+
// range: file-level is the sync unit (re-extraction reprocesses the whole file),
|
|
10117
|
+
// and the schema keeps its single range lookup for the date row.
|
|
10118
|
+
fieldId: "sourceRef",
|
|
10119
|
+
fieldType: "string",
|
|
10120
|
+
filterable: true,
|
|
10121
|
+
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.",
|
|
10122
|
+
renderHints: { label: "Source ref", widget: "text", order: 13 }
|
|
10100
10123
|
}
|
|
10101
10124
|
],
|
|
10102
10125
|
lookupFields: [
|
|
@@ -10106,7 +10129,8 @@ var agenticSdlc = {
|
|
|
10106
10129
|
"area",
|
|
10107
10130
|
"verifiedBy",
|
|
10108
10131
|
"relatedDecision",
|
|
10109
|
-
{ fieldName: "reviewedOn", rangeEnabled: true }
|
|
10132
|
+
{ fieldName: "reviewedOn", rangeEnabled: true },
|
|
10133
|
+
"sourceRef"
|
|
10110
10134
|
]
|
|
10111
10135
|
},
|
|
10112
10136
|
{
|
|
@@ -10183,9 +10207,23 @@ var agenticSdlc = {
|
|
|
10183
10207
|
fieldType: "date",
|
|
10184
10208
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
10185
10209
|
renderHints: { label: "Updated on", widget: "date", order: 9 }
|
|
10210
|
+
},
|
|
10211
|
+
{
|
|
10212
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10213
|
+
fieldId: "sourceRef",
|
|
10214
|
+
fieldType: "string",
|
|
10215
|
+
filterable: true,
|
|
10216
|
+
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.",
|
|
10217
|
+
renderHints: { label: "Source ref", widget: "text", order: 10 }
|
|
10186
10218
|
}
|
|
10187
10219
|
],
|
|
10188
|
-
lookupFields: [
|
|
10220
|
+
lookupFields: [
|
|
10221
|
+
"area",
|
|
10222
|
+
"status",
|
|
10223
|
+
"establishedBy",
|
|
10224
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
10225
|
+
"sourceRef"
|
|
10226
|
+
]
|
|
10189
10227
|
},
|
|
10190
10228
|
{
|
|
10191
10229
|
// A GOTCHA / sharp edge: a symptom, its cause, and the fix. A tight typed
|
|
@@ -10239,9 +10277,22 @@ var agenticSdlc = {
|
|
|
10239
10277
|
fieldType: "date",
|
|
10240
10278
|
description: "ISO-8601 \u2014 when first hit. Range-queryable.",
|
|
10241
10279
|
renderHints: { label: "Discovered on", widget: "date", order: 7 }
|
|
10280
|
+
},
|
|
10281
|
+
{
|
|
10282
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10283
|
+
fieldId: "sourceRef",
|
|
10284
|
+
fieldType: "string",
|
|
10285
|
+
filterable: true,
|
|
10286
|
+
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.",
|
|
10287
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
10242
10288
|
}
|
|
10243
10289
|
],
|
|
10244
|
-
lookupFields: [
|
|
10290
|
+
lookupFields: [
|
|
10291
|
+
"area",
|
|
10292
|
+
"status",
|
|
10293
|
+
{ fieldName: "discoveredOn", rangeEnabled: true },
|
|
10294
|
+
"sourceRef"
|
|
10295
|
+
]
|
|
10245
10296
|
},
|
|
10246
10297
|
{
|
|
10247
10298
|
// A glossary TERM — a definition keyed by the term itself. Structure-dominant:
|
|
@@ -10301,6 +10352,14 @@ var agenticSdlc = {
|
|
|
10301
10352
|
fieldType: "date",
|
|
10302
10353
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
10303
10354
|
renderHints: { label: "Updated on", widget: "date", order: 7 }
|
|
10355
|
+
},
|
|
10356
|
+
{
|
|
10357
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
10358
|
+
fieldId: "sourceRef",
|
|
10359
|
+
fieldType: "string",
|
|
10360
|
+
filterable: true,
|
|
10361
|
+
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.",
|
|
10362
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
10304
10363
|
}
|
|
10305
10364
|
],
|
|
10306
10365
|
// `term` is a UNIQUE equality lookup — exact "define X" + a one-per-term
|
|
@@ -10309,7 +10368,8 @@ var agenticSdlc = {
|
|
|
10309
10368
|
{ fieldName: "term", unique: true },
|
|
10310
10369
|
"area",
|
|
10311
10370
|
"relatedDecision",
|
|
10312
|
-
{ fieldName: "updatedOn", rangeEnabled: true }
|
|
10371
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
10372
|
+
"sourceRef"
|
|
10313
10373
|
]
|
|
10314
10374
|
}
|
|
10315
10375
|
],
|
|
@@ -10327,11 +10387,13 @@ var agenticSdlc = {
|
|
|
10327
10387
|
// grants the human none by default. Bind it after bootstrap with:
|
|
10328
10388
|
// vectros access grant --principal usr_<your-user-id> --context agentic-sdlc --role editor
|
|
10329
10389
|
// (or the admin app's Access > Contexts > agentic-sdlc > Profiles > Create).
|
|
10330
|
-
//
|
|
10331
|
-
//
|
|
10332
|
-
//
|
|
10390
|
+
// The editor gets the full data plane so a human curator can browse, write/correct,
|
|
10391
|
+
// AND hard-delete the KB (EDITOR_ACTIONS = the service key's set + delete). The
|
|
10392
|
+
// service key deliberately lacks delete and archives instead; the trusted human
|
|
10393
|
+
// owner may permanently remove genuine strays. Still no control-plane action, so
|
|
10394
|
+
// the scope gate accepts it as a data-plane-only role.
|
|
10333
10395
|
roles: {
|
|
10334
|
-
editor: [{ allowedActions:
|
|
10396
|
+
editor: [{ allowedActions: EDITOR_ACTIONS }]
|
|
10335
10397
|
},
|
|
10336
10398
|
servicePrincipal: {
|
|
10337
10399
|
externalId: "agentic-sdlc",
|
|
@@ -14010,9 +14072,9 @@ async function runBlueprintTest(fileOrName, opts, deps = {}) {
|
|
|
14010
14072
|
|
|
14011
14073
|
// src/build-info.ts
|
|
14012
14074
|
var BUILD_INFO = {
|
|
14013
|
-
cli: true ? "0.6.
|
|
14014
|
-
sdk: true ? "0.
|
|
14015
|
-
blueprints: true ? "0.6.
|
|
14075
|
+
cli: true ? "0.6.7" : "dev",
|
|
14076
|
+
sdk: true ? "0.32.0" : "dev",
|
|
14077
|
+
blueprints: true ? "0.6.5" : "dev"
|
|
14016
14078
|
};
|
|
14017
14079
|
function formatBuildInfo() {
|
|
14018
14080
|
return `vectros ${BUILD_INFO.cli} (sdk ${BUILD_INFO.sdk}, blueprints ${BUILD_INFO.blueprints})`;
|