@agentguard-run/spend 0.15.1 → 0.15.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 +6 -0
- package/dist/frameworks/hermes-kanban.d.ts +10 -2
- package/dist/frameworks/hermes-kanban.d.ts.map +1 -1
- package/dist/frameworks/hermes-kanban.js +55 -9
- package/dist/frameworks/hermes-kanban.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/telemetry.js +1 -1
- package/package.json +1 -1
- package/src/frameworks/hermes-kanban.ts +67 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## 0.15.2
|
|
2
|
+
|
|
3
|
+
- Enhanced the Hermes Kanban adapter with Tony-style state vocabulary, signed workspace provenance, hashed board scope metadata, and signed revoke receipts that assert zero spend after reclaim.
|
|
4
|
+
- Added a lightweight task path for low-cost read-only work so trivial tasks get caps and receipts without Reviewer Cascade overhead.
|
|
5
|
+
- Added TypeScript and Python parity tests for revoke receipts, workspace provenance tamper detection, and the lightweight path.
|
|
6
|
+
|
|
1
7
|
## 0.15.1
|
|
2
8
|
|
|
3
9
|
- Removed import-time `sdk_init` telemetry from package entry points. Telemetry remains opt-in and now fires lazily when `SpendGuard` is constructed.
|
|
@@ -2,7 +2,8 @@ import { verifyReceiptDag, type ReceiptCapabilityLevel, type ReceiptDagEnvelope,
|
|
|
2
2
|
import { type SpendGuardConfig } from '../spend-guard';
|
|
3
3
|
import type { Provider, SignedDecisionLogEntry, SpendDecision, SpendPolicy, SpendScope } from '../types';
|
|
4
4
|
export type HermesKanbanProfile = 'researcher' | 'writer' | 'reviewer' | 'director' | 'orchestrator' | string;
|
|
5
|
-
export type HermesKanbanTaskState = '
|
|
5
|
+
export type HermesKanbanTaskState = 'triage' | 'blocked' | 'scheduled' | 'running' | 'complete' | 'revoked';
|
|
6
|
+
export type HermesKanbanGovernanceMode = 'lightweight' | 'full';
|
|
6
7
|
export interface HermesKanbanProfilePolicy {
|
|
7
8
|
capability: ReceiptCapabilityLevel;
|
|
8
9
|
toolAllowlist?: string[];
|
|
@@ -16,6 +17,8 @@ export interface HermesKanbanAdapterOptions {
|
|
|
16
17
|
defaultModel?: string;
|
|
17
18
|
defaultCapCents?: number;
|
|
18
19
|
runtimeBudgetCentsPerMinute?: number;
|
|
20
|
+
lightweightThresholdCents?: number;
|
|
21
|
+
lightweightCapabilityCeiling?: ReceiptCapabilityLevel;
|
|
19
22
|
profileMap?: Record<string, HermesKanbanProfilePolicy>;
|
|
20
23
|
reviewerCascade?: {
|
|
21
24
|
enabled?: boolean;
|
|
@@ -31,6 +34,7 @@ export interface HermesKanbanTaskInput {
|
|
|
31
34
|
boardSlug: string;
|
|
32
35
|
profile: HermesKanbanProfile;
|
|
33
36
|
parentTaskIds?: string[];
|
|
37
|
+
workspacePath?: string;
|
|
34
38
|
maxRuntimeMinutes?: number;
|
|
35
39
|
maxRuntimeMs?: number;
|
|
36
40
|
metadata?: Record<string, unknown>;
|
|
@@ -47,6 +51,8 @@ export interface HermesKanbanEnvelope {
|
|
|
47
51
|
capCents: number;
|
|
48
52
|
parentTaskIds: string[];
|
|
49
53
|
parentEntryHashes: string[];
|
|
54
|
+
workspacePath?: string;
|
|
55
|
+
governanceMode: HermesKanbanGovernanceMode;
|
|
50
56
|
scope: SpendScope;
|
|
51
57
|
builderCode?: string;
|
|
52
58
|
createdAt: string;
|
|
@@ -90,6 +96,7 @@ export interface HermesKanbanReceiptInput {
|
|
|
90
96
|
};
|
|
91
97
|
totalCostCents?: number;
|
|
92
98
|
metadata?: Record<string, unknown>;
|
|
99
|
+
workspacePath?: string;
|
|
93
100
|
highRiskClassifierScore?: number;
|
|
94
101
|
keywordRisk?: boolean;
|
|
95
102
|
reviewerVerdict?: 'drafter_only' | 'review_required' | 'approved' | 'rejected';
|
|
@@ -113,7 +120,7 @@ export declare class HermesKanbanAdapter {
|
|
|
113
120
|
governTask(input: HermesKanbanTaskInput): HermesKanbanEnvelope;
|
|
114
121
|
enforceProviderCall(input: HermesKanbanDispatchInput): Promise<HermesKanbanDispatchResult>;
|
|
115
122
|
guardCapability(input: HermesKanbanCapabilityInput): Promise<HermesKanbanCapabilityResult>;
|
|
116
|
-
revokeTask(taskId: string): Promise<HermesKanbanReceiptResult>;
|
|
123
|
+
revokeTask(taskId: string, reason?: string): Promise<HermesKanbanReceiptResult>;
|
|
117
124
|
emitTaskReceipt(input: HermesKanbanReceiptInput): Promise<HermesKanbanReceiptResult>;
|
|
118
125
|
getEnvelope(taskId: string): HermesKanbanEnvelope | null;
|
|
119
126
|
getReceiptDag(rootTaskId?: string): ReceiptDagEnvelope;
|
|
@@ -121,6 +128,7 @@ export declare class HermesKanbanAdapter {
|
|
|
121
128
|
verifyDag(publicKeyHex?: string): Promise<Awaited<ReturnType<typeof verifyReceiptDag>>>;
|
|
122
129
|
private signTaskNode;
|
|
123
130
|
private receiptResult;
|
|
131
|
+
private spendCentsSoFar;
|
|
124
132
|
private requireEnvelope;
|
|
125
133
|
private requireGuard;
|
|
126
134
|
private requireNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes-kanban.d.ts","sourceRoot":"","sources":["../../src/frameworks/hermes-kanban.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hermes-kanban.d.ts","sourceRoot":"","sources":["../../src/frameworks/hermes-kanban.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.HermesKanbanAdapter = void 0;
|
|
|
4
4
|
exports.createHermesKanbanAdapter = createHermesKanbanAdapter;
|
|
5
5
|
exports.hermesKanbanSignerFingerprint = hermesKanbanSignerFingerprint;
|
|
6
6
|
const crypto_1 = require("crypto");
|
|
7
|
+
const path_1 = require("path");
|
|
7
8
|
const cost_table_1 = require("../cost-table");
|
|
8
9
|
const decision_log_1 = require("../decision-log");
|
|
9
10
|
const dag_1 = require("../receipts/dag");
|
|
@@ -40,6 +41,8 @@ const SAFE_METADATA_KEYS = new Set([
|
|
|
40
41
|
'ticket_id',
|
|
41
42
|
'token_count',
|
|
42
43
|
'workflow_id',
|
|
44
|
+
'workspace_hash',
|
|
45
|
+
'workspace_path',
|
|
43
46
|
]);
|
|
44
47
|
function createHermesKanbanAdapter(opts) {
|
|
45
48
|
return new HermesKanbanAdapter(opts);
|
|
@@ -69,12 +72,14 @@ class HermesKanbanAdapter {
|
|
|
69
72
|
taskHash,
|
|
70
73
|
boardHash,
|
|
71
74
|
profile: normalizeProfile(input.profile),
|
|
72
|
-
state: '
|
|
75
|
+
state: 'running',
|
|
73
76
|
capabilityCeiling: profilePolicy.capability,
|
|
74
77
|
toolAllowlist: [...(profilePolicy.toolAllowlist ?? [])],
|
|
75
78
|
capCents,
|
|
76
79
|
parentTaskIds: [...new Set(input.parentTaskIds ?? [])],
|
|
77
80
|
parentEntryHashes: [],
|
|
81
|
+
workspacePath: resolveWorkspacePath(input.workspacePath),
|
|
82
|
+
governanceMode: governanceModeFor(profilePolicy.capability, capCents, this.opts),
|
|
78
83
|
scope,
|
|
79
84
|
builderCode: safeBuilderCode(input.builderCode),
|
|
80
85
|
createdAt: new Date().toISOString(),
|
|
@@ -152,18 +157,22 @@ class HermesKanbanAdapter {
|
|
|
152
157
|
editedArgs: gate.editedArgs,
|
|
153
158
|
};
|
|
154
159
|
}
|
|
155
|
-
async revokeTask(taskId) {
|
|
160
|
+
async revokeTask(taskId, reason = 'stale_lock_reclaimed') {
|
|
156
161
|
const envelope = this.requireEnvelope(taskId);
|
|
157
162
|
if (envelope.state === 'revoked')
|
|
158
163
|
return this.receiptResult(envelope, this.requireNode(taskId));
|
|
159
164
|
envelope.state = 'revoked';
|
|
160
165
|
envelope.revokedAt = new Date().toISOString();
|
|
166
|
+
const finalSpendCents = this.spendCentsSoFar(taskId);
|
|
161
167
|
const node = await this.signTaskNode(envelope, {
|
|
162
168
|
event: 'revoked',
|
|
163
169
|
action: 'block',
|
|
164
170
|
blocked: true,
|
|
165
171
|
capability: envelope.capabilityCeiling,
|
|
166
172
|
trustScore: 0.7,
|
|
173
|
+
revocationReason: safeLabel(reason) ?? 'stale_lock_reclaimed',
|
|
174
|
+
finalSpendCents,
|
|
175
|
+
postRevocationSpendCents: 0,
|
|
167
176
|
});
|
|
168
177
|
this.nodesByTaskId.set(taskId, node);
|
|
169
178
|
this.nodes.push(node);
|
|
@@ -173,7 +182,9 @@ class HermesKanbanAdapter {
|
|
|
173
182
|
const envelope = this.requireEnvelope(input.taskId);
|
|
174
183
|
assertActive(envelope);
|
|
175
184
|
assertMetadataOnly(input.metadata ?? {});
|
|
176
|
-
|
|
185
|
+
if (input.workspacePath)
|
|
186
|
+
envelope.workspacePath = resolveWorkspacePath(input.workspacePath);
|
|
187
|
+
envelope.state = 'complete';
|
|
177
188
|
envelope.completedAt = new Date().toISOString();
|
|
178
189
|
const parentTaskIds = [...new Set(input.parentTaskIds ?? envelope.parentTaskIds)];
|
|
179
190
|
const parentNodes = parentTaskIds.map((id) => this.nodesByTaskId.get(id)).filter(Boolean);
|
|
@@ -241,6 +252,15 @@ class HermesKanbanAdapter {
|
|
|
241
252
|
dag: this.getReceiptDag(envelope.taskId),
|
|
242
253
|
};
|
|
243
254
|
}
|
|
255
|
+
spendCentsSoFar(taskId) {
|
|
256
|
+
let total = 0;
|
|
257
|
+
for (const node of this.nodes) {
|
|
258
|
+
const receipt = node.decision?.outcomeReceipt;
|
|
259
|
+
if (receipt?.taskId === taskId)
|
|
260
|
+
total += safeNonNegativeInteger(receipt.totalCostCents);
|
|
261
|
+
}
|
|
262
|
+
return total;
|
|
263
|
+
}
|
|
244
264
|
requireEnvelope(taskId) {
|
|
245
265
|
const envelope = this.envelopes.get(taskId);
|
|
246
266
|
if (!envelope)
|
|
@@ -287,6 +307,10 @@ function taskDecision(envelope, args, policy) {
|
|
|
287
307
|
parentTaskIds: [...envelope.parentTaskIds],
|
|
288
308
|
parentEntryHashes: parentNodes.map((node) => node.entryHash),
|
|
289
309
|
parentMsgHashes: parentNodes.map((node) => node.msgHash),
|
|
310
|
+
boardScopeHash: envelope.boardHash,
|
|
311
|
+
workspaceProvenance: envelope.workspacePath ? { type: 'directory', location: `dir:${envelope.workspacePath}` } : null,
|
|
312
|
+
governanceMode: envelope.governanceMode,
|
|
313
|
+
lightweight: envelope.governanceMode === 'lightweight',
|
|
290
314
|
modelIds: safeModelIds(args.modelIds ?? []),
|
|
291
315
|
inputTokens,
|
|
292
316
|
outputTokens,
|
|
@@ -295,6 +319,15 @@ function taskDecision(envelope, args, policy) {
|
|
|
295
319
|
};
|
|
296
320
|
if (args.reviewerCascade)
|
|
297
321
|
receipt.reviewerCascade = args.reviewerCascade;
|
|
322
|
+
if (args.event === 'revoked') {
|
|
323
|
+
receipt.revocation = {
|
|
324
|
+
reason: args.revocationReason ?? 'stale_lock_reclaimed',
|
|
325
|
+
finalSpendCents: safeNonNegativeInteger(args.finalSpendCents),
|
|
326
|
+
postRevocationSpendCents: safeNonNegativeInteger(args.postRevocationSpendCents),
|
|
327
|
+
closedAt: envelope.revokedAt ?? new Date().toISOString(),
|
|
328
|
+
assertion: 'no_spend_after_revoke',
|
|
329
|
+
};
|
|
330
|
+
}
|
|
298
331
|
const decision = {
|
|
299
332
|
decisionId: (0, crypto_1.randomUUID)(),
|
|
300
333
|
timestamp: new Date().toISOString(),
|
|
@@ -335,18 +368,31 @@ function buildReviewerCascadeReceipt(input, opts, triggers) {
|
|
|
335
368
|
};
|
|
336
369
|
}
|
|
337
370
|
function reviewerCascadeTriggers(envelope, input, opts) {
|
|
338
|
-
if (opts.reviewerCascade?.enabled === false)
|
|
371
|
+
if (opts.reviewerCascade?.enabled === false || envelope.governanceMode === 'lightweight')
|
|
339
372
|
return [];
|
|
340
373
|
const threshold = opts.reviewerCascade?.highRiskThreshold ?? 0.55;
|
|
341
374
|
const triggers = [];
|
|
342
|
-
if (envelope.profile === 'reviewer')
|
|
343
|
-
triggers.push('reviewer_profile');
|
|
344
375
|
if (typeof input.highRiskClassifierScore === 'number' && input.highRiskClassifierScore >= threshold)
|
|
345
376
|
triggers.push(`risk_score_above:${threshold}`);
|
|
346
377
|
if (input.keywordRisk === true)
|
|
347
378
|
triggers.push('keyword_prefilter');
|
|
348
379
|
return [...new Set(triggers)];
|
|
349
380
|
}
|
|
381
|
+
function governanceModeFor(capability, capCents, opts) {
|
|
382
|
+
const threshold = opts.lightweightThresholdCents ?? 5;
|
|
383
|
+
const ceiling = opts.lightweightCapabilityCeiling ?? 'READ_ONLY';
|
|
384
|
+
return CAPABILITY_RANK[capability] <= CAPABILITY_RANK[ceiling] && capCents <= threshold ? 'lightweight' : 'full';
|
|
385
|
+
}
|
|
386
|
+
function resolveWorkspacePath(value) {
|
|
387
|
+
if (typeof value !== 'string')
|
|
388
|
+
return undefined;
|
|
389
|
+
const trimmed = value.trim();
|
|
390
|
+
if (!trimmed)
|
|
391
|
+
return undefined;
|
|
392
|
+
if (trimmed.length > 1024 || /[\u0000-\u001f\u007f]/.test(trimmed))
|
|
393
|
+
throw new Error('Hermes Kanban workspacePath must be a metadata path');
|
|
394
|
+
return (0, path_1.resolve)(trimmed);
|
|
395
|
+
}
|
|
350
396
|
function capForTask(input, profilePolicy, opts) {
|
|
351
397
|
if (Number.isSafeInteger(profilePolicy.capCents) && profilePolicy.capCents >= 0)
|
|
352
398
|
return profilePolicy.capCents;
|
|
@@ -373,7 +419,7 @@ function spendCapabilityForReceiptCapability(capability) {
|
|
|
373
419
|
}
|
|
374
420
|
function assertTaskInput(input) {
|
|
375
421
|
assertPlainRecord(input, 'task');
|
|
376
|
-
const allowed = new Set(['taskId', 'boardSlug', 'profile', 'parentTaskIds', 'maxRuntimeMinutes', 'maxRuntimeMs', 'metadata', 'builderCode']);
|
|
422
|
+
const allowed = new Set(['taskId', 'boardSlug', 'profile', 'parentTaskIds', 'workspacePath', 'maxRuntimeMinutes', 'maxRuntimeMs', 'metadata', 'builderCode']);
|
|
377
423
|
for (const key of Object.keys(input)) {
|
|
378
424
|
if (!allowed.has(key))
|
|
379
425
|
throw new Error(`Hermes Kanban task input cannot include data-plane or unknown field: ${key}`);
|
|
@@ -413,8 +459,8 @@ function assertPlainRecord(value, name) {
|
|
|
413
459
|
function assertActive(envelope) {
|
|
414
460
|
if (envelope.state === 'revoked')
|
|
415
461
|
throw new spend_guard_1.AgentGuardBlockedError(blockedDecision(envelope, 'revoked'), envelope.scope);
|
|
416
|
-
if (envelope.state === '
|
|
417
|
-
throw new spend_guard_1.AgentGuardBlockedError(blockedDecision(envelope, '
|
|
462
|
+
if (envelope.state === 'complete')
|
|
463
|
+
throw new spend_guard_1.AgentGuardBlockedError(blockedDecision(envelope, 'complete'), envelope.scope);
|
|
418
464
|
}
|
|
419
465
|
function blockedDecision(envelope, state) {
|
|
420
466
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes-kanban.js","sourceRoot":"","sources":["../../src/frameworks/hermes-kanban.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hermes-kanban.js","sourceRoot":"","sources":["../../src/frameworks/hermes-kanban.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export { withSpendGuardAnthropic, type AnthropicBindingOptions } from './binding
|
|
|
33
33
|
export { withSpendGuardBedrock, type BedrockBindingOptions } from './bindings/bedrock';
|
|
34
34
|
export { recommend, defaultKey, type ModelRouteRecommendation, type RecommendOptions } from './router';
|
|
35
35
|
export { DEFAULT_LOCALE, SUPPORTED_LOCALES, TRANSLATIONS, type SupportedLocale, resolveLocale, t, formatBlockedTrace, type BlockedTraceArgs, } from './i18n';
|
|
36
|
-
export declare const AGENTGUARD_SPEND_VERSION = "0.15.
|
|
36
|
+
export declare const AGENTGUARD_SPEND_VERSION = "0.15.2";
|
|
37
37
|
export declare const agentguard: {
|
|
38
38
|
workflow: typeof runWorkflow;
|
|
39
39
|
};
|
package/dist/index.js
CHANGED
|
@@ -160,7 +160,7 @@ Object.defineProperty(exports, "TRANSLATIONS", { enumerable: true, get: function
|
|
|
160
160
|
Object.defineProperty(exports, "resolveLocale", { enumerable: true, get: function () { return i18n_1.resolveLocale; } });
|
|
161
161
|
Object.defineProperty(exports, "t", { enumerable: true, get: function () { return i18n_1.t; } });
|
|
162
162
|
Object.defineProperty(exports, "formatBlockedTrace", { enumerable: true, get: function () { return i18n_1.formatBlockedTrace; } });
|
|
163
|
-
exports.AGENTGUARD_SPEND_VERSION = '0.15.
|
|
163
|
+
exports.AGENTGUARD_SPEND_VERSION = '0.15.2';
|
|
164
164
|
exports.agentguard = {
|
|
165
165
|
workflow: context_1.workflow,
|
|
166
166
|
};
|
package/dist/telemetry.js
CHANGED
|
@@ -43,7 +43,7 @@ const https = __importStar(require("https"));
|
|
|
43
43
|
const os = __importStar(require("os"));
|
|
44
44
|
const path = __importStar(require("path"));
|
|
45
45
|
const crypto_1 = require("crypto");
|
|
46
|
-
const AGENTGUARD_SPEND_VERSION = '0.15.
|
|
46
|
+
const AGENTGUARD_SPEND_VERSION = '0.15.2';
|
|
47
47
|
const STATE_DIR = path.join(os.homedir(), '.agentguard');
|
|
48
48
|
const INSTALL_PATH = path.join(STATE_DIR, 'install.json');
|
|
49
49
|
const BEACON_URL = 'https://agentguard.run/api/beacon';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentguard-run/spend",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.2",
|
|
4
4
|
"description": "All terminology and labels used in AgentGuard materials are descriptive of software functionality only, not legal definitions or guarantees of compliance. Terms like receipt, audit log, evidence, audit trail, and attestation refer solely to cryptographically-signed records produced by the software. Full functional-use disclaimer in README.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from 'crypto';
|
|
2
|
+
import { resolve as resolvePath } from 'path';
|
|
2
3
|
import { inferProvider } from '../cost-table';
|
|
3
4
|
import { canonicalJson, computeSignerFingerprint, sha256Hex } from '../decision-log';
|
|
4
5
|
import { signDagNode, verifyReceiptDag, type ReceiptCapabilityLevel, type ReceiptDagEnvelope, type ReceiptDagNode } from '../receipts/dag';
|
|
@@ -7,7 +8,8 @@ import type { CallContext, CapabilityTier, Provider, SignedDecisionLogEntry, Spe
|
|
|
7
8
|
import { safeRequestShape } from './common';
|
|
8
9
|
|
|
9
10
|
export type HermesKanbanProfile = 'researcher' | 'writer' | 'reviewer' | 'director' | 'orchestrator' | string;
|
|
10
|
-
export type HermesKanbanTaskState = '
|
|
11
|
+
export type HermesKanbanTaskState = 'triage' | 'blocked' | 'scheduled' | 'running' | 'complete' | 'revoked';
|
|
12
|
+
export type HermesKanbanGovernanceMode = 'lightweight' | 'full';
|
|
11
13
|
|
|
12
14
|
export interface HermesKanbanProfilePolicy {
|
|
13
15
|
capability: ReceiptCapabilityLevel;
|
|
@@ -23,6 +25,8 @@ export interface HermesKanbanAdapterOptions {
|
|
|
23
25
|
defaultModel?: string;
|
|
24
26
|
defaultCapCents?: number;
|
|
25
27
|
runtimeBudgetCentsPerMinute?: number;
|
|
28
|
+
lightweightThresholdCents?: number;
|
|
29
|
+
lightweightCapabilityCeiling?: ReceiptCapabilityLevel;
|
|
26
30
|
profileMap?: Record<string, HermesKanbanProfilePolicy>;
|
|
27
31
|
reviewerCascade?: {
|
|
28
32
|
enabled?: boolean;
|
|
@@ -39,6 +43,7 @@ export interface HermesKanbanTaskInput {
|
|
|
39
43
|
boardSlug: string;
|
|
40
44
|
profile: HermesKanbanProfile;
|
|
41
45
|
parentTaskIds?: string[];
|
|
46
|
+
workspacePath?: string;
|
|
42
47
|
maxRuntimeMinutes?: number;
|
|
43
48
|
maxRuntimeMs?: number;
|
|
44
49
|
metadata?: Record<string, unknown>;
|
|
@@ -56,6 +61,8 @@ export interface HermesKanbanEnvelope {
|
|
|
56
61
|
capCents: number;
|
|
57
62
|
parentTaskIds: string[];
|
|
58
63
|
parentEntryHashes: string[];
|
|
64
|
+
workspacePath?: string;
|
|
65
|
+
governanceMode: HermesKanbanGovernanceMode;
|
|
59
66
|
scope: SpendScope;
|
|
60
67
|
builderCode?: string;
|
|
61
68
|
createdAt: string;
|
|
@@ -101,6 +108,7 @@ export interface HermesKanbanReceiptInput {
|
|
|
101
108
|
tokenCounts?: { inputTokens?: number; outputTokens?: number };
|
|
102
109
|
totalCostCents?: number;
|
|
103
110
|
metadata?: Record<string, unknown>;
|
|
111
|
+
workspacePath?: string;
|
|
104
112
|
highRiskClassifierScore?: number;
|
|
105
113
|
keywordRisk?: boolean;
|
|
106
114
|
reviewerVerdict?: 'drafter_only' | 'review_required' | 'approved' | 'rejected';
|
|
@@ -146,6 +154,8 @@ const SAFE_METADATA_KEYS = new Set([
|
|
|
146
154
|
'ticket_id',
|
|
147
155
|
'token_count',
|
|
148
156
|
'workflow_id',
|
|
157
|
+
'workspace_hash',
|
|
158
|
+
'workspace_path',
|
|
149
159
|
]);
|
|
150
160
|
|
|
151
161
|
export function createHermesKanbanAdapter(opts: HermesKanbanAdapterOptions): HermesKanbanAdapter {
|
|
@@ -177,12 +187,14 @@ export class HermesKanbanAdapter {
|
|
|
177
187
|
taskHash,
|
|
178
188
|
boardHash,
|
|
179
189
|
profile: normalizeProfile(input.profile),
|
|
180
|
-
state: '
|
|
190
|
+
state: 'running',
|
|
181
191
|
capabilityCeiling: profilePolicy.capability,
|
|
182
192
|
toolAllowlist: [...(profilePolicy.toolAllowlist ?? [])],
|
|
183
193
|
capCents,
|
|
184
194
|
parentTaskIds: [...new Set(input.parentTaskIds ?? [])],
|
|
185
195
|
parentEntryHashes: [],
|
|
196
|
+
workspacePath: resolveWorkspacePath(input.workspacePath),
|
|
197
|
+
governanceMode: governanceModeFor(profilePolicy.capability, capCents, this.opts),
|
|
186
198
|
scope,
|
|
187
199
|
builderCode: safeBuilderCode(input.builderCode),
|
|
188
200
|
createdAt: new Date().toISOString(),
|
|
@@ -263,17 +275,21 @@ export class HermesKanbanAdapter {
|
|
|
263
275
|
};
|
|
264
276
|
}
|
|
265
277
|
|
|
266
|
-
async revokeTask(taskId: string): Promise<HermesKanbanReceiptResult> {
|
|
278
|
+
async revokeTask(taskId: string, reason = 'stale_lock_reclaimed'): Promise<HermesKanbanReceiptResult> {
|
|
267
279
|
const envelope = this.requireEnvelope(taskId);
|
|
268
280
|
if (envelope.state === 'revoked') return this.receiptResult(envelope, this.requireNode(taskId));
|
|
269
281
|
envelope.state = 'revoked';
|
|
270
282
|
envelope.revokedAt = new Date().toISOString();
|
|
283
|
+
const finalSpendCents = this.spendCentsSoFar(taskId);
|
|
271
284
|
const node = await this.signTaskNode(envelope, {
|
|
272
285
|
event: 'revoked',
|
|
273
286
|
action: 'block',
|
|
274
287
|
blocked: true,
|
|
275
288
|
capability: envelope.capabilityCeiling,
|
|
276
289
|
trustScore: 0.7,
|
|
290
|
+
revocationReason: safeLabel(reason) ?? 'stale_lock_reclaimed',
|
|
291
|
+
finalSpendCents,
|
|
292
|
+
postRevocationSpendCents: 0,
|
|
277
293
|
});
|
|
278
294
|
this.nodesByTaskId.set(taskId, node);
|
|
279
295
|
this.nodes.push(node);
|
|
@@ -284,7 +300,8 @@ export class HermesKanbanAdapter {
|
|
|
284
300
|
const envelope = this.requireEnvelope(input.taskId);
|
|
285
301
|
assertActive(envelope);
|
|
286
302
|
assertMetadataOnly(input.metadata ?? {});
|
|
287
|
-
envelope.
|
|
303
|
+
if (input.workspacePath) envelope.workspacePath = resolveWorkspacePath(input.workspacePath);
|
|
304
|
+
envelope.state = 'complete';
|
|
288
305
|
envelope.completedAt = new Date().toISOString();
|
|
289
306
|
const parentTaskIds = [...new Set(input.parentTaskIds ?? envelope.parentTaskIds)];
|
|
290
307
|
const parentNodes = parentTaskIds.map((id) => this.nodesByTaskId.get(id)).filter(Boolean) as ReceiptDagNode[];
|
|
@@ -346,6 +363,9 @@ export class HermesKanbanAdapter {
|
|
|
346
363
|
tokenCounts?: { inputTokens?: number; outputTokens?: number };
|
|
347
364
|
totalCostCents?: number;
|
|
348
365
|
reviewerCascade?: Record<string, unknown>;
|
|
366
|
+
revocationReason?: string;
|
|
367
|
+
finalSpendCents?: number;
|
|
368
|
+
postRevocationSpendCents?: number;
|
|
349
369
|
},
|
|
350
370
|
): Promise<ReceiptDagNode> {
|
|
351
371
|
if (!this.config.signingKeys) throw new Error('Hermes Kanban receipts require signingKeys');
|
|
@@ -373,6 +393,15 @@ export class HermesKanbanAdapter {
|
|
|
373
393
|
};
|
|
374
394
|
}
|
|
375
395
|
|
|
396
|
+
private spendCentsSoFar(taskId: string): number {
|
|
397
|
+
let total = 0;
|
|
398
|
+
for (const node of this.nodes) {
|
|
399
|
+
const receipt = node.decision?.outcomeReceipt as Record<string, unknown> | undefined;
|
|
400
|
+
if (receipt?.taskId === taskId) total += safeNonNegativeInteger(receipt.totalCostCents);
|
|
401
|
+
}
|
|
402
|
+
return total;
|
|
403
|
+
}
|
|
404
|
+
|
|
376
405
|
private requireEnvelope(taskId: string): HermesKanbanEnvelope {
|
|
377
406
|
const envelope = this.envelopes.get(taskId);
|
|
378
407
|
if (!envelope) throw new Error(`Unknown Hermes Kanban task ${taskId}`);
|
|
@@ -413,6 +442,9 @@ function taskDecision(
|
|
|
413
442
|
tokenCounts?: { inputTokens?: number; outputTokens?: number };
|
|
414
443
|
totalCostCents?: number;
|
|
415
444
|
reviewerCascade?: Record<string, unknown>;
|
|
445
|
+
revocationReason?: string;
|
|
446
|
+
finalSpendCents?: number;
|
|
447
|
+
postRevocationSpendCents?: number;
|
|
416
448
|
},
|
|
417
449
|
policy: SpendPolicy,
|
|
418
450
|
): SpendDecision {
|
|
@@ -433,6 +465,10 @@ function taskDecision(
|
|
|
433
465
|
parentTaskIds: [...envelope.parentTaskIds],
|
|
434
466
|
parentEntryHashes: parentNodes.map((node) => node.entryHash),
|
|
435
467
|
parentMsgHashes: parentNodes.map((node) => node.msgHash),
|
|
468
|
+
boardScopeHash: envelope.boardHash,
|
|
469
|
+
workspaceProvenance: envelope.workspacePath ? { type: 'directory', location: `dir:${envelope.workspacePath}` } : null,
|
|
470
|
+
governanceMode: envelope.governanceMode,
|
|
471
|
+
lightweight: envelope.governanceMode === 'lightweight',
|
|
436
472
|
modelIds: safeModelIds(args.modelIds ?? []),
|
|
437
473
|
inputTokens,
|
|
438
474
|
outputTokens,
|
|
@@ -440,6 +476,15 @@ function taskDecision(
|
|
|
440
476
|
metadata: filterReceiptMetadata(args.metadata ?? {}),
|
|
441
477
|
};
|
|
442
478
|
if (args.reviewerCascade) receipt.reviewerCascade = args.reviewerCascade;
|
|
479
|
+
if (args.event === 'revoked') {
|
|
480
|
+
receipt.revocation = {
|
|
481
|
+
reason: args.revocationReason ?? 'stale_lock_reclaimed',
|
|
482
|
+
finalSpendCents: safeNonNegativeInteger(args.finalSpendCents),
|
|
483
|
+
postRevocationSpendCents: safeNonNegativeInteger(args.postRevocationSpendCents),
|
|
484
|
+
closedAt: envelope.revokedAt ?? new Date().toISOString(),
|
|
485
|
+
assertion: 'no_spend_after_revoke',
|
|
486
|
+
};
|
|
487
|
+
}
|
|
443
488
|
const decision: SpendDecision = {
|
|
444
489
|
decisionId: randomUUID(),
|
|
445
490
|
timestamp: new Date().toISOString(),
|
|
@@ -481,15 +526,29 @@ function buildReviewerCascadeReceipt(input: HermesKanbanReceiptInput, opts: Herm
|
|
|
481
526
|
}
|
|
482
527
|
|
|
483
528
|
function reviewerCascadeTriggers(envelope: HermesKanbanEnvelope, input: HermesKanbanReceiptInput, opts: HermesKanbanAdapterOptions): string[] {
|
|
484
|
-
if (opts.reviewerCascade?.enabled === false) return [];
|
|
529
|
+
if (opts.reviewerCascade?.enabled === false || envelope.governanceMode === 'lightweight') return [];
|
|
485
530
|
const threshold = opts.reviewerCascade?.highRiskThreshold ?? 0.55;
|
|
486
531
|
const triggers: string[] = [];
|
|
487
|
-
if (envelope.profile === 'reviewer') triggers.push('reviewer_profile');
|
|
488
532
|
if (typeof input.highRiskClassifierScore === 'number' && input.highRiskClassifierScore >= threshold) triggers.push(`risk_score_above:${threshold}`);
|
|
489
533
|
if (input.keywordRisk === true) triggers.push('keyword_prefilter');
|
|
490
534
|
return [...new Set(triggers)];
|
|
491
535
|
}
|
|
492
536
|
|
|
537
|
+
|
|
538
|
+
function governanceModeFor(capability: ReceiptCapabilityLevel, capCents: number, opts: HermesKanbanAdapterOptions): HermesKanbanGovernanceMode {
|
|
539
|
+
const threshold = opts.lightweightThresholdCents ?? 5;
|
|
540
|
+
const ceiling = opts.lightweightCapabilityCeiling ?? 'READ_ONLY';
|
|
541
|
+
return CAPABILITY_RANK[capability] <= CAPABILITY_RANK[ceiling] && capCents <= threshold ? 'lightweight' : 'full';
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
function resolveWorkspacePath(value: unknown): string | undefined {
|
|
545
|
+
if (typeof value !== 'string') return undefined;
|
|
546
|
+
const trimmed = value.trim();
|
|
547
|
+
if (!trimmed) return undefined;
|
|
548
|
+
if (trimmed.length > 1024 || /[\u0000-\u001f\u007f]/.test(trimmed)) throw new Error('Hermes Kanban workspacePath must be a metadata path');
|
|
549
|
+
return resolvePath(trimmed);
|
|
550
|
+
}
|
|
551
|
+
|
|
493
552
|
function capForTask(input: HermesKanbanTaskInput, profilePolicy: HermesKanbanProfilePolicy, opts: HermesKanbanAdapterOptions): number {
|
|
494
553
|
if (Number.isSafeInteger(profilePolicy.capCents) && profilePolicy.capCents! >= 0) return profilePolicy.capCents!;
|
|
495
554
|
const runtimeMinutes = runtimeMinutesFor(input);
|
|
@@ -513,7 +572,7 @@ function spendCapabilityForReceiptCapability(capability: ReceiptCapabilityLevel)
|
|
|
513
572
|
|
|
514
573
|
function assertTaskInput(input: HermesKanbanTaskInput): void {
|
|
515
574
|
assertPlainRecord(input, 'task');
|
|
516
|
-
const allowed = new Set(['taskId', 'boardSlug', 'profile', 'parentTaskIds', 'maxRuntimeMinutes', 'maxRuntimeMs', 'metadata', 'builderCode']);
|
|
575
|
+
const allowed = new Set(['taskId', 'boardSlug', 'profile', 'parentTaskIds', 'workspacePath', 'maxRuntimeMinutes', 'maxRuntimeMs', 'metadata', 'builderCode']);
|
|
517
576
|
for (const key of Object.keys(input as unknown as Record<string, unknown>)) {
|
|
518
577
|
if (!allowed.has(key)) throw new Error(`Hermes Kanban task input cannot include data-plane or unknown field: ${key}`);
|
|
519
578
|
}
|
|
@@ -545,7 +604,7 @@ function assertPlainRecord(value: unknown, name: string): void {
|
|
|
545
604
|
|
|
546
605
|
function assertActive(envelope: HermesKanbanEnvelope): void {
|
|
547
606
|
if (envelope.state === 'revoked') throw new AgentGuardBlockedError(blockedDecision(envelope, 'revoked'), envelope.scope);
|
|
548
|
-
if (envelope.state === '
|
|
607
|
+
if (envelope.state === 'complete') throw new AgentGuardBlockedError(blockedDecision(envelope, 'complete'), envelope.scope);
|
|
549
608
|
}
|
|
550
609
|
|
|
551
610
|
function blockedDecision(envelope: HermesKanbanEnvelope, state: string): SpendDecision {
|