@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/lib/outcome.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { TaskAcceptanceContract, AcceptanceCriterion } from '@dsh-enhanced/
4
4
  import type { AcceptanceHandle, AcceptedExecution, TaskAcceptanceRegistration } from '@dsh-enhanced/assistant-verifier';
5
5
  import type { GoalExecutionRun, GoalRecord, GoalScope } from './types.js';
6
6
  import type { GoalOutcomeAssessment } from './outcome-store.js';
7
+ import { type GoalOwnerAcceptanceSeal } from './owner-acceptance.js';
7
8
  export interface GoalOutcomeView {
8
9
  status: 'unverified' | 'pending' | 'achieved' | 'not-achieved' | 'unknown' | 'expired' | 'unavailable';
9
10
  definitionVersion: number;
@@ -39,16 +40,23 @@ export declare class GoalOutcomeRuntime {
39
40
  private readonly assertDependencies;
40
41
  private readonly acceptsPausedEventWaitSettlement;
41
42
  private readonly acceptsHistoricalPausedEventWaitCompletion;
43
+ /** Prepared-acceptance mode: whole-goal binding is deferred until the Host seals. */
44
+ private readonly deferredAcceptance;
45
+ private readonly sealFor;
42
46
  constructor(ctx: Context, path: string, current: (agent: Agent) => GoalRecord, runs: (scope: GoalScope, goalId: string) => readonly GoalExecutionRun[], stepMaxDurationMs: number, assertDependencies: (record: GoalRecord) => void, acceptsPausedEventWaitSettlement?: (record: GoalRecord, run: GoalExecutionRun, agent: Agent) => boolean, acceptsHistoricalPausedEventWaitCompletion?: (record: GoalRecord, wake: Readonly<{
43
47
  sessionId: string;
44
48
  goalId: string;
45
49
  revision: number;
46
50
  roundsStarted: number;
47
51
  maxGoalRounds: number;
48
- }>, run: GoalExecutionRun) => boolean);
52
+ }>, run: GoalExecutionRun) => boolean,
53
+ /** Prepared-acceptance mode: whole-goal binding is deferred until the Host seals. */
54
+ deferredAcceptance?: () => boolean, sealFor?: (record: GoalRecord) => GoalOwnerAcceptanceSeal | undefined);
49
55
  register(registration: TaskAcceptanceRegistration): () => void;
50
56
  /** Configuration-only check before the owner bridge mutates a native goal. */
51
57
  preflight(scope: GoalScope, objective: string, record?: GoalRecord): void;
58
+ /** Freeze the sealed owner-prepared outcome contract read back from the verifier. */
59
+ bindPrepared(record: GoalRecord, seal: GoalOwnerAcceptanceSeal): void;
52
60
  /** Called only while the owner creates/edits the definition, before native work. */
53
61
  bind(record: GoalRecord): void;
54
62
  /** Enrol a real native run in an assessment before its dispatch. */
@@ -1 +1 @@
1
- {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAA0B,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AACjI,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAA;AAEvH,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE/D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;IACtG,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAA;KAAE,CAAA;IAC3J,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACpE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,EAAE,UAAU,GAAG,cAAc,CAAA;CACtD;AAKD,0EAA0E;AAC1E,qBAAa,kBAAkB;;IAOjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gCAAgC;IACjD,OAAO,CAAC,QAAQ,CAAC,0CAA0C;gBANhC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EACpC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,EACrC,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,gBAAgB,EAAE,EACvE,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,EAChD,gCAAgC,GAAE,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,KAAK,OAAqB,EACpH,0CAA0C,GAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,KAAK,OAAqB;IA8B1P,QAAQ,CAAC,YAAY,EAAE,0BAA0B,GAAG,MAAM,IAAI;IAuB9D,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI;IA8BzE,oFAAoF;IACpF,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAgB9B,oEAAoE;IACpE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAkB5C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmF5F,8FAA8F;IAC9F,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAoC1C,gFAAgF;IAChF,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS;IAwCzM,sGAAsG;IACtG,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO;IAK1K,OAAO,GAAU,OAAO,sBAAsB,KAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA0BjF;IACD,cAAc,GAAU,OAAO,sBAAsB,KAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAOvF;IACD,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe;IAGzC,8FAA8F;IAC9F,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;IAyClE,uGAAuG;IACvG,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,qBAAqB,EAAE;IAOxE,MAAM;;;MAAyE;CAChF"}
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"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"}
package/lib/outcome.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { acceptanceDigest, validateTaskAcceptanceContract, validateTaskVerificationReceipt } from '@dsh-enhanced/task-acceptance-contract';
2
2
  import { GoalOutcomeStore } from './outcome-store.js';
