@dsh-enhanced/assistant-goals 0.1.30
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/LICENSE +21 -0
- package/README.md +274 -0
- package/cordis.patch.yml +3 -0
- package/lib/budget-store.d.ts +73 -0
- package/lib/budget-store.d.ts.map +1 -0
- package/lib/budget-store.js +345 -0
- package/lib/budget-store.js.map +1 -0
- package/lib/budget.d.ts +78 -0
- package/lib/budget.d.ts.map +1 -0
- package/lib/budget.js +344 -0
- package/lib/budget.js.map +1 -0
- package/lib/dependency.d.ts +11 -0
- package/lib/dependency.d.ts.map +1 -0
- package/lib/dependency.js +34 -0
- package/lib/dependency.js.map +1 -0
- package/lib/event-wait-store.d.ts +56 -0
- package/lib/event-wait-store.d.ts.map +1 -0
- package/lib/event-wait-store.js +189 -0
- package/lib/event-wait-store.js.map +1 -0
- package/lib/event-wait.d.ts +47 -0
- package/lib/event-wait.d.ts.map +1 -0
- package/lib/event-wait.js +372 -0
- package/lib/event-wait.js.map +1 -0
- package/lib/execution-store.d.ts +23 -0
- package/lib/execution-store.d.ts.map +1 -0
- package/lib/execution-store.js +207 -0
- package/lib/execution-store.js.map +1 -0
- package/lib/execution.d.ts +49 -0
- package/lib/execution.d.ts.map +1 -0
- package/lib/execution.js +438 -0
- package/lib/execution.js.map +1 -0
- package/lib/feedback.d.ts +63 -0
- package/lib/feedback.d.ts.map +1 -0
- package/lib/feedback.js +134 -0
- package/lib/feedback.js.map +1 -0
- package/lib/index.d.ts +27 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +9 -0
- package/lib/index.js.map +1 -0
- package/lib/outcome-store.d.ts +47 -0
- package/lib/outcome-store.d.ts.map +1 -0
- package/lib/outcome-store.js +271 -0
- package/lib/outcome-store.js.map +1 -0
- package/lib/outcome.d.ts +77 -0
- package/lib/outcome.d.ts.map +1 -0
- package/lib/outcome.js +417 -0
- package/lib/outcome.js.map +1 -0
- package/lib/service.d.ts +363 -0
- package/lib/service.d.ts.map +1 -0
- package/lib/service.js +1839 -0
- package/lib/service.js.map +1 -0
- package/lib/store.d.ts +21 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +577 -0
- package/lib/store.js.map +1 -0
- package/lib/strategy-feedback.d.ts +29 -0
- package/lib/strategy-feedback.d.ts.map +1 -0
- package/lib/strategy-feedback.js +53 -0
- package/lib/strategy-feedback.js.map +1 -0
- package/lib/strategy-identity.d.ts +11 -0
- package/lib/strategy-identity.d.ts.map +1 -0
- package/lib/strategy-identity.js +10 -0
- package/lib/strategy-identity.js.map +1 -0
- package/lib/strategy-store.d.ts +76 -0
- package/lib/strategy-store.d.ts.map +1 -0
- package/lib/strategy-store.js +277 -0
- package/lib/strategy-store.js.map +1 -0
- package/lib/strategy.d.ts +56 -0
- package/lib/strategy.d.ts.map +1 -0
- package/lib/strategy.js +478 -0
- package/lib/strategy.js.map +1 -0
- package/lib/tools.d.ts +4 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +130 -0
- package/lib/tools.js.map +1 -0
- package/lib/types.d.ts +285 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +10 -0
- package/lib/types.js.map +1 -0
- package/lib/verified-artifact.d.ts +72 -0
- package/lib/verified-artifact.d.ts.map +1 -0
- package/lib/verified-artifact.js +142 -0
- package/lib/verified-artifact.js.map +1 -0
- package/lib/verified-workflow.d.ts +120 -0
- package/lib/verified-workflow.d.ts.map +1 -0
- package/lib/verified-workflow.js +253 -0
- package/lib/verified-workflow.js.map +1 -0
- package/lib/version.d.ts +2 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/version.js +2 -0
- package/lib/version.js.map +1 -0
- package/lib/wake-store.d.ts +38 -0
- package/lib/wake-store.d.ts.map +1 -0
- package/lib/wake-store.js +177 -0
- package/lib/wake-store.js.map +1 -0
- package/lib/wake.d.ts +45 -0
- package/lib/wake.d.ts.map +1 -0
- package/lib/wake.js +327 -0
- package/lib/wake.js.map +1 -0
- package/package.json +143 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { posix } from 'node:path';
|
|
3
|
+
import { validateTaskAcceptanceContract, validateTaskVerificationReceipt } from '@dsh-enhanced/task-acceptance-contract';
|
|
4
|
+
const freeze = (value) => {
|
|
5
|
+
const copy = JSON.parse(JSON.stringify(value));
|
|
6
|
+
const visit = (item) => {
|
|
7
|
+
if (item === null || typeof item !== 'object' || Object.isFrozen(item))
|
|
8
|
+
return;
|
|
9
|
+
for (const child of Object.values(item))
|
|
10
|
+
visit(child);
|
|
11
|
+
Object.freeze(item);
|
|
12
|
+
};
|
|
13
|
+
visit(copy);
|
|
14
|
+
return copy;
|
|
15
|
+
};
|
|
16
|
+
const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
17
|
+
const failed = () => { throw new Error('assistant-goals: verified artifact evidence is unavailable'); };
|
|
18
|
+
export function validateOwnerVerifiedArtifactsInput(value) {
|
|
19
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value) || Object.getPrototypeOf(value) !== Object.prototype || Object.getOwnPropertySymbols(value).length !== 0)
|
|
20
|
+
failed();
|
|
21
|
+
const input = value;
|
|
22
|
+
const keys = Object.keys(input);
|
|
23
|
+
if (keys.length !== 8 || !['ownerRouteId', 'principalId', 'workspace', 'preset', 'sessionId', 'goalId', 'runId', 'paths'].every(key => keys.includes(key))
|
|
24
|
+
|| Object.values(Object.getOwnPropertyDescriptors(input)).some(item => !item.enumerable || !('value' in item)))
|
|
25
|
+
failed();
|
|
26
|
+
for (const key of ['ownerRouteId', 'principalId', 'workspace', 'preset', 'sessionId', 'goalId', 'runId']) {
|
|
27
|
+
if (typeof input[key] !== 'string' || input[key].length === 0 || input[key].length > 4096)
|
|
28
|
+
failed();
|
|
29
|
+
}
|
|
30
|
+
const rawPaths = input.paths;
|
|
31
|
+
if (!Array.isArray(rawPaths) || rawPaths.length < 1 || rawPaths.length > 32)
|
|
32
|
+
failed();
|
|
33
|
+
const paths = rawPaths.map((path) => {
|
|
34
|
+
if (typeof path !== 'string' || path.length === 0 || path.length > 4096 || posix.isAbsolute(path) || posix.normalize(path) !== path || path.split('/').includes('..') || path.includes('\\'))
|
|
35
|
+
failed();
|
|
36
|
+
return path;
|
|
37
|
+
});
|
|
38
|
+
if (new Set(paths).size !== paths.length)
|
|
39
|
+
failed();
|
|
40
|
+
return Object.freeze({ ownerRouteId: input.ownerRouteId, principalId: input.principalId, workspace: input.workspace,
|
|
41
|
+
preset: input.preset, sessionId: input.sessionId, goalId: input.goalId, runId: input.runId, paths: Object.freeze(paths) });
|
|
42
|
+
}
|
|
43
|
+
function accepted(snapshot, id, kind, now) {
|
|
44
|
+
const item = snapshot.acceptedTasks.find(entry => {
|
|
45
|
+
try {
|
|
46
|
+
return validateTaskAcceptanceContract(entry.contract).id === id;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const found = item;
|
|
53
|
+
if (found === undefined || found.state !== 'done' || found.verifierExecutionObservation === null)
|
|
54
|
+
return failed();
|
|
55
|
+
const contract = validateTaskAcceptanceContract(found.contract);
|
|
56
|
+
const receipt = validateTaskVerificationReceipt(contract, found.receipt);
|
|
57
|
+
const execution = found.verifierExecutionObservation;
|
|
58
|
+
if (contract.protocol !== 'task-acceptance/v4' || contract.task.kind !== kind || receipt.objectiveStatus !== 'achieved'
|
|
59
|
+
|| receipt.validUntil <= now || execution.status !== 'succeeded' || execution.quiescent !== true)
|
|
60
|
+
failed();
|
|
61
|
+
return { contract, receipt };
|
|
62
|
+
}
|
|
63
|
+
function artifactEvidence(receipt, criterionId, artifact) {
|
|
64
|
+
const result = receipt.results.find(item => item.criterionId === criterionId);
|
|
65
|
+
return result?.status === 'passed' && result.artifactDigest === artifact.sha256
|
|
66
|
+
&& result.evidence.some(item => item.kind === 'isolated-artifact' && item.ref === artifact.jobId && item.digest === artifact.sha256);
|
|
67
|
+
}
|
|
68
|
+
function acceptedStep(first, last, input, now, phases) {
|
|
69
|
+
const before = first;
|
|
70
|
+
const after = last;
|
|
71
|
+
if (!before || !after || !same(before.ownerRoute, after.ownerRoute) || !same(before.storedGoal, after.storedGoal) || !same(before.executionRuns, after.executionRuns)
|
|
72
|
+
|| !same(before.outcomeAssessments, after.outcomeAssessments) || !same(before.acceptedTasks, after.acceptedTasks))
|
|
73
|
+
failed();
|
|
74
|
+
const goal = before.storedGoal;
|
|
75
|
+
if (goal.id !== input.goalId || goal.nativeAtLastObservation.sessionId !== input.sessionId || !phases.includes(goal.nativeAtLastObservation.phase)
|
|
76
|
+
|| goal.scope.principalId !== input.principalId || goal.scope.workspace !== input.workspace || goal.scope.preset !== input.preset)
|
|
77
|
+
failed();
|
|
78
|
+
const run = before.executionRuns.find(entry => entry?.intent?.runId === input.runId);
|
|
79
|
+
if (!run || run.intent?.task?.kind !== 'goal-step' || run.intent.task.ref !== input.runId || run.intent.task.goal?.id !== goal.id
|
|
80
|
+
|| run.intent.task.goal.definitionVersion !== goal.definition.version || run.intent.task.goal.definitionDigest !== goal.definition.digest
|
|
81
|
+
|| run.intent.task.goal.sessionId !== goal.nativeAtLastObservation.sessionId || run.intent.task.goal.nativeGoalId !== goal.nativeAtLastObservation.goalId
|
|
82
|
+
|| run.execution?.status !== 'succeeded' || run.execution?.quiescent !== true || !run.acceptance?.contractId)
|
|
83
|
+
failed();
|
|
84
|
+
const step = accepted(before, run.acceptance.contractId, 'goal-step', now);
|
|
85
|
+
if (step.contract.digest !== run.acceptance.contractDigest || !same(step.contract.task, run.intent.task)
|
|
86
|
+
|| step.contract.scope.workspace !== goal.scope.workspace || step.contract.scope.preset !== goal.scope.preset
|
|
87
|
+
|| step.contract.owner.principalRecordId !== goal.scope.principalRecordId || step.contract.owner.principalVersion !== goal.scope.principalVersion)
|
|
88
|
+
failed();
|
|
89
|
+
return { before, goal, step };
|
|
90
|
+
}
|
|
91
|
+
/** Builds a delivery-safe artifact snapshot from two independently read owner snapshots. */
|
|
92
|
+
export function buildOwnerVerifiedArtifacts(first, last, input, isolation, now = Date.now()) {
|
|
93
|
+
const { before, goal, step } = acceptedStep(first, last, input, now, ['active', 'complete']);
|
|
94
|
+
const assessment = before.outcomeAssessments[0];
|
|
95
|
+
if (assessment === undefined || assessment.triggerRunId !== input.runId || assessment.execution === null)
|
|
96
|
+
return failed();
|
|
97
|
+
const outcomeContract = validateTaskAcceptanceContract(assessment.contract);
|
|
98
|
+
if (outcomeContract.task.kind !== 'goal-outcome' || outcomeContract.task.goal.id !== goal.id
|
|
99
|
+
|| outcomeContract.task.goal.definitionVersion !== goal.definition.version || outcomeContract.task.goal.definitionDigest !== goal.definition.digest
|
|
100
|
+
|| outcomeContract.task.goal.sessionId !== goal.nativeAtLastObservation.sessionId || outcomeContract.task.goal.nativeGoalId !== goal.nativeAtLastObservation.goalId)
|
|
101
|
+
failed();
|
|
102
|
+
const outcome = accepted(before, outcomeContract.id, 'goal-outcome', now);
|
|
103
|
+
if (!same(outcome.contract, outcomeContract) || outcome.contract.scope.workspace !== goal.scope.workspace || outcome.contract.scope.preset !== goal.scope.preset
|
|
104
|
+
|| outcome.contract.owner.principalRecordId !== goal.scope.principalRecordId || outcome.contract.owner.principalVersion !== goal.scope.principalVersion)
|
|
105
|
+
failed();
|
|
106
|
+
const files = readArtifacts(input, isolation, step, outcome);
|
|
107
|
+
return freeze({ protocol: 'assistant-goals/verified-artifacts/v1', scope: goal.scope,
|
|
108
|
+
goal: { id: goal.id, definition: goal.definition, sessionId: goal.nativeAtLastObservation.sessionId, nativeGoalId: goal.nativeAtLastObservation.goalId }, runId: input.runId,
|
|
109
|
+
acceptance: { stepContractId: step.contract.id, stepContractDigest: step.contract.digest, outcomeContractId: outcome.contract.id, outcomeContractDigest: outcome.contract.digest,
|
|
110
|
+
stepReceiptDigest: step.receipt.digest, outcomeReceiptDigest: outcome.receipt.digest, validUntil: Math.min(step.receipt.validUntil, outcome.receipt.validUntil) }, files });
|
|
111
|
+
}
|
|
112
|
+
function readArtifacts(input, isolation, step, outcome) {
|
|
113
|
+
const files = [];
|
|
114
|
+
let bytes = 0;
|
|
115
|
+
for (const path of input.paths) {
|
|
116
|
+
const stepCriteria = step.contract.criteria.filter(item => item.kind === 'isolated-process-behavior' && item.artifactPath === path);
|
|
117
|
+
const outcomeCriteria = outcome?.contract.criteria.filter(item => item.kind === 'isolated-process-behavior' && item.artifactPath === path);
|
|
118
|
+
if (stepCriteria.length === 0 || outcomeCriteria?.length === 0)
|
|
119
|
+
failed();
|
|
120
|
+
const raw = isolation.readAcceptedArtifact(step.contract, path);
|
|
121
|
+
if (!raw || raw.path !== path || typeof raw.content !== 'string' || typeof raw.sha256 !== 'string' || !/^[a-f0-9]{64}$/.test(raw.sha256) || typeof raw.jobId !== 'string' || raw.jobId.length === 0)
|
|
122
|
+
failed();
|
|
123
|
+
const artifact = { path, content: raw.content, sha256: raw.sha256, jobId: raw.jobId };
|
|
124
|
+
if (createHash('sha256').update(artifact.content).digest('hex') !== artifact.sha256 || !stepCriteria.every(item => artifactEvidence(step.receipt, item.id, artifact))
|
|
125
|
+
|| outcome !== undefined && !outcomeCriteria.every(item => artifactEvidence(outcome.receipt, item.id, artifact)))
|
|
126
|
+
failed();
|
|
127
|
+
bytes += Buffer.byteLength(artifact.content, 'utf8');
|
|
128
|
+
if (bytes > 1_048_576)
|
|
129
|
+
failed();
|
|
130
|
+
files.push(artifact);
|
|
131
|
+
}
|
|
132
|
+
return files;
|
|
133
|
+
}
|
|
134
|
+
/** Step acceptance permits explicitly authorized intermediate delivery, not whole-goal completion. */
|
|
135
|
+
export function buildOwnerAcceptedStepArtifacts(first, last, input, isolation, now = Date.now()) {
|
|
136
|
+
const { goal, step } = acceptedStep(first, last, input, now, ['active', 'paused', 'complete']);
|
|
137
|
+
const files = readArtifacts(input, isolation, step);
|
|
138
|
+
return freeze({ protocol: 'assistant-goals/accepted-step-artifacts/v1', scope: goal.scope,
|
|
139
|
+
goal: { id: goal.id, definition: goal.definition, sessionId: goal.nativeAtLastObservation.sessionId, nativeGoalId: goal.nativeAtLastObservation.goalId }, runId: input.runId,
|
|
140
|
+
acceptance: { stepContractId: step.contract.id, stepContractDigest: step.contract.digest, stepReceiptDigest: step.receipt.digest, validUntil: step.receipt.validUntil }, files });
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=verified-artifact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-artifact.js","sourceRoot":"","sources":["../src/verified-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { GoalExecutionRun, GoalScope, GoalRecord, HostFailureEvidenceSummary, OwnerGoalRunProof } from './types.js';
|
|
2
|
+
export interface VerifiedWorkflowSource {
|
|
3
|
+
protocol: 'assistant-goals/verified-workflow-source/v1';
|
|
4
|
+
scope: GoalScope;
|
|
5
|
+
goal: {
|
|
6
|
+
id: string;
|
|
7
|
+
definition: {
|
|
8
|
+
version: number;
|
|
9
|
+
digest: string;
|
|
10
|
+
objective: string;
|
|
11
|
+
};
|
|
12
|
+
sessionId: string;
|
|
13
|
+
nativeGoalId: string;
|
|
14
|
+
};
|
|
15
|
+
runId: string;
|
|
16
|
+
turn: number;
|
|
17
|
+
acceptance: {
|
|
18
|
+
contractId: string;
|
|
19
|
+
contractDigest: string;
|
|
20
|
+
receiptDigest: string;
|
|
21
|
+
verifiedAt: number;
|
|
22
|
+
validUntil: number;
|
|
23
|
+
};
|
|
24
|
+
steps: readonly {
|
|
25
|
+
id: string;
|
|
26
|
+
toolName: string;
|
|
27
|
+
arguments: unknown;
|
|
28
|
+
}[];
|
|
29
|
+
failedObservations?: readonly {
|
|
30
|
+
id: string;
|
|
31
|
+
toolName: string;
|
|
32
|
+
arguments: unknown;
|
|
33
|
+
outcome: 'failed';
|
|
34
|
+
}[];
|
|
35
|
+
/** Present only when the owner bridge exports more than the final accepted native run. */
|
|
36
|
+
segments?: readonly VerifiedWorkflowSegment[];
|
|
37
|
+
}
|
|
38
|
+
export interface VerifiedWorkflowSegment {
|
|
39
|
+
runId: string;
|
|
40
|
+
turn: number;
|
|
41
|
+
round: number;
|
|
42
|
+
nativeRevision: number;
|
|
43
|
+
steps: readonly {
|
|
44
|
+
id: string;
|
|
45
|
+
toolName: string;
|
|
46
|
+
arguments: unknown;
|
|
47
|
+
}[];
|
|
48
|
+
failedObservations?: readonly {
|
|
49
|
+
id: string;
|
|
50
|
+
toolName: string;
|
|
51
|
+
arguments: unknown;
|
|
52
|
+
outcome: 'failed';
|
|
53
|
+
}[];
|
|
54
|
+
}
|
|
55
|
+
/** Stable failure taxonomy for the owner Host bridge. It is never model-visible. */
|
|
56
|
+
export declare class OwnerVerifiedWorkflowSourceError extends Error {
|
|
57
|
+
readonly code: 'pending' | 'unknown' | 'unavailable' | 'rejected';
|
|
58
|
+
constructor(code: 'pending' | 'unknown' | 'unavailable' | 'rejected', message: string, options?: ErrorOptions);
|
|
59
|
+
}
|
|
60
|
+
export interface VerifiedWorkflowEvidence {
|
|
61
|
+
scope: GoalScope;
|
|
62
|
+
record: GoalRecord;
|
|
63
|
+
run: GoalExecutionRun;
|
|
64
|
+
accepted: {
|
|
65
|
+
state: string;
|
|
66
|
+
contract: {
|
|
67
|
+
id: string;
|
|
68
|
+
digest: string;
|
|
69
|
+
} | null;
|
|
70
|
+
receipt: unknown;
|
|
71
|
+
};
|
|
72
|
+
events: readonly unknown[];
|
|
73
|
+
}
|
|
74
|
+
export declare function verifiedRunId(scope: GoalScope, goalId: string, sessionId: string, turn: number): string;
|
|
75
|
+
export declare function successfulToolSteps(events: readonly any[], turn: number): readonly {
|
|
76
|
+
id: string;
|
|
77
|
+
toolName: string;
|
|
78
|
+
arguments: unknown;
|
|
79
|
+
}[];
|
|
80
|
+
/**
|
|
81
|
+
* Reconstruct every settled call in one exact native Goal run. Failed calls
|
|
82
|
+
* remain explicit so downstream consumers can fail closed. traceDigest is an
|
|
83
|
+
* integrity checksum only; provenance comes from the Host-only service method.
|
|
84
|
+
*/
|
|
85
|
+
export declare function ownerGoalRunProof(scope: GoalScope, record: Pick<GoalRecord, 'id' | 'scope' | 'definition' | 'native'>, run: GoalExecutionRun, outcomeProfile: {
|
|
86
|
+
id: string;
|
|
87
|
+
version: number;
|
|
88
|
+
digest: string;
|
|
89
|
+
}, rawEvents: readonly unknown[]): OwnerGoalRunProof;
|
|
90
|
+
/** Integrity linkage only; source trust requires the current Host-only Goals service capability. */
|
|
91
|
+
export declare function failureSummaryEvidenceDigest(value: Omit<HostFailureEvidenceSummary, 'evidence'>, generation: string): string;
|
|
92
|
+
/**
|
|
93
|
+
* A complete native turn trace. Failed calls are rejected except for bounded,
|
|
94
|
+
* explicit read-only probes, which stay separately labelled as observations.
|
|
95
|
+
*/
|
|
96
|
+
export declare function verifiedToolTrace(events: readonly any[], turn: number): {
|
|
97
|
+
steps: readonly {
|
|
98
|
+
id: string;
|
|
99
|
+
toolName: string;
|
|
100
|
+
arguments: unknown;
|
|
101
|
+
}[];
|
|
102
|
+
failedObservations: readonly {
|
|
103
|
+
id: string;
|
|
104
|
+
toolName: string;
|
|
105
|
+
arguments: unknown;
|
|
106
|
+
outcome: 'failed';
|
|
107
|
+
}[];
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Builds the single Host export after both callers have established their own
|
|
111
|
+
* authority and exact independent whole-goal assessment. Keeping the raw
|
|
112
|
+
* native-event checks here prevents a cold read from drifting from the live
|
|
113
|
+
* owner-turn path.
|
|
114
|
+
*/
|
|
115
|
+
export declare function verifiedWorkflowSource(evidence: VerifiedWorkflowEvidence): VerifiedWorkflowSource;
|
|
116
|
+
/** Build an owner-only contiguous trace whose final run is independently achieved. */
|
|
117
|
+
export declare function verifiedWorkflowSourceChain(evidence: VerifiedWorkflowEvidence & {
|
|
118
|
+
runs: readonly GoalExecutionRun[];
|
|
119
|
+
}): VerifiedWorkflowSource;
|
|
120
|
+
//# sourceMappingURL=verified-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-workflow.d.ts","sourceRoot":"","sources":["../src/verified-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
|
|
2
|
+
/** Stable failure taxonomy for the owner Host bridge. It is never model-visible. */
|
|
3
|
+
export class OwnerVerifiedWorkflowSourceError extends Error {
|
|
4
|
+
code;
|
|
5
|
+
constructor(code, message, options) {
|
|
6
|
+
super(message, options);
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.name = 'OwnerVerifiedWorkflowSourceError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function verifiedRunId(scope, goalId, sessionId, turn) {
|
|
12
|
+
return `goal-run-${acceptanceDigest([scope, goalId, sessionId, turn])}`;
|
|
13
|
+
}
|
|
14
|
+
export function successfulToolSteps(events, turn) {
|
|
15
|
+
const trace = verifiedToolTrace(events, turn);
|
|
16
|
+
if (trace.failedObservations.length !== 0)
|
|
17
|
+
throw new Error('assistant-goals: tool trace contains a failed call');
|
|
18
|
+
return trace.steps;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reconstruct every settled call in one exact native Goal run. Failed calls
|
|
22
|
+
* remain explicit so downstream consumers can fail closed. traceDigest is an
|
|
23
|
+
* integrity checksum only; provenance comes from the Host-only service method.
|
|
24
|
+
*/
|
|
25
|
+
export function ownerGoalRunProof(scope, record, run, outcomeProfile, rawEvents) {
|
|
26
|
+
if (acceptanceDigest(record.scope) !== acceptanceDigest(scope) || acceptanceDigest(run.intent.scope) !== acceptanceDigest(scope)
|
|
27
|
+
|| run.execution?.status !== 'succeeded' || run.execution.quiescent !== true || run.intent.runId !== run.intent.task.goal.runId
|
|
28
|
+
|| run.intent.task.ref !== run.intent.runId || run.intent.objective !== record.definition.objective
|
|
29
|
+
|| run.intent.task.goal.id !== record.id || run.intent.task.goal.definitionVersion !== record.definition.version
|
|
30
|
+
|| run.intent.task.goal.definitionDigest !== record.definition.digest || run.intent.task.goal.sessionId !== record.native.sessionId
|
|
31
|
+
|| run.intent.task.goal.nativeGoalId !== record.native.goalId)
|
|
32
|
+
throw new Error('assistant-goals: exact settled successful run is required');
|
|
33
|
+
const events = rawEvents;
|
|
34
|
+
const turns = events.filter(event => event?.type === 'turn/start' && Number.isSafeInteger(event.data?.turn)
|
|
35
|
+
&& run.intent.runId === verifiedRunId(scope, record.id, record.native.sessionId, event.data.turn)).map(event => event.data.turn);
|
|
36
|
+
if (turns.length !== 1)
|
|
37
|
+
throw new Error('assistant-goals: run source turn is unavailable');
|
|
38
|
+
const turn = turns[0];
|
|
39
|
+
const starts = events.filter(event => event?.type === 'turn/start' && event.data?.turn === turn && Number.isSafeInteger(event.seq));
|
|
40
|
+
const ends = events.filter(event => event?.type === 'turn/end' && event.data?.turn === turn && Number.isSafeInteger(event.seq));
|
|
41
|
+
if (starts.length !== 1 || ends.length !== 1 || ends[0].seq <= starts[0].seq || ends[0].data?.reason?.kind !== 'completed') {
|
|
42
|
+
throw new Error('assistant-goals: completed run source turn is unavailable');
|
|
43
|
+
}
|
|
44
|
+
const start = starts[0], end = ends[0];
|
|
45
|
+
const source = events.filter(event => event?.type === 'user/message' && Number.isSafeInteger(event.seq) && event.seq > start.seq && event.seq < end.seq
|
|
46
|
+
&& event.data?.source?.kind === 'goal' && event.data.source.goalId === record.native.goalId
|
|
47
|
+
&& event.data.source.revision === run.intent.task.goal.nativeRevision && event.data.source.round === run.intent.admission.round);
|
|
48
|
+
if (source.length !== 1)
|
|
49
|
+
throw new Error('assistant-goals: run goal source is invalid');
|
|
50
|
+
const calls = new Map();
|
|
51
|
+
const results = new Map();
|
|
52
|
+
let argumentBytes = 0;
|
|
53
|
+
for (const event of events) {
|
|
54
|
+
if (!Number.isSafeInteger(event?.seq) || event.seq <= source[0].seq || event.seq >= end.seq || event.data?.turn !== turn)
|
|
55
|
+
continue;
|
|
56
|
+
if (event.type === 'tool/call' && typeof event.data.callId === 'string' && typeof event.data.name === 'string') {
|
|
57
|
+
if (calls.has(event.data.callId) || calls.size >= 32)
|
|
58
|
+
throw new Error('assistant-goals: duplicate or oversized run trace');
|
|
59
|
+
const arguments_ = parseArguments(event.data.arguments);
|
|
60
|
+
argumentBytes += Buffer.byteLength(event.data.arguments, 'utf8');
|
|
61
|
+
if (argumentBytes > 256 * 1024)
|
|
62
|
+
throw new Error('assistant-goals: oversized run trace arguments');
|
|
63
|
+
calls.set(event.data.callId, { id: event.data.callId, name: event.data.name, arguments: arguments_, seq: event.seq });
|
|
64
|
+
}
|
|
65
|
+
if (event.type === 'tool/result' && event.surfaceOp === 'append' && Array.isArray(event.sourceEventSeqs)
|
|
66
|
+
&& event.sourceEventSeqs.length === 1 && typeof event.data?.message?.source?.callId === 'string') {
|
|
67
|
+
const id = event.data.message.source.callId, content = event.data.message.content;
|
|
68
|
+
const result = Array.isArray(content) && content.length === 1 && content[0]?.type === 'tool-result' ? content[0] : undefined;
|
|
69
|
+
const call = calls.get(id);
|
|
70
|
+
if (call === undefined || event.sourceEventSeqs[0] !== call.seq)
|
|
71
|
+
continue;
|
|
72
|
+
if (results.has(id) || result?.toolCallId !== id || event.seq <= call.seq)
|
|
73
|
+
throw new Error('assistant-goals: run trace contains a missing, duplicate or mismatched result');
|
|
74
|
+
results.set(id, { outcome: event.data.message.isError === true || result.isError === true ? 'failed' : 'succeeded', seq: event.seq });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if ([...calls.keys()].some(id => !results.has(id)))
|
|
78
|
+
throw new Error('assistant-goals: run trace contains an unconfirmed call');
|
|
79
|
+
const steps = Object.freeze([...calls.values()].sort((a, b) => a.seq - b.seq).map(call => Object.freeze({
|
|
80
|
+
id: call.id, name: call.name, arguments: call.arguments, outcome: results.get(call.id).outcome,
|
|
81
|
+
})));
|
|
82
|
+
const payload = { protocol: 'assistant-goals/owner-run-trace/v1', runId: run.intent.runId, turn,
|
|
83
|
+
nativeRevision: run.intent.task.goal.nativeRevision, definitionDigest: record.definition.digest,
|
|
84
|
+
outcomeProfile: Object.freeze({ ...outcomeProfile }), steps };
|
|
85
|
+
return Object.freeze({ ...payload, traceDigest: acceptanceDigest(payload) });
|
|
86
|
+
}
|
|
87
|
+
/** Integrity linkage only; source trust requires the current Host-only Goals service capability. */
|
|
88
|
+
export function failureSummaryEvidenceDigest(value, generation) {
|
|
89
|
+
return acceptanceDigest({ ...JSON.parse(JSON.stringify(value)), evidence: { producer: 'assistant-goals', generation } });
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* A complete native turn trace. Failed calls are rejected except for bounded,
|
|
93
|
+
* explicit read-only probes, which stay separately labelled as observations.
|
|
94
|
+
*/
|
|
95
|
+
export function verifiedToolTrace(events, turn) {
|
|
96
|
+
const trace = verifiedToolTraceInternal(events, turn);
|
|
97
|
+
return { steps: trace.steps, failedObservations: trace.failedObservations };
|
|
98
|
+
}
|
|
99
|
+
function verifiedToolTraceInternal(events, turn, window) {
|
|
100
|
+
const calls = new Map();
|
|
101
|
+
const results = new Map();
|
|
102
|
+
let argumentBytes = 0;
|
|
103
|
+
for (const event of events) {
|
|
104
|
+
if (event?.type === 'tool/call' && event.data?.turn === turn && typeof event.data.callId === 'string'
|
|
105
|
+
&& typeof event.data.name === 'string') {
|
|
106
|
+
if (window !== undefined && !traceEventInWindow(event, window))
|
|
107
|
+
continue;
|
|
108
|
+
if (calls.has(event.data.callId) || calls.size >= 32)
|
|
109
|
+
throw new Error('assistant-goals: duplicate or oversized tool trace');
|
|
110
|
+
const arguments_ = parseArguments(event.data.arguments);
|
|
111
|
+
argumentBytes += Buffer.byteLength(event.data.arguments, 'utf8');
|
|
112
|
+
if (argumentBytes > 256 * 1024)
|
|
113
|
+
throw new Error('assistant-goals: oversized tool trace arguments');
|
|
114
|
+
calls.set(event.data.callId, { id: event.data.callId, toolName: event.data.name, arguments: arguments_, seq: event.seq });
|
|
115
|
+
}
|
|
116
|
+
if (event?.type === 'tool/result' && event.data?.turn === turn && (window === undefined || traceEventInWindow(event, window))
|
|
117
|
+
&& typeof event.data?.message?.source?.callId === 'string') {
|
|
118
|
+
const id = event.data.message.source.callId;
|
|
119
|
+
const content = event.data.message.content;
|
|
120
|
+
const result = Array.isArray(content) && content.length === 1 && content[0]?.type === 'tool-result' ? content[0] : undefined;
|
|
121
|
+
const call = calls.get(id);
|
|
122
|
+
// Native errors live in the matching tool-result block, not on Message.
|
|
123
|
+
if (call === undefined || window !== undefined && (event.surfaceOp !== 'append' || !Array.isArray(event.sourceEventSeqs)
|
|
124
|
+
|| event.sourceEventSeqs.length !== 1 || event.sourceEventSeqs[0] !== call.seq))
|
|
125
|
+
continue;
|
|
126
|
+
if (results.has(id) || !result || result.toolCallId !== id || window !== undefined && event.seq <= call.seq) {
|
|
127
|
+
throw new Error('assistant-goals: tool trace contains a failed, duplicate or mismatched result');
|
|
128
|
+
}
|
|
129
|
+
results.set(id, event.data.message.isError === true || result.isError === true ? 'failed' : 'succeeded');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if ([...calls.keys()].some(id => !results.has(id)))
|
|
133
|
+
throw new Error('assistant-goals: tool trace contains an unconfirmed call');
|
|
134
|
+
const steps = [];
|
|
135
|
+
const failedObservations = [];
|
|
136
|
+
for (const call of calls.values()) {
|
|
137
|
+
const step = { id: call.id, toolName: call.toolName, arguments: call.arguments };
|
|
138
|
+
if (results.get(call.id) === 'succeeded') {
|
|
139
|
+
steps.push(step);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
if (!readOnlyProbe(call))
|
|
143
|
+
throw new Error('assistant-goals: tool trace contains a failed non-observation call');
|
|
144
|
+
failedObservations.push({ ...step, outcome: 'failed' });
|
|
145
|
+
}
|
|
146
|
+
return { steps, failedObservations, argumentBytes };
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Builds the single Host export after both callers have established their own
|
|
150
|
+
* authority and exact independent whole-goal assessment. Keeping the raw
|
|
151
|
+
* native-event checks here prevents a cold read from drifting from the live
|
|
152
|
+
* owner-turn path.
|
|
153
|
+
*/
|
|
154
|
+
export function verifiedWorkflowSource(evidence) {
|
|
155
|
+
const { scope, record, run, accepted } = evidence;
|
|
156
|
+
const receipt = accepted.receipt;
|
|
157
|
+
if (record.native.phase !== 'complete')
|
|
158
|
+
throw new Error('assistant-goals: exact completed native goal is required');
|
|
159
|
+
if (accepted.state !== 'done' || accepted.contract === null || receipt === null || receipt.objectiveStatus !== 'achieved'
|
|
160
|
+
|| !Number.isSafeInteger(receipt.validUntil) || !(typeof receipt.validUntil === 'number' && receipt.validUntil > Date.now()) || !Number.isSafeInteger(receipt.completedAt)) {
|
|
161
|
+
throw new Error('assistant-goals: current accepted outcome is unavailable');
|
|
162
|
+
}
|
|
163
|
+
const built = workflowSegment(scope, record, run, evidence.events);
|
|
164
|
+
return Object.freeze({ protocol: 'assistant-goals/verified-workflow-source/v1', scope: Object.freeze({ ...scope }),
|
|
165
|
+
goal: Object.freeze({ id: record.id, definition: Object.freeze({ ...record.definition }), sessionId: record.native.sessionId, nativeGoalId: record.native.goalId }),
|
|
166
|
+
runId: built.segment.runId, turn: built.segment.turn, acceptance: Object.freeze({ contractId: accepted.contract.id, contractDigest: accepted.contract.digest,
|
|
167
|
+
receiptDigest: typeof receipt.digest === 'string' ? receipt.digest : acceptanceDigest(receipt), verifiedAt: receipt.completedAt, validUntil: receipt.validUntil }),
|
|
168
|
+
steps: built.segment.steps, ...(built.segment.failedObservations === undefined ? {} : { failedObservations: built.segment.failedObservations }) });
|
|
169
|
+
}
|
|
170
|
+
/** Build an owner-only contiguous trace whose final run is independently achieved. */
|
|
171
|
+
export function verifiedWorkflowSourceChain(evidence) {
|
|
172
|
+
const final = verifiedWorkflowSource(evidence);
|
|
173
|
+
const runs = evidence.runs.filter(run => run.intent.task.goal.id === evidence.record.id
|
|
174
|
+
&& run.intent.task.goal.definitionVersion === evidence.record.definition.version && run.intent.task.goal.definitionDigest === evidence.record.definition.digest
|
|
175
|
+
&& run.intent.task.goal.sessionId === evidence.record.native.sessionId && run.intent.task.goal.nativeGoalId === evidence.record.native.goalId)
|
|
176
|
+
.sort((a, b) => a.intent.admission.round - b.intent.admission.round);
|
|
177
|
+
const finalIndex = runs.findIndex(run => run.intent.runId === final.runId);
|
|
178
|
+
if (finalIndex < 0 || runs.length !== finalIndex + 1 || runs.length === 0)
|
|
179
|
+
throw new Error('assistant-goals: exact final workflow run is required');
|
|
180
|
+
const maxGoalRounds = runs[0].intent.admission.maxGoalRounds;
|
|
181
|
+
if (maxGoalRounds !== evidence.record.native.maxGoalRounds || runs.some(run => run.intent.objective !== evidence.record.definition.objective || run.intent.admission.maxGoalRounds !== maxGoalRounds)) {
|
|
182
|
+
throw new Error('assistant-goals: workflow semantics changed');
|
|
183
|
+
}
|
|
184
|
+
const built = runs.map(run => {
|
|
185
|
+
if (run.execution?.status === 'unknown')
|
|
186
|
+
throw new Error('assistant-goals: workflow execution outcome is unknown');
|
|
187
|
+
if (run.execution?.status !== 'succeeded' || !run.execution.quiescent)
|
|
188
|
+
throw new Error('assistant-goals: workflow execution is pending');
|
|
189
|
+
return workflowSegment(evidence.scope, evidence.record, run, evidence.events, run.intent.runId !== final.runId);
|
|
190
|
+
});
|
|
191
|
+
for (let index = 0; index < built.length; index++)
|
|
192
|
+
if (runs[index].intent.admission.round !== index + 1 || index > 0 && built[index - 1].segment.turn >= built[index].segment.turn)
|
|
193
|
+
throw new Error('assistant-goals: workflow rounds are not contiguous');
|
|
194
|
+
const calls = built.reduce((total, item) => total + item.calls, 0);
|
|
195
|
+
const argumentBytes = built.reduce((total, item) => total + item.argumentBytes, 0);
|
|
196
|
+
if (calls > 32 || argumentBytes > 256 * 1024)
|
|
197
|
+
throw new Error('assistant-goals: bounded workflow trace is required');
|
|
198
|
+
const ids = built.flatMap(item => [...item.segment.steps, ...(item.segment.failedObservations ?? [])].map(call => call.id));
|
|
199
|
+
if (new Set(ids).size !== ids.length)
|
|
200
|
+
throw new Error('assistant-goals: workflow call ids are not unique');
|
|
201
|
+
if (built.length === 1)
|
|
202
|
+
return final;
|
|
203
|
+
return Object.freeze({ ...final, segments: Object.freeze(built.map(item => item.segment)) });
|
|
204
|
+
}
|
|
205
|
+
function workflowSegment(scope, record, run, rawEvents, allowEmpty = false) {
|
|
206
|
+
if (acceptanceDigest(run.intent.scope) !== acceptanceDigest(scope) || acceptanceDigest(record.scope) !== acceptanceDigest(scope)
|
|
207
|
+
|| run.execution?.status !== 'succeeded' || !run.execution.quiescent || run.intent.objective !== record.definition.objective || run.intent.task.goal.id !== record.id
|
|
208
|
+
|| run.intent.task.goal.definitionVersion !== record.definition.version || run.intent.task.goal.definitionDigest !== record.definition.digest
|
|
209
|
+
|| run.intent.task.goal.sessionId !== record.native.sessionId || run.intent.task.goal.nativeGoalId !== record.native.goalId) {
|
|
210
|
+
throw new Error('assistant-goals: exact successful trigger run is required');
|
|
211
|
+
}
|
|
212
|
+
const events = rawEvents;
|
|
213
|
+
const turn = events.filter(event => event?.type === 'turn/start' && Number.isSafeInteger(event.data?.turn))
|
|
214
|
+
.map(event => event.data.turn)
|
|
215
|
+
.find(value => run.intent.runId === verifiedRunId(scope, record.id, record.native.sessionId, value));
|
|
216
|
+
if (turn === undefined)
|
|
217
|
+
throw new Error('assistant-goals: trigger run has no source turn');
|
|
218
|
+
const starts = events.filter(event => event?.type === 'turn/start' && event.data?.turn === turn && Number.isSafeInteger(event.seq));
|
|
219
|
+
const ends = events.filter(event => event?.type === 'turn/end' && event.data?.turn === turn && Number.isSafeInteger(event.seq));
|
|
220
|
+
if (starts.length !== 1 || ends.length !== 1 || ends[0].seq <= starts[0].seq || ends[0].data?.reason?.kind !== 'completed') {
|
|
221
|
+
throw new Error('assistant-goals: completed source turn is required');
|
|
222
|
+
}
|
|
223
|
+
const start = starts[0], end = ends[0];
|
|
224
|
+
const source = events.filter(event => event?.type === 'user/message' && Number.isSafeInteger(event.seq) && event.seq > start.seq && event.seq < end.seq
|
|
225
|
+
&& event.data?.source?.kind === 'goal' && event.data.source.goalId === record.native.goalId && event.data.source.revision === run.intent.task.goal.nativeRevision
|
|
226
|
+
&& event.data.source.round === run.intent.admission.round);
|
|
227
|
+
if (source.length !== 1)
|
|
228
|
+
throw new Error('assistant-goals: trigger run goal source is invalid');
|
|
229
|
+
const trace = verifiedToolTraceInternal(events, turn, { sourceSeq: source[0].seq, endSeq: end.seq });
|
|
230
|
+
if (!allowEmpty && trace.steps.length === 0 || trace.steps.length + trace.failedObservations.length > 32) {
|
|
231
|
+
throw new Error('assistant-goals: bounded successful tool trace is required');
|
|
232
|
+
}
|
|
233
|
+
return { segment: Object.freeze({ runId: run.intent.runId, turn, round: run.intent.admission.round, nativeRevision: run.intent.task.goal.nativeRevision, steps: Object.freeze(trace.steps.map(step => Object.freeze({ ...step }))),
|
|
234
|
+
...(trace.failedObservations.length === 0 ? {} : { failedObservations: Object.freeze(trace.failedObservations.map(step => Object.freeze({ ...step }))) }) }), calls: trace.steps.length + trace.failedObservations.length, argumentBytes: trace.argumentBytes };
|
|
235
|
+
}
|
|
236
|
+
function traceEventInWindow(event, window) {
|
|
237
|
+
return Number.isSafeInteger(event?.seq) && event.seq > window.sourceSeq && event.seq < window.endSeq;
|
|
238
|
+
}
|
|
239
|
+
function readOnlyProbe(call) {
|
|
240
|
+
if (call.toolName === 'read' || call.toolName === 'glob' || call.toolName === 'grep')
|
|
241
|
+
return true;
|
|
242
|
+
return call.toolName === 'get_goal' && call.arguments !== null && typeof call.arguments === 'object'
|
|
243
|
+
&& !Array.isArray(call.arguments) && Object.keys(call.arguments).length === 0;
|
|
244
|
+
}
|
|
245
|
+
function parseArguments(value) {
|
|
246
|
+
if (typeof value !== 'string' || Buffer.byteLength(value, 'utf8') > 262144)
|
|
247
|
+
throw new Error('assistant-goals: bounded native tool arguments required');
|
|
248
|
+
const parsed = JSON.parse(value);
|
|
249
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
250
|
+
throw new Error('assistant-goals: native tool arguments must be an object');
|
|
251
|
+
return parsed;
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=verified-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-workflow.js","sourceRoot":"","sources":["../src/verified-workflow.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
|
package/lib/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
|