@dsh-enhanced/assistant-automations 0.1.64 → 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.
- package/README.md +34 -1
- package/lib/coordinator.d.ts +15 -0
- package/lib/coordinator.d.ts.map +1 -1
- package/lib/coordinator.js +12 -0
- package/lib/coordinator.js.map +1 -1
- package/lib/host-agent-execution.d.ts +24 -0
- package/lib/host-agent-execution.d.ts.map +1 -0
- package/lib/host-agent-execution.js +248 -0
- package/lib/host-agent-execution.js.map +1 -0
- package/lib/host-executors.d.ts +10 -1
- package/lib/host-executors.d.ts.map +1 -1
- package/lib/host-executors.js +37 -7
- package/lib/host-executors.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/native-agent-execution.d.ts +123 -0
- package/lib/native-agent-execution.d.ts.map +1 -0
- package/lib/native-agent-execution.js +922 -0
- package/lib/native-agent-execution.js.map +1 -0
- package/lib/operator.d.ts +56 -2
- package/lib/operator.d.ts.map +1 -1
- package/lib/operator.js +307 -8
- package/lib/operator.js.map +1 -1
- package/lib/runner.d.ts +2 -86
- package/lib/runner.d.ts.map +1 -1
- package/lib/runner.js +2 -777
- package/lib/runner.js.map +1 -1
- package/lib/schedule.d.ts +2 -0
- package/lib/schedule.d.ts.map +1 -1
- package/lib/schedule.js +8 -1
- package/lib/schedule.js.map +1 -1
- package/lib/service.d.ts +38 -4
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +112 -8
- package/lib/service.js.map +1 -1
- package/lib/sqlite.d.ts +1 -1
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +53 -2
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +47 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +221 -10
- package/lib/store.js.map +1 -1
- package/lib/types.d.ts +59 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +13 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-agent-execution.js","sourceRoot":"","sources":["../src/native-agent-execution.ts"],"names":[],"mappings":"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"}
|
package/lib/operator.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { AutomationRecord, AutomationStatus } from './types.js';
|
|
1
|
+
import type { AutomationDefinition, AutomationRecord, AutomationStatus } from './types.js';
|
|
2
|
+
export declare const automationRetirementSnapshotProtocol: "assistant-automations/retirement-snapshot/v1";
|
|
2
3
|
export declare const automationsOperatorSnapshotProtocol: "assistant-automations-operator-snapshot/v1";
|
|
3
4
|
export type AutomationOperatorSnapshotErrorCode = 'database-busy' | 'database-corrupt' | 'database-drift' | 'database-missing' | 'database-unavailable' | 'invalid-path' | 'schema-unsupported' | 'unsafe-parent' | 'unsafe-path';
|
|
4
5
|
export declare class AutomationOperatorSnapshotError extends Error {
|
|
@@ -26,7 +27,7 @@ export interface AutomationOperatorRecord {
|
|
|
26
27
|
}
|
|
27
28
|
export interface AutomationsOperatorSnapshot {
|
|
28
29
|
readonly protocol: typeof automationsOperatorSnapshotProtocol;
|
|
29
|
-
readonly schemaVersion:
|
|
30
|
+
readonly schemaVersion: 17;
|
|
30
31
|
readonly database: AutomationOperatorFileIdentity;
|
|
31
32
|
readonly sidecars: Readonly<{
|
|
32
33
|
wal: AutomationOperatorFileIdentity | null;
|
|
@@ -40,6 +41,54 @@ export interface AutomationsOperatorSnapshot {
|
|
|
40
41
|
/** Complete definition inventory, including paused and deleted rows. */
|
|
41
42
|
readonly records: readonly AutomationOperatorRecord[];
|
|
42
43
|
}
|
|
44
|
+
/** Privileged upgrade proof: definitions can contain task prompts and authority. */
|
|
45
|
+
export interface AutomationRetirementDefinitionRecord extends AutomationOperatorRecord {
|
|
46
|
+
readonly definition: AutomationDefinition;
|
|
47
|
+
readonly createIdempotencyKeyDigest: string;
|
|
48
|
+
/** Exact typed original columns, excluding only status/next-run/update/version. */
|
|
49
|
+
readonly immutableDigest: string;
|
|
50
|
+
}
|
|
51
|
+
export interface AutomationRetirementReceipt {
|
|
52
|
+
readonly owner: string;
|
|
53
|
+
readonly automationId: string;
|
|
54
|
+
readonly operationId: string;
|
|
55
|
+
readonly definitionHash: string;
|
|
56
|
+
readonly expectedVersion: number;
|
|
57
|
+
readonly definitionVersion: number;
|
|
58
|
+
readonly automationStatus: 'paused';
|
|
59
|
+
readonly reason: 'owner-revoked';
|
|
60
|
+
readonly evidenceDigest: string;
|
|
61
|
+
readonly retiredAt: number;
|
|
62
|
+
}
|
|
63
|
+
export interface AutomationRetirementHistoryTable {
|
|
64
|
+
readonly name: string;
|
|
65
|
+
readonly rowCount: number;
|
|
66
|
+
readonly digest: string;
|
|
67
|
+
/** Only schema 17 automation_runs: exact historical column projection. */
|
|
68
|
+
readonly legacyDigest?: string;
|
|
69
|
+
readonly nonNullQuiescentCount?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface AutomationRetirementSchemaEntry {
|
|
72
|
+
readonly type: 'table' | 'index' | 'trigger';
|
|
73
|
+
readonly name: string;
|
|
74
|
+
readonly table: string;
|
|
75
|
+
/** Exact SQLite schema SQL; implicit indexes have null SQL. */
|
|
76
|
+
readonly sql: string | null;
|
|
77
|
+
}
|
|
78
|
+
export interface AutomationRetirementSnapshot {
|
|
79
|
+
readonly protocol: typeof automationRetirementSnapshotProtocol;
|
|
80
|
+
readonly schemaVersion: 15 | 16 | 17;
|
|
81
|
+
readonly database: AutomationOperatorFileIdentity;
|
|
82
|
+
readonly sidecars: AutomationsOperatorSnapshot['sidecars'];
|
|
83
|
+
readonly storageDigest: string;
|
|
84
|
+
readonly inFlightCount: number;
|
|
85
|
+
readonly records: readonly AutomationRetirementDefinitionRecord[];
|
|
86
|
+
readonly retirements: readonly AutomationRetirementReceipt[];
|
|
87
|
+
readonly historyTables: readonly AutomationRetirementHistoryTable[];
|
|
88
|
+
readonly schemaEntries: readonly AutomationRetirementSchemaEntry[];
|
|
89
|
+
readonly schemaDigest: string;
|
|
90
|
+
readonly snapshotDigest: string;
|
|
91
|
+
}
|
|
43
92
|
/** Pure canonical digest used by both writers and trusted local attestation. */
|
|
44
93
|
export declare function automationDefinitionDigest(definition: unknown): string;
|
|
45
94
|
/**
|
|
@@ -63,6 +112,11 @@ export declare function parseWritableProcLock(line: string): {
|
|
|
63
112
|
* checkpoints, or changes journal mode, and fails closed if its source drifts.
|
|
64
113
|
*/
|
|
65
114
|
export declare function inspectAutomationsOperatorSnapshot(databasePath: string): AutomationsOperatorSnapshot;
|
|
115
|
+
/**
|
|
116
|
+
* Privileged read-only v15/v16 upgrade proof. Never migrates or opens a writable
|
|
117
|
+
* SQLite handle. History bodies remain private; their exact typed bytes are hashed.
|
|
118
|
+
*/
|
|
119
|
+
export declare function inspectAutomationRetirementSnapshot(databasePath: string): AutomationRetirementSnapshot;
|
|
66
120
|
/** Compatibility name for callers built against the earlier inventory proposal. */
|
|
67
121
|
export declare const inspectAutomationInventoryLocally: typeof inspectAutomationsOperatorSnapshot;
|
|
68
122
|
/** Read-only local compatibility projection; never starts the scheduler. */
|
package/lib/operator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}
|
package/lib/operator.js
CHANGED
|
@@ -8,6 +8,7 @@ import { pathToFileURL } from 'node:url';
|
|
|
8
8
|
import { automationSchemaVersion } from './sqlite.js';
|
|
9
9
|
import { assertNoMacProcessConnection, macCleanupPinnedDirectory, macConnectionInodes, macExclusiveWriter } from './operator-macos.js';
|
|
10
10
|
import { normalizeAutomationDefinition } from './store.js';
|
|
11
|
+
export const automationRetirementSnapshotProtocol = 'assistant-automations/retirement-snapshot/v1';
|
|
11
12
|
export const automationsOperatorSnapshotProtocol = 'assistant-automations-operator-snapshot/v1';
|
|
12
13
|
export class AutomationOperatorSnapshotError extends Error {
|
|
13
14
|
code;
|
|
@@ -785,7 +786,274 @@ function publicRecord(record) {
|
|
|
785
786
|
runningTaskCount: record.runningTaskCount,
|
|
786
787
|
});
|
|
787
788
|
}
|
|
788
|
-
|
|
789
|
+
const retirementColumns = {
|
|
790
|
+
"automation_attempts": "attempt_number:INTEGER automation_snapshot_hash:TEXT automation_snapshot_json:TEXT created_at:INTEGER failure_code:TEXT fencing_token:INTEGER finished_at:INTEGER id:TEXT owner_id:TEXT session_id:TEXT started_at:INTEGER status:TEXT task_id:TEXT updated_at:INTEGER",
|
|
791
|
+
"automation_changes": "automation_id:TEXT created_at:INTEGER expected_version:INTEGER idempotency_key:TEXT input_hash:TEXT operation:TEXT result_json:TEXT",
|
|
792
|
+
"automation_circuit_operations": "automation_id:TEXT created_at:INTEGER definition_hash:TEXT expected_circuit_version:INTEGER input_hash:TEXT lease_ms:INTEGER operation_id:TEXT result_json:TEXT system_owner:TEXT",
|
|
793
|
+
"automation_circuits": "automation_id:TEXT definition_hash:TEXT failure_class:TEXT failure_code:TEXT failure_phase:TEXT opened_at:INTEGER probe_lease_until:INTEGER probe_task_id:TEXT probe_token:TEXT state:TEXT updated_at:INTEGER version:INTEGER",
|
|
794
|
+
"automation_definitions": "create_idempotency_key:TEXT created_at:INTEGER definition_hash:TEXT definition_json:TEXT id:TEXT next_run_at:INTEGER status:TEXT system_owner:TEXT updated_at:INTEGER version:INTEGER",
|
|
795
|
+
"automation_evaluation_outbox": "attempt_count:INTEGER created_at:INTEGER id:TEXT last_error_code:TEXT last_failure_at:INTEGER next_attempt_at:INTEGER observation_kind:TEXT payload_json:TEXT run_id:TEXT status:TEXT updated_at:INTEGER",
|
|
796
|
+
"automation_growth_artifacts": "approval_diff_hash:TEXT artifact_id:TEXT automation_id:TEXT canary_evaluation_digest:TEXT canary_evaluation_id:TEXT canary_evaluation_proof_json:TEXT canary_run_id:TEXT canary_task_id:TEXT candidate_digest:TEXT candidate_id:TEXT candidate_revision:INTEGER created_at:INTEGER deadline_at:INTEGER definition_hash:TEXT definition_version:INTEGER evidence_count:INTEGER evidence_digest:TEXT experiment_id:TEXT owner_binding_id:TEXT preset:TEXT principal_id:TEXT privacy_attestation_json:TEXT proposal_id:TEXT shadow_task_id:TEXT state:TEXT steps_json:TEXT template_digest:TEXT template_ref:TEXT updated_at:INTEGER workspace:TEXT",
|
|
797
|
+
"automation_growth_operations": "created_at:INTEGER operation_id:TEXT operation_kind:TEXT payload_digest:TEXT receipt_json:TEXT status:TEXT updated_at:INTEGER",
|
|
798
|
+
"automation_incidents": "alert_ref:TEXT alert_status:TEXT automation_id:TEXT definition_hash:TEXT failure_class:TEXT failure_code:TEXT failure_phase:TEXT id:TEXT lifecycle_generation:INTEGER notification_route_id:TEXT opened_at:INTEGER presentation_revision:INTEGER resolved_at:INTEGER retryability:TEXT run_id:TEXT side_effect_state:TEXT stage:TEXT state:TEXT updated_at:INTEGER version:INTEGER",
|
|
799
|
+
"automation_occurrences": "automation_id:TEXT created_at:INTEGER dry_run:INTEGER external_event_digest:TEXT external_event_json:TEXT id:TEXT reason:TEXT scheduled_at:INTEGER status:TEXT trigger_key:TEXT trigger_kind:TEXT updated_at:INTEGER",
|
|
800
|
+
"automation_proposals": "change_hash:TEXT change_json:TEXT created_at:INTEGER dispatch_json:TEXT expires_at:INTEGER id:TEXT idempotency_key:TEXT policy_proposal_id:TEXT principal:TEXT requester:TEXT result_automation_id:TEXT status:TEXT ttl_ms:INTEGER updated_at:INTEGER version:INTEGER",
|
|
801
|
+
"automation_runs": "artifact_ref:TEXT attempt_id:TEXT automation_id:TEXT created_at:INTEGER definition_hash:TEXT delivery_ref:TEXT delivery_status:TEXT diagnostic_json:TEXT evidence_json:TEXT evidence_status:TEXT execution_mode:TEXT id:TEXT occurrence_id:TEXT output_preview:TEXT session_id:TEXT status:TEXT task_id:TEXT updated_at:INTEGER usage_json:TEXT",
|
|
802
|
+
"automation_system_reconciles": "automation_id:TEXT created_at:INTEGER idempotency_key:TEXT input_hash:TEXT result_json:TEXT system_owner:TEXT",
|
|
803
|
+
"automation_system_retirements": "automation_id:TEXT definition_hash:TEXT definition_version:INTEGER evidence_digest:TEXT expected_version:INTEGER operation_id:TEXT reason:TEXT retired_at:INTEGER system_owner:TEXT",
|
|
804
|
+
"automation_task_acceptance": "binding_generation:INTEGER binding_id:TEXT binding_version:INTEGER contract_digest:TEXT contract_id:TEXT dispatched_at:INTEGER preset:TEXT principal_record_id:TEXT principal_version:INTEGER quiescent:INTEGER submitted:INTEGER task_id:TEXT workspace:TEXT",
|
|
805
|
+
"automation_tasks": "attempt_count:INTEGER automation_id:TEXT cancel_requested:INTEGER claimed_by:TEXT created_at:INTEGER fencing_token:INTEGER id:TEXT lease_until:INTEGER occurrence_id:TEXT status:TEXT updated_at:INTEGER",
|
|
806
|
+
"duty_lease": "fencing_token:INTEGER lease_until:INTEGER owner_id:TEXT singleton:INTEGER updated_at:INTEGER"
|
|
807
|
+
};
|
|
808
|
+
const retirementIndexes = {
|
|
809
|
+
"automation_circuit_operation_scope": "automation_circuit_operations",
|
|
810
|
+
"automation_due": "automation_definitions",
|
|
811
|
+
"automation_evaluation_dispatch": "automation_evaluation_outbox",
|
|
812
|
+
"automation_growth_artifact_state": "automation_growth_artifacts",
|
|
813
|
+
"automation_incident_alert_outbox": "automation_incidents",
|
|
814
|
+
"automation_occurrence_history": "automation_occurrences",
|
|
815
|
+
"automation_open_circuits": "automation_circuits",
|
|
816
|
+
"automation_open_incidents": "automation_incidents",
|
|
817
|
+
"automation_task_claim": "automation_tasks"
|
|
818
|
+
};
|
|
819
|
+
const retirementAdditions = {
|
|
820
|
+
"automation_system_retirements": "CREATE TABLE automation_system_retirements (\n system_owner TEXT NOT NULL,\n automation_id TEXT NOT NULL,\n operation_id TEXT NOT NULL UNIQUE,\n definition_hash TEXT NOT NULL CHECK(length(definition_hash) = 64),\n expected_version INTEGER NOT NULL CHECK(expected_version >= 1),\n definition_version INTEGER NOT NULL CHECK(definition_version = expected_version + 1),\n reason TEXT NOT NULL CHECK(reason = 'owner-revoked'),\n evidence_digest TEXT NOT NULL CHECK(length(evidence_digest) = 64),\n retired_at INTEGER NOT NULL CHECK(retired_at >= 0),\n PRIMARY KEY(system_owner, automation_id)\n ) STRICT",
|
|
821
|
+
"automation_retired_no_activate_insert": "CREATE TRIGGER automation_retired_no_activate_insert BEFORE INSERT ON automation_definitions\n WHEN NEW.status = 'active' AND EXISTS (\n SELECT 1 FROM automation_system_retirements WHERE system_owner = NEW.system_owner AND automation_id = NEW.id\n ) BEGIN SELECT RAISE(ABORT, 'system automation is retired'); END",
|
|
822
|
+
"automation_retired_no_activate_update": "CREATE TRIGGER automation_retired_no_activate_update BEFORE UPDATE ON automation_definitions\n WHEN NEW.status = 'active' AND EXISTS (\n SELECT 1 FROM automation_system_retirements WHERE system_owner = NEW.system_owner AND automation_id = NEW.id\n ) BEGIN SELECT RAISE(ABORT, 'system automation is retired'); END",
|
|
823
|
+
"automation_retirements_no_delete": "CREATE TRIGGER automation_retirements_no_delete BEFORE DELETE ON automation_system_retirements\n BEGIN SELECT RAISE(ABORT, 'system retirement is permanent'); END",
|
|
824
|
+
"automation_retirements_no_update": "CREATE TRIGGER automation_retirements_no_update BEFORE UPDATE ON automation_system_retirements\n BEGIN SELECT RAISE(ABORT, 'system retirement is immutable'); END"
|
|
825
|
+
};
|
|
826
|
+
const quiescenceAddition = {
|
|
827
|
+
automation_run_quiescence_immutable: `CREATE TRIGGER automation_run_quiescence_immutable
|
|
828
|
+
BEFORE UPDATE OF quiescent ON automation_runs WHEN NEW.quiescent IS NOT OLD.quiescent
|
|
829
|
+
BEGIN SELECT RAISE(ABORT, 'run quiescence observation is immutable'); END`,
|
|
830
|
+
};
|
|
831
|
+
function normalizedSchemaSql(sql) {
|
|
832
|
+
// Whitespace normalization must never rewrite string or quoted identifier bytes.
|
|
833
|
+
return sql.replace(/'(?:''|[^'])*'|"(?:""|[^"])*"|\s+/gu, token => /^\s/u.test(token) ? ' ' : token).trim();
|
|
834
|
+
}
|
|
835
|
+
function inspectRetirementSchema(database, version) {
|
|
836
|
+
const raw = database.prepare(`SELECT type, name, tbl_name AS "table", sql
|
|
837
|
+
FROM sqlite_schema ORDER BY type COLLATE BINARY, name COLLATE BINARY`).all();
|
|
838
|
+
const entries = [];
|
|
839
|
+
const expectedTables = Object.keys(retirementColumns).filter(name => version >= 16 || name !== 'automation_system_retirements');
|
|
840
|
+
const additions = version === 17
|
|
841
|
+
? { ...retirementAdditions, ...quiescenceAddition } : retirementAdditions;
|
|
842
|
+
const seenTables = new Set();
|
|
843
|
+
const seenIndexes = new Set();
|
|
844
|
+
const seenAdditions = new Set();
|
|
845
|
+
for (const row of raw) {
|
|
846
|
+
if ((row.type !== 'table' && row.type !== 'index' && row.type !== 'trigger')
|
|
847
|
+
|| typeof row.name !== 'string' || typeof row.table !== 'string'
|
|
848
|
+
|| (row.sql !== null && typeof row.sql !== 'string') || !expectedTables.includes(row.table)) {
|
|
849
|
+
fail('schema-unsupported', 'unreviewed schema entry');
|
|
850
|
+
}
|
|
851
|
+
const entry = row;
|
|
852
|
+
if (entry.type === 'table') {
|
|
853
|
+
if (entry.name !== entry.table || entry.sql === null || !expectedTables.includes(entry.name)) {
|
|
854
|
+
fail('schema-unsupported', 'unreviewed table');
|
|
855
|
+
}
|
|
856
|
+
const columns = database.prepare(`PRAGMA table_xinfo("${entry.name}")`).all();
|
|
857
|
+
const expectedColumns = version === 17 && entry.name === 'automation_runs'
|
|
858
|
+
? `${retirementColumns[entry.name]} quiescent:INTEGER`.split(' ').sort().join(' ')
|
|
859
|
+
: retirementColumns[entry.name];
|
|
860
|
+
if (columns.some(column => column.hidden !== 0)
|
|
861
|
+
|| columns.map(column => `${column.name}:${column.type}`).sort().join(' ') !== expectedColumns) {
|
|
862
|
+
fail('schema-unsupported', 'unreviewed table columns');
|
|
863
|
+
}
|
|
864
|
+
if (version === 17 && entry.name === 'automation_runs') {
|
|
865
|
+
const quiescent = columns.find(column => column.name === 'quiescent');
|
|
866
|
+
if (quiescent?.notnull !== 0 || quiescent.dflt_value !== null || quiescent.pk !== 0
|
|
867
|
+
|| !/\bquiescent INTEGER CHECK\s*\(quiescent IN\s*\(0, 1\)\)/u.test(normalizedSchemaSql(entry.sql))) {
|
|
868
|
+
fail('schema-unsupported', 'run quiescence observation schema changed');
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
seenTables.add(entry.name);
|
|
872
|
+
}
|
|
873
|
+
else if (entry.type === 'index') {
|
|
874
|
+
if (entry.sql === null) {
|
|
875
|
+
if (!new RegExp(`^sqlite_autoindex_${entry.table}_[1-9][0-9]*$`, 'u').test(entry.name)) {
|
|
876
|
+
fail('schema-unsupported', 'unreviewed implicit index');
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
else if (retirementIndexes[entry.name] !== entry.table)
|
|
880
|
+
fail('schema-unsupported', 'unreviewed index');
|
|
881
|
+
else
|
|
882
|
+
seenIndexes.add(entry.name);
|
|
883
|
+
}
|
|
884
|
+
const addition = additions[entry.name];
|
|
885
|
+
if (entry.type === 'trigger' || addition !== undefined) {
|
|
886
|
+
if (version < 16 || addition === undefined || entry.sql === null
|
|
887
|
+
|| normalizedSchemaSql(entry.sql) !== normalizedSchemaSql(addition)) {
|
|
888
|
+
fail('schema-unsupported', 'retirement schema protection is missing or changed');
|
|
889
|
+
}
|
|
890
|
+
seenAdditions.add(entry.name);
|
|
891
|
+
}
|
|
892
|
+
entries.push({ type: entry.type, name: entry.name, table: entry.table, sql: entry.sql });
|
|
893
|
+
}
|
|
894
|
+
const tableKinds = database.prepare('PRAGMA table_list').all().filter(row => row.schema === 'main' && row.name !== 'sqlite_schema');
|
|
895
|
+
if (expectedTables.some(name => !seenTables.has(name))
|
|
896
|
+
|| Object.keys(retirementIndexes).some(name => !seenIndexes.has(name))
|
|
897
|
+
|| (version >= 16 && Object.keys(additions).some(name => !seenAdditions.has(name)))
|
|
898
|
+
|| tableKinds.length !== expectedTables.length
|
|
899
|
+
|| tableKinds.some(row => row.type !== 'table' || row.strict !== 1)) {
|
|
900
|
+
fail('schema-unsupported', 'reviewed schema is incomplete');
|
|
901
|
+
}
|
|
902
|
+
return freeze(entries);
|
|
903
|
+
}
|
|
904
|
+
/** Length framing and type tags make NULL/text/BLOB/integers/reals unambiguous. */
|
|
905
|
+
function typedRowDigest(table, columns, row) {
|
|
906
|
+
const hash = createHash('sha256');
|
|
907
|
+
hash.update(JSON.stringify({ protocol: 'assistant-automations/retirement-row/v1', table, columns }));
|
|
908
|
+
for (let index = 0; index < columns.length; index++) {
|
|
909
|
+
const kind = row[`t${index}`];
|
|
910
|
+
const value = row[`v${index}`];
|
|
911
|
+
let bytes;
|
|
912
|
+
if (kind === 'null' && value === null)
|
|
913
|
+
bytes = Buffer.alloc(0);
|
|
914
|
+
else if (kind === 'integer' && typeof value === 'bigint')
|
|
915
|
+
bytes = Buffer.from(value.toString(), 'ascii');
|
|
916
|
+
else if (kind === 'real' && typeof value === 'number') {
|
|
917
|
+
bytes = Buffer.allocUnsafe(8);
|
|
918
|
+
bytes.writeDoubleBE(value);
|
|
919
|
+
}
|
|
920
|
+
else if ((kind === 'text' || kind === 'blob') && value instanceof Uint8Array)
|
|
921
|
+
bytes = Buffer.from(value);
|
|
922
|
+
else
|
|
923
|
+
return fail('database-corrupt', 'history value has an unsupported SQLite representation');
|
|
924
|
+
hash.update(`\0${kind}:${bytes.length}:`);
|
|
925
|
+
hash.update(bytes);
|
|
926
|
+
}
|
|
927
|
+
return hash.digest('hex');
|
|
928
|
+
}
|
|
929
|
+
function typedProjection(columns) {
|
|
930
|
+
return columns.map((column, index) => `typeof("${column}") AS "t${index}",
|
|
931
|
+
CASE WHEN typeof("${column}") = 'text' THEN CAST("${column}" AS BLOB) ELSE "${column}" END AS "v${index}"`).join(', ');
|
|
932
|
+
}
|
|
933
|
+
function inspectHistoryTable(database, name, columns) {
|
|
934
|
+
// Sort columns independently of migration-era physical column order. Every
|
|
935
|
+
// actual column is included; inspectRetirementSchema validated the full set.
|
|
936
|
+
const statement = database.prepare(`SELECT ${typedProjection(columns)} FROM "${name}"`);
|
|
937
|
+
statement.setReadBigInts(true);
|
|
938
|
+
const rows = [];
|
|
939
|
+
// Bound memory by fixed-size digests, not stored task/message bodies. Sorting
|
|
940
|
+
// row hashes defines a canonical multiset and supports WITHOUT ROWID tables.
|
|
941
|
+
for (const row of statement.iterate())
|
|
942
|
+
rows.push(typedRowDigest(name, columns, row));
|
|
943
|
+
const hash = createHash('sha256');
|
|
944
|
+
hash.update(JSON.stringify({ protocol: 'assistant-automations/retirement-table/v1', name, columns, rowCount: rows.length }));
|
|
945
|
+
for (const digest of rows.sort())
|
|
946
|
+
hash.update(`\0${digest}`);
|
|
947
|
+
return freeze({ name, rowCount: rows.length, digest: hash.digest('hex') });
|
|
948
|
+
}
|
|
949
|
+
function inspectRetirementDefinitions(database, records) {
|
|
950
|
+
const columns = ['id', 'system_owner', 'definition_hash', 'definition_json', 'created_at', 'create_idempotency_key'];
|
|
951
|
+
const statement = database.prepare(`SELECT create_idempotency_key, ${typedProjection(columns)}
|
|
952
|
+
FROM automation_definitions WHERE id = ?`);
|
|
953
|
+
statement.setReadBigInts(true);
|
|
954
|
+
return freeze(records.map(record => {
|
|
955
|
+
const row = statement.get(record.id);
|
|
956
|
+
if (row === undefined || !canonicalText(row.create_idempotency_key, 500)) {
|
|
957
|
+
return fail('database-corrupt', 'definition creation identity is invalid');
|
|
958
|
+
}
|
|
959
|
+
// SQLite TEXT decoding must not collapse distinct malformed UTF-8 bytes
|
|
960
|
+
// into the same JavaScript replacement characters in the public inventory.
|
|
961
|
+
for (const [index, value] of [record.id, record.owner ?? null, record.definitionHash,
|
|
962
|
+
JSON.stringify(record.definition), null, row.create_idempotency_key].entries()) {
|
|
963
|
+
if (index === 4 || value === null)
|
|
964
|
+
continue;
|
|
965
|
+
const bytes = row[`v${index}`];
|
|
966
|
+
if (!(bytes instanceof Uint8Array) || !Buffer.from(bytes).equals(Buffer.from(value))) {
|
|
967
|
+
return fail('database-corrupt', 'definition text bytes are not canonical UTF-8');
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
const createIdempotencyKeyDigest = typedRowDigest('automation_definitions/create-idempotency-key', ['create_idempotency_key'], { t0: row.t5, v0: row.v5 });
|
|
971
|
+
return { ...record, createIdempotencyKeyDigest, immutableDigest: typedRowDigest('automation_definitions', columns, row) };
|
|
972
|
+
}));
|
|
973
|
+
}
|
|
974
|
+
function retirementDeleteIsRecorded(database, record, definitionVersion) {
|
|
975
|
+
// changeApproved(delete) is the only legal transition after retirement: one
|
|
976
|
+
// version increment, the same definition/owner, and its atomic change receipt.
|
|
977
|
+
// Match the exact stored bytes of the writer's public AutomationRecord so an
|
|
978
|
+
// arbitrary deleted status, version or timestamp cannot stand in for that API.
|
|
979
|
+
if (record.status !== 'deleted' || record.version !== definitionVersion + 1)
|
|
980
|
+
return false;
|
|
981
|
+
const result = JSON.stringify({
|
|
982
|
+
id: record.id, ...(record.owner === undefined ? {} : { owner: record.owner }),
|
|
983
|
+
definition: record.definition, status: record.status, createdAt: record.createdAt,
|
|
984
|
+
updatedAt: record.updatedAt, version: record.version,
|
|
985
|
+
});
|
|
986
|
+
const changes = database.prepare(`SELECT input_hash FROM automation_changes
|
|
987
|
+
WHERE automation_id = ? AND operation = 'delete' AND expected_version = ?
|
|
988
|
+
AND created_at = ? AND CAST(result_json AS BLOB) = ? LIMIT 2`)
|
|
989
|
+
.all(record.id, definitionVersion, record.updatedAt, Buffer.from(result));
|
|
990
|
+
return changes.length === 1 && typeof changes[0]?.input_hash === 'string' && digestPattern.test(changes[0].input_hash);
|
|
991
|
+
}
|
|
992
|
+
function inspectRetirements(database, records) {
|
|
993
|
+
const definitions = new Map(records.map(record => [record.id, record]));
|
|
994
|
+
const operations = new Set();
|
|
995
|
+
const tuples = new Set();
|
|
996
|
+
return freeze(database.prepare(`SELECT *, CAST(system_owner AS BLOB) AS owner_bytes,
|
|
997
|
+
CAST(automation_id AS BLOB) AS automation_bytes, CAST(operation_id AS BLOB) AS operation_bytes
|
|
998
|
+
FROM automation_system_retirements
|
|
999
|
+
ORDER BY system_owner COLLATE BINARY, automation_id COLLATE BINARY`).all().map(row => {
|
|
1000
|
+
if (!canonicalText(row.system_owner, 200) || !canonicalText(row.automation_id, 500)
|
|
1001
|
+
|| !canonicalText(row.operation_id, 500) || typeof row.definition_hash !== 'string' || !digestPattern.test(row.definition_hash)
|
|
1002
|
+
|| !safeInteger(row.expected_version, 1) || !safeInteger(row.definition_version, 2)
|
|
1003
|
+
|| row.definition_version !== row.expected_version + 1 || row.reason !== 'owner-revoked'
|
|
1004
|
+
|| typeof row.evidence_digest !== 'string' || !digestPattern.test(row.evidence_digest) || !safeInteger(row.retired_at)) {
|
|
1005
|
+
return fail('database-corrupt', 'system retirement receipt is invalid');
|
|
1006
|
+
}
|
|
1007
|
+
for (const [value, bytes] of [[row.system_owner, row.owner_bytes], [row.automation_id, row.automation_bytes],
|
|
1008
|
+
[row.operation_id, row.operation_bytes]]) {
|
|
1009
|
+
if (typeof value !== 'string' || !(bytes instanceof Uint8Array) || !Buffer.from(bytes).equals(Buffer.from(value))) {
|
|
1010
|
+
return fail('database-corrupt', 'retirement text bytes are not canonical UTF-8');
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
const record = definitions.get(row.automation_id);
|
|
1014
|
+
const tuple = JSON.stringify([row.system_owner, row.automation_id]);
|
|
1015
|
+
if (operations.has(row.operation_id) || tuples.has(tuple)) {
|
|
1016
|
+
return fail('database-corrupt', 'system retirement receipt identity is duplicated');
|
|
1017
|
+
}
|
|
1018
|
+
// Permanent markers outlive physical definition deletion. If the row still
|
|
1019
|
+
// exists, accept only the exact retired state or its recorded formal delete.
|
|
1020
|
+
if (record !== undefined && (record.owner !== row.system_owner || record.definitionHash !== row.definition_hash
|
|
1021
|
+
|| record.nextRunAt !== undefined
|
|
1022
|
+
|| !(record.status === 'paused' && record.version === row.definition_version && record.updatedAt === row.retired_at
|
|
1023
|
+
|| retirementDeleteIsRecorded(database, record, row.definition_version)))) {
|
|
1024
|
+
return fail('database-corrupt', 'system retirement receipt is not bound to its exact definition');
|
|
1025
|
+
}
|
|
1026
|
+
operations.add(row.operation_id);
|
|
1027
|
+
tuples.add(tuple);
|
|
1028
|
+
return {
|
|
1029
|
+
owner: row.system_owner, automationId: row.automation_id, operationId: row.operation_id,
|
|
1030
|
+
definitionHash: row.definition_hash, expectedVersion: row.expected_version, definitionVersion: row.definition_version,
|
|
1031
|
+
automationStatus: 'paused', reason: 'owner-revoked', evidenceDigest: row.evidence_digest, retiredAt: row.retired_at,
|
|
1032
|
+
};
|
|
1033
|
+
}));
|
|
1034
|
+
}
|
|
1035
|
+
function retirementContents(database, version, records) {
|
|
1036
|
+
const schemaEntries = inspectRetirementSchema(database, version);
|
|
1037
|
+
const schemaDigest = sha256(JSON.stringify({ protocol: 'assistant-automations/retirement-schema/v1', schemaEntries }));
|
|
1038
|
+
const historyTables = Object.keys(retirementColumns).filter(name => name !== 'automation_definitions'
|
|
1039
|
+
&& name !== 'automation_system_retirements').sort().map(name => {
|
|
1040
|
+
const columns = retirementColumns[name].split(' ').map(column => column.split(':')[0]);
|
|
1041
|
+
const legacy = inspectHistoryTable(database, name, columns);
|
|
1042
|
+
if (version !== 17 || name !== 'automation_runs')
|
|
1043
|
+
return legacy;
|
|
1044
|
+
const count = database.prepare('SELECT COUNT(*) AS count FROM automation_runs WHERE quiescent IS NOT NULL').get()?.count;
|
|
1045
|
+
if (!safeInteger(count))
|
|
1046
|
+
fail('database-corrupt', 'invalid run quiescence observation count');
|
|
1047
|
+
return freeze({ ...inspectHistoryTable(database, name, [...columns, 'quiescent'].sort()),
|
|
1048
|
+
legacyDigest: legacy.digest, nonNullQuiescentCount: count });
|
|
1049
|
+
});
|
|
1050
|
+
return freeze({
|
|
1051
|
+
records: inspectRetirementDefinitions(database, records),
|
|
1052
|
+
retirements: version === 15 ? [] : inspectRetirements(database, records),
|
|
1053
|
+
historyTables, schemaEntries, schemaDigest,
|
|
1054
|
+
});
|
|
1055
|
+
}
|
|
1056
|
+
function readSnapshot(databasePath, retirement = false) {
|
|
789
1057
|
const path = privateDatabasePath(databasePath);
|
|
790
1058
|
// Pin the private parent directory for the whole snapshot so an ancestor
|
|
791
1059
|
// rename or a same-name directory swap cannot retarget the database path
|
|
@@ -943,8 +1211,9 @@ function readSnapshot(databasePath) {
|
|
|
943
1211
|
if (queryOnly !== 1)
|
|
944
1212
|
fail('database-unavailable', 'read-only guard was not enabled');
|
|
945
1213
|
const version = database.prepare('PRAGMA user_version').get().user_version;
|
|
946
|
-
if (version !== automationSchemaVersion)
|
|
947
|
-
fail('schema-unsupported', `expected schema ${automationSchemaVersion}`);
|
|
1214
|
+
if (version !== automationSchemaVersion && !(retirement && (version === 15 || version === 16))) {
|
|
1215
|
+
fail('schema-unsupported', retirement ? 'expected schema 15, 16 or 17' : `expected schema ${automationSchemaVersion}`);
|
|
1216
|
+
}
|
|
948
1217
|
const check = database.prepare('PRAGMA quick_check').all();
|
|
949
1218
|
if (check.length !== 1 || check[0]?.quick_check !== 'ok')
|
|
950
1219
|
fail('database-corrupt', 'SQLite quick_check failed');
|
|
@@ -975,6 +1244,10 @@ function readSnapshot(databasePath) {
|
|
|
975
1244
|
if (foreignKeys.length !== 0)
|
|
976
1245
|
fail('database-corrupt', 'foreign-key integrity check failed');
|
|
977
1246
|
const records = freeze(internalRecords.map(publicRecord));
|
|
1247
|
+
const proof = retirement ? retirementContents(database, version, internalRecords) : undefined;
|
|
1248
|
+
// History scans can lazily open SQLite resources as well.
|
|
1249
|
+
if (inodeBindSupported)
|
|
1250
|
+
assertConnectionBound(bound, selfDescriptors());
|
|
978
1251
|
database.exec('ROLLBACK');
|
|
979
1252
|
transaction = false;
|
|
980
1253
|
database.close();
|
|
@@ -990,14 +1263,14 @@ function readSnapshot(databasePath) {
|
|
|
990
1263
|
}));
|
|
991
1264
|
const inventoryDigest = sha256(JSON.stringify({
|
|
992
1265
|
protocol: automationsOperatorSnapshotProtocol,
|
|
993
|
-
schemaVersion:
|
|
1266
|
+
schemaVersion: 17,
|
|
994
1267
|
storageDigest,
|
|
995
1268
|
inFlightCount: inFlight.count,
|
|
996
1269
|
records,
|
|
997
1270
|
}));
|
|
998
1271
|
const snapshot = freeze({
|
|
999
1272
|
protocol: automationsOperatorSnapshotProtocol,
|
|
1000
|
-
schemaVersion:
|
|
1273
|
+
schemaVersion: 17,
|
|
1001
1274
|
database: identity(source),
|
|
1002
1275
|
sidecars: freeze({ wal: wal === null ? null : identity(wal), shm: shm === null ? null : identity(shm) }),
|
|
1003
1276
|
storageDigest,
|
|
@@ -1005,7 +1278,23 @@ function readSnapshot(databasePath) {
|
|
|
1005
1278
|
inventoryDigest,
|
|
1006
1279
|
records,
|
|
1007
1280
|
});
|
|
1008
|
-
|
|
1281
|
+
if (proof !== undefined) {
|
|
1282
|
+
const semantic = {
|
|
1283
|
+
protocol: automationRetirementSnapshotProtocol,
|
|
1284
|
+
schemaVersion: version,
|
|
1285
|
+
storageDigest,
|
|
1286
|
+
inFlightCount: inFlight.count,
|
|
1287
|
+
...proof,
|
|
1288
|
+
};
|
|
1289
|
+
result = freeze({
|
|
1290
|
+
...semantic,
|
|
1291
|
+
database: identity(source),
|
|
1292
|
+
sidecars: freeze({ wal: wal === null ? null : identity(wal), shm: shm === null ? null : identity(shm) }),
|
|
1293
|
+
snapshotDigest: sha256(JSON.stringify(semantic)),
|
|
1294
|
+
});
|
|
1295
|
+
}
|
|
1296
|
+
else
|
|
1297
|
+
result = { snapshot, internalRecords };
|
|
1009
1298
|
}
|
|
1010
1299
|
catch (error) {
|
|
1011
1300
|
deferred = error;
|
|
@@ -1091,6 +1380,13 @@ function readSnapshot(databasePath) {
|
|
|
1091
1380
|
export function inspectAutomationsOperatorSnapshot(databasePath) {
|
|
1092
1381
|
return readSnapshot(databasePath).snapshot;
|
|
1093
1382
|
}
|
|
1383
|
+
/**
|
|
1384
|
+
* Privileged read-only v15/v16 upgrade proof. Never migrates or opens a writable
|
|
1385
|
+
* SQLite handle. History bodies remain private; their exact typed bytes are hashed.
|
|
1386
|
+
*/
|
|
1387
|
+
export function inspectAutomationRetirementSnapshot(databasePath) {
|
|
1388
|
+
return readSnapshot(databasePath, true);
|
|
1389
|
+
}
|
|
1094
1390
|
/** Compatibility name for callers built against the earlier inventory proposal. */
|
|
1095
1391
|
export const inspectAutomationInventoryLocally = inspectAutomationsOperatorSnapshot;
|
|
1096
1392
|
/**
|
|
@@ -1206,8 +1502,11 @@ export function listActiveAutomationsForReadiness(databasePath) {
|
|
|
1206
1502
|
if (queryOnly !== 1)
|
|
1207
1503
|
fail('database-unavailable', 'read-only guard was not enabled');
|
|
1208
1504
|
const version = database.prepare('PRAGMA user_version').get().user_version;
|
|
1209
|
-
|
|
1210
|
-
|
|
1505
|
+
// Readiness also reads the still-running original program's store during an owner update;
|
|
1506
|
+
// automation_definitions is unchanged from schema 15 (16/17 only add tables, triggers and a runs column).
|
|
1507
|
+
if (version !== automationSchemaVersion && version !== 15 && version !== 16) {
|
|
1508
|
+
fail('schema-unsupported', 'expected schema 15, 16 or 17');
|
|
1509
|
+
}
|
|
1211
1510
|
const rows = database.prepare(`
|
|
1212
1511
|
SELECT id, system_owner, definition_hash, definition_json, status, next_run_at,
|
|
1213
1512
|
created_at, updated_at, version, 0 AS running_task_count
|