@agent-deck/backend 1.8.2 → 1.9.0
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/dist/.tsbuildinfo +1 -1
- package/dist/cli-runtime.d.ts.map +1 -1
- package/dist/cli-runtime.js +5 -5
- package/dist/cli-runtime.js.map +1 -1
- package/dist/config/mcp-endpoint.d.ts +6 -0
- package/dist/config/mcp-endpoint.d.ts.map +1 -0
- package/dist/config/mcp-endpoint.js +19 -0
- package/dist/config/mcp-endpoint.js.map +1 -0
- package/dist/export-import/import-bundle.d.ts +12 -1
- package/dist/export-import/import-bundle.d.ts.map +1 -1
- package/dist/export-import/import-bundle.js +11 -3
- package/dist/export-import/import-bundle.js.map +1 -1
- package/dist/mcp-server.d.ts +5 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +60 -21
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools/test-harness.d.ts +17 -0
- package/dist/mcp-tools/test-harness.d.ts.map +1 -1
- package/dist/mcp-tools/test-harness.js +49 -2
- package/dist/mcp-tools/test-harness.js.map +1 -1
- package/dist/models/database.d.ts +2 -0
- package/dist/models/database.d.ts.map +1 -1
- package/dist/models/database.js +16 -0
- package/dist/models/database.js.map +1 -1
- package/dist/playbooks/playbook-manager.d.ts.map +1 -1
- package/dist/playbooks/playbook-manager.js +9 -4
- package/dist/playbooks/playbook-manager.js.map +1 -1
- package/dist/routes/decks.d.ts.map +1 -1
- package/dist/routes/decks.js +8 -51
- package/dist/routes/decks.js.map +1 -1
- package/dist/routes/export-import.d.ts.map +1 -1
- package/dist/routes/export-import.js +3 -5
- package/dist/routes/export-import.js.map +1 -1
- package/dist/services/service-manager.d.ts +5 -1
- package/dist/services/service-manager.d.ts.map +1 -1
- package/dist/services/service-manager.js +27 -3
- package/dist/services/service-manager.js.map +1 -1
- package/dist/store/deck-file.d.ts +55 -0
- package/dist/store/deck-file.d.ts.map +1 -0
- package/dist/store/deck-file.js +163 -0
- package/dist/store/deck-file.js.map +1 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrate.d.ts.map +1 -1
- package/dist/store/migrate.js +2 -12
- package/dist/store/migrate.js.map +1 -1
- package/dist/vault/credential-manager.d.ts +6 -2
- package/dist/vault/credential-manager.d.ts.map +1 -1
- package/dist/vault/credential-manager.js +21 -14
- package/dist/vault/credential-manager.js.map +1 -1
- package/package.json +2 -2
- package/dist/execution-authority/bearer.d.ts +0 -15
- package/dist/execution-authority/bearer.d.ts.map +0 -1
- package/dist/execution-authority/bearer.js +0 -35
- package/dist/execution-authority/bearer.js.map +0 -1
- package/dist/execution-authority/index.d.ts +0 -6
- package/dist/execution-authority/index.d.ts.map +0 -1
- package/dist/execution-authority/index.js +0 -8
- package/dist/execution-authority/index.js.map +0 -1
- package/dist/execution-authority/ledger.d.ts +0 -85
- package/dist/execution-authority/ledger.d.ts.map +0 -1
- package/dist/execution-authority/ledger.js +0 -507
- package/dist/execution-authority/ledger.js.map +0 -1
- package/dist/execution-authority/store.d.ts +0 -55
- package/dist/execution-authority/store.d.ts.map +0 -1
- package/dist/execution-authority/store.js +0 -256
- package/dist/execution-authority/store.js.map +0 -1
- package/dist/execution-authority/types.d.ts +0 -119
- package/dist/execution-authority/types.d.ts.map +0 -1
- package/dist/execution-authority/types.js +0 -9
- package/dist/execution-authority/types.js.map +0 -1
- package/dist/lib/execution-authority-http.d.ts +0 -23
- package/dist/lib/execution-authority-http.d.ts.map +0 -1
- package/dist/lib/execution-authority-http.js +0 -101
- package/dist/lib/execution-authority-http.js.map +0 -1
- package/dist/mcp-stdio.d.ts +0 -2
- package/dist/mcp-stdio.d.ts.map +0 -1
- package/dist/mcp-stdio.js.map +0 -1
- package/dist/playbooks/playbook-parser.d.ts +0 -8
- package/dist/playbooks/playbook-parser.d.ts.map +0 -1
- package/dist/playbooks/playbook-parser.js +0 -76
- package/dist/playbooks/playbook-parser.js.map +0 -1
- package/dist/playbooks/playbook-service.d.ts +0 -9
- package/dist/playbooks/playbook-service.d.ts.map +0 -1
- package/dist/playbooks/playbook-service.js +0 -107
- package/dist/playbooks/playbook-service.js.map +0 -1
- package/dist/routes/execution-authority.d.ts +0 -8
- package/dist/routes/execution-authority.d.ts.map +0 -1
- package/dist/routes/execution-authority.js +0 -498
- package/dist/routes/execution-authority.js.map +0 -1
- package/dist/scope/bindings-sidecar.d.ts +0 -9
- package/dist/scope/bindings-sidecar.d.ts.map +0 -1
- package/dist/scope/bindings-sidecar.js +0 -57
- package/dist/scope/bindings-sidecar.js.map +0 -1
- package/dist/scope/repo-deck.d.ts +0 -10
- package/dist/scope/repo-deck.d.ts.map +0 -1
- package/dist/scope/repo-deck.js +0 -63
- package/dist/scope/repo-deck.js.map +0 -1
- package/dist/test-local-mcp-e2e.d.ts +0 -3
- package/dist/test-local-mcp-e2e.d.ts.map +0 -1
- package/dist/test-local-mcp-e2e.js +0 -104
- package/dist/test-local-mcp-e2e.js.map +0 -1
- package/static-ui/favicon.png +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storeDeckFromDb = storeDeckFromDb;
|
|
4
|
+
exports.flushDeckFile = flushDeckFile;
|
|
5
|
+
exports.deleteCardFromStoreThenDb = deleteCardFromStoreThenDb;
|
|
6
|
+
exports.cleanUpAfterCardDelete = cleanUpAfterCardDelete;
|
|
7
|
+
exports.deleteDeckFile = deleteDeckFile;
|
|
8
|
+
/** Deck file shape: name plus the ordered card ids, straight from the DB join. */
|
|
9
|
+
function storeDeckFromDb(deck) {
|
|
10
|
+
return {
|
|
11
|
+
id: deck.id,
|
|
12
|
+
name: deck.name,
|
|
13
|
+
serviceIds: deck.services.map(({ id }) => id),
|
|
14
|
+
credentialIds: deck.credentials.map(({ id }) => id),
|
|
15
|
+
playbookIds: deck.playbooks.map(({ id }) => id),
|
|
16
|
+
createdAt: deck.createdAt,
|
|
17
|
+
updatedAt: deck.updatedAt,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function withoutCard(deck, kind, cardId) {
|
|
21
|
+
const drop = (ids) => ids.filter((id) => id !== cardId);
|
|
22
|
+
switch (kind) {
|
|
23
|
+
case 'playbook':
|
|
24
|
+
return { ...deck, playbookIds: drop(deck.playbookIds) };
|
|
25
|
+
case 'service':
|
|
26
|
+
return { ...deck, serviceIds: drop(deck.serviceIds) };
|
|
27
|
+
case 'credential':
|
|
28
|
+
return { ...deck, credentialIds: drop(deck.credentialIds) };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function listDeckIdsForCard(db, kind, cardId) {
|
|
32
|
+
switch (kind) {
|
|
33
|
+
case 'playbook':
|
|
34
|
+
return db.listDeckIdsForPlaybook(cardId);
|
|
35
|
+
case 'service':
|
|
36
|
+
return db.listDeckIdsForService(cardId);
|
|
37
|
+
case 'credential':
|
|
38
|
+
return db.listDeckIdsForCredential(cardId);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Rewrite `decks/<id>.json` from the DB after a membership change.
|
|
43
|
+
*
|
|
44
|
+
* Files are the source of truth: `reindex` wipes the DB tables and rebuilds them
|
|
45
|
+
* from the store tree, so a membership row that never reaches the deck file is
|
|
46
|
+
* lost on the next reindex (and never reaches a second laptop). Every caller that
|
|
47
|
+
* adds or removes a deck card must flush — no-op when the store is disabled.
|
|
48
|
+
*/
|
|
49
|
+
async function flushDeckFile(db, deckId, writer) {
|
|
50
|
+
if (!writer) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const deck = await db.getDeck(deckId);
|
|
55
|
+
if (!deck) {
|
|
56
|
+
throw new Error(`Deck not found after mutation: ${deckId}`);
|
|
57
|
+
}
|
|
58
|
+
await writer.writeDeck(storeDeckFromDb(deck));
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error(`Failed to write deck ${deckId} to file store:`, error);
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Delete a card from the file store first, then from SQLite.
|
|
67
|
+
*
|
|
68
|
+
* The files are the source of truth and SQLite is a rebuildable cache, so the
|
|
69
|
+
* store has to be internally consistent at every instant: a deck file naming a
|
|
70
|
+
* card whose file is gone aborts the *whole* reindex, not just that deck. So
|
|
71
|
+
* every deck that held the card is rewritten without it and the card file is
|
|
72
|
+
* removed before the row goes — and if any of that fails we put the deck files
|
|
73
|
+
* we already rewrote back and rethrow with the row still there. The delete then
|
|
74
|
+
* simply did not happen, and a plain retry redoes it from a clean state.
|
|
75
|
+
*
|
|
76
|
+
* Auxiliary cleanup a card may need (header vault, cached icon, keychain secret)
|
|
77
|
+
* belongs *after* this call, via {@link cleanUpAfterCardDelete}: it can't be
|
|
78
|
+
* undone, and losing it while the card survives is a worse trade than an orphan
|
|
79
|
+
* the next delete removes.
|
|
80
|
+
*
|
|
81
|
+
* `writer` gates only the deck rewrites. `deleteCardFile` runs either way —
|
|
82
|
+
* credential YAML, for one, is written through its own sync whether or not a
|
|
83
|
+
* writer was injected, so skipping it here would strand the file and let the
|
|
84
|
+
* next reindex resurrect the card.
|
|
85
|
+
*/
|
|
86
|
+
async function deleteCardFromStoreThenDb(db, card, writer, deleteCardFile, deleteRow) {
|
|
87
|
+
const rewritten = [];
|
|
88
|
+
try {
|
|
89
|
+
if (writer) {
|
|
90
|
+
for (const deckId of new Set(await listDeckIdsForCard(db, card.kind, card.id))) {
|
|
91
|
+
const deck = await db.getDeck(deckId);
|
|
92
|
+
if (!deck) {
|
|
93
|
+
throw new Error(`Deck not found while deleting ${card.kind} ${card.id}: ${deckId}`);
|
|
94
|
+
}
|
|
95
|
+
const before = storeDeckFromDb(deck);
|
|
96
|
+
await writer.writeDeck(withoutCard(before, card.kind, card.id));
|
|
97
|
+
// Only decks we actually changed — an atomic write that threw left the
|
|
98
|
+
// old file in place and must not be "restored" over.
|
|
99
|
+
rewritten.push(before);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Last, so nothing fallible runs between the card file going away and the
|
|
103
|
+
// deck files that point at it already being clean.
|
|
104
|
+
await deleteCardFile();
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (writer) {
|
|
108
|
+
await restoreDeckFiles(writer, rewritten);
|
|
109
|
+
}
|
|
110
|
+
console.error(`Failed to remove ${card.kind} ${card.id} from the file store:`, error);
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
return deleteRow();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Run a deleted card's leftover cleanup, after the delete has already committed.
|
|
117
|
+
*
|
|
118
|
+
* The row and the store files are gone by this point, so the delete *succeeded*;
|
|
119
|
+
* what is left is the card's ancillary data — a keychain entry, a cached icon,
|
|
120
|
+
* stored headers. Throwing here would both misreport that outcome and strand the
|
|
121
|
+
* leftovers for good, because the retry it invites returns `false` on the missing
|
|
122
|
+
* row and never reaches this code again. So we log what was left behind and let
|
|
123
|
+
* the delete stand.
|
|
124
|
+
*/
|
|
125
|
+
async function cleanUpAfterCardDelete(leftover, cleanUp) {
|
|
126
|
+
try {
|
|
127
|
+
await cleanUp();
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error(`Card deleted, but ${leftover} could not be removed:`, error);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Put back the deck files an aborted delete had already rewritten.
|
|
135
|
+
*
|
|
136
|
+
* Best effort on purpose: a deck file that stayed stripped still reindexes fine
|
|
137
|
+
* — only a deck naming a *missing* card aborts the rebuild — so a restore that
|
|
138
|
+
* itself fails costs one membership, never the whole store.
|
|
139
|
+
*/
|
|
140
|
+
async function restoreDeckFiles(writer, decks) {
|
|
141
|
+
for (const deck of decks) {
|
|
142
|
+
try {
|
|
143
|
+
await writer.writeDeck(deck);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
console.error(`Failed to restore deck ${deck.id} after an aborted delete:`, error);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/** Remove `decks/<id>.json` after the deck row is gone. */
|
|
151
|
+
async function deleteDeckFile(deckId, writer) {
|
|
152
|
+
if (!writer) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
await writer.deleteDeck(deckId);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.error(`Failed to delete deck ${deckId} from file store:`, error);
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=deck-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deck-file.js","sourceRoot":"","sources":["../../src/store/deck-file.ts"],"names":[],"mappings":"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"}
|
package/dist/store/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
package/dist/store/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./deck-file"), exports);
|
|
17
18
|
__exportStar(require("./migrate"), exports);
|
|
18
19
|
__exportStar(require("./reindex"), exports);
|
|
19
20
|
__exportStar(require("./startup"), exports);
|
package/dist/store/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/store/migrate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/store/migrate.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AA8DF,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,eAAe,EACnB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,OAAO,CAAC,kBAAkB,CAAC,CA2F7B"}
|
package/dist/store/migrate.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.migrateSqliteToStore = migrateSqliteToStore;
|
|
7
7
|
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const deck_file_1 = require("./deck-file");
|
|
9
10
|
const paths_1 = require("./paths");
|
|
10
11
|
const service_codec_1 = require("./service-codec");
|
|
11
12
|
const writer_1 = require("./writer");
|
|
@@ -56,17 +57,6 @@ function storeCredentialFromDb(credential) {
|
|
|
56
57
|
: {}),
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
|
-
function storeDeckFromDb(deck) {
|
|
60
|
-
return {
|
|
61
|
-
id: deck.id,
|
|
62
|
-
name: deck.name,
|
|
63
|
-
serviceIds: deck.services.map((service) => service.id),
|
|
64
|
-
credentialIds: deck.credentials.map((credential) => credential.id),
|
|
65
|
-
playbookIds: deck.playbooks.map((playbook) => playbook.id),
|
|
66
|
-
createdAt: deck.createdAt,
|
|
67
|
-
updatedAt: deck.updatedAt,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
60
|
async function migrateSqliteToStore(db, opts = {}) {
|
|
71
61
|
const paths = (0, paths_1.storePaths)(opts.home);
|
|
72
62
|
const writer = new writer_1.FileStoreWriter(opts.home);
|
|
@@ -95,7 +85,7 @@ async function migrateSqliteToStore(db, opts = {}) {
|
|
|
95
85
|
...decks.map((deck) => ({
|
|
96
86
|
kind: 'decks',
|
|
97
87
|
path: node_path_1.default.join(paths.decksDir, `${deck.id}.json`),
|
|
98
|
-
value: storeDeckFromDb(deck),
|
|
88
|
+
value: (0, deck_file_1.storeDeckFromDb)(deck),
|
|
99
89
|
})),
|
|
100
90
|
];
|
|
101
91
|
const manifestMissing = !(await fileExists(paths.manifest));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/store/migrate.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/store/migrate.ts"],"names":[],"mappings":";;;;;AAwFA,oDA8FC;AAtLD,gEAAkC;AAClC,0DAA6B;AAW7B,2CAA8C;AAC9C,mCAAqC;AACrC,mDAAqD;AACrD,qCAA2C;AAmB3C,MAAM,iBAAiB,GAAkB;IACvC,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;QACvD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAsB;IAEtB,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;QACzC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE;YACjC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,EAAmB,EACnB,OAA6D,EAAE;IAE/D,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,wBAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClE,EAAE,CAAC,cAAc,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE;QACpB,EAAE,CAAC,iBAAiB,EAAE;QACtB,EAAE,CAAC,WAAW,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAmB;QACjC,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,QAAQ,EAAgB,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;YACxD,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC;SACrC,CAAC,CACH;QACD,GAAG,QAAQ,CAAC,GAAG,CACb,CAAC,OAAO,EAAgB,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,EAAE,OAAO,CAAC;YACxD,KAAK,EAAE,IAAA,kCAAkB,EAAC,OAAO,CAAC;SACnC,CAAC,CACH;QACD,GAAG,WAAW,CAAC,GAAG,CAChB,CAAC,UAAU,EAAgB,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC;YAC9D,KAAK,EAAE,qBAAqB,CAAC,UAAU,CAAC;SACzC,CAAC,CACH;QACD,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,IAAI,EAAgB,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC;YAClD,KAAK,EAAE,IAAA,2BAAe,EAAC,IAAI,CAAC;SAC7B,CAAC,CACH;KACF,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;QACxB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,CACE,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACnC,SAAS;YACT,MAAM,EAAE,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;SACzC,CAAC,CAAC,CACJ,CACF;aACE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;aAC/B,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM;QACpE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,MAAM;QAClE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM;QACxE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM;KAC7D,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KACtC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,WAAW;oBACd,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACxC,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,aAAa;oBAChB,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC1C,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACpC,MAAM;YACV,CAAC;QACH,CAAC;QACD,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,KAAK,EAAE,YAAY;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -7,9 +7,13 @@ export declare class CredentialManager {
|
|
|
7
7
|
private db;
|
|
8
8
|
private secretStore;
|
|
9
9
|
private yamlSync;
|
|
10
|
+
/** Credential YAML always goes through {@link CredentialYamlSync}; the writer
|
|
11
|
+
* is only for the deck files this manager's membership changes touch. */
|
|
12
|
+
private storeWriter?;
|
|
10
13
|
constructor(db: DatabaseManager, secretStore: SecretStore, yamlSync?: CredentialYamlSync,
|
|
11
|
-
/**
|
|
12
|
-
|
|
14
|
+
/** Credential YAML always goes through {@link CredentialYamlSync}; the writer
|
|
15
|
+
* is only for the deck files this manager's membership changes touch. */
|
|
16
|
+
storeWriter?: FileStoreWriter | undefined);
|
|
13
17
|
private writeToStore;
|
|
14
18
|
private deleteFromStore;
|
|
15
19
|
create(input: CreateCredentialInput): Promise<Credential>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/vault/credential-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAyB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/vault/credential-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,UAAU,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAyB,MAAM,gBAAgB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ;IAChB;6EACyE;IACzE,OAAO,CAAC,WAAW,CAAC;gBALZ,EAAE,EAAE,eAAe,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,GAAE,kBAA6C;IAC/D;6EACyE;IACjE,WAAW,CAAC,EAAE,eAAe,YAAA;YAGzB,YAAY;YASZ,eAAe;IASvB,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;YAwBjD,mBAAmB;IAsB3B,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IASnE,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAa7B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKlD,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAQ1C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/E,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAczD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYjD,2EAA2E;IACrE,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAczE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmB5E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAyB5E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CpC,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAoBvE,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,cAAc,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;;;;;;;;;;CAGF"}
|
|
@@ -38,17 +38,20 @@ const icon_resolver_1 = require("../services/icon-resolver");
|
|
|
38
38
|
const yaml_sync_1 = require("./yaml-sync");
|
|
39
39
|
const secret_store_1 = require("./secret-store");
|
|
40
40
|
const credential_auth_headers_1 = require("./credential-auth-headers");
|
|
41
|
+
const deck_file_1 = require("../store/deck-file");
|
|
41
42
|
class CredentialManager {
|
|
42
43
|
db;
|
|
43
44
|
secretStore;
|
|
44
45
|
yamlSync;
|
|
46
|
+
storeWriter;
|
|
45
47
|
constructor(db, secretStore, yamlSync = new yaml_sync_1.CredentialYamlSync(),
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
+
/** Credential YAML always goes through {@link CredentialYamlSync}; the writer
|
|
49
|
+
* is only for the deck files this manager's membership changes touch. */
|
|
50
|
+
storeWriter) {
|
|
48
51
|
this.db = db;
|
|
49
52
|
this.secretStore = secretStore;
|
|
50
53
|
this.yamlSync = yamlSync;
|
|
51
|
-
|
|
54
|
+
this.storeWriter = storeWriter;
|
|
52
55
|
}
|
|
53
56
|
async writeToStore(credential) {
|
|
54
57
|
try {
|
|
@@ -223,18 +226,20 @@ class CredentialManager {
|
|
|
223
226
|
const { PlaybookDependencyError } = await Promise.resolve().then(() => __importStar(require('../playbooks/playbook-manager')));
|
|
224
227
|
throw new PlaybookDependencyError(`Cannot delete API key "${existing.label}": referenced by playbook(s): ${dependents.map((p) => p.title).join(', ')}`, dependents.map(({ id: playbookId, title }) => ({ id: playbookId, title })));
|
|
225
228
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
const deleted = await this.db.deleteCredential(id);
|
|
229
|
+
// Store first, row last: the deck links are still readable here, and a deck
|
|
230
|
+
// file left naming a deleted credential fails every later reindex.
|
|
231
|
+
const deleted = await (0, deck_file_1.deleteCardFromStoreThenDb)(this.db, { kind: 'credential', id }, this.storeWriter, () => this.deleteFromStore(id), () => this.db.deleteCredential(id));
|
|
232
|
+
// Only once the delete has committed: the secret is the one thing here that
|
|
233
|
+
// cannot be put back, so a credential that survived a failed write must keep
|
|
234
|
+
// it rather than come back unusable.
|
|
235
235
|
if (deleted) {
|
|
236
|
-
await this.
|
|
237
|
-
|
|
236
|
+
await (0, deck_file_1.cleanUpAfterCardDelete)(`secret ${existing.keychainAccount} in the vault`, () => this.secretStore.delete(existing.keychainAccount).catch((error) => {
|
|
237
|
+
// No vault on this machine is expected, not leftover worth logging.
|
|
238
|
+
if (!(error instanceof secret_store_1.VaultUnsupportedError)) {
|
|
239
|
+
throw error;
|
|
240
|
+
}
|
|
241
|
+
}));
|
|
242
|
+
await (0, deck_file_1.cleanUpAfterCardDelete)(`cached icon for credential ${id}`, () => (0, icon_resolver_1.removeCachedIcon)(id));
|
|
238
243
|
}
|
|
239
244
|
return deleted;
|
|
240
245
|
}
|
|
@@ -259,9 +264,11 @@ class CredentialManager {
|
|
|
259
264
|
throw new Error(`Credential not found: ${input.credentialId}`);
|
|
260
265
|
}
|
|
261
266
|
await this.db.addCredentialToDeck(input);
|
|
267
|
+
await (0, deck_file_1.flushDeckFile)(this.db, input.deckId, this.storeWriter);
|
|
262
268
|
}
|
|
263
269
|
async removeFromDeck(input) {
|
|
264
270
|
await this.db.removeCredentialFromDeck(input);
|
|
271
|
+
await (0, deck_file_1.flushDeckFile)(this.db, input.deckId, this.storeWriter);
|
|
265
272
|
}
|
|
266
273
|
async recordExecRun(input) {
|
|
267
274
|
return this.db.createExecRun(input);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/vault/credential-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,6DAImC;AACnC,2CAAiD;AACjD,iDAAoE;AACpE,uEAAuE;
|
|
1
|
+
{"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/vault/credential-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-deck/backend",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Agent Deck backend API, MCP server, and vault",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"prepublishOnly": "node ../../scripts/pre-publish-check.mjs && npm run build"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@agent-deck/shared": "^1.
|
|
49
|
+
"@agent-deck/shared": "^1.9.0",
|
|
50
50
|
"@fastify/cors": "^10.0.0",
|
|
51
51
|
"@fastify/static": "^8.0.0",
|
|
52
52
|
"@fastify/websocket": "^11.2.0",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse coordinator enrollment / execution-authority bearer tokens.
|
|
3
|
-
* Forms: `enr_…:secret`, `authz_…:secret` (preferred), or raw secret with id header.
|
|
4
|
-
*/
|
|
5
|
-
export type EnrollmentBearer = {
|
|
6
|
-
enrollmentId: string;
|
|
7
|
-
secret: string;
|
|
8
|
-
};
|
|
9
|
-
export type AuthorityBearer = {
|
|
10
|
-
authorityId: string;
|
|
11
|
-
secret: string;
|
|
12
|
-
};
|
|
13
|
-
export declare function parseEnrollmentBearer(token: string): EnrollmentBearer | null;
|
|
14
|
-
export declare function parseAuthorityBearer(token: string): AuthorityBearer | null;
|
|
15
|
-
//# sourceMappingURL=bearer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bearer.d.ts","sourceRoot":"","sources":["../../src/execution-authority/bearer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAS5E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAS1E"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Parse coordinator enrollment / execution-authority bearer tokens.
|
|
4
|
-
* Forms: `enr_…:secret`, `authz_…:secret` (preferred), or raw secret with id header.
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.parseEnrollmentBearer = parseEnrollmentBearer;
|
|
8
|
-
exports.parseAuthorityBearer = parseAuthorityBearer;
|
|
9
|
-
function parseEnrollmentBearer(token) {
|
|
10
|
-
const trimmed = token.trim();
|
|
11
|
-
const colon = trimmed.indexOf(':');
|
|
12
|
-
if (colon <= 0)
|
|
13
|
-
return null;
|
|
14
|
-
const enrollmentId = trimmed.slice(0, colon);
|
|
15
|
-
if (!/^enr_[A-Za-z0-9]+$/.test(enrollmentId))
|
|
16
|
-
return null;
|
|
17
|
-
const secret = trimmed.slice(colon + 1);
|
|
18
|
-
if (!secret)
|
|
19
|
-
return null;
|
|
20
|
-
return { enrollmentId, secret };
|
|
21
|
-
}
|
|
22
|
-
function parseAuthorityBearer(token) {
|
|
23
|
-
const trimmed = token.trim();
|
|
24
|
-
const colon = trimmed.indexOf(':');
|
|
25
|
-
if (colon <= 0)
|
|
26
|
-
return null;
|
|
27
|
-
const authorityId = trimmed.slice(0, colon);
|
|
28
|
-
if (!/^authz_[A-Za-z0-9]+$/.test(authorityId))
|
|
29
|
-
return null;
|
|
30
|
-
const secret = trimmed.slice(colon + 1);
|
|
31
|
-
if (!secret)
|
|
32
|
-
return null;
|
|
33
|
-
return { authorityId, secret };
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=bearer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bearer.js","sourceRoot":"","sources":["../../src/execution-authority/bearer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,sDASC;AAED,oDASC;AApBD,SAAgB,qBAAqB,CAAC,KAAa;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { ExecutionAuthorityLedger } from './ledger';
|
|
2
|
-
export type { LedgerState } from './ledger';
|
|
3
|
-
export { ExecutionAuthorityStore } from './store';
|
|
4
|
-
export type { ExecutionAuthorityStoreOptions } from './store';
|
|
5
|
-
export type * from './types';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution-authority/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAC9D,mBAAmB,SAAS,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExecutionAuthorityStore = exports.ExecutionAuthorityLedger = void 0;
|
|
4
|
-
var ledger_1 = require("./ledger");
|
|
5
|
-
Object.defineProperty(exports, "ExecutionAuthorityLedger", { enumerable: true, get: function () { return ledger_1.ExecutionAuthorityLedger; } });
|
|
6
|
-
var store_1 = require("./store");
|
|
7
|
-
Object.defineProperty(exports, "ExecutionAuthorityStore", { enumerable: true, get: function () { return store_1.ExecutionAuthorityStore; } });
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-authority/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AAEjC,iCAAkD;AAAzC,gHAAA,uBAAuB,OAAA"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory execution-authority ledger (NOT-85 logic engine).
|
|
3
|
-
* Durable SQLite wrapper: `ExecutionAuthorityStore` (NOT-86).
|
|
4
|
-
*/
|
|
5
|
-
import type { AuditEvent, AuthorizedCallInput, ContractResult, CoordinatorEnrollment, EnrollCoordinatorResult, ExecutionAuthority, MintAuthorityInput, MintAuthorityResult } from './types';
|
|
6
|
-
/** Serializable ledger state for durable hydrate/persist. */
|
|
7
|
-
export type LedgerState = {
|
|
8
|
-
enrollments: CoordinatorEnrollment[];
|
|
9
|
-
enrollmentSecretHashes: Array<{
|
|
10
|
-
enrollmentId: string;
|
|
11
|
-
secretHash: string;
|
|
12
|
-
}>;
|
|
13
|
-
authorities: ExecutionAuthority[];
|
|
14
|
-
secretHashes: Array<{
|
|
15
|
-
authorityId: string;
|
|
16
|
-
secretHash: string;
|
|
17
|
-
}>;
|
|
18
|
-
mintIndex: Array<{
|
|
19
|
-
enrollmentId: string;
|
|
20
|
-
idempotencyKey: string;
|
|
21
|
-
authorityId: string;
|
|
22
|
-
}>;
|
|
23
|
-
audit: AuditEvent[];
|
|
24
|
-
};
|
|
25
|
-
export interface ExecutionAuthorityLedgerOptions {
|
|
26
|
-
/** Injectable clock for expiry tests. */
|
|
27
|
-
now?: () => Date;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Deck-side authorization ledger (skeleton). Authoritative for enrollment and
|
|
31
|
-
* execution authority; does not model Dealer run lifecycle.
|
|
32
|
-
*/
|
|
33
|
-
export declare class ExecutionAuthorityLedger {
|
|
34
|
-
private readonly enrollments;
|
|
35
|
-
private readonly enrollmentSecretHashes;
|
|
36
|
-
private readonly authorities;
|
|
37
|
-
private readonly secretHashes;
|
|
38
|
-
private readonly mintIndex;
|
|
39
|
-
private readonly audit;
|
|
40
|
-
private readonly now;
|
|
41
|
-
constructor(options?: ExecutionAuthorityLedgerOptions);
|
|
42
|
-
exportState(): LedgerState;
|
|
43
|
-
replaceState(state: LedgerState): void;
|
|
44
|
-
getEnrollment(enrollmentId: string): CoordinatorEnrollment | undefined;
|
|
45
|
-
listEnrollments(): CoordinatorEnrollment[];
|
|
46
|
-
verifyEnrollmentSecret(enrollmentId: string, secret: string): boolean;
|
|
47
|
-
verifyAuthoritySecret(authorityId: string, secret: string): boolean;
|
|
48
|
-
enrollCoordinator(input: {
|
|
49
|
-
coordinatorId: string;
|
|
50
|
-
allowedDeckIds: string[];
|
|
51
|
-
}): ContractResult<EnrollCoordinatorResult>;
|
|
52
|
-
revokeEnrollment(enrollmentId: string): ContractResult<{
|
|
53
|
-
enrollmentId: string;
|
|
54
|
-
}>;
|
|
55
|
-
mintAuthority(input: MintAuthorityInput): ContractResult<MintAuthorityResult>;
|
|
56
|
-
/**
|
|
57
|
-
* Non-auditing lookup for ownership / existence checks.
|
|
58
|
-
* Does not refresh expiry (avoids authority_expired side effects during probes).
|
|
59
|
-
*/
|
|
60
|
-
peekAuthority(authorityId: string): ExecutionAuthority | undefined;
|
|
61
|
-
inspectAuthority(authorityId: string): ContractResult<ExecutionAuthority>;
|
|
62
|
-
revokeAuthority(authorityId: string): ContractResult<{
|
|
63
|
-
authorityId: string;
|
|
64
|
-
}>;
|
|
65
|
-
/**
|
|
66
|
-
* Simulate one authorized Deck tool call under execution authority.
|
|
67
|
-
* Never waits for human approval — returns INTERACTION_REQUIRED immediately.
|
|
68
|
-
*/
|
|
69
|
-
invokeAuthorizedCall(input: AuthorizedCallInput): ContractResult<{
|
|
70
|
-
serviceId: string;
|
|
71
|
-
toolName: string;
|
|
72
|
-
result: string;
|
|
73
|
-
}>;
|
|
74
|
-
listAuditEvents(filter?: {
|
|
75
|
-
runId?: string;
|
|
76
|
-
attemptId?: string;
|
|
77
|
-
authorityId?: string;
|
|
78
|
-
enrollmentId?: string;
|
|
79
|
-
requestId?: string;
|
|
80
|
-
}): AuditEvent[];
|
|
81
|
-
private toolAllowed;
|
|
82
|
-
private refreshAuthorityStatus;
|
|
83
|
-
private pushAudit;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/execution-authority/ledger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAGV,UAAU,EAEV,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAMjB,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrC,sBAAsB,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,YAAY,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,SAAS,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAgCF,MAAM,WAAW,+BAA+B;IAC9C,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IACpE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,OAAO,GAAE,+BAAoC;IAIzD,WAAW,IAAI,WAAW;IA0B1B,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAkCtC,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAMtE,eAAe,IAAI,qBAAqB,EAAE;IAO1C,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAMrE,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAMnE,iBAAiB,CAAC,KAAK,EAAE;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,GAAG,cAAc,CAAC,uBAAuB,CAAC;IA2B3C,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IAiChF,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CAAC,mBAAmB,CAAC;IAuH7E;;;OAGG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKlE,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,kBAAkB,CAAC;IAoBzE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB7E;;;OAGG;IACH,oBAAoB,CAClB,KAAK,EAAE,mBAAmB,GACzB,cAAc,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA0G1E,eAAe,CAAC,MAAM,GAAE;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,UAAU,EAAE;IAYrB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,SAAS;CAalB"}
|