@haaaiawd/second-nature 0.1.17 → 0.1.18
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/index.js +855 -855
- package/openclaw.plugin.json +29 -29
- package/package.json +52 -52
- package/runtime/cli/commands/index.d.ts +14 -14
- package/runtime/cli/commands/index.js +193 -193
- package/runtime/cli/explain/explain-surface-subject.d.ts +8 -8
- package/runtime/cli/explain/explain-surface-subject.js +9 -9
- package/runtime/cli/explain/format-explanation.d.ts +12 -12
- package/runtime/cli/explain/format-explanation.js +12 -12
- package/runtime/cli/explain/resolve-subject.js +41 -41
- package/runtime/cli/host-capability/classify-delivery.d.ts +14 -14
- package/runtime/cli/host-capability/classify-delivery.js +20 -20
- package/runtime/cli/host-capability/probe-host-capability.d.ts +2 -2
- package/runtime/cli/host-capability/probe-host-capability.js +58 -58
- package/runtime/cli/host-capability/record-host-capability.d.ts +6 -6
- package/runtime/cli/host-capability/record-host-capability.js +14 -14
- package/runtime/cli/host-capability/types.d.ts +71 -71
- package/runtime/cli/host-capability/types.js +6 -6
- package/runtime/cli/host-smoke/run-host-smoke.d.ts +2 -2
- package/runtime/cli/host-smoke/run-host-smoke.js +40 -40
- package/runtime/cli/host-smoke/types.d.ts +35 -35
- package/runtime/cli/host-smoke/types.js +6 -6
- package/runtime/cli/index.js +58 -54
- package/runtime/cli/ops/heartbeat-surface.d.ts +38 -35
- package/runtime/cli/ops/heartbeat-surface.js +73 -71
- package/runtime/cli/ops/ops-router.d.ts +19 -16
- package/runtime/cli/ops/ops-router.js +89 -87
- package/runtime/cli/ops/show-operator-fallback.d.ts +13 -13
- package/runtime/cli/ops/show-operator-fallback.js +22 -22
- package/runtime/cli/ops/workspace-heartbeat-runner.d.ts +19 -10
- package/runtime/cli/ops/workspace-heartbeat-runner.js +39 -26
- package/runtime/cli/read-models/index.d.ts +29 -29
- package/runtime/cli/read-models/index.js +256 -256
- package/runtime/cli/read-models/operator-explain-map.d.ts +6 -6
- package/runtime/cli/read-models/operator-explain-map.js +10 -10
- package/runtime/cli/read-models/types.d.ts +79 -79
- package/runtime/cli/runtime/runtime-artifact-boundary.d.ts +28 -28
- package/runtime/cli/runtime/runtime-artifact-boundary.js +94 -94
- package/runtime/connectors/base/contract.d.ts +87 -87
- package/runtime/connectors/base/execution-policy.d.ts +47 -47
- package/runtime/connectors/base/execution-policy.js +82 -82
- package/runtime/connectors/base/index.d.ts +8 -8
- package/runtime/connectors/base/index.js +8 -8
- package/runtime/connectors/base/manifest.d.ts +64 -64
- package/runtime/connectors/base/manifest.js +86 -86
- package/runtime/connectors/base/map-life-evidence.d.ts +16 -16
- package/runtime/connectors/base/map-life-evidence.js +79 -79
- package/runtime/connectors/base/policy-layer.d.ts +29 -29
- package/runtime/connectors/base/policy-layer.js +198 -198
- package/runtime/connectors/base/route-planner.js +99 -99
- package/runtime/connectors/index.d.ts +5 -5
- package/runtime/connectors/index.js +5 -5
- package/runtime/connectors/near-real/near-real-connector-smoke.d.ts +19 -19
- package/runtime/connectors/near-real/near-real-connector-smoke.js +152 -152
- package/runtime/core/second-nature/heartbeat/heartbeat-executor.js +114 -114
- package/runtime/core/second-nature/heartbeat/heartbeat-loop.d.ts +63 -63
- package/runtime/core/second-nature/heartbeat/heartbeat-loop.js +139 -139
- package/runtime/core/second-nature/heartbeat/index.d.ts +8 -8
- package/runtime/core/second-nature/heartbeat/index.js +7 -7
- package/runtime/core/second-nature/heartbeat/run-heartbeat-cycle.d.ts +21 -21
- package/runtime/core/second-nature/heartbeat/run-heartbeat-cycle.js +35 -35
- package/runtime/core/second-nature/heartbeat/runtime-snapshot.d.ts +28 -28
- package/runtime/core/second-nature/heartbeat/runtime-snapshot.js +35 -35
- package/runtime/core/second-nature/heartbeat/signal.d.ts +42 -42
- package/runtime/core/second-nature/heartbeat/snapshot-builder.d.ts +51 -51
- package/runtime/core/second-nature/index.d.ts +22 -22
- package/runtime/core/second-nature/index.js +22 -22
- package/runtime/core/second-nature/orchestrator/effect-dispatcher.d.ts +100 -100
- package/runtime/core/second-nature/orchestrator/effect-dispatcher.js +144 -144
- package/runtime/core/second-nature/orchestrator/guard-layer.d.ts +8 -8
- package/runtime/core/second-nature/orchestrator/guard-layer.js +110 -110
- package/runtime/core/second-nature/orchestrator/intent-planner.d.ts +13 -13
- package/runtime/core/second-nature/orchestrator/intent-planner.js +199 -199
- package/runtime/core/second-nature/orchestrator/lease-manager.d.ts +14 -14
- package/runtime/core/second-nature/orchestrator/lease-manager.js +58 -58
- package/runtime/core/second-nature/outreach/build-outreach-draft-request.d.ts +6 -6
- package/runtime/core/second-nature/outreach/build-outreach-draft-request.js +63 -63
- package/runtime/core/second-nature/outreach/delivery-target.d.ts +26 -26
- package/runtime/core/second-nature/outreach/delivery-target.js +70 -70
- package/runtime/core/second-nature/outreach/dispatch-user-outreach.d.ts +38 -38
- package/runtime/core/second-nature/outreach/dispatch-user-outreach.js +119 -119
- package/runtime/core/second-nature/outreach/judge-input-from-snapshot.d.ts +7 -7
- package/runtime/core/second-nature/outreach/judge-input-from-snapshot.js +45 -45
- package/runtime/core/second-nature/outreach/judge-outreach.d.ts +40 -40
- package/runtime/core/second-nature/outreach/judge-outreach.js +121 -121
- package/runtime/core/second-nature/quiet/run-source-backed-quiet.d.ts +21 -21
- package/runtime/core/second-nature/quiet/run-source-backed-quiet.js +123 -123
- package/runtime/core/second-nature/rhythm/planner-rhythm-window.d.ts +15 -15
- package/runtime/core/second-nature/rhythm/planner-rhythm-window.js +52 -52
- package/runtime/core/second-nature/rhythm/policy-bridge.d.ts +19 -19
- package/runtime/core/second-nature/rhythm/policy-bridge.js +34 -34
- package/runtime/core/second-nature/runtime/service-entry.js +45 -45
- package/runtime/core/second-nature/types.d.ts +51 -51
- package/runtime/guidance/draft-outreach-message.d.ts +7 -7
- package/runtime/guidance/draft-outreach-message.js +42 -42
- package/runtime/guidance/evidence-guidance.d.ts +40 -40
- package/runtime/guidance/evidence-guidance.js +52 -52
- package/runtime/guidance/index.d.ts +11 -11
- package/runtime/guidance/index.js +11 -11
- package/runtime/guidance/outreach-draft-schema.d.ts +228 -228
- package/runtime/guidance/outreach-draft-schema.js +80 -80
- package/runtime/observability/audit/append-only-audit-store.d.ts +14 -14
- package/runtime/observability/audit/append-only-audit-store.js +21 -21
- package/runtime/observability/audit/audit-envelope.d.ts +51 -51
- package/runtime/observability/audit/audit-envelope.js +130 -130
- package/runtime/observability/audit/verify-audit-hash-chain.d.ts +23 -23
- package/runtime/observability/audit/verify-audit-hash-chain.js +83 -83
- package/runtime/observability/db/index.js +124 -124
- package/runtime/observability/db/schema/host-capability-reports.d.ts +180 -180
- package/runtime/observability/db/schema/host-capability-reports.js +12 -12
- package/runtime/observability/db/schema/index.d.ts +947 -947
- package/runtime/observability/db/schema/index.js +71 -71
- package/runtime/observability/index.d.ts +20 -19
- package/runtime/observability/index.js +19 -18
- package/runtime/observability/query/explain-query.d.ts +48 -48
- package/runtime/observability/query/explain-query.js +114 -114
- package/runtime/observability/query/export-audit-bundle.d.ts +22 -22
- package/runtime/observability/query/export-audit-bundle.js +27 -27
- package/runtime/observability/services/decision-ledger.d.ts +46 -46
- package/runtime/observability/services/decision-ledger.js +161 -161
- package/runtime/observability/services/governance-audit.d.ts +41 -41
- package/runtime/observability/services/governance-audit.js +163 -163
- package/runtime/observability/services/governance-plane-recorder.d.ts +47 -47
- package/runtime/observability/services/governance-plane-recorder.js +55 -55
- package/runtime/observability/services/lived-experience-audit.d.ts +97 -97
- package/runtime/observability/services/lived-experience-audit.js +162 -162
- package/runtime/observability/services/runtime-decision-recorder.d.ts +29 -0
- package/runtime/observability/services/runtime-decision-recorder.js +94 -0
- package/runtime/storage/bootstrap/native-sqlite-probe.d.ts +7 -7
- package/runtime/storage/bootstrap/native-sqlite-probe.js +28 -28
- package/runtime/storage/bootstrap/repair-gate.d.ts +17 -17
- package/runtime/storage/bootstrap/repair-gate.js +71 -71
- package/runtime/storage/bootstrap/storage-mode-smoke.d.ts +38 -38
- package/runtime/storage/bootstrap/storage-mode-smoke.js +85 -85
- package/runtime/storage/db/index.js +154 -154
- package/runtime/storage/db/schema/delivery-attempts.d.ts +199 -199
- package/runtime/storage/db/schema/delivery-attempts.js +13 -13
- package/runtime/storage/db/schema/index.d.ts +9 -9
- package/runtime/storage/db/schema/index.js +9 -9
- package/runtime/storage/db/schema/life-evidence-index.d.ts +161 -161
- package/runtime/storage/db/schema/life-evidence-index.js +11 -11
- package/runtime/storage/db/schema/operator-fallback-artifacts.d.ts +161 -161
- package/runtime/storage/db/schema/operator-fallback-artifacts.js +11 -11
- package/runtime/storage/db/schema/policies.d.ts +98 -98
- package/runtime/storage/db/schema/policies.js +8 -8
- package/runtime/storage/delivery/query-delivery-attempts.d.ts +3 -3
- package/runtime/storage/delivery/query-delivery-attempts.js +32 -32
- package/runtime/storage/delivery/types.d.ts +27 -27
- package/runtime/storage/delivery/types.js +1 -1
- package/runtime/storage/delivery/write-delivery-attempt.d.ts +6 -6
- package/runtime/storage/delivery/write-delivery-attempt.js +36 -36
- package/runtime/storage/fallback/load-operator-fallback.d.ts +14 -14
- package/runtime/storage/fallback/load-operator-fallback.js +47 -47
- package/runtime/storage/fallback/operator-fallback-types.d.ts +9 -9
- package/runtime/storage/fallback/operator-fallback-types.js +1 -1
- package/runtime/storage/fallback/operator-fallback-view.d.ts +11 -11
- package/runtime/storage/fallback/operator-fallback-view.js +1 -1
- package/runtime/storage/fallback/write-operator-fallback.d.ts +6 -6
- package/runtime/storage/fallback/write-operator-fallback.js +21 -21
- package/runtime/storage/index.d.ts +37 -37
- package/runtime/storage/index.js +30 -30
- package/runtime/storage/life-evidence/append-life-evidence.d.ts +7 -7
- package/runtime/storage/life-evidence/append-life-evidence.js +64 -64
- package/runtime/storage/life-evidence/types.d.ts +45 -45
- package/runtime/storage/life-evidence/types.js +6 -6
- package/runtime/storage/quiet/persist-quiet-artifact.d.ts +7 -7
- package/runtime/storage/quiet/persist-quiet-artifact.js +22 -22
- package/runtime/storage/quiet/quiet-artifact-types.d.ts +18 -18
- package/runtime/storage/quiet/quiet-artifact-types.js +1 -1
- package/runtime/storage/quiet/quiet-artifact-writer.d.ts +15 -15
- package/runtime/storage/quiet/quiet-artifact-writer.js +56 -56
- package/runtime/storage/repositories/credential-repository.js +30 -30
- package/runtime/storage/rhythm/rhythm-policy-snapshot.d.ts +10 -10
- package/runtime/storage/rhythm/rhythm-policy-snapshot.js +34 -34
- package/runtime/storage/services/credential-vault.d.ts +13 -13
- package/runtime/storage/services/credential-vault.js +116 -116
- package/runtime/storage/snapshots/continuity-snapshot.d.ts +9 -9
- package/runtime/storage/snapshots/continuity-snapshot.js +41 -41
- package/runtime/storage/snapshots/life-evidence-snapshot.d.ts +6 -6
- package/runtime/storage/snapshots/life-evidence-snapshot.js +114 -114
- package/runtime/storage/snapshots/types.d.ts +58 -58
- package/runtime/storage/snapshots/types.js +1 -1
- package/runtime/storage/state-api.js +104 -104
- package/runtime/storage/user-interest/load-user-interest-snapshot.d.ts +2 -2
- package/runtime/storage/user-interest/load-user-interest-snapshot.js +150 -150
- package/runtime/storage/user-interest/types.d.ts +25 -25
- package/runtime/storage/user-interest/types.js +1 -1
- package/workspace-ops-bridge.js +81 -80
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
import { integer, sqliteTable, text, uniqueIndex, index } from "drizzle-orm/sqlite-core";
|
|
2
|
-
export const decisionLedger = sqliteTable("decision_ledger", {
|
|
3
|
-
id: text("id").primaryKey(),
|
|
4
|
-
tickId: text("tick_id").notNull(),
|
|
5
|
-
traceId: text("trace_id").notNull(),
|
|
6
|
-
intentId: text("intent_id"),
|
|
7
|
-
platformId: text("platform_id"),
|
|
8
|
-
verdict: text("verdict").notNull(),
|
|
9
|
-
mode: text("mode").notNull(),
|
|
10
|
-
reasons: text("reasons").notNull(),
|
|
11
|
-
reasonCodes: text("reason_codes").notNull(),
|
|
12
|
-
decisionBasis: text("decision_basis").notNull(),
|
|
13
|
-
evidenceRefs: text("evidence_refs").notNull(),
|
|
14
|
-
modelEvalRef: text("model_eval_ref"),
|
|
15
|
-
createdAt: text("created_at").notNull(),
|
|
16
|
-
}, (table) => [
|
|
17
|
-
index("decision_tick_idx").on(table.tickId),
|
|
18
|
-
uniqueIndex("decision_trace_idx").on(table.traceId),
|
|
19
|
-
]);
|
|
20
|
-
export const executionAttempts = sqliteTable("execution_attempts", {
|
|
21
|
-
id: text("id").primaryKey(),
|
|
22
|
-
traceId: text("trace_id").notNull(),
|
|
23
|
-
decisionId: text("decision_id").notNull(),
|
|
24
|
-
intentId: text("intent_id").notNull(),
|
|
25
|
-
platformId: text("platform_id").notNull(),
|
|
26
|
-
capability: text("capability").notNull(),
|
|
27
|
-
channel: text("channel").notNull(),
|
|
28
|
-
status: text("status").notNull(),
|
|
29
|
-
commitState: text("commit_state"),
|
|
30
|
-
failureClass: text("failure_class"),
|
|
31
|
-
retryPolicy: text("retry_policy"),
|
|
32
|
-
idempotencyKey: text("idempotency_key"),
|
|
33
|
-
startedAt: text("started_at"),
|
|
34
|
-
finishedAt: text("finished_at"),
|
|
35
|
-
}, (table) => [
|
|
36
|
-
uniqueIndex("attempt_trace_idx").on(table.traceId),
|
|
37
|
-
index("attempt_decision_idx").on(table.decisionId),
|
|
38
|
-
index("attempt_platform_idx").on(table.platformId),
|
|
39
|
-
]);
|
|
40
|
-
export const governanceAudit = sqliteTable("governance_audit", {
|
|
41
|
-
id: text("id").primaryKey(),
|
|
42
|
-
eventType: text("event_type").notNull(),
|
|
43
|
-
proposalId: text("proposal_id"),
|
|
44
|
-
targetAssetId: text("target_asset_id"),
|
|
45
|
-
assetPath: text("asset_path"),
|
|
46
|
-
statusFrom: text("status_from"),
|
|
47
|
-
statusTo: text("status_to").notNull(),
|
|
48
|
-
beforeHash: text("before_hash"),
|
|
49
|
-
afterHash: text("after_hash"),
|
|
50
|
-
supportingSources: text("supporting_sources"),
|
|
51
|
-
reason: text("reason"),
|
|
52
|
-
verificationDeadline: text("verification_deadline"),
|
|
53
|
-
attemptsRemaining: integer("attempts_remaining"),
|
|
54
|
-
createdAt: text("created_at").notNull(),
|
|
55
|
-
}, (table) => [
|
|
56
|
-
index("audit_proposal_idx").on(table.proposalId),
|
|
57
|
-
index("audit_asset_idx").on(table.targetAssetId),
|
|
58
|
-
index("audit_event_idx").on(table.eventType),
|
|
59
|
-
]);
|
|
60
|
-
export const redactionManifest = sqliteTable("redaction_manifest", {
|
|
61
|
-
id: text("id").primaryKey(),
|
|
62
|
-
eventId: text("event_id").notNull(),
|
|
63
|
-
eventType: text("event_type").notNull(),
|
|
64
|
-
fieldName: text("field_name").notNull(),
|
|
65
|
-
action: text("action").notNull(),
|
|
66
|
-
originalValueHash: text("original_value_hash"),
|
|
67
|
-
createdAt: text("created_at").notNull(),
|
|
68
|
-
}, (table) => [
|
|
69
|
-
index("redact_event_idx").on(table.eventId),
|
|
70
|
-
]);
|
|
71
|
-
export { hostCapabilityReports, } from "./host-capability-reports.js";
|
|
1
|
+
import { integer, sqliteTable, text, uniqueIndex, index } from "drizzle-orm/sqlite-core";
|
|
2
|
+
export const decisionLedger = sqliteTable("decision_ledger", {
|
|
3
|
+
id: text("id").primaryKey(),
|
|
4
|
+
tickId: text("tick_id").notNull(),
|
|
5
|
+
traceId: text("trace_id").notNull(),
|
|
6
|
+
intentId: text("intent_id"),
|
|
7
|
+
platformId: text("platform_id"),
|
|
8
|
+
verdict: text("verdict").notNull(),
|
|
9
|
+
mode: text("mode").notNull(),
|
|
10
|
+
reasons: text("reasons").notNull(),
|
|
11
|
+
reasonCodes: text("reason_codes").notNull(),
|
|
12
|
+
decisionBasis: text("decision_basis").notNull(),
|
|
13
|
+
evidenceRefs: text("evidence_refs").notNull(),
|
|
14
|
+
modelEvalRef: text("model_eval_ref"),
|
|
15
|
+
createdAt: text("created_at").notNull(),
|
|
16
|
+
}, (table) => [
|
|
17
|
+
index("decision_tick_idx").on(table.tickId),
|
|
18
|
+
uniqueIndex("decision_trace_idx").on(table.traceId),
|
|
19
|
+
]);
|
|
20
|
+
export const executionAttempts = sqliteTable("execution_attempts", {
|
|
21
|
+
id: text("id").primaryKey(),
|
|
22
|
+
traceId: text("trace_id").notNull(),
|
|
23
|
+
decisionId: text("decision_id").notNull(),
|
|
24
|
+
intentId: text("intent_id").notNull(),
|
|
25
|
+
platformId: text("platform_id").notNull(),
|
|
26
|
+
capability: text("capability").notNull(),
|
|
27
|
+
channel: text("channel").notNull(),
|
|
28
|
+
status: text("status").notNull(),
|
|
29
|
+
commitState: text("commit_state"),
|
|
30
|
+
failureClass: text("failure_class"),
|
|
31
|
+
retryPolicy: text("retry_policy"),
|
|
32
|
+
idempotencyKey: text("idempotency_key"),
|
|
33
|
+
startedAt: text("started_at"),
|
|
34
|
+
finishedAt: text("finished_at"),
|
|
35
|
+
}, (table) => [
|
|
36
|
+
uniqueIndex("attempt_trace_idx").on(table.traceId),
|
|
37
|
+
index("attempt_decision_idx").on(table.decisionId),
|
|
38
|
+
index("attempt_platform_idx").on(table.platformId),
|
|
39
|
+
]);
|
|
40
|
+
export const governanceAudit = sqliteTable("governance_audit", {
|
|
41
|
+
id: text("id").primaryKey(),
|
|
42
|
+
eventType: text("event_type").notNull(),
|
|
43
|
+
proposalId: text("proposal_id"),
|
|
44
|
+
targetAssetId: text("target_asset_id"),
|
|
45
|
+
assetPath: text("asset_path"),
|
|
46
|
+
statusFrom: text("status_from"),
|
|
47
|
+
statusTo: text("status_to").notNull(),
|
|
48
|
+
beforeHash: text("before_hash"),
|
|
49
|
+
afterHash: text("after_hash"),
|
|
50
|
+
supportingSources: text("supporting_sources"),
|
|
51
|
+
reason: text("reason"),
|
|
52
|
+
verificationDeadline: text("verification_deadline"),
|
|
53
|
+
attemptsRemaining: integer("attempts_remaining"),
|
|
54
|
+
createdAt: text("created_at").notNull(),
|
|
55
|
+
}, (table) => [
|
|
56
|
+
index("audit_proposal_idx").on(table.proposalId),
|
|
57
|
+
index("audit_asset_idx").on(table.targetAssetId),
|
|
58
|
+
index("audit_event_idx").on(table.eventType),
|
|
59
|
+
]);
|
|
60
|
+
export const redactionManifest = sqliteTable("redaction_manifest", {
|
|
61
|
+
id: text("id").primaryKey(),
|
|
62
|
+
eventId: text("event_id").notNull(),
|
|
63
|
+
eventType: text("event_type").notNull(),
|
|
64
|
+
fieldName: text("field_name").notNull(),
|
|
65
|
+
action: text("action").notNull(),
|
|
66
|
+
originalValueHash: text("original_value_hash"),
|
|
67
|
+
createdAt: text("created_at").notNull(),
|
|
68
|
+
}, (table) => [
|
|
69
|
+
index("redact_event_idx").on(table.eventId),
|
|
70
|
+
]);
|
|
71
|
+
export { hostCapabilityReports, } from "./host-capability-reports.js";
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
export { createObservabilityDatabase, type ObservabilityDatabase } from "./db/index.js";
|
|
2
|
-
export * as obsSchema from "./db/schema/index.js";
|
|
3
|
-
export { buildAuditEnvelope, computeAuditRecordHash, redactAuditEvent, auditManifestFromFieldManifest, type AuditEnvelope, type AuditEnvelopeSensitivity, type AuditEventFamily, type AuditPlane, type AuditRedactionManifest, type AuditIntegrity, type BuildAuditEnvelopeInput, type RedactAuditEventResult, } from "./audit/audit-envelope.js";
|
|
4
|
-
export { AppendOnlyAuditStore } from "./audit/append-only-audit-store.js";
|
|
5
|
-
export { verifyAuditHashChain, createAppendOnlyAuditStoreRangeLoader, type AuditExportRange, type AuditHashChainVerificationReport, type AuditHashChainVerificationStatus, type VerifyAuditHashChainDeps, } from "./audit/verify-audit-hash-chain.js";
|
|
6
|
-
export { REDACTION_CONFIG, DEFAULT_REDACTION_POLICY, getFieldRedactionRule, type RedactionPolicy, type RedactionRule, type SensitivityLevel, } from "./redaction/policy.js";
|
|
7
|
-
export { redactEvent, createEmptyManifest, mergeManifests, type RedactionManifest, type RedactionResult, } from "./redaction/manifest.js";
|
|
8
|
-
export { DecisionLedger, type QuietLifecycleEvent, type OutreachDecision, type HeartbeatDecisionEvent } from "./services/decision-ledger.js";
|
|
9
|
-
export { GovernanceAudit, type CredentialLifecycleAudit } from "./services/governance-audit.js";
|
|
10
|
-
export { ExecutionTelemetry, type ExecutionAttemptInput } from "./services/execution-telemetry.js";
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
1
|
+
export { createObservabilityDatabase, type ObservabilityDatabase } from "./db/index.js";
|
|
2
|
+
export * as obsSchema from "./db/schema/index.js";
|
|
3
|
+
export { buildAuditEnvelope, computeAuditRecordHash, redactAuditEvent, auditManifestFromFieldManifest, type AuditEnvelope, type AuditEnvelopeSensitivity, type AuditEventFamily, type AuditPlane, type AuditRedactionManifest, type AuditIntegrity, type BuildAuditEnvelopeInput, type RedactAuditEventResult, } from "./audit/audit-envelope.js";
|
|
4
|
+
export { AppendOnlyAuditStore } from "./audit/append-only-audit-store.js";
|
|
5
|
+
export { verifyAuditHashChain, createAppendOnlyAuditStoreRangeLoader, type AuditExportRange, type AuditHashChainVerificationReport, type AuditHashChainVerificationStatus, type VerifyAuditHashChainDeps, } from "./audit/verify-audit-hash-chain.js";
|
|
6
|
+
export { REDACTION_CONFIG, DEFAULT_REDACTION_POLICY, getFieldRedactionRule, type RedactionPolicy, type RedactionRule, type SensitivityLevel, } from "./redaction/policy.js";
|
|
7
|
+
export { redactEvent, createEmptyManifest, mergeManifests, type RedactionManifest, type RedactionResult, } from "./redaction/manifest.js";
|
|
8
|
+
export { DecisionLedger, type QuietLifecycleEvent, type OutreachDecision, type HeartbeatDecisionEvent } from "./services/decision-ledger.js";
|
|
9
|
+
export { GovernanceAudit, type CredentialLifecycleAudit } from "./services/governance-audit.js";
|
|
10
|
+
export { ExecutionTelemetry, type ExecutionAttemptInput } from "./services/execution-telemetry.js";
|
|
11
|
+
export { createRuntimeDecisionRecorder, RUNTIME_DECISION_TRACE_PREFIX, RUNTIME_INTERNAL_PLATFORM_ID, type RuntimeDecisionRecorder, type RecordHeartbeatCycleInput, type RecordHeartbeatCycleOutput, } from "./services/runtime-decision-recorder.js";
|
|
12
|
+
export { LivedExperienceAuditRecorder, createLivedExperienceAuditRecorder, type DecisionTracePayload, type DeliveryAuditPayload, type DeliveryAuditStatus, type ExplainLinkageSummary, type GuidanceGroundingAuditPayload, type SourceCoverageAuditPayload, } from "./services/lived-experience-audit.js";
|
|
13
|
+
export { GovernancePlaneRecorder, createGovernancePlaneRecorder, type AuditAppendAck, type ConnectorAttemptAudit, type ConnectorAttemptOutcome, type StateGovernanceAudit, type StateGovernanceKind, } from "./services/governance-plane-recorder.js";
|
|
14
|
+
export { queryExplain, type ExplainQuery, type OperatorExplainReadModel, type RedactedExplainEvent, } from "./query/explain-query.js";
|
|
15
|
+
export { exportAuditBundle, type AuditBundle, type AuditBundleExportRange, type AuditRedactionSummary, type ExportAuditBundleDeps } from "./query/export-audit-bundle.js";
|
|
16
|
+
export { EvidenceQueryEngine, } from "./query/evidence-query-engine.js";
|
|
17
|
+
export type { EvidenceQuery, EvidenceBundle, EvidenceResolutionPlan, GovernanceEvidenceRecord, ResolvedContentRef, ExplanationCapsule, } from "./query/compose-evidence.js";
|
|
18
|
+
export { projectReflectionAudit, type ReflectionAudit, type ReflectionAuditProjection, } from "./projections/reflection-audit.js";
|
|
19
|
+
export { projectOutreachQualityAudit, type OutreachQualityAudit, type OutreachQualityProjection, } from "./projections/outreach-quality-audit.js";
|
|
20
|
+
export { projectGuidanceParticipationAudit, type GuidanceParticipationAudit, type GuidanceParticipationProjection, } from "./projections/guidance-audit.js";
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
export { createObservabilityDatabase } from "./db/index.js";
|
|
2
|
-
export * as obsSchema from "./db/schema/index.js";
|
|
3
|
-
export { buildAuditEnvelope, computeAuditRecordHash, redactAuditEvent, auditManifestFromFieldManifest, } from "./audit/audit-envelope.js";
|
|
4
|
-
export { AppendOnlyAuditStore } from "./audit/append-only-audit-store.js";
|
|
5
|
-
export { verifyAuditHashChain, createAppendOnlyAuditStoreRangeLoader, } from "./audit/verify-audit-hash-chain.js";
|
|
6
|
-
export { REDACTION_CONFIG, DEFAULT_REDACTION_POLICY, getFieldRedactionRule, } from "./redaction/policy.js";
|
|
7
|
-
export { redactEvent, createEmptyManifest, mergeManifests, } from "./redaction/manifest.js";
|
|
8
|
-
export { DecisionLedger } from "./services/decision-ledger.js";
|
|
9
|
-
export { GovernanceAudit } from "./services/governance-audit.js";
|
|
10
|
-
export { ExecutionTelemetry } from "./services/execution-telemetry.js";
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
1
|
+
export { createObservabilityDatabase } from "./db/index.js";
|
|
2
|
+
export * as obsSchema from "./db/schema/index.js";
|
|
3
|
+
export { buildAuditEnvelope, computeAuditRecordHash, redactAuditEvent, auditManifestFromFieldManifest, } from "./audit/audit-envelope.js";
|
|
4
|
+
export { AppendOnlyAuditStore } from "./audit/append-only-audit-store.js";
|
|
5
|
+
export { verifyAuditHashChain, createAppendOnlyAuditStoreRangeLoader, } from "./audit/verify-audit-hash-chain.js";
|
|
6
|
+
export { REDACTION_CONFIG, DEFAULT_REDACTION_POLICY, getFieldRedactionRule, } from "./redaction/policy.js";
|
|
7
|
+
export { redactEvent, createEmptyManifest, mergeManifests, } from "./redaction/manifest.js";
|
|
8
|
+
export { DecisionLedger } from "./services/decision-ledger.js";
|
|
9
|
+
export { GovernanceAudit } from "./services/governance-audit.js";
|
|
10
|
+
export { ExecutionTelemetry } from "./services/execution-telemetry.js";
|
|
11
|
+
export { createRuntimeDecisionRecorder, RUNTIME_DECISION_TRACE_PREFIX, RUNTIME_INTERNAL_PLATFORM_ID, } from "./services/runtime-decision-recorder.js";
|
|
12
|
+
export { LivedExperienceAuditRecorder, createLivedExperienceAuditRecorder, } from "./services/lived-experience-audit.js";
|
|
13
|
+
export { GovernancePlaneRecorder, createGovernancePlaneRecorder, } from "./services/governance-plane-recorder.js";
|
|
14
|
+
export { queryExplain, } from "./query/explain-query.js";
|
|
15
|
+
export { exportAuditBundle } from "./query/export-audit-bundle.js";
|
|
16
|
+
export { EvidenceQueryEngine, } from "./query/evidence-query-engine.js";
|
|
17
|
+
export { projectReflectionAudit, } from "./projections/reflection-audit.js";
|
|
18
|
+
export { projectOutreachQualityAudit, } from "./projections/outreach-quality-audit.js";
|
|
19
|
+
export { projectGuidanceParticipationAudit, } from "./projections/guidance-audit.js";
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Operator explain query over append-only audit envelopes (T5.3.1).
|
|
3
|
-
*
|
|
4
|
-
* Core logic: resolve subject to matching envelopes, compose summary + no-user-visible-contact warnings,
|
|
5
|
-
* expose minimal redacted event list for JSON-first read models.
|
|
6
|
-
*
|
|
7
|
-
* Dependencies: AppendOnlyAuditStore list; audit-envelope types; delivery audit payload shape from lived-experience-audit.
|
|
8
|
-
*
|
|
9
|
-
* Test coverage: tests/integration/observability/explain-query-export.test.ts
|
|
10
|
-
*/
|
|
11
|
-
import type { AppendOnlyAuditStore } from "../audit/append-only-audit-store.js";
|
|
12
|
-
import type { DeliveryAuditPayload } from "../services/lived-experience-audit.js";
|
|
13
|
-
export type ExplainQuery = {
|
|
14
|
-
kind: "decision";
|
|
15
|
-
decisionId: string;
|
|
16
|
-
} | {
|
|
17
|
-
kind: "fallback";
|
|
18
|
-
fallbackRef: string;
|
|
19
|
-
} | {
|
|
20
|
-
kind: "report";
|
|
21
|
-
reportId: string;
|
|
22
|
-
} | {
|
|
23
|
-
kind: "delivery";
|
|
24
|
-
auditId: string;
|
|
25
|
-
} | {
|
|
26
|
-
kind: "source_ref";
|
|
27
|
-
sourceRefId: string;
|
|
28
|
-
};
|
|
29
|
-
export interface RedactedExplainEvent {
|
|
30
|
-
eventId: string;
|
|
31
|
-
family: string;
|
|
32
|
-
plane: string;
|
|
33
|
-
createdAt: string;
|
|
34
|
-
/** Minimal safe summary — no raw recipient / tokens */
|
|
35
|
-
summary: string;
|
|
36
|
-
}
|
|
37
|
-
export interface OperatorExplainReadModel {
|
|
38
|
-
query: ExplainQuery;
|
|
39
|
-
summary: string;
|
|
40
|
-
warnings: string[];
|
|
41
|
-
deliveryStatus?: DeliveryAuditPayload["status"];
|
|
42
|
-
relatedEventIds: string[];
|
|
43
|
-
events: RedactedExplainEvent[];
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Query explain read model from an in-memory append-only audit slice (tests / local tooling).
|
|
47
|
-
*/
|
|
48
|
-
export declare function queryExplain(query: ExplainQuery, store: AppendOnlyAuditStore): OperatorExplainReadModel;
|
|
1
|
+
/**
|
|
2
|
+
* Operator explain query over append-only audit envelopes (T5.3.1).
|
|
3
|
+
*
|
|
4
|
+
* Core logic: resolve subject to matching envelopes, compose summary + no-user-visible-contact warnings,
|
|
5
|
+
* expose minimal redacted event list for JSON-first read models.
|
|
6
|
+
*
|
|
7
|
+
* Dependencies: AppendOnlyAuditStore list; audit-envelope types; delivery audit payload shape from lived-experience-audit.
|
|
8
|
+
*
|
|
9
|
+
* Test coverage: tests/integration/observability/explain-query-export.test.ts
|
|
10
|
+
*/
|
|
11
|
+
import type { AppendOnlyAuditStore } from "../audit/append-only-audit-store.js";
|
|
12
|
+
import type { DeliveryAuditPayload } from "../services/lived-experience-audit.js";
|
|
13
|
+
export type ExplainQuery = {
|
|
14
|
+
kind: "decision";
|
|
15
|
+
decisionId: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "fallback";
|
|
18
|
+
fallbackRef: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "report";
|
|
21
|
+
reportId: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: "delivery";
|
|
24
|
+
auditId: string;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "source_ref";
|
|
27
|
+
sourceRefId: string;
|
|
28
|
+
};
|
|
29
|
+
export interface RedactedExplainEvent {
|
|
30
|
+
eventId: string;
|
|
31
|
+
family: string;
|
|
32
|
+
plane: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
/** Minimal safe summary — no raw recipient / tokens */
|
|
35
|
+
summary: string;
|
|
36
|
+
}
|
|
37
|
+
export interface OperatorExplainReadModel {
|
|
38
|
+
query: ExplainQuery;
|
|
39
|
+
summary: string;
|
|
40
|
+
warnings: string[];
|
|
41
|
+
deliveryStatus?: DeliveryAuditPayload["status"];
|
|
42
|
+
relatedEventIds: string[];
|
|
43
|
+
events: RedactedExplainEvent[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Query explain read model from an in-memory append-only audit slice (tests / local tooling).
|
|
47
|
+
*/
|
|
48
|
+
export declare function queryExplain(query: ExplainQuery, store: AppendOnlyAuditStore): OperatorExplainReadModel;
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
const NO_USER_VISIBLE = "no_user_visible_contact_claim_prohibited";
|
|
2
|
-
function isNoUserVisibleDelivery(status) {
|
|
3
|
-
if (!status)
|
|
4
|
-
return false;
|
|
5
|
-
return (status === "target_none" ||
|
|
6
|
-
status === "not_sent_fallback" ||
|
|
7
|
-
status === "channel_missing" ||
|
|
8
|
-
status === "host_unsupported" ||
|
|
9
|
-
status === "failed" ||
|
|
10
|
-
status === "ack_dropped");
|
|
11
|
-
}
|
|
12
|
-
function payloadDecisionId(payload) {
|
|
13
|
-
if (!payload || typeof payload !== "object")
|
|
14
|
-
return undefined;
|
|
15
|
-
const p = payload;
|
|
16
|
-
const v = p.decisionId;
|
|
17
|
-
return typeof v === "string" ? v : undefined;
|
|
18
|
-
}
|
|
19
|
-
function payloadFallbackRef(payload) {
|
|
20
|
-
if (!payload || typeof payload !== "object")
|
|
21
|
-
return undefined;
|
|
22
|
-
const p = payload;
|
|
23
|
-
const v = p.fallbackRef;
|
|
24
|
-
return typeof v === "string" ? v : undefined;
|
|
25
|
-
}
|
|
26
|
-
function payloadAuditId(payload) {
|
|
27
|
-
if (!payload || typeof payload !== "object")
|
|
28
|
-
return undefined;
|
|
29
|
-
const p = payload;
|
|
30
|
-
const a = p.auditId;
|
|
31
|
-
if (typeof a === "string")
|
|
32
|
-
return a;
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
function deliveryStatusFrom(payload) {
|
|
36
|
-
if (!payload || typeof payload !== "object")
|
|
37
|
-
return undefined;
|
|
38
|
-
const p = payload;
|
|
39
|
-
const s = p.status;
|
|
40
|
-
return typeof s === "string" ? s : undefined;
|
|
41
|
-
}
|
|
42
|
-
function eventMatchesQuery(envelope, query) {
|
|
43
|
-
const payload = envelope.payload;
|
|
44
|
-
switch (query.kind) {
|
|
45
|
-
case "decision":
|
|
46
|
-
return payloadDecisionId(payload) === query.decisionId;
|
|
47
|
-
case "fallback":
|
|
48
|
-
return payloadFallbackRef(payload) === query.fallbackRef;
|
|
49
|
-
case "report":
|
|
50
|
-
return envelope.eventId === query.reportId || payloadAuditId(payload) === query.reportId;
|
|
51
|
-
case "delivery":
|
|
52
|
-
return (envelope.family === "delivery" &&
|
|
53
|
-
(envelope.eventId === query.auditId || payloadAuditId(payload) === query.auditId));
|
|
54
|
-
case "source_ref": {
|
|
55
|
-
const needle = query.sourceRefId;
|
|
56
|
-
try {
|
|
57
|
-
return JSON.stringify(payload).includes(needle);
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function summarizeEnvelope(e) {
|
|
66
|
-
const fam = e.family;
|
|
67
|
-
if (fam === "delivery") {
|
|
68
|
-
const st = deliveryStatusFrom(e.payload);
|
|
69
|
-
return `delivery_audit:${st ?? "unknown"}`;
|
|
70
|
-
}
|
|
71
|
-
if (fam === "heartbeat.decision") {
|
|
72
|
-
const outcome = e.payload?.outcome;
|
|
73
|
-
return `decision:${typeof outcome === "string" ? outcome : "unknown"}`;
|
|
74
|
-
}
|
|
75
|
-
return `${fam}`;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Query explain read model from an in-memory append-only audit slice (tests / local tooling).
|
|
79
|
-
*/
|
|
80
|
-
export function queryExplain(query, store) {
|
|
81
|
-
const matched = store.list().filter((e) => eventMatchesQuery(e, query));
|
|
82
|
-
const relatedEventIds = matched.map((e) => e.eventId);
|
|
83
|
-
const warnings = [];
|
|
84
|
-
let deliveryStatus;
|
|
85
|
-
for (const e of matched) {
|
|
86
|
-
if (e.family === "delivery") {
|
|
87
|
-
const st = deliveryStatusFrom(e.payload);
|
|
88
|
-
if (st)
|
|
89
|
-
deliveryStatus = st;
|
|
90
|
-
if (isNoUserVisibleDelivery(st)) {
|
|
91
|
-
warnings.push(NO_USER_VISIBLE);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const uniqueWarnings = [...new Set(warnings)];
|
|
96
|
-
const summary = matched.length === 0
|
|
97
|
-
? "no_matching_audit_events"
|
|
98
|
-
: `matched_events=${matched.length};subject=${query.kind}`;
|
|
99
|
-
const events = matched.map((e) => ({
|
|
100
|
-
eventId: e.eventId,
|
|
101
|
-
family: e.family,
|
|
102
|
-
plane: e.plane,
|
|
103
|
-
createdAt: e.createdAt,
|
|
104
|
-
summary: summarizeEnvelope(e),
|
|
105
|
-
}));
|
|
106
|
-
return {
|
|
107
|
-
query,
|
|
108
|
-
summary,
|
|
109
|
-
warnings: uniqueWarnings,
|
|
110
|
-
deliveryStatus,
|
|
111
|
-
relatedEventIds,
|
|
112
|
-
events,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
1
|
+
const NO_USER_VISIBLE = "no_user_visible_contact_claim_prohibited";
|
|
2
|
+
function isNoUserVisibleDelivery(status) {
|
|
3
|
+
if (!status)
|
|
4
|
+
return false;
|
|
5
|
+
return (status === "target_none" ||
|
|
6
|
+
status === "not_sent_fallback" ||
|
|
7
|
+
status === "channel_missing" ||
|
|
8
|
+
status === "host_unsupported" ||
|
|
9
|
+
status === "failed" ||
|
|
10
|
+
status === "ack_dropped");
|
|
11
|
+
}
|
|
12
|
+
function payloadDecisionId(payload) {
|
|
13
|
+
if (!payload || typeof payload !== "object")
|
|
14
|
+
return undefined;
|
|
15
|
+
const p = payload;
|
|
16
|
+
const v = p.decisionId;
|
|
17
|
+
return typeof v === "string" ? v : undefined;
|
|
18
|
+
}
|
|
19
|
+
function payloadFallbackRef(payload) {
|
|
20
|
+
if (!payload || typeof payload !== "object")
|
|
21
|
+
return undefined;
|
|
22
|
+
const p = payload;
|
|
23
|
+
const v = p.fallbackRef;
|
|
24
|
+
return typeof v === "string" ? v : undefined;
|
|
25
|
+
}
|
|
26
|
+
function payloadAuditId(payload) {
|
|
27
|
+
if (!payload || typeof payload !== "object")
|
|
28
|
+
return undefined;
|
|
29
|
+
const p = payload;
|
|
30
|
+
const a = p.auditId;
|
|
31
|
+
if (typeof a === "string")
|
|
32
|
+
return a;
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
function deliveryStatusFrom(payload) {
|
|
36
|
+
if (!payload || typeof payload !== "object")
|
|
37
|
+
return undefined;
|
|
38
|
+
const p = payload;
|
|
39
|
+
const s = p.status;
|
|
40
|
+
return typeof s === "string" ? s : undefined;
|
|
41
|
+
}
|
|
42
|
+
function eventMatchesQuery(envelope, query) {
|
|
43
|
+
const payload = envelope.payload;
|
|
44
|
+
switch (query.kind) {
|
|
45
|
+
case "decision":
|
|
46
|
+
return payloadDecisionId(payload) === query.decisionId;
|
|
47
|
+
case "fallback":
|
|
48
|
+
return payloadFallbackRef(payload) === query.fallbackRef;
|
|
49
|
+
case "report":
|
|
50
|
+
return envelope.eventId === query.reportId || payloadAuditId(payload) === query.reportId;
|
|
51
|
+
case "delivery":
|
|
52
|
+
return (envelope.family === "delivery" &&
|
|
53
|
+
(envelope.eventId === query.auditId || payloadAuditId(payload) === query.auditId));
|
|
54
|
+
case "source_ref": {
|
|
55
|
+
const needle = query.sourceRefId;
|
|
56
|
+
try {
|
|
57
|
+
return JSON.stringify(payload).includes(needle);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function summarizeEnvelope(e) {
|
|
66
|
+
const fam = e.family;
|
|
67
|
+
if (fam === "delivery") {
|
|
68
|
+
const st = deliveryStatusFrom(e.payload);
|
|
69
|
+
return `delivery_audit:${st ?? "unknown"}`;
|
|
70
|
+
}
|
|
71
|
+
if (fam === "heartbeat.decision") {
|
|
72
|
+
const outcome = e.payload?.outcome;
|
|
73
|
+
return `decision:${typeof outcome === "string" ? outcome : "unknown"}`;
|
|
74
|
+
}
|
|
75
|
+
return `${fam}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Query explain read model from an in-memory append-only audit slice (tests / local tooling).
|
|
79
|
+
*/
|
|
80
|
+
export function queryExplain(query, store) {
|
|
81
|
+
const matched = store.list().filter((e) => eventMatchesQuery(e, query));
|
|
82
|
+
const relatedEventIds = matched.map((e) => e.eventId);
|
|
83
|
+
const warnings = [];
|
|
84
|
+
let deliveryStatus;
|
|
85
|
+
for (const e of matched) {
|
|
86
|
+
if (e.family === "delivery") {
|
|
87
|
+
const st = deliveryStatusFrom(e.payload);
|
|
88
|
+
if (st)
|
|
89
|
+
deliveryStatus = st;
|
|
90
|
+
if (isNoUserVisibleDelivery(st)) {
|
|
91
|
+
warnings.push(NO_USER_VISIBLE);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const uniqueWarnings = [...new Set(warnings)];
|
|
96
|
+
const summary = matched.length === 0
|
|
97
|
+
? "no_matching_audit_events"
|
|
98
|
+
: `matched_events=${matched.length};subject=${query.kind}`;
|
|
99
|
+
const events = matched.map((e) => ({
|
|
100
|
+
eventId: e.eventId,
|
|
101
|
+
family: e.family,
|
|
102
|
+
plane: e.plane,
|
|
103
|
+
createdAt: e.createdAt,
|
|
104
|
+
summary: summarizeEnvelope(e),
|
|
105
|
+
}));
|
|
106
|
+
return {
|
|
107
|
+
query,
|
|
108
|
+
summary,
|
|
109
|
+
warnings: uniqueWarnings,
|
|
110
|
+
deliveryStatus,
|
|
111
|
+
relatedEventIds,
|
|
112
|
+
events,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type { AuditEnvelope } from "../audit/audit-envelope.js";
|
|
2
|
-
import type { AuditEventFamily } from "../audit/audit-envelope.js";
|
|
3
|
-
import type { AuditExportRange } from "../audit/verify-audit-hash-chain.js";
|
|
4
|
-
export interface AuditBundleExportRange extends AuditExportRange {
|
|
5
|
-
/** Reserved for otel_projection / future formats */
|
|
6
|
-
format?: "json_v1";
|
|
7
|
-
}
|
|
8
|
-
export interface AuditRedactionSummary {
|
|
9
|
-
eventCount: number;
|
|
10
|
-
manifestIds: string[];
|
|
11
|
-
}
|
|
12
|
-
export interface AuditBundle {
|
|
13
|
-
bundleId: string;
|
|
14
|
-
generatedAt: string;
|
|
15
|
-
range: AuditBundleExportRange;
|
|
16
|
-
events: readonly AuditEnvelope<unknown>[];
|
|
17
|
-
redactionSummary: AuditRedactionSummary;
|
|
18
|
-
}
|
|
19
|
-
export interface ExportAuditBundleDeps {
|
|
20
|
-
loadRange(from: string, to: string, families?: AuditEventFamily[]): Promise<readonly AuditEnvelope<unknown>[]>;
|
|
21
|
-
}
|
|
22
|
-
export declare function exportAuditBundle(range: AuditBundleExportRange, deps: ExportAuditBundleDeps): Promise<AuditBundle>;
|
|
1
|
+
import type { AuditEnvelope } from "../audit/audit-envelope.js";
|
|
2
|
+
import type { AuditEventFamily } from "../audit/audit-envelope.js";
|
|
3
|
+
import type { AuditExportRange } from "../audit/verify-audit-hash-chain.js";
|
|
4
|
+
export interface AuditBundleExportRange extends AuditExportRange {
|
|
5
|
+
/** Reserved for otel_projection / future formats */
|
|
6
|
+
format?: "json_v1";
|
|
7
|
+
}
|
|
8
|
+
export interface AuditRedactionSummary {
|
|
9
|
+
eventCount: number;
|
|
10
|
+
manifestIds: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface AuditBundle {
|
|
13
|
+
bundleId: string;
|
|
14
|
+
generatedAt: string;
|
|
15
|
+
range: AuditBundleExportRange;
|
|
16
|
+
events: readonly AuditEnvelope<unknown>[];
|
|
17
|
+
redactionSummary: AuditRedactionSummary;
|
|
18
|
+
}
|
|
19
|
+
export interface ExportAuditBundleDeps {
|
|
20
|
+
loadRange(from: string, to: string, families?: AuditEventFamily[]): Promise<readonly AuditEnvelope<unknown>[]>;
|
|
21
|
+
}
|
|
22
|
+
export declare function exportAuditBundle(range: AuditBundleExportRange, deps: ExportAuditBundleDeps): Promise<AuditBundle>;
|