@dsh-enhanced/assistant-evaluation 0.1.65 → 0.1.66

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.
Files changed (80) hide show
  1. package/README.md +54 -1
  2. package/lib/attention-owner-questions.d.ts +85 -0
  3. package/lib/attention-owner-questions.d.ts.map +1 -0
  4. package/lib/attention-owner-questions.js +142 -0
  5. package/lib/attention-owner-questions.js.map +1 -0
  6. package/lib/attention-tuning.d.ts +431 -0
  7. package/lib/attention-tuning.d.ts.map +1 -0
  8. package/lib/attention-tuning.js +892 -0
  9. package/lib/attention-tuning.js.map +1 -0
  10. package/lib/benchmark/cli.d.ts.map +1 -1
  11. package/lib/benchmark/cli.js +11 -6
  12. package/lib/benchmark/cli.js.map +1 -1
  13. package/lib/benchmark/corpus.d.ts +13 -2
  14. package/lib/benchmark/corpus.d.ts.map +1 -1
  15. package/lib/benchmark/corpus.js +19 -9
  16. package/lib/benchmark/corpus.js.map +1 -1
  17. package/lib/benchmark/families-corpus.d.ts +11 -0
  18. package/lib/benchmark/families-corpus.d.ts.map +1 -0
  19. package/lib/benchmark/families-corpus.js +133 -0
  20. package/lib/benchmark/families-corpus.js.map +1 -0
  21. package/lib/benchmark/holdout-isolation.d.ts +27 -0
  22. package/lib/benchmark/holdout-isolation.d.ts.map +1 -0
  23. package/lib/benchmark/holdout-isolation.js +66 -0
  24. package/lib/benchmark/holdout-isolation.js.map +1 -0
  25. package/lib/benchmark/holdout.d.ts.map +1 -1
  26. package/lib/benchmark/holdout.js +3 -0
  27. package/lib/benchmark/holdout.js.map +1 -1
  28. package/lib/benchmark/index.d.ts +3 -0
  29. package/lib/benchmark/index.d.ts.map +1 -1
  30. package/lib/benchmark/index.js +2 -0
  31. package/lib/benchmark/index.js.map +1 -1
  32. package/lib/benchmark/native-skills.d.ts +12 -14
  33. package/lib/benchmark/native-skills.d.ts.map +1 -1
  34. package/lib/benchmark/native.d.ts +15 -2
  35. package/lib/benchmark/native.d.ts.map +1 -1
  36. package/lib/benchmark/native.js +67 -14
  37. package/lib/benchmark/native.js.map +1 -1
  38. package/lib/benchmark/report.d.ts.map +1 -1
  39. package/lib/benchmark/report.js +98 -8
  40. package/lib/benchmark/report.js.map +1 -1
  41. package/lib/benchmark/runner.d.ts.map +1 -1
  42. package/lib/benchmark/runner.js +5 -0
  43. package/lib/benchmark/runner.js.map +1 -1
  44. package/lib/benchmark/types.d.ts +64 -7
  45. package/lib/benchmark/types.d.ts.map +1 -1
  46. package/lib/index.d.ts +7 -0
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js +4 -0
  49. package/lib/index.js.map +1 -1
  50. package/lib/intake-attention-agreement.d.ts +63 -0
  51. package/lib/intake-attention-agreement.d.ts.map +1 -0
  52. package/lib/intake-attention-agreement.js +146 -0
  53. package/lib/intake-attention-agreement.js.map +1 -0
  54. package/lib/notification-outcomes.d.ts +56 -0
  55. package/lib/notification-outcomes.d.ts.map +1 -0
  56. package/lib/notification-outcomes.js +348 -0
  57. package/lib/notification-outcomes.js.map +1 -0
  58. package/lib/service.d.ts +244 -2
  59. package/lib/service.d.ts.map +1 -1
  60. package/lib/service.js +830 -5
  61. package/lib/service.js.map +1 -1
  62. package/lib/sqlite.d.ts +8 -2
  63. package/lib/sqlite.d.ts.map +1 -1
  64. package/lib/sqlite.js +406 -17
  65. package/lib/sqlite.js.map +1 -1
  66. package/lib/store.d.ts +13 -2
  67. package/lib/store.d.ts.map +1 -1
  68. package/lib/store.js +120 -24
  69. package/lib/store.js.map +1 -1
  70. package/lib/types.d.ts +247 -5
  71. package/lib/types.d.ts.map +1 -1
  72. package/lib/types.js +11 -0
  73. package/lib/types.js.map +1 -1
  74. package/lib/version.d.ts +1 -1
  75. package/lib/version.js +1 -1
  76. package/lib/work-item-owner-proof.d.ts +4 -0
  77. package/lib/work-item-owner-proof.d.ts.map +1 -0
  78. package/lib/work-item-owner-proof.js +53 -0
  79. package/lib/work-item-owner-proof.js.map +1 -0
  80. package/package.json +30 -30
package/lib/sqlite.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { chmodSync, closeSync, constants, existsSync, lstatSync, mkdirSync, openSync, } from 'node:fs';
2
2
  import { dirname, isAbsolute } from 'node:path';
3
3
  import { DatabaseSync } from 'node:sqlite';