3
+ import { preparedRegistration } from './owner-acceptance.js';
3
4
  const same = (a, b) => acceptanceDigest(a) === acceptanceDigest(b);
4
5
  const handle = (contract) => ({ contractId: contract.id, contractDigest: contract.digest });
5
6
  /** Independent observations of one immutable whole-goal specification. */
@@ -11,13 +12,17 @@ export class GoalOutcomeRuntime {
11
12
  assertDependencies;
12
13
  acceptsPausedEventWaitSettlement;
13
14
  acceptsHistoricalPausedEventWaitCompletion;
15
+ deferredAcceptance;
16
+ sealFor;
14
17
  #store;
15
18
  #registration;
16
19
  #active = true;
17
20
  #handles = new Map();
18
21
  #fences = new Map();
19
22
  #settling = new Set();
20
- constructor(ctx, path, current, runs, stepMaxDurationMs, assertDependencies, acceptsPausedEventWaitSettlement = () => false, acceptsHistoricalPausedEventWaitCompletion = () => false) {
23
+ constructor(ctx, path, current, runs, stepMaxDurationMs, assertDependencies, acceptsPausedEventWaitSettlement = () => false, acceptsHistoricalPausedEventWaitCompletion = () => false,
24
+ /** Prepared-acceptance mode: whole-goal binding is deferred until the Host seals. */
25
+ deferredAcceptance = () => false, sealFor = () => undefined) {
21
26
  this.ctx = ctx;
22
27
  this.current = current;
23
28
  this.runs = runs;
@@ -25,6 +30,8 @@ export class GoalOutcomeRuntime {
25
30
  this.assertDependencies = assertDependencies;
26
31
  this.acceptsPausedEventWaitSettlement = acceptsPausedEventWaitSettlement;
27
32
  this.acceptsHistoricalPausedEventWaitCompletion = acceptsHistoricalPausedEventWaitCompletion;
33
+ this.deferredAcceptance = deferredAcceptance;
34
+ this.sealFor = sealFor;
28
35
  this.#store = new GoalOutcomeStore(path);
29
36
  this.#store.recoverIncomplete();
30
37
  ctx.on('assistant-verifier/receipt', notice => {
@@ -98,6 +105,21 @@ export class GoalOutcomeRuntime {
98
105
  /** Configuration-only check before the owner bridge mutates a native goal. */
99
106
  preflight(scope, objective, record) {
100
107
  this.#ready();
108
+ if (record !== undefined) {
109
+ const seal = this.sealFor(record);
110
+ if (seal !== undefined) {
111
+ this.#preflightPrepared(scope, objective, record, seal);
112
+ return;
113
+ }
114
+ if (this.deferredAcceptance())
115
+ throw new Error('assistant-goals: no sealed owner acceptance; seal before the first goal round');
116
+ }
117
+ else if (this.deferredAcceptance()) {
118
+ // Prepared acceptance is sealed after the business goal exists, so create
119
+ // only verifies that the verifier can accept an owner-prepared contract.
120
+ this.#preparedCapability();
121
+ return;
122
+ }
101
123
  const verifier = this.ctx.get('assistantVerifier', false);
102
124
  const selection = { scope: { workspace: scope.workspace, preset: scope.preset },
103
125
  owner: { principalRecordId: scope.principalRecordId, principalVersion: scope.principalVersion }, objective };
@@ -131,6 +153,69 @@ export class GoalOutcomeRuntime {
131
153
  throw new Error('assistant-goals: frozen whole-goal deadline cannot cover another native round and verification');
132
154
  }
133
155
  }
156
+ #preparedCapability() {
157
+ const registration = this.#ready();
158
+ if (preparedRegistration(registration) === undefined) {
159
+ throw new Error('assistant-goals: the whole-goal verifier does not support owner-prepared acceptance');
160
+ }
161
+ }
162
+ #preflightPrepared(scope, objective, record, seal) {
163
+ if (seal.goalId !== record.id || !same(record.scope, scope)
164
+ || seal.definition.version !== record.definition.version || seal.definition.digest !== record.definition.digest
165
+ || !same(seal.definition, record.definition)) {
166
+ throw new Error('assistant-goals: sealed owner acceptance is stale for the current goal definition; create a new goal');
167
+ }
168
+ if (objective !== record.definition.objective) {
169
+ throw new Error('assistant-goals: the objective is bound to the protected owner acceptance; create a new goal to change it');
170
+ }
171
+ const stepWindow = this.stepMaxDurationMs + seal.bounds.maxDurationMs;
172
+ const wholeWindow = stepWindow + seal.bounds.maxDurationMs;
173
+ if (seal.validityMs <= wholeWindow)
174
+ throw new Error('assistant-goals: acceptance validity cannot cover the configured native round and verification');
175
+ if (Date.now() + wholeWindow >= seal.outcomeExpiresAt)
176
+ throw new Error('assistant-goals: frozen whole-goal deadline cannot cover another native round and verification');
177
+ this.#preparedCapability();
178
+ const existing = this.#store.getDefinition(record.scope, record.id, record.definition.version);
179
+ if (existing === undefined)
180
+ return;
181
+ const template = existing.template;
182
+ if (!same(existing.definition, record.definition) || !same(record.scope, scope)
183
+ || existing.sessionId !== record.native.sessionId || existing.nativeGoalId !== record.native.goalId) {
184
+ throw new Error('assistant-goals: whole-goal definition changed');
185
+ }
186
+ if (template.id !== seal.outcome.contractId || template.digest !== seal.outcome.contractDigest) {
187
+ throw new Error('assistant-goals: frozen whole-goal specification differs from the sealed owner acceptance');
188
+ }
189
+ }
190
+ /** Freeze the sealed owner-prepared outcome contract read back from the verifier. */
191
+ bindPrepared(record, seal) {
192
+ this.#ready();
193
+ this.#preparedCapability();
194
+ if (seal.goalId !== record.id || seal.definition.version !== record.definition.version
195
+ || seal.definition.digest !== record.definition.digest || seal.objective !== record.definition.objective) {
196
+ throw new Error('assistant-goals: sealed owner acceptance is stale for the current goal definition; create a new goal');
197
+ }
198
+ const existing = this.#store.getDefinition(record.scope, record.id, record.definition.version);
199
+ if (existing !== undefined) {
200
+ if (!same(existing.definition, record.definition) || existing.sessionId !== record.native.sessionId
201
+ || existing.nativeGoalId !== record.native.goalId
202
+ || existing.template.id !== seal.outcome.contractId || existing.template.digest !== seal.outcome.contractDigest) {
203
+ throw new Error('assistant-goals: whole-goal definition changed');
204
+ }
205
+ return;
206
+ }
207
+ const contract = this.ctx.get('assistantVerifier', false)?.inspectAcceptedTask(seal.outcome.contractId)?.contract;
208
+ if (contract === undefined || contract.id !== seal.outcome.contractId || contract.digest !== seal.outcome.contractDigest
209
+ || contract.task.kind !== 'goal-outcome' || contract.objective !== record.definition.objective
210
+ || contract.task.goal.id !== record.id || contract.task.goal.definitionVersion !== record.definition.version
211
+ || contract.task.goal.definitionDigest !== record.definition.digest
212
+ || contract.task.goal.sessionId !== record.native.sessionId || contract.task.goal.nativeGoalId !== record.native.goalId
213
+ || !same(contract.criteria, seal.criteria) || !same(contract.bounds, seal.bounds)) {
214
+ throw new Error('assistant-goals: sealed owner acceptance readback failed');
215
+ }
216
+ this.#store.bind({ scope: record.scope, goalId: record.id, definition: record.definition,
217
+ sessionId: record.native.sessionId, nativeGoalId: record.native.goalId, template: contract });
218
+ }
134
219
  /** Called only while the owner creates/edits the definition, before native work. */
135
220
  bind(record) {
136
221
  const registration = this.#ready();
@@ -141,6 +226,13 @@ export class GoalOutcomeRuntime {
141
226
  throw new Error('assistant-goals: whole-goal definition changed');
142
227
  return;
143
228
  }
229
+ const seal = this.sealFor(record);
230
+ if (seal !== undefined) {
231
+ this.bindPrepared(record, seal);
232
+ return;
233
+ }
234
+ if (this.deferredAcceptance())
235
+ return;
144
236
  const assessmentId = `goal-assessment-${acceptanceDigest([record.scope, record.id, record.definition, 'initial'])}`;
145
237
  const accepted = registration.prepare(this.#input(record, assessmentId));
146
238
  const contract = accepted === null ? undefined : this.ctx.get('assistantVerifier', false)?.inspectAcceptedTask(accepted.contractId)?.contract;
@@ -154,7 +246,14 @@ export class GoalOutcomeRuntime {
154
246
  prepare(agent, run) {
155
247
  const registration = this.#ready();
156
248
  const record = this.current(agent);
157
- const definition = this.#store.getDefinition(record.scope, record.id, record.definition.version);
249
+ let definition = this.#store.getDefinition(record.scope, record.id, record.definition.version);
250
+ if (definition === undefined && this.deferredAcceptance()) {
251
+ const seal = this.sealFor(record);
252
+ if (seal === undefined)
253
+ throw new Error('assistant-goals: no sealed owner acceptance; seal before the first goal round');
254
+ this.bindPrepared(record, seal);
255
+ definition = this.#store.getDefinition(record.scope, record.id, record.definition.version);
256
+ }
158
257
  if (definition === undefined || !same(definition.definition, record.definition))
159
258
  throw new Error('assistant-goals: whole-goal conditions were not frozen by the owner');
160
259
  const prior = this.#store.list(record.scope, record.id, 100).filter(item => item.definition.definition.version === record.definition.version);
@@ -1 +1 @@
1
- {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../src/outcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type GoalOwnerAcceptanceSeal } from './owner-acceptance.js';
2
+ /**
3
+ * Private side ledger binding one sealed owner acceptance to one business goal.
4
+ *
5
+ * The seal is immutable: criteria, bounds, validity, preparer and the sealed
6
+ * outcome handle are frozen together with the exact goal definition digest they
7
+ * authorize. Reopening the database revalidates every row, so an edited or
8
+ * truncated side file fails closed instead of silently authorizing a different
9
+ * specification.
10
+ */
11
+ export declare class GoalOwnerAcceptanceStore {
12
+ #private;
13
+ constructor(path: string);
14
+ /** Idempotent by exact seal; a different seal for the same goal conflicts. */
15
+ record(seal: GoalOwnerAcceptanceSeal): GoalOwnerAcceptanceSeal;
16
+ get(id: string): GoalOwnerAcceptanceSeal | undefined;
17
+ close(): void;
18
+ }
19
+ //# sourceMappingURL=owner-acceptance-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-acceptance-store.d.ts","sourceRoot":"","sources":["../src/owner-acceptance-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AASjG;;;;;;;;GAQG;AACH,qBAAa,wBAAwB;;gBAEvB,IAAI,EAAE,MAAM;IAiCxB,8EAA8E;IAC9E,MAAM,CAAC,IAAI,EAAE,uBAAuB,GAAG,uBAAuB;IAiB9D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAEpD,KAAK,IAAI,IAAI;CACd"}
@@ -0,0 +1,114 @@
1
+ import { DatabaseSync } from 'node:sqlite';
2
+ import { acceptanceDigest } from '@dsh-enhanced/task-acceptance-contract';
3
+ import { GoalStoreError } from './types.js';
4
+ import { prepareGoalStoreDatabaseFile } from './store.js';
5
+ import { validateOwnerAcceptanceSeal } from './owner-acceptance.js';
6
+ const HEX = /^[a-f0-9]{64}$/u;
7
+ const goalId = (value) => typeof value === 'string' && /^[A-Za-z0-9][A-Za-z0-9._:-]{0,511}$/u.test(value);
8
+ const integer = (value) => Number.isSafeInteger(value) && value >= 0;
9
+ function fail(code) { throw new GoalStoreError(code); }
10
+ function parse(value) { try {
11
+ return JSON.parse(value);
12
+ }
13
+ catch {
14
+ return fail('schema');
15
+ } }
16
+ /**
17
+ * Private side ledger binding one sealed owner acceptance to one business goal.
18
+ *
19
+ * The seal is immutable: criteria, bounds, validity, preparer and the sealed
20
+ * outcome handle are frozen together with the exact goal definition digest they
21
+ * authorize. Reopening the database revalidates every row, so an edited or
22
+ * truncated side file fails closed instead of silently authorizing a different
23
+ * specification.
24
+ */
25
+ export class GoalOwnerAcceptanceStore {
26
+ #database;
27
+ constructor(path) {
28
+ if (path !== ':memory:')
29
+ prepareGoalStoreDatabaseFile(path);
30
+ this.#database = new DatabaseSync(path, { enableForeignKeyConstraints: true });
31
+ try {
32
+ this.#database.exec('PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 250; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL;');
33
+ const version = this.#database.prepare('PRAGMA user_version').get().user_version;
34
+ const tables = this.#database.prepare("SELECT name FROM sqlite_schema WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name").all().map(row => row.name);
35
+ if (version === 0 && tables.length === 0)
36
+ this.#database.exec(`BEGIN IMMEDIATE; CREATE TABLE goal_owner_acceptance (goal_id TEXT PRIMARY KEY, seal_json TEXT NOT NULL, seal_digest TEXT NOT NULL, definition_digest TEXT NOT NULL, recorded_at INTEGER NOT NULL) STRICT; PRAGMA user_version = 1; COMMIT;`);
37
+ else if (version !== 1 || tables.length !== 1 || tables[0] !== 'goal_owner_acceptance')
38
+ fail('schema');
39
+ const columns = this.#database.prepare('PRAGMA table_info(goal_owner_acceptance)').all().map(row => row.name);
40
+ const sql = this.#database.prepare("SELECT sql FROM sqlite_schema WHERE type = 'table' AND name = 'goal_owner_acceptance'").get()?.sql;
41
+ if (JSON.stringify(columns) !== JSON.stringify(['goal_id', 'seal_json', 'seal_digest', 'definition_digest', 'recorded_at']) || !sql || !/\bSTRICT\b/u.test(sql))
42
+ fail('schema');
43
+ const check = this.#database.prepare('PRAGMA quick_check').get();
44
+ if (check.quick_check !== 'ok')
45
+ fail('schema');
46
+ for (const row of this.#database.prepare('SELECT goal_id, seal_json, seal_digest, definition_digest, recorded_at FROM goal_owner_acceptance').all())
47
+ this.#row(row);
48
+ if (path !== ':memory:')
49
+ prepareGoalStoreDatabaseFile(path);
50
+ }
51
+ catch (error) {
52
+ this.#database.close();
53
+ throw error;
54
+ }
55
+ }
56
+ #row(row) {
57
+ if (!goalId(row.goal_id) || typeof row.seal_digest !== 'string' || !HEX.test(row.seal_digest)
58
+ || typeof row.definition_digest !== 'string' || !HEX.test(row.definition_digest) || !integer(row.recorded_at))
59
+ fail('schema');
60
+ let seal;
61
+ try {
62
+ seal = validateOwnerAcceptanceSeal(parse(row.seal_json));
63
+ }
64
+ catch {
65
+ fail('schema');
66
+ }
67
+ if (seal.goalId !== row.goal_id || seal.definition.digest !== row.definition_digest
68
+ || acceptanceDigest(seal) !== row.seal_digest)
69
+ fail('schema');
70
+ return seal;
71
+ }
72
+ #get(id) {
73
+ const row = this.#database.prepare('SELECT goal_id, seal_json, seal_digest, definition_digest, recorded_at FROM goal_owner_acceptance WHERE goal_id = ?').get(id);
74
+ return row === undefined ? undefined : this.#row(row);
75
+ }
76
+ /** Idempotent by exact seal; a different seal for the same goal conflicts. */
77
+ record(seal) {
78
+ let value;
79
+ try {
80
+ value = validateOwnerAcceptanceSeal(seal);
81
+ }
82
+ catch {
83
+ fail('invalid-input');
84
+ }
85
+ return this.#transaction(() => {
86
+ const existing = this.#get(value.goalId);
87
+ if (existing !== undefined) {
88
+ if (acceptanceDigest(existing) !== acceptanceDigest(value))
89
+ fail('conflict');
90
+ return existing;
91
+ }
92
+ try {
93
+ this.#database.prepare('INSERT INTO goal_owner_acceptance(goal_id, seal_json, seal_digest, definition_digest, recorded_at) VALUES (?, ?, ?, ?, ?)')
94
+ .run(value.goalId, JSON.stringify(value), acceptanceDigest(value), value.definition.digest, Date.now());
95
+ }
96
+ catch {
97
+ fail('conflict');
98
+ }
99
+ return this.#get(value.goalId);
100
+ });
101
+ }
102
+ get(id) { return goalId(id) ? this.#get(id) : fail('invalid-input'); }
103
+ #transaction(operation) { this.#database.exec('BEGIN IMMEDIATE'); try {
104
+ const result = operation();
105
+ this.#database.exec('COMMIT');
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ this.#database.exec('ROLLBACK');
110
+ throw error;
111
+ } }
112
+ close() { this.#database.close(); }
113
+ }
114
+ //# sourceMappingURL=owner-acceptance-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-acceptance-store.js","sourceRoot":"","sources":["../src/owner-acceptance-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAgC,MAAM,uBAAuB,CAAA;AAGjG,MAAM,GAAG,GAAG,iBAAiB,CAAA;AAC7B,MAAM,MAAM,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACnI,MAAM,OAAO,GAAG,CAAC,KAAc,EAAmB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,IAAI,CAAC,CAAA;AAC1G,SAAS,IAAI,CAAC,IAAqD,IAAW,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;AAC9G,SAAS,KAAK,CAAC,KAAa,IAAa,IAAI,CAAC;IAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAAC,CAAC;AAAC,MAAM,CAAC;IAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAE3G;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAC1B,SAAS,CAAc;IAChC,YAAY,IAAY;QACtB,IAAI,IAAI,KAAK,UAAU;YAAE,4BAA4B,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9E,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4GAA4G,CAAC,CAAA;YACjI,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAA+B,CAAC,YAAY,CAAA;YAC9G,MAAM,MAAM,GAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gGAAgG,CAAC,CAAC,GAAG,EAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC/L,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4OAA4O,CAAC,CAAA;iBACtS,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtG,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,EAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1I,MAAM,GAAG,GAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uFAAuF,CAAC,CAAC,GAAG,EAAkC,EAAE,GAAG,CAAA;YACvK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC/K,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAA6B,CAAC;YAAC,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC3I,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,mGAAmG,CAAC,CAAC,GAAG,EAAW;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC5K,IAAI,IAAI,KAAK,UAAU;gBAAE,4BAA4B,CAAC,IAAI,CAAC,CAAA;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,KAAK,CAAA;QAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,GAAQ;QACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;eACxF,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/H,IAAI,IAA6B,CAAA;QACjC,IAAI,CAAC;YAAC,IAAI,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAAC,CAAC;QACzF,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,iBAAiB;eAC9E,gBAAgB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW;YAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,EAAU;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qHAAqH,CAAC,CAAC,GAAG,CAAC,EAAE,CAAoB,CAAA;QACpL,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC;IAED,8EAA8E;IAC9E,MAAM,CAAC,IAA6B;QAClC,IAAI,KAA8B,CAAA;QAClC,IAAI,CAAC;YAAC,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAAC,CAAC;QACjF,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,gBAAgB,CAAC,KAAK,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC5E,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,2HAA2H,CAAC;qBAChJ,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC3G,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAAC,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAE,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,EAAU,IAAyC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA,CAAC,CAAC;IAClH,YAAY,CAAI,SAAkB,IAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;QAAC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,MAAM,CAAA;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAC,MAAM,KAAK,CAAA;IAAC,CAAC,CAAC,CAAC;IAClO,KAAK,KAAW,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA,CAAC,CAAC;CACzC"}
@@ -0,0 +1,82 @@
1
+ import type { AcceptanceCriterion, AcceptanceTaskIdentity } from '@dsh-enhanced/task-acceptance-contract';
2
+ import type { AcceptanceHandle, TaskAcceptanceRegistration } from '@dsh-enhanced/assistant-verifier';
3
+ import type { GoalDefinition } from './types.js';
4
+ export interface OwnerPreparedBounds {
5
+ readonly maxDurationMs: number;
6
+ readonly maxEvidenceBytes: number;
7
+ }
8
+ /** Host-prepared criteria for one owner goal; never a model tool payload. */
9
+ export interface OwnerPreparedAcceptanceInput {
10
+ readonly criteria: readonly AcceptanceCriterion[];
11
+ /** Optional step criteria; defaults to the outcome criteria. */
12
+ readonly stepCriteria?: readonly AcceptanceCriterion[];
13
+ readonly bounds: OwnerPreparedBounds;
14
+ readonly validityMs: number;
15
+ readonly preparer: Readonly<{
16
+ id: string;
17
+ digest: string;
18
+ }>;
19
+ }
20
+ /** Durable, immutable owner acceptance seal for one business goal. */
21
+ export interface GoalOwnerAcceptanceSeal {
22
+ readonly goalId: string;
23
+ readonly definition: GoalDefinition;
24
+ readonly objective: string;
25
+ readonly criteria: readonly AcceptanceCriterion[];
26
+ readonly stepCriteria: readonly AcceptanceCriterion[];
27
+ readonly bounds: OwnerPreparedBounds;
28
+ readonly validityMs: number;
29
+ readonly preparer: Readonly<{
30
+ id: string;
31
+ digest: string;
32
+ }>;
33
+ readonly outcome: AcceptanceHandle;
34
+ /** Verifier-derived prepared profile digest; informational, never recomputed here. */
35
+ readonly preparedProfileDigest: string;
36
+ readonly outcomeExpiresAt: number;
37
+ readonly at: number;
38
+ }
39
+ /** Exact Host-only input the verifier seals for one prepared task. */
40
+ export interface OwnerPreparedContractInput {
41
+ readonly scope: Readonly<{
42
+ workspace: string;
43
+ preset: string;
44
+ }>;
45
+ readonly owner: Readonly<{
46
+ principalRecordId: string;
47
+ principalVersion: number;
48
+ }>;
49
+ readonly task: AcceptanceTaskIdentity;
50
+ readonly objective: string;
51
+ readonly criteria: readonly AcceptanceCriterion[];
52
+ readonly bounds: OwnerPreparedBounds;
53
+ readonly validityMs: number;
54
+ readonly preparer: Readonly<{
55
+ id: string;
56
+ digest: string;
57
+ }>;
58
+ }
59
+ /** Newer verifier registrations expose the Host-prepared seal capability. */
60
+ export interface OwnerPreparedRegistration {
61
+ prepareOwnerContract(input: OwnerPreparedContractInput): AcceptanceHandle;
62
+ }
63
+ /**
64
+ * The published assistant-verifier build may predate the prepared-contract API,
65
+ * so Goals recognizes it structurally instead of requiring a rebuilt .d.ts.
66
+ * A registration without the method is a fail-closed older peer.
67
+ */
68
+ export declare function preparedRegistration(registration: TaskAcceptanceRegistration): OwnerPreparedRegistration | undefined;
69
+ /** Validate one Host-only seal request before any verifier or native side effect. */
70
+ export declare function validateOwnerPreparedAcceptanceInput(value: unknown, stepMaxDurationMs: number): OwnerPreparedAcceptanceInput;
71
+ export declare const NATURAL_LANGUAGE_PREPARER_ID = "assistant-goals-owner-turn";
72
+ /**
73
+ * Resolve the model-proposed acceptance carried by the live owner goal_create
74
+ * call. Criteria remain a candidate proposal: the Goals wire/policy checks run
75
+ * here and the independent verifier decides decidability when sealing. The
76
+ * default validity covers the configured round plus verification and is bounded
77
+ * to the verifier's 1s-24h window.
78
+ */
79
+ export declare function resolveOwnerPreparedAcceptanceInput(value: unknown, stepMaxDurationMs: number): OwnerPreparedAcceptanceInput;
80
+ /** Strict exact-key validation of one persisted seal; any drift fails closed. */
81
+ export declare function validateOwnerAcceptanceSeal(value: unknown): GoalOwnerAcceptanceSeal;
82
+ //# sourceMappingURL=owner-acceptance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-acceptance.d.ts","sourceRoot":"","sources":["../src/owner-acceptance.ts"],"names":[],"mappings":"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"}