@dsh-enhanced/assistant-goals 0.1.67 → 0.1.70
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/README.md +38 -1
- package/lib/budget.d.ts +6 -1
- package/lib/budget.d.ts.map +1 -1
- package/lib/budget.js +24 -1
- package/lib/budget.js.map +1 -1
- package/lib/execution.d.ts +7 -1
- package/lib/execution.d.ts.map +1 -1
- package/lib/execution.js +51 -6
- package/lib/execution.js.map +1 -1
- package/lib/outcome.d.ts +9 -1
- package/lib/outcome.d.ts.map +1 -1
- package/lib/outcome.js +101 -2
- package/lib/outcome.js.map +1 -1
- package/lib/owner-acceptance-store.d.ts +19 -0
- package/lib/owner-acceptance-store.d.ts.map +1 -0
- package/lib/owner-acceptance-store.js +114 -0
- package/lib/owner-acceptance-store.js.map +1 -0
- package/lib/owner-acceptance.d.ts +82 -0
- package/lib/owner-acceptance.d.ts.map +1 -0
- package/lib/owner-acceptance.js +158 -0
- package/lib/owner-acceptance.js.map +1 -0
- package/lib/owner-intent-store.d.ts +36 -0
- package/lib/owner-intent-store.d.ts.map +1 -0
- package/lib/owner-intent-store.js +136 -0
- package/lib/owner-intent-store.js.map +1 -0
- package/lib/owner-intent.d.ts +100 -0
- package/lib/owner-intent.d.ts.map +1 -0
- package/lib/owner-intent.js +236 -0
- package/lib/owner-intent.js.map +1 -0
- package/lib/service.d.ts +38 -0
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +427 -8
- package/lib/service.js.map +1 -1
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +29 -3
- package/lib/tools.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
|
|
3
|
+
/** Frozen identity of the authenticated owner request that authorized one native goal. */
|
|
4
|
+
export const OWNER_INTENT_PROTOCOL = 'assistant-goals/owner-intent/v1';
|
|
5
|
+
/** Complete persisted human input is bounded; larger input cannot be proven in one intent. */
|
|
6
|
+
export const MAX_OWNER_INTENT_INPUT_BYTES = 65_536;
|
|
7
|
+
/** Delivery serves at most 8192 bytes per page; Goals asks for a fixed conservative page. */
|
|
8
|
+
export const OWNER_INTENT_PAGE_BYTES = 4_096;
|
|
9
|
+
const HEX = /^[a-f0-9]{64}$/u;
|
|
10
|
+
const ID = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,511}$/u;
|
|
11
|
+
const BINDING_ID = /^[A-Za-z0-9][A-Za-z0-9:._-]{0,255}$/u;
|
|
12
|
+
const objectiveLimit = 16_384;
|
|
13
|
+
function fail(message) { throw new Error(`assistant-goals: owner intent ${message}`); }
|
|
14
|
+
const plain = (value) => value !== null && typeof value === 'object'
|
|
15
|
+
&& !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
16
|
+
const exact = (value, keys) => plain(value)
|
|
17
|
+
&& Object.keys(value).length === keys.length && keys.every(key => Object.hasOwn(value, key));
|
|
18
|
+
const integer = (value, min = 0) => Number.isSafeInteger(value) && value >= min;
|
|
19
|
+
const utf8 = (value) => Buffer.from(value, 'utf8').toString('utf8') === value;
|
|
20
|
+
const textId = (value) => typeof value === 'string' && ID.test(value);
|
|
21
|
+
const pathText = (value) => typeof value === 'string' && value.startsWith('/')
|
|
22
|
+
&& Buffer.byteLength(value, 'utf8') <= 4_096 && !/\p{Cc}/u.test(value);
|
|
23
|
+
const supplierPart = (value) => typeof value === 'string' && value.trim() === value
|
|
24
|
+
&& value.length > 0 && Buffer.byteLength(value, 'utf8') <= 4_096 && !/\p{Cc}/u.test(value);
|
|
25
|
+
const validSupplier = (value) => {
|
|
26
|
+
if (!plain(value) || Object.keys(value).some(key => !['provider', 'model', 'reasoningEffort'].includes(key)))
|
|
27
|
+
return false;
|
|
28
|
+
return [value.provider, value.model, ...(value.reasoningEffort === undefined ? [] : [value.reasoningEffort])].every(supplierPart);
|
|
29
|
+
};
|
|
30
|
+
const sha256 = (value) => createHash('sha256').update(value, 'utf8').digest('hex');
|
|
31
|
+
/**
|
|
32
|
+
* Locate the model-supplied objective inside the authenticated owner text.
|
|
33
|
+
*
|
|
34
|
+
* The objective must already be trimmed, non-empty and UTF-8 clean, and it
|
|
35
|
+
* must occur verbatim in the owner text. Repeated occurrences are permitted but
|
|
36
|
+
* only the first occurrence is frozen: the intent pins exactly one canonical
|
|
37
|
+
* span so later consumers can prove which owner words authorized the goal.
|
|
38
|
+
* Absence fails closed; paraphrases and normalized text are not owner quotes.
|
|
39
|
+
*/
|
|
40
|
+
export function ownerIntentObjectiveSpan(text, objective) {
|
|
41
|
+
if (typeof text !== 'string' || !utf8(text) || Buffer.byteLength(text, 'utf8') < 1)
|
|
42
|
+
fail('owner text is invalid');
|
|
43
|
+
if (typeof objective !== 'string' || objective.length < 1 || objective.length > objectiveLimit || objective.trim() !== objective || !utf8(objective)) {
|
|
44
|
+
fail('objective must be a trimmed, non-empty UTF-8 owner quote');
|
|
45
|
+
}
|
|
46
|
+
const start = text.indexOf(objective);
|
|
47
|
+
if (start < 0)
|
|
48
|
+
fail(`objective must quote the owner's original words verbatim; the authenticated owner request does not contain it`);
|
|
49
|
+
return Object.freeze({ start, end: start + objective.length });
|
|
50
|
+
}
|
|
51
|
+
function goalCreateObjective(value) {
|
|
52
|
+
if (!plain(value) || Object.getOwnPropertySymbols(value).length !== 0)
|
|
53
|
+
fail('requires the plain live goal_create arguments');
|
|
54
|
+
if (Object.keys(value).some(key => !['objective', 'max_goal_rounds', 'start_native_rounds', 'acceptance'].includes(key)))
|
|
55
|
+
fail('received unknown goal_create arguments');
|
|
56
|
+
const objective = value.objective;
|
|
57
|
+
if (typeof objective !== 'string' || objective.length < 1 || objective.length > objectiveLimit
|
|
58
|
+
|| objective.trim() !== objective || !utf8(objective))
|
|
59
|
+
fail('objective must be a trimmed, non-empty UTF-8 owner quote');
|
|
60
|
+
return objective;
|
|
61
|
+
}
|
|
62
|
+
function toolProof(proof, execution, agent, scope) {
|
|
63
|
+
if (!proof || typeof proof !== 'object' || proof.protocol !== 'assistant-delivery/foreground-tool-call/v1')
|
|
64
|
+
fail('proof is unavailable');
|
|
65
|
+
const task = proof.task;
|
|
66
|
+
if (!task || typeof task !== 'object' || task.protocol !== 'assistant-delivery/foreground-task/v1'
|
|
67
|
+
|| typeof task.inboxId !== 'string' || task.inboxId.length < 1 || task.inboxId.length > 512
|
|
68
|
+
|| task.sessionId !== String(agent.session.id)
|
|
69
|
+
|| !task.scope || task.scope.workspace !== scope.workspace || task.scope.preset !== scope.preset
|
|
70
|
+
|| !task.owner || task.owner.principalRecordId !== scope.principalRecordId || task.owner.principalVersion !== scope.principalVersion
|
|
71
|
+
|| !task.binding || typeof task.binding.id !== 'string' || !BINDING_ID.test(task.binding.id)
|
|
72
|
+
|| !integer(task.binding.version, 1) || !integer(task.binding.generation, 1) || !integer(task.dispatchedAt))
|
|
73
|
+
fail('proof identity differs from the authenticated owner turn');
|
|
74
|
+
if (!integer(proof.turn) || !proof.call || proof.call.id !== String(execution.callId)
|
|
75
|
+
|| proof.call.toolName !== execution.name || !integer(proof.call.eventSeq)
|
|
76
|
+
|| typeof proof.call.eventDigest !== 'string' || !HEX.test(proof.call.eventDigest)
|
|
77
|
+
|| typeof proof.call.argumentsDigest !== 'string' || !HEX.test(proof.call.argumentsDigest))
|
|
78
|
+
fail('proof does not describe the live goal_create call');
|
|
79
|
+
return proof;
|
|
80
|
+
}
|
|
81
|
+
function inputPage(page, proof, expectedOffset, byteBound) {
|
|
82
|
+
if (!page || typeof page !== 'object' || page.protocol !== 'assistant-delivery/foreground-tool-input/v1')
|
|
83
|
+
fail('human input reader is unavailable');
|
|
84
|
+
if (typeof page.sourceDigest !== 'string' || !HEX.test(page.sourceDigest))
|
|
85
|
+
fail('human input source digest is invalid');
|
|
86
|
+
if (page.modelSelectionState !== 'frozen' || !validSupplier(page.modelSelection))
|
|
87
|
+
fail('human input supplier is not frozen');
|
|
88
|
+
if (!page.attestation || page.attestation.protocol !== 'assistant-delivery/foreground-tool-call/v1'
|
|
89
|
+
|| acceptanceDigest(page.attestation) !== acceptanceDigest(proof))
|
|
90
|
+
fail('human input proof differs from the goal_create call');
|
|
91
|
+
const data = page.input;
|
|
92
|
+
if (!data || typeof data.text !== 'string' || !utf8(data.text)
|
|
93
|
+
|| typeof data.fullTextDigest !== 'string' || !HEX.test(data.fullTextDigest)
|
|
94
|
+
|| !integer(data.fullBytes, 1) || data.fullBytes > byteBound
|
|
95
|
+
|| data.offset !== expectedOffset || data.returnedBytes !== Buffer.byteLength(data.text, 'utf8')
|
|
96
|
+
|| data.returnedBytes < 1 || data.returnedBytes > OWNER_INTENT_PAGE_BYTES
|
|
97
|
+
|| expectedOffset + data.returnedBytes > data.fullBytes
|
|
98
|
+
|| (data.nextOffset === undefined ? expectedOffset + data.returnedBytes !== data.fullBytes
|
|
99
|
+
: data.nextOffset !== expectedOffset + data.returnedBytes || data.nextOffset >= data.fullBytes))
|
|
100
|
+
fail('human input page binding differs');
|
|
101
|
+
return page;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Freeze the authenticated owner request behind one live goal_create call.
|
|
105
|
+
*
|
|
106
|
+
* The proof is read twice (once before pagination and once after each read and
|
|
107
|
+
* at the end) and pagination is byte-exact: every page must carry the same
|
|
108
|
+
* task/call/model-state identity and the reassembled text must match the
|
|
109
|
+
* delivery full-text digest and byte count. Missing, forged, PTC, settled or
|
|
110
|
+
* concurrently changed calls fail closed; no intent is returned.
|
|
111
|
+
*/
|
|
112
|
+
export function buildGoalOwnerIntent(input) {
|
|
113
|
+
const { delivery, agent, execution, scope } = input;
|
|
114
|
+
if (!delivery || typeof delivery.inspectOwnerForegroundToolCallForAgent !== 'function'
|
|
115
|
+
|| typeof delivery.readOwnerForegroundToolInputForAgent !== 'function')
|
|
116
|
+
fail('proof is unavailable');
|
|
117
|
+
if (!agent || !execution || typeof execution !== 'object' || execution.agent !== agent || execution.name !== 'goal_create') {
|
|
118
|
+
fail('requires the live goal_create call');
|
|
119
|
+
}
|
|
120
|
+
if (execution.parent !== undefined)
|
|
121
|
+
fail('requires a top-level native call, not a PTC sub-call');
|
|
122
|
+
if (execution.signal?.aborted === true)
|
|
123
|
+
fail('call was cancelled');
|
|
124
|
+
if (typeof execution.callId !== 'string' || execution.callId.length < 1 || execution.callId.length > 512)
|
|
125
|
+
fail('call identity is invalid');
|
|
126
|
+
const objective = goalCreateObjective(execution.arguments);
|
|
127
|
+
const byteBound = input.maxBytes ?? MAX_OWNER_INTENT_INPUT_BYTES;
|
|
128
|
+
if (!Number.isSafeInteger(byteBound) || byteBound < 1 || byteBound > MAX_OWNER_INTENT_INPUT_BYTES)
|
|
129
|
+
fail('byte bound is invalid');
|
|
130
|
+
if (!scope || typeof scope !== 'object' || !textId(scope.principalRecordId) || !integer(scope.principalVersion, 1)
|
|
131
|
+
|| !pathText(scope.workspace) || !textId(scope.preset))
|
|
132
|
+
fail('owner scope is invalid');
|
|
133
|
+
let argumentsJson;
|
|
134
|
+
try {
|
|
135
|
+
argumentsJson = JSON.stringify(execution.arguments);
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
fail('arguments are not serializable');
|
|
139
|
+
}
|
|
140
|
+
const call = { callId: String(execution.callId), toolName: execution.name, argumentsJson };
|
|
141
|
+
const inspect = () => {
|
|
142
|
+
if (execution.agent !== agent || execution.name !== 'goal_create' || execution.signal?.aborted === true)
|
|
143
|
+
fail('call changed during pagination');
|
|
144
|
+
return delivery.inspectOwnerForegroundToolCallForAgent(agent, call);
|
|
145
|
+
};
|
|
146
|
+
const firstProof = toolProof(inspect(), execution, agent, scope);
|
|
147
|
+
let offset = 0, text = '', pages = 0;
|
|
148
|
+
let first;
|
|
149
|
+
let identity;
|
|
150
|
+
const pageBound = Math.ceil(byteBound / OWNER_INTENT_PAGE_BYTES) + 1;
|
|
151
|
+
for (;;) {
|
|
152
|
+
if (++pages > pageBound)
|
|
153
|
+
fail('input exceeds the page bound');
|
|
154
|
+
const page = inputPage(delivery.readOwnerForegroundToolInputForAgent(agent, { ...call, offset, maxBytes: OWNER_INTENT_PAGE_BYTES }), firstProof, offset, byteBound);
|
|
155
|
+
const current = toolProof(inspect(), execution, agent, scope);
|
|
156
|
+
if (acceptanceDigest(current) !== acceptanceDigest(firstProof))
|
|
157
|
+
fail('proof changed during pagination');
|
|
158
|
+
const pageIdentity = JSON.stringify([page.sourceDigest, page.modelSelectionState, page.modelSelection, page.input.fullTextDigest, page.input.fullBytes]);
|
|
159
|
+
if (first === undefined) {
|
|
160
|
+
first = page;
|
|
161
|
+
identity = pageIdentity;
|
|
162
|
+
}
|
|
163
|
+
else if (pageIdentity !== identity || page.sourceDigest !== first.sourceDigest)
|
|
164
|
+
fail('human input changed during pagination');
|
|
165
|
+
text += page.input.text;
|
|
166
|
+
if (Buffer.byteLength(text, 'utf8') > byteBound)
|
|
167
|
+
fail('human input exceeds the byte bound');
|
|
168
|
+
if (page.input.nextOffset === undefined)
|
|
169
|
+
break;
|
|
170
|
+
offset = page.input.nextOffset;
|
|
171
|
+
}
|
|
172
|
+
if (acceptanceDigest(toolProof(inspect(), execution, agent, scope)) !== acceptanceDigest(firstProof))
|
|
173
|
+
fail('proof changed during pagination');
|
|
174
|
+
const pagesFirst = first;
|
|
175
|
+
if (Buffer.byteLength(text, 'utf8') !== pagesFirst.input.fullBytes || sha256(text) !== pagesFirst.input.fullTextDigest)
|
|
176
|
+
fail('human input full digest differs');
|
|
177
|
+
const span = ownerIntentObjectiveSpan(text, objective);
|
|
178
|
+
const supplier = pagesFirst.modelSelection;
|
|
179
|
+
if (!validSupplier(supplier))
|
|
180
|
+
fail('human input supplier is not frozen');
|
|
181
|
+
return validateGoalOwnerIntent({
|
|
182
|
+
protocol: OWNER_INTENT_PROTOCOL,
|
|
183
|
+
sourceDigest: pagesFirst.sourceDigest,
|
|
184
|
+
inputSha256: sha256(text),
|
|
185
|
+
inputBytes: Buffer.byteLength(text, 'utf8'),
|
|
186
|
+
fullTextDigest: pagesFirst.input.fullTextDigest,
|
|
187
|
+
text,
|
|
188
|
+
objective: { text: objective, start: span.start, end: span.end },
|
|
189
|
+
owner: { principalRecordId: firstProof.task.owner.principalRecordId, principalVersion: firstProof.task.owner.principalVersion },
|
|
190
|
+
scope: { workspace: firstProof.task.scope.workspace, preset: firstProof.task.scope.preset },
|
|
191
|
+
sessionId: firstProof.task.sessionId,
|
|
192
|
+
binding: { id: firstProof.task.binding.id, version: firstProof.task.binding.version, generation: firstProof.task.binding.generation },
|
|
193
|
+
call: { id: firstProof.call.id, toolName: firstProof.call.toolName, argumentsDigest: firstProof.call.argumentsDigest },
|
|
194
|
+
supplier: { provider: supplier.provider, model: supplier.model, ...(supplier.reasoningEffort === undefined ? {} : { reasoningEffort: supplier.reasoningEffort }) },
|
|
195
|
+
turn: firstProof.turn,
|
|
196
|
+
at: Date.now(),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
function frozen(value) {
|
|
200
|
+
if (value !== null && typeof value === 'object') {
|
|
201
|
+
for (const child of Object.values(value))
|
|
202
|
+
frozen(child);
|
|
203
|
+
Object.freeze(value);
|
|
204
|
+
}
|
|
205
|
+
return value;
|
|
206
|
+
}
|
|
207
|
+
/** Strict exact-key validation of one persisted intent; any drift fails closed. */
|
|
208
|
+
export function validateGoalOwnerIntent(value) {
|
|
209
|
+
const keys = ['protocol', 'sourceDigest', 'inputSha256', 'inputBytes', 'fullTextDigest', 'text', 'objective', 'owner', 'scope', 'sessionId', 'binding', 'call', 'supplier', 'turn', 'at'];
|
|
210
|
+
if (!exact(value, keys))
|
|
211
|
+
fail('identity is invalid');
|
|
212
|
+
const intent = value;
|
|
213
|
+
if (intent.protocol !== OWNER_INTENT_PROTOCOL
|
|
214
|
+
|| typeof intent.sourceDigest !== 'string' || !HEX.test(intent.sourceDigest)
|
|
215
|
+
|| typeof intent.fullTextDigest !== 'string' || !HEX.test(intent.fullTextDigest)
|
|
216
|
+
|| typeof intent.text !== 'string' || Buffer.byteLength(intent.text, 'utf8') < 1 || !utf8(intent.text)
|
|
217
|
+
|| !integer(intent.inputBytes, 1) || intent.inputBytes > MAX_OWNER_INTENT_INPUT_BYTES || Buffer.byteLength(intent.text, 'utf8') !== intent.inputBytes
|
|
218
|
+
|| intent.inputSha256 !== sha256(intent.text)
|
|
219
|
+
|| !exact(intent.objective, ['text', 'start', 'end'])
|
|
220
|
+
|| typeof intent.objective.text !== 'string' || intent.objective.text.length < 1 || intent.objective.text.length > objectiveLimit
|
|
221
|
+
|| intent.objective.text.trim() !== intent.objective.text || !utf8(intent.objective.text)
|
|
222
|
+
|| !integer(intent.objective.start) || !integer(intent.objective.end)
|
|
223
|
+
|| intent.objective.end !== intent.objective.start + intent.objective.text.length
|
|
224
|
+
|| intent.text.slice(intent.objective.start, intent.objective.end) !== intent.objective.text
|
|
225
|
+
|| !exact(intent.owner, ['principalRecordId', 'principalVersion']) || !textId(intent.owner.principalRecordId) || !integer(intent.owner.principalVersion, 1)
|
|
226
|
+
|| !exact(intent.scope, ['workspace', 'preset']) || !pathText(intent.scope.workspace) || !textId(intent.scope.preset)
|
|
227
|
+
|| !textId(intent.sessionId)
|
|
228
|
+
|| !exact(intent.binding, ['id', 'version', 'generation']) || typeof intent.binding.id !== 'string' || !BINDING_ID.test(intent.binding.id)
|
|
229
|
+
|| !integer(intent.binding.version, 1) || !integer(intent.binding.generation, 1)
|
|
230
|
+
|| !exact(intent.call, ['id', 'toolName', 'argumentsDigest']) || !textId(intent.call.id) || intent.call.toolName !== 'goal_create'
|
|
231
|
+
|| typeof intent.call.argumentsDigest !== 'string' || !HEX.test(intent.call.argumentsDigest)
|
|
232
|
+
|| !validSupplier(intent.supplier) || !integer(intent.turn) || !integer(intent.at))
|
|
233
|
+
fail('identity is invalid');
|
|
234
|
+
return frozen(JSON.parse(JSON.stringify(intent)));
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=owner-intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-intent.js","sourceRoot":"","sources":["../src/owner-intent.ts"],"names":[],"mappings":"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"}
|
package/lib/service.d.ts
CHANGED
|
@@ -20,8 +20,11 @@ import type { StrategyAdviceDefinitionSummary } from './strategy-store.js';
|
|
|
20
20
|
import { type GoalStrategyHistory } from './strategy-feedback.js';
|
|
21
21
|
import { type VerifiedWorkflowSource } from './verified-workflow.js';
|
|
22
22
|
import { type OwnerVerifiedArtifactsInput } from './verified-artifact.js';
|
|
23
|
+
import { type GoalOwnerIntent } from './owner-intent.js';
|
|
23
24
|
export interface Config {
|
|
24
25
|
eventWaits?: boolean;
|
|
26
|
+
ownerIntent?: boolean;
|
|
27
|
+
ownerPreparedAcceptance?: boolean;
|
|
25
28
|
strategy?: Partial<GoalStrategyConfig>;
|
|
26
29
|
preauthorizedCreateMaxRounds?: number;
|
|
27
30
|
preauthorizedSchedule?: boolean;
|
|
@@ -48,6 +51,7 @@ export declare class AssistantGoalsService extends Service {
|
|
|
48
51
|
readonly preauthorizedScheduleEnabled: boolean;
|
|
49
52
|
readonly strategyEnabled: boolean;
|
|
50
53
|
readonly eventWaitsEnabled: boolean;
|
|
54
|
+
readonly ownerAcceptanceEnabled: boolean;
|
|
51
55
|
constructor(ctx: Context, input?: Config);
|
|
52
56
|
/** Owner-scoped retrieval context, including explicit focus; never execution authority. */
|
|
53
57
|
taskContext: (agent: Agent | undefined) => GoalTaskContext | undefined;
|
|
@@ -58,6 +62,40 @@ export declare class AssistantGoalsService extends Service {
|
|
|
58
62
|
preauthorizeSchedule: (execution: ToolExecution) => boolean;
|
|
59
63
|
preauthorizeCreate: (execution: ToolExecution) => boolean;
|
|
60
64
|
create: (agent: Agent | undefined, objective: string, maxGoalRounds?: number) => GoalRecord;
|
|
65
|
+
/**
|
|
66
|
+
* Create one goal from the live authenticated owner tool call after freezing
|
|
67
|
+
* the real owner text, supplier and call identity. Disabled (undefined
|
|
68
|
+
* ledger) keeps the historical create path; enabled means every native goal
|
|
69
|
+
* creation requires a fresh Delivery proof and fails closed otherwise.
|
|
70
|
+
*/
|
|
71
|
+
createFromOwnerIntent: (execution: ToolExecution, objective: string, maxGoalRounds?: number, acceptance?: unknown) => GoalRecord;
|
|
72
|
+
/**
|
|
73
|
+
* Read-only catalog of installed acceptance authorities for the caller's
|
|
74
|
+
* owner scope. The verifier keeps the authority list; Goals only proxies it
|
|
75
|
+
* inside a model tool that is registered in owner-prepared mode.
|
|
76
|
+
*/
|
|
77
|
+
inspectAcceptanceAuthorities: (agent: Agent | undefined) => unknown;
|
|
78
|
+
/**
|
|
79
|
+
* Host-only read of the frozen owner intent for one owner-scoped business
|
|
80
|
+
* goal. A stored row whose definition digest no longer matches the current
|
|
81
|
+
* goal definition is a stale binding and returns undefined instead of
|
|
82
|
+
* silently authorizing a different objective.
|
|
83
|
+
*/
|
|
84
|
+
ownerIntent: (agent: Agent | undefined, goalId: string) => GoalOwnerIntent | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Host-only: seal the protected acceptance for one owner-scoped business goal
|
|
87
|
+
* before its first native round. Criteria are Host-prepared and never reachable
|
|
88
|
+
* from model tool arguments; a goal in prepared mode cannot run unsealed.
|
|
89
|
+
*/
|
|
90
|
+
sealOwnerAcceptance: (agent: Agent | undefined, goalId: string, value: unknown) => Readonly<{
|
|
91
|
+
goalId: string;
|
|
92
|
+
definitionDigest: string;
|
|
93
|
+
outcome: Readonly<{
|
|
94
|
+
contractId: string;
|
|
95
|
+
contractDigest: string;
|
|
96
|
+
}>;
|
|
97
|
+
expiresAt: number;
|
|
98
|
+
}>;
|
|
61
99
|
control: (agent: Agent | undefined, value: GoalControlInput) => GoalRecord;
|
|
62
100
|
/** Explicit owner authorization for one delayed resume, never an autonomous human-turn substitute. */
|
|
63
101
|
schedule: (agent: Agent | undefined, goalId: string, expectedRevision: number, at: number, signal: AbortSignal) => Promise<GoalWake>;
|
package/lib/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAInD,OAAO,KAAK,EAA4B,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhJ,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAK7C,OAAO,KAAK,EAA8B,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAkC,0BAA0B,EAAE,0BAA0B,EAAE,eAAe,EAAE,0BAA0B,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEtc,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AACpF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAClF,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AACxF,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAEvE,OAAO,EAA8E,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACnI,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAA4B,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,EAA0I,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAC5M,OAAO,EAAqG,KAAK,2BAA2B,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|