4
- export const evaluationSchemaVersion = 12;
4
+ export const evaluationSchemaVersion = 17;
5
5
  export class EvaluationDatabaseError extends Error {
6
6
  code;
7
7
  constructor(code, message) {
@@ -58,7 +58,7 @@ const selfAssessmentSchema = `
58
58
  const projectionOutboxSchema = `
59
59
  CREATE TABLE evaluation_projection_outbox (
60
60
  evaluation_id TEXT PRIMARY KEY,
61
- status TEXT NOT NULL CHECK (status IN ('pending', 'recorded')),
61
+ status TEXT NOT NULL CHECK (status IN ('pending', 'recorded', 'not-required')),
62
62
  attempt_count INTEGER NOT NULL CHECK (attempt_count >= 0),
63
63
  next_attempt_at INTEGER NOT NULL,
64
64
  last_failure_at INTEGER,
@@ -190,7 +190,7 @@ const taskProjectionSchema = `
190
190
  CREATE TABLE evaluation_task_projections (
191
191
  subject_key TEXT PRIMARY KEY,
192
192
  scope_key TEXT NOT NULL,
193
- subject_kind TEXT NOT NULL CHECK (subject_kind IN ('automation-run', 'foreground-turn', 'goal-step', 'goal-outcome', 'outcome')),
193
+ subject_kind TEXT NOT NULL CHECK (subject_kind IN ('automation-run', 'foreground-turn', 'goal-step', 'goal-outcome', 'work-item', 'outcome')),
194
194
  subject_ref TEXT NOT NULL,
195
195
  primary_outcome_id TEXT,
196
196
  execution_outcome_id TEXT,
@@ -259,16 +259,348 @@ function legacyTaskSubject(scopeKey, id, evidenceJson) {
259
259
  }
260
260
  return { key: JSON.stringify([scopeKey, 'outcome', id]), kind: 'outcome', ref: id };
261
261
  }
262
+ /**
263
+ * WP22 per-notification outcome canon. Revisions are immutable; the head names
264
+ * the current revision and carries a per-scope notification watermark used as a
265
+ * restart-safe read cursor. Separate from task-learning watermarks so this
266
+ * read-only feed never fences or advances Evolution evidence.
267
+ */
268
+ const notificationOutcomeSchema = `
269
+ CREATE TABLE evaluation_notification_outcome_revisions (
270
+ notification_id TEXT NOT NULL CHECK (length(notification_id) BETWEEN 1 AND 256),
271
+ version INTEGER NOT NULL CHECK (version >= 1),
272
+ scope_key TEXT NOT NULL,
273
+ outcome TEXT NOT NULL CHECK (outcome IN ('pending','delivered','reacted','accepted','rejected','expired-unhandled','failed')),
274
+ record_json TEXT NOT NULL CHECK (json_valid(record_json)),
275
+ digest TEXT NOT NULL CHECK (length(digest) = 64),
276
+ watermark INTEGER NOT NULL CHECK (watermark >= 1),
277
+ recorded_at INTEGER NOT NULL CHECK (recorded_at >= 0),
278
+ PRIMARY KEY (notification_id, version),
279
+ UNIQUE (scope_key, watermark)
280
+ ) STRICT;
281
+ CREATE TRIGGER evaluation_notification_outcome_revisions_immutable
282
+ BEFORE UPDATE ON evaluation_notification_outcome_revisions
283
+ BEGIN SELECT RAISE(ABORT, 'notification outcome revisions are immutable'); END;
284
+ CREATE TRIGGER evaluation_notification_outcome_revisions_no_delete
285
+ BEFORE DELETE ON evaluation_notification_outcome_revisions
286
+ BEGIN SELECT RAISE(ABORT, 'notification outcome revisions are durable'); END;
287
+ CREATE TABLE evaluation_notification_outcome_heads (
288
+ notification_id TEXT PRIMARY KEY,
289
+ scope_key TEXT NOT NULL,
290
+ version INTEGER NOT NULL CHECK (version >= 1),
291
+ digest TEXT NOT NULL CHECK (length(digest) = 64),
292
+ outcome TEXT NOT NULL,
293
+ occurred_at INTEGER NOT NULL CHECK (occurred_at >= 0),
294
+ watermark INTEGER NOT NULL CHECK (watermark >= 1),
295
+ last_checked_at INTEGER NOT NULL CHECK (last_checked_at >= 0),
296
+ UNIQUE (scope_key, watermark),
297
+ FOREIGN KEY (notification_id, version) REFERENCES evaluation_notification_outcome_revisions(notification_id, version)
298
+ ) STRICT;
299
+ -- Re-check scans range over occurred_at so heads older than the observation
300
+ -- horizon are never visited again; the scan is bounded by in-horizon heads.
301
+ CREATE INDEX evaluation_notification_outcome_heads_due
302
+ ON evaluation_notification_outcome_heads(occurred_at, last_checked_at);
303
+ CREATE INDEX evaluation_notification_outcome_heads_scope_time
304
+ ON evaluation_notification_outcome_heads(scope_key, occurred_at);
305
+ CREATE TRIGGER evaluation_notification_outcome_heads_insert_matches_revision
306
+ BEFORE INSERT ON evaluation_notification_outcome_heads
307
+ WHEN NOT EXISTS (SELECT 1 FROM evaluation_notification_outcome_revisions r
308
+ WHERE r.notification_id = NEW.notification_id AND r.version = NEW.version AND r.scope_key = NEW.scope_key
309
+ AND r.digest = NEW.digest AND r.outcome = NEW.outcome AND r.watermark = NEW.watermark
310
+ AND json_extract(r.record_json, '$.notifiedAt') = NEW.occurred_at)
311
+ BEGIN SELECT RAISE(ABORT, 'notification outcome head must match its revision'); END;
312
+ CREATE TRIGGER evaluation_notification_outcome_heads_update_matches_revision
313
+ BEFORE UPDATE ON evaluation_notification_outcome_heads
314
+ WHEN NOT EXISTS (SELECT 1 FROM evaluation_notification_outcome_revisions r
315
+ WHERE r.notification_id = NEW.notification_id AND r.version = NEW.version AND r.scope_key = NEW.scope_key
316
+ AND r.digest = NEW.digest AND r.outcome = NEW.outcome AND r.watermark = NEW.watermark
317
+ AND json_extract(r.record_json, '$.notifiedAt') = NEW.occurred_at)
318
+ BEGIN SELECT RAISE(ABORT, 'notification outcome head must match its revision'); END;
319
+ CREATE TRIGGER evaluation_notification_outcome_heads_identity_immutable
320
+ BEFORE UPDATE OF notification_id, scope_key, occurred_at ON evaluation_notification_outcome_heads
321
+ WHEN NEW.notification_id IS NOT OLD.notification_id OR NEW.scope_key IS NOT OLD.scope_key
322
+ OR NEW.occurred_at IS NOT OLD.occurred_at
323
+ BEGIN SELECT RAISE(ABORT, 'notification outcome head identity is immutable'); END;
324
+ CREATE TRIGGER evaluation_notification_outcome_heads_monotonic
325
+ BEFORE UPDATE OF version, watermark ON evaluation_notification_outcome_heads
326
+ WHEN NEW.version <= OLD.version OR NEW.watermark <= OLD.watermark
327
+ BEGIN SELECT RAISE(ABORT, 'notification outcome head must advance'); END;
328
+ CREATE TRIGGER evaluation_notification_outcome_heads_no_delete
329
+ BEFORE DELETE ON evaluation_notification_outcome_heads
330
+ BEGIN SELECT RAISE(ABORT, 'notification outcome heads are durable'); END;
331
+ CREATE TABLE evaluation_notification_watermarks (
332
+ scope_key TEXT PRIMARY KEY,
333
+ watermark INTEGER NOT NULL CHECK (watermark >= 1)
334
+ ) STRICT;
335
+ CREATE TRIGGER evaluation_notification_watermarks_monotonic
336
+ BEFORE UPDATE ON evaluation_notification_watermarks
337
+ WHEN NEW.scope_key IS NOT OLD.scope_key OR NEW.watermark <= OLD.watermark
338
+ BEGIN SELECT RAISE(ABORT, 'notification watermark must advance'); END;
339
+ CREATE TRIGGER evaluation_notification_watermarks_no_delete
340
+ BEFORE DELETE ON evaluation_notification_watermarks
341
+ BEGIN SELECT RAISE(ABORT, 'notification watermarks are durable'); END;
342
+ CREATE TABLE evaluation_notification_sync_cursor (
343
+ id INTEGER PRIMARY KEY CHECK (id = 1),
344
+ after_sequence INTEGER NOT NULL CHECK (after_sequence >= 0),
345
+ updated_at INTEGER NOT NULL CHECK (updated_at >= 0)
346
+ ) STRICT;
347
+ CREATE TRIGGER evaluation_notification_sync_cursor_monotonic
348
+ BEFORE UPDATE ON evaluation_notification_sync_cursor
349
+ WHEN NEW.after_sequence < OLD.after_sequence
350
+ BEGIN SELECT RAISE(ABORT, 'notification sync cursor must not regress'); END;
351
+ CREATE TRIGGER evaluation_notification_sync_cursor_no_delete
352
+ BEFORE DELETE ON evaluation_notification_sync_cursor
353
+ BEGIN SELECT RAISE(ABORT, 'notification sync cursor is durable'); END;
354
+ `;
355
+ /**
356
+ * WP22 slice 2 attention-tuning canon. Each version is immutable, names its
357
+ * exact parent (0 = built-in default) and carries the basis outcome summary
358
+ * plus scope notification watermark it was derived from. The head names the
359
+ * active version and a durable observation window; events are append-only.
360
+ */
361
+ const attentionTuningSchema = `
362
+ CREATE TABLE evaluation_attention_tuning_versions (
363
+ scope_key TEXT NOT NULL,
364
+ lane TEXT NOT NULL CHECK (length(lane) BETWEEN 1 AND 64),
365
+ source_id TEXT NOT NULL CHECK (length(source_id) BETWEEN 1 AND 256),
366
+ version INTEGER NOT NULL CHECK (version >= 1),
367
+ parent_version INTEGER NOT NULL CHECK (parent_version >= 0 AND parent_version < version),
368
+ parameters_json TEXT NOT NULL CHECK (json_valid(parameters_json)),
369
+ basis_json TEXT NOT NULL CHECK (json_valid(basis_json)),
370
+ change_json TEXT NOT NULL CHECK (json_valid(change_json)),
371
+ origin TEXT NOT NULL CHECK (origin IN ('auto','request')),
372
+ digest TEXT NOT NULL CHECK (length(digest) = 64),
373
+ idempotency_key TEXT NOT NULL UNIQUE,
374
+ created_at INTEGER NOT NULL CHECK (created_at >= 0),
375
+ PRIMARY KEY (scope_key, lane, source_id, version)
376
+ ) STRICT;
377
+ CREATE TRIGGER evaluation_attention_tuning_versions_immutable
378
+ BEFORE UPDATE ON evaluation_attention_tuning_versions
379
+ BEGIN SELECT RAISE(ABORT, 'attention tuning versions are immutable'); END;
380
+ CREATE TRIGGER evaluation_attention_tuning_versions_no_delete
381
+ BEFORE DELETE ON evaluation_attention_tuning_versions
382
+ BEGIN SELECT RAISE(ABORT, 'attention tuning versions are durable'); END;
383
+ CREATE TABLE evaluation_attention_tuning_heads (
384
+ scope_key TEXT NOT NULL,
385
+ lane TEXT NOT NULL,
386
+ source_id TEXT NOT NULL,
387
+ workspace TEXT NOT NULL,
388
+ preset TEXT NOT NULL,
389
+ active_version INTEGER NOT NULL CHECK (active_version >= 0),
390
+ latest_version INTEGER NOT NULL CHECK (latest_version >= active_version),
391
+ state TEXT NOT NULL CHECK (state IN ('idle','observing')),
392
+ observing_version INTEGER,
393
+ observe_from INTEGER,
394
+ observe_until INTEGER,
395
+ changed_at INTEGER NOT NULL CHECK (changed_at >= 0),
396
+ CHECK ((state = 'idle' AND observing_version IS NULL AND observe_from IS NULL AND observe_until IS NULL)
397
+ OR (state = 'observing' AND observing_version = active_version AND observe_from IS NOT NULL AND observe_until > observe_from)),
398
+ PRIMARY KEY (scope_key, lane, source_id)
399
+ ) STRICT;
400
+ CREATE TRIGGER evaluation_attention_tuning_heads_no_delete
401
+ BEFORE DELETE ON evaluation_attention_tuning_heads
402
+ BEGIN SELECT RAISE(ABORT, 'attention tuning heads are durable'); END;
403
+ CREATE TABLE evaluation_attention_tuning_events (
404
+ sequence INTEGER PRIMARY KEY AUTOINCREMENT,
405
+ scope_key TEXT NOT NULL,
406
+ lane TEXT NOT NULL,
407
+ source_id TEXT NOT NULL,
408
+ kind TEXT NOT NULL CHECK (kind IN ('adopted','rolled-back','settled','request-rejected')),
409
+ from_version INTEGER NOT NULL CHECK (from_version >= 0),
410
+ to_version INTEGER NOT NULL CHECK (to_version >= 0),
411
+ reason TEXT NOT NULL CHECK (length(reason) BETWEEN 1 AND 64),
412
+ detail_json TEXT NOT NULL CHECK (json_valid(detail_json)),
413
+ idempotency_key TEXT UNIQUE,
414
+ occurred_at INTEGER NOT NULL CHECK (occurred_at >= 0)
415
+ ) STRICT;
416
+ CREATE INDEX evaluation_attention_tuning_events_cohort
417
+ ON evaluation_attention_tuning_events(scope_key, lane, source_id, sequence);
418
+ CREATE TRIGGER evaluation_attention_tuning_events_immutable
419
+ BEFORE UPDATE ON evaluation_attention_tuning_events
420
+ BEGIN SELECT RAISE(ABORT, 'attention tuning events are immutable'); END;
421
+ CREATE TRIGGER evaluation_attention_tuning_events_no_delete
422
+ BEFORE DELETE ON evaluation_attention_tuning_events
423
+ BEGIN SELECT RAISE(ABORT, 'attention tuning events are durable'); END;
424
+ `;
425
+ /**
426
+ * WP22 slice 3 loosening canon, appended after schema 15. An owner grant is a
427
+ * one-time pre-authorization; a proposal seals only the holdout membership
428
+ * digest (never its outcomes); each proposal gets exactly one immutable
429
+ * decision; an out-of-grant pass records a structured owner question (not
430
+ * delivered in this slice). Grant usage is the count of adopted decisions
431
+ * naming the grant, so a later rollback never refunds quota.
432
+ */
433
+ const attentionLooseningSchema = `
434
+ CREATE TABLE evaluation_attention_loosening_grants (
435
+ scope_key TEXT NOT NULL,
436
+ lane TEXT NOT NULL CHECK (length(lane) BETWEEN 1 AND 64),
437
+ source_id TEXT NOT NULL CHECK (length(source_id) BETWEEN 1 AND 256),
438
+ grant_id TEXT NOT NULL CHECK (length(grant_id) BETWEEN 1 AND 128),
439
+ grant_json TEXT NOT NULL CHECK (json_valid(grant_json)),
440
+ digest TEXT NOT NULL CHECK (length(digest) = 64),
441
+ created_at INTEGER NOT NULL CHECK (created_at >= 0),
442
+ PRIMARY KEY (scope_key, lane, source_id, grant_id)
443
+ ) STRICT;
444
+ CREATE TRIGGER evaluation_attention_loosening_grants_immutable
445
+ BEFORE UPDATE ON evaluation_attention_loosening_grants
446
+ BEGIN SELECT RAISE(ABORT, 'attention loosening grants are immutable'); END;
447
+ CREATE TRIGGER evaluation_attention_loosening_grants_no_delete
448
+ BEFORE DELETE ON evaluation_attention_loosening_grants
449
+ BEGIN SELECT RAISE(ABORT, 'attention loosening grants are durable'); END;
450
+ CREATE TABLE evaluation_attention_loosening_proposals (
451
+ proposal_id TEXT PRIMARY KEY CHECK (length(proposal_id) = 64),
452
+ scope_key TEXT NOT NULL,
453
+ lane TEXT NOT NULL,
454
+ source_id TEXT NOT NULL,
455
+ parent_version INTEGER NOT NULL CHECK (parent_version >= 0),
456
+ proposal_json TEXT NOT NULL CHECK (json_valid(proposal_json)),
457
+ holdout_digest TEXT NOT NULL CHECK (length(holdout_digest) = 64),
458
+ created_at INTEGER NOT NULL CHECK (created_at >= 0)
459
+ ) STRICT;
460
+ CREATE INDEX evaluation_attention_loosening_proposals_cohort
461
+ ON evaluation_attention_loosening_proposals(scope_key, lane, source_id, created_at);
462
+ CREATE TRIGGER evaluation_attention_loosening_proposals_immutable
463
+ BEFORE UPDATE ON evaluation_attention_loosening_proposals
464
+ BEGIN SELECT RAISE(ABORT, 'attention loosening proposals are immutable'); END;
465
+ CREATE TRIGGER evaluation_attention_loosening_proposals_no_delete
466
+ BEFORE DELETE ON evaluation_attention_loosening_proposals
467
+ BEGIN SELECT RAISE(ABORT, 'attention loosening proposals are durable'); END;
468
+ CREATE TABLE evaluation_attention_loosening_decisions (
469
+ proposal_id TEXT PRIMARY KEY,
470
+ scope_key TEXT NOT NULL,
471
+ lane TEXT NOT NULL,
472
+ source_id TEXT NOT NULL,
473
+ decision TEXT NOT NULL CHECK (decision IN ('adopted','rejected','owner-question')),
474
+ reason TEXT NOT NULL CHECK (length(reason) BETWEEN 1 AND 64),
475
+ grant_id TEXT,
476
+ version INTEGER,
477
+ replay_json TEXT NOT NULL CHECK (json_valid(replay_json)),
478
+ decided_at INTEGER NOT NULL CHECK (decided_at >= 0),
479
+ CHECK ((decision = 'adopted' AND grant_id IS NOT NULL AND version >= 1) OR (decision <> 'adopted' AND version IS NULL)),
480
+ FOREIGN KEY (proposal_id) REFERENCES evaluation_attention_loosening_proposals(proposal_id) ON DELETE RESTRICT
481
+ ) STRICT;
482
+ CREATE INDEX evaluation_attention_loosening_decisions_grant
483
+ ON evaluation_attention_loosening_decisions(scope_key, lane, source_id, grant_id, decision);
484
+ CREATE TRIGGER evaluation_attention_loosening_decisions_immutable
485
+ BEFORE UPDATE ON evaluation_attention_loosening_decisions
486
+ BEGIN SELECT RAISE(ABORT, 'attention loosening decisions are immutable'); END;
487
+ CREATE TRIGGER evaluation_attention_loosening_decisions_no_delete
488
+ BEFORE DELETE ON evaluation_attention_loosening_decisions
489
+ BEGIN SELECT RAISE(ABORT, 'attention loosening decisions are durable'); END;
490
+ CREATE TABLE evaluation_attention_owner_questions (
491
+ question_id TEXT PRIMARY KEY CHECK (length(question_id) = 64),
492
+ proposal_id TEXT NOT NULL UNIQUE,
493
+ scope_key TEXT NOT NULL,
494
+ lane TEXT NOT NULL,
495
+ source_id TEXT NOT NULL,
496
+ question_json TEXT NOT NULL CHECK (json_valid(question_json)),
497
+ created_at INTEGER NOT NULL CHECK (created_at >= 0),
498
+ FOREIGN KEY (proposal_id) REFERENCES evaluation_attention_loosening_proposals(proposal_id) ON DELETE RESTRICT
499
+ ) STRICT;
500
+ CREATE INDEX evaluation_attention_owner_questions_cohort
501
+ ON evaluation_attention_owner_questions(scope_key, lane, source_id, created_at);
502
+ CREATE TRIGGER evaluation_attention_owner_questions_immutable
503
+ BEFORE UPDATE ON evaluation_attention_owner_questions
504
+ BEGIN SELECT RAISE(ABORT, 'attention owner questions are immutable'); END;
505
+ CREATE TRIGGER evaluation_attention_owner_questions_no_delete
506
+ BEFORE DELETE ON evaluation_attention_owner_questions
507
+ BEGIN SELECT RAISE(ABORT, 'attention owner questions are durable'); END;
508
+ `;
509
+ const attentionOwnerQuestionDeliverySchema = `
510
+ CREATE TABLE evaluation_attention_owner_question_deliveries (
511
+ question_id TEXT PRIMARY KEY CHECK (length(question_id) = 64),
512
+ scope_key TEXT NOT NULL,
513
+ lane TEXT NOT NULL,
514
+ source_id TEXT NOT NULL,
515
+ status TEXT NOT NULL CHECK (status IN ('queued','closed','expired')),
516
+ outbox_id TEXT CHECK (outbox_id IS NULL OR length(outbox_id) BETWEEN 1 AND 256),
517
+ idempotency_key TEXT NOT NULL CHECK (length(idempotency_key) BETWEEN 1 AND 256),
518
+ recorded_at INTEGER NOT NULL CHECK (recorded_at >= 0),
519
+ CHECK ((status = 'queued') = (outbox_id IS NOT NULL)),
520
+ FOREIGN KEY (question_id) REFERENCES evaluation_attention_owner_questions(question_id) ON DELETE RESTRICT
521
+ ) STRICT;
522
+ CREATE TRIGGER evaluation_attention_owner_question_deliveries_immutable
523
+ BEFORE UPDATE ON evaluation_attention_owner_question_deliveries
524
+ BEGIN SELECT RAISE(ABORT, 'attention owner question deliveries are immutable'); END;
525
+ CREATE TRIGGER evaluation_attention_owner_question_deliveries_no_delete
526
+ BEFORE DELETE ON evaluation_attention_owner_question_deliveries
527
+ BEGIN SELECT RAISE(ABORT, 'attention owner question deliveries are durable'); END;
528
+ CREATE TABLE evaluation_attention_owner_question_replies (
529
+ question_id TEXT PRIMARY KEY CHECK (length(question_id) = 64),
530
+ scope_key TEXT NOT NULL,
531
+ lane TEXT NOT NULL,
532
+ source_id TEXT NOT NULL,
533
+ choice TEXT NOT NULL CHECK (choice IN ('authorize-once','decline')),
534
+ replied_at INTEGER NOT NULL CHECK (replied_at >= 0),
535
+ FOREIGN KEY (question_id) REFERENCES evaluation_attention_owner_questions(question_id) ON DELETE RESTRICT
536
+ ) STRICT;
537
+ CREATE TRIGGER evaluation_attention_owner_question_replies_immutable
538
+ BEFORE UPDATE ON evaluation_attention_owner_question_replies
539
+ BEGIN SELECT RAISE(ABORT, 'attention owner question replies are immutable'); END;
540
+ CREATE TRIGGER evaluation_attention_owner_question_replies_no_delete
541
+ BEFORE DELETE ON evaluation_attention_owner_question_replies
542
+ BEGIN SELECT RAISE(ABORT, 'attention owner question replies are durable'); END;
543
+ `;
544
+ const attentionOwnerQuestionDeliveryTables = Object.freeze([
545
+ 'evaluation_attention_owner_question_deliveries',
546
+ 'evaluation_attention_owner_question_replies',
547
+ ]);
548
+ function ownerQuestionSchemaObjects(database) {
549
+ const placeholders = attentionOwnerQuestionDeliveryTables.map(() => '?').join(',');
550
+ const rows = database.prepare(`SELECT type, name, tbl_name, sql FROM sqlite_schema
551
+ WHERE tbl_name IN (${placeholders}) OR name IN (${placeholders})`)
552
+ .all(...attentionOwnerQuestionDeliveryTables, ...attentionOwnerQuestionDeliveryTables);
553
+ return rows.map(row => JSON.stringify([row.type, row.name, row.tbl_name, row.sql?.replace(/\s+/g, ' ').trim() ?? null])).sort();
554
+ }
555
+ let expectedOwnerQuestionSchema;
556
+ function expectedOwnerQuestionSchemaObjects() {
557
+ if (expectedOwnerQuestionSchema === undefined) {
558
+ const reference = new DatabaseSync(':memory:');
559
+ try {
560
+ reference.exec(attentionOwnerQuestionDeliverySchema);
561
+ expectedOwnerQuestionSchema = Object.freeze(ownerQuestionSchemaObjects(reference));
562
+ }
563
+ finally {
564
+ reference.close();
565
+ }
566
+ }
567
+ return expectedOwnerQuestionSchema;
568
+ }
569
+ /**
570
+ * Fail closed unless the schema-17 owner-question tables, their indexes and
571
+ * their immutability triggers are exactly the ones the migration creates.
572
+ */
573
+ function assertOwnerQuestionSchema(database) {
574
+ const actual = ownerQuestionSchemaObjects(database);
575
+ const expected = expectedOwnerQuestionSchemaObjects();
576
+ if (actual.length !== expected.length || actual.some((entry, index) => entry !== expected[index])) {
577
+ throw new EvaluationDatabaseError('schema-drift', 'evaluation owner-question delivery schema does not match schema 17');
578
+ }
579
+ }
262
580
  function migrate(database) {
581
+ migrateEvaluationDatabase(database);
582
+ }
583
+ /**
584
+ * Upgrade `database` to `target` (default: the current schema). Exported
585
+ * outside the package index so tests can build a genuine older schema with
586
+ * the same migration chain.
587
+ */
588
+ export function migrateEvaluationDatabase(database, target = evaluationSchemaVersion) {
589
+ if (!Number.isSafeInteger(target) || target < 1 || target > evaluationSchemaVersion) {
590
+ throw new Error('evaluation migration target is not a supported schema');
591
+ }
263
592
  const initial = schemaVersion(database);
264
593
  if (initial > evaluationSchemaVersion) {
265
594
  throw new EvaluationDatabaseError('schema-too-new', `evaluation schema ${initial} is newer than supported schema ${evaluationSchemaVersion}`);
266
595
  }
267
- if (initial === evaluationSchemaVersion)
596
+ if (initial >= target) {
597
+ if (initial >= 17)
598
+ assertOwnerQuestionSchema(database);
268
599
  return;
600
+ }
269
601
  database.exec('BEGIN IMMEDIATE');
270
602
  try {
271
- if (schemaVersion(database) === 0) {
603
+ if (schemaVersion(database) === 0 && target > 0) {
272
604
  database.exec(`
273
605
  CREATE TABLE evaluation_schema_meta (
274
606
  key TEXT PRIMARY KEY,
@@ -325,14 +657,14 @@ function migrate(database) {
325
657
  PRAGMA user_version = 7;
326
658
  `);
327
659
  }
328
- if (schemaVersion(database) === 1) {
660
+ if (schemaVersion(database) === 1 && target > 1) {
329
661
  database.exec(`
330
662
  ${selfAssessmentSchema}
331
663
  UPDATE evaluation_schema_meta SET value = '2' WHERE key = 'schema-version';
332
664
  PRAGMA user_version = 2;
333
665
  `);
334
666
  }
335
- if (schemaVersion(database) === 2) {
667
+ if (schemaVersion(database) === 2 && target > 2) {
336
668
  database.exec(`
337
669
  ${projectionOutboxSchema}
338
670
  INSERT INTO evaluation_projection_outbox(
@@ -345,7 +677,7 @@ function migrate(database) {
345
677
  PRAGMA user_version = 3;
346
678
  `);
347
679
  }
348
- if (schemaVersion(database) === 3) {
680
+ if (schemaVersion(database) === 3 && target > 3) {
349
681
  database.exec(`
350
682
  ALTER TABLE evaluation_outcomes ADD COLUMN task_subject_key TEXT;
351
683
  ALTER TABLE evaluation_outcomes ADD COLUMN task_subject_kind TEXT;
@@ -380,7 +712,7 @@ function migrate(database) {
380
712
  PRAGMA user_version = 4;
381
713
  `);
382
714
  }
383
- if (schemaVersion(database) === 4) {
715
+ if (schemaVersion(database) === 4 && target > 4) {
384
716
  database.exec(`
385
717
  DROP VIEW evaluation_task_projection_view;
386
718
  ALTER TABLE evaluation_task_projections
@@ -410,7 +742,7 @@ function migrate(database) {
410
742
  PRAGMA user_version = 5;
411
743
  `);
412
744
  }
413
- if (schemaVersion(database) === 5) {
745
+ if (schemaVersion(database) === 5 && target > 5) {
414
746
  database.exec(`
415
747
  -- Protocol v2 uses a distinct task-revision sink capability. A v5
416
748
  -- Evaluation may already have marked a trigger recorded after an older
@@ -438,7 +770,7 @@ function migrate(database) {
438
770
  PRAGMA user_version = 6;
439
771
  `);
440
772
  }
441
- if (schemaVersion(database) === 6) {
773
+ if (schemaVersion(database) === 6 && target > 6) {
442
774
  database.exec(`
443
775
  ${scopeWatermarkSchema}
444
776
  -- The sum of each subject's monotonic learning revision is the exact
@@ -472,7 +804,7 @@ function migrate(database) {
472
804
  PRAGMA user_version = 7;
473
805
  `);
474
806
  }
475
- if (schemaVersion(database) === 7) {
807
+ if (schemaVersion(database) === 7 && target > 7) {
476
808
  database.exec(`
477
809
  CREATE TABLE evaluation_owner_revisions (
478
810
  outcome_id TEXT PRIMARY KEY REFERENCES evaluation_outcomes(id),
@@ -494,7 +826,7 @@ function migrate(database) {
494
826
  PRAGMA user_version = 8;
495
827
  `);
496
828
  }
497
- if (schemaVersion(database) === 8) {
829
+ if (schemaVersion(database) === 8 && target > 8) {
498
830
  // SQLite CHECK constraints cannot be widened in place. Preserve every
499
831
  // existing v8 projection while enabling the distinct foreground subject.
500
832
  database.exec(`
@@ -536,7 +868,7 @@ function migrate(database) {
536
868
  PRAGMA user_version = 9;
537
869
  `);
538
870
  }
539
- if (schemaVersion(database) === 9) {
871
+ if (schemaVersion(database) === 9 && target > 9) {
540
872
  // Rebuild only the constrained projection table; its rows and all
541
873
  // outcome/foreign-key references remain intact across the v9 -> v10 step.
542
874
  database.exec(`
@@ -550,7 +882,7 @@ function migrate(database) {
550
882
  PRAGMA user_version = 10;
551
883
  `);
552
884
  }
553
- if (schemaVersion(database) === 10) {
885
+ if (schemaVersion(database) === 10 && target > 10) {
554
886
  // Preserve all historical projections while widening only the durable
555
887
  // subject-kind constraint for whole-goal verifier assessments.
556
888
  database.exec(`
@@ -564,7 +896,7 @@ function migrate(database) {
564
896
  PRAGMA user_version = 11;
565
897
  `);
566
898
  }
567
- if (schemaVersion(database) === 11) {
899
+ if (schemaVersion(database) === 11 && target > 11) {
568
900
  // Historical projections had a scope fence but no cursorable head. Give
569
901
  // every existing canonical subject a stable new watermark exactly once.
570
902
  const overflow = database.prepare(`
@@ -600,9 +932,66 @@ function migrate(database) {
600
932
  PRAGMA user_version = 12;
601
933
  `);
602
934
  }
603
- if (schemaVersion(database) !== evaluationSchemaVersion) {
935
+ if (schemaVersion(database) === 12 && target > 12) {
936
+ // Preserve feed heads and every semantic revision verbatim while widening
937
+ // the projection identity. Historical settlement evidence is not re-keyed.
938
+ database.exec(`
939
+ CREATE TEMP TABLE evaluation_v12_feed AS SELECT * FROM evaluation_task_projection_feed_heads;
940
+ DROP TABLE evaluation_task_projection_feed_heads;
941
+ DROP VIEW evaluation_task_projection_view;
942
+ ALTER TABLE evaluation_task_projections RENAME TO evaluation_task_projections_v12;
943
+ DROP INDEX evaluation_task_projections_scope_time;
944
+ ${taskProjectionSchema.replace('CREATE INDEX evaluation_outcomes_task_subject\n ON evaluation_outcomes(task_subject_key, recorded_at, id);', '')}
945
+ INSERT INTO evaluation_task_projections SELECT * FROM evaluation_task_projections_v12;
946
+ DROP TABLE evaluation_task_projections_v12;
947
+ ${taskProjectionFeedSchema}
948
+ INSERT INTO evaluation_task_projection_feed_heads SELECT * FROM evaluation_v12_feed;
949
+ DROP TABLE evaluation_v12_feed;
950
+ CREATE TEMP TABLE evaluation_v12_outbox AS SELECT * FROM evaluation_projection_outbox;
951
+ DROP TABLE evaluation_projection_outbox;
952
+ ${projectionOutboxSchema}
953
+ INSERT INTO evaluation_projection_outbox SELECT * FROM evaluation_v12_outbox;
954
+ DROP TABLE evaluation_v12_outbox;
955
+ UPDATE evaluation_schema_meta SET value = '13' WHERE key = 'schema-version';
956
+ PRAGMA user_version = 13;
957
+ `);
958
+ }
959
+ if (schemaVersion(database) === 13 && target > 13) {
960
+ database.exec(`
961
+ ${notificationOutcomeSchema}
962
+ UPDATE evaluation_schema_meta SET value = '14' WHERE key = 'schema-version';
963
+ PRAGMA user_version = 14;
964
+ `);
965
+ }
966
+ if (schemaVersion(database) === 14 && target > 14) {
967
+ database.exec(`
968
+ ${attentionTuningSchema}
969
+ UPDATE evaluation_schema_meta SET value = '15' WHERE key = 'schema-version';
970
+ PRAGMA user_version = 15;
971
+ `);
972
+ }
973
+ if (schemaVersion(database) === 15 && target > 15) {
974
+ database.exec(`
975
+ ${attentionLooseningSchema}
976
+ UPDATE evaluation_schema_meta SET value = '16' WHERE key = 'schema-version';
977
+ PRAGMA user_version = 16;
978
+ `);
979
+ }
980
+ if (schemaVersion(database) === 16 && target > 16) {
981
+ if (ownerQuestionSchemaObjects(database).length > 0) {
982
+ throw new EvaluationDatabaseError('schema-drift', 'evaluation schema 16 already holds owner-question delivery objects');
983
+ }
984
+ database.exec(`
985
+ ${attentionOwnerQuestionDeliverySchema}
986
+ UPDATE evaluation_schema_meta SET value = '17' WHERE key = 'schema-version';
987
+ PRAGMA user_version = 17;
988
+ `);
989
+ }
990
+ if (schemaVersion(database) !== target) {
604
991
  throw new Error('evaluation migration did not reach the current schema');
605
992
  }
993
+ if (target >= 17)
994
+ assertOwnerQuestionSchema(database);
606
995
  database.exec('COMMIT');
607
996
  }
608
997
  catch (error) {
package/lib/sqlite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../src/sqlite.ts"],"names":[],"mappings":"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"}
package/lib/store.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import { AttentionTuningLedger } from './attention-tuning.js';
2
+ import { AttentionOwnerQuestionLedger } from './attention-owner-questions.js';
3
+ import { NotificationOutcomeLedger } from './notification-outcomes.js';
1
4
  import type { EvaluationCanonicalLearningWriterFence, EvaluationEvidenceRef, EvaluationHealth, EvaluationLearningWriterFence, EvaluationLearningWriterFenceResult, EvaluationProjectionOutboxEntry, EvaluationProjectionState, EvaluationScope, ExecutionStatus, ObjectiveStatus, OwnerObjectiveCommand, OwnerObjectiveState, OutcomeEnvelope, OutcomeQuery, OutcomeSourceKind, OutcomeSummary, OutcomeSummaryQuery, ProjectedOutcome, SelfAssessmentInput, StoredSelfAssessment, StoredOutcome, TrustedTaskLearningProjectionReceipt, TrustedTaskLearningProjectionFeedPage, TrustedGoalOutcomeOwnerProof } from './types.js';
2
5
  export type EvaluationStoreErrorCode = 'idempotency-conflict' | 'invalid-input' | 'not-found' | 'version-conflict';
3
6
  export declare class EvaluationStoreError extends Error {
@@ -51,7 +54,7 @@ export declare function evaluationLearningProjectionDigest(input: {
51
54
  }>;
52
55
  }>;
53
56
  projection: Readonly<{
54
- subjectKind: 'automation-run' | 'foreground-turn' | 'goal-step' | 'goal-outcome' | 'outcome';
57
+ subjectKind: 'automation-run' | 'foreground-turn' | 'goal-step' | 'goal-outcome' | 'work-item' | 'outcome';
55
58
  subjectRef: string;
56
59
  disposition: 'upsert' | 'retract';
57
60
  evidenceOutcomeId?: string;
@@ -59,6 +62,12 @@ export declare function evaluationLearningProjectionDigest(input: {
59
62
  }): string;
60
63
  export declare class EvaluationStore {
61
64
  #private;
65
+ /** WP22 read-only per-notification outcome canon. */
66
+ readonly notifications: NotificationOutcomeLedger;
67
+ /** WP22 slice 2 tighten-only attention tuning versions over the notification canon. */
68
+ readonly attention: AttentionTuningLedger;
69
+ /** WP22 slice 4 at-most-once delivery and record-only reply ledger for owner questions. */
70
+ readonly attentionQuestions: AttentionOwnerQuestionLedger;
62
71
  constructor(options: EvaluationStoreOptions);
63
72
  close(): void;
64
73
  getOutcome(scopeInput: EvaluationScope, outcomeIdInput: string): StoredOutcome | undefined;
@@ -71,7 +80,7 @@ export declare class EvaluationStore {
71
80
  */
72
81
  adoptTrustedGoalOutcomeOwnerBaseline(claims: Readonly<import('./types.js').TrustedDeliveryEvaluationClaims>, proof: Readonly<TrustedGoalOutcomeOwnerProof>, verifierOutcome: Readonly<OutcomeEnvelope>): boolean;
73
82
  ownerObjectiveState(scope: EvaluationScope, runId: string, principalRecordId: string, principalVersion: number): OwnerObjectiveState | undefined;
74
- ownerObjectiveState(scope: EvaluationScope, subjectKind: 'automation-run' | 'foreground-turn' | 'goal-outcome', subjectRef: string, principalRecordId: string, principalVersion: number): OwnerObjectiveState | undefined;
83
+ ownerObjectiveState(scope: EvaluationScope, subjectKind: 'automation-run' | 'foreground-turn' | 'goal-outcome' | 'work-item', subjectRef: string, principalRecordId: string, principalVersion: number): OwnerObjectiveState | undefined;
75
84
  private ownerCommandResult;
76
85
  append(input: OutcomeEnvelope, ownerCommand?: Readonly<OwnerObjectiveCommand>): StoredOutcome;
77
86
  listPendingProjections(limitInput?: number, nowInput?: number): EvaluationProjectionOutboxEntry[];
@@ -101,6 +110,8 @@ export declare class EvaluationStore {
101
110
  getAutomationRunLearningProjection(scopeInput: EvaluationScope, runIdInput: string): TrustedTaskLearningProjectionReceipt | undefined;
102
111
  /** Host-only exact current foreground projection, including retractions. */
103
112
  getForegroundLearningProjection(scopeInput: EvaluationScope, inboxIdInput: string): TrustedTaskLearningProjectionReceipt | undefined;
113
+ /** Exact work-item owner-result projection; historical system settlements stay audit-only. */
114
+ getWorkItemLearningProjection(scopeInput: EvaluationScope, itemIdInput: string): TrustedTaskLearningProjectionReceipt | undefined;
104
115
  /** Exact whole-goal lookup by the verifier assessment identity. */
105
116
  getGoalOutcomeLearningProjection(scopeInput: EvaluationScope, assessmentIdInput: string): TrustedTaskLearningProjectionReceipt | undefined;
106
117
  /**