@aiassesstech/noah 0.1.9 → 0.2.0

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 (72) hide show
  1. package/dist/cortex/fleet-bus-adapter.d.ts +50 -0
  2. package/dist/cortex/fleet-bus-adapter.d.ts.map +1 -0
  3. package/dist/cortex/fleet-bus-adapter.js +44 -0
  4. package/dist/cortex/fleet-bus-adapter.js.map +1 -0
  5. package/dist/cortex/null-implementations.d.ts +59 -0
  6. package/dist/cortex/null-implementations.d.ts.map +1 -0
  7. package/dist/cortex/null-implementations.js +38 -0
  8. package/dist/cortex/null-implementations.js.map +1 -0
  9. package/dist/cortex/store-adapter.d.ts +35 -0
  10. package/dist/cortex/store-adapter.d.ts.map +1 -0
  11. package/dist/cortex/store-adapter.js +131 -0
  12. package/dist/cortex/store-adapter.js.map +1 -0
  13. package/dist/cortex/temporal-cortex.d.ts +165 -0
  14. package/dist/cortex/temporal-cortex.d.ts.map +1 -0
  15. package/dist/cortex/temporal-cortex.js +400 -0
  16. package/dist/cortex/temporal-cortex.js.map +1 -0
  17. package/dist/cron/cron-manager.d.ts +97 -0
  18. package/dist/cron/cron-manager.d.ts.map +1 -0
  19. package/dist/cron/cron-manager.js +274 -0
  20. package/dist/cron/cron-manager.js.map +1 -0
  21. package/dist/cron/cron-types.d.ts +50 -0
  22. package/dist/cron/cron-types.d.ts.map +1 -0
  23. package/dist/cron/cron-types.js +14 -0
  24. package/dist/cron/cron-types.js.map +1 -0
  25. package/dist/cron/cron-validator.d.ts +15 -0
  26. package/dist/cron/cron-validator.d.ts.map +1 -0
  27. package/dist/cron/cron-validator.js +75 -0
  28. package/dist/cron/cron-validator.js.map +1 -0
  29. package/dist/cron/default-schedule.d.ts +15 -0
  30. package/dist/cron/default-schedule.d.ts.map +1 -0
  31. package/dist/cron/default-schedule.js +81 -0
  32. package/dist/cron/default-schedule.js.map +1 -0
  33. package/dist/deviation/corridor-absolute.d.ts +41 -0
  34. package/dist/deviation/corridor-absolute.d.ts.map +1 -0
  35. package/dist/deviation/corridor-absolute.js +47 -0
  36. package/dist/deviation/corridor-absolute.js.map +1 -0
  37. package/dist/deviation/tdi-calculator.d.ts +34 -0
  38. package/dist/deviation/tdi-calculator.d.ts.map +1 -0
  39. package/dist/deviation/tdi-calculator.js +59 -0
  40. package/dist/deviation/tdi-calculator.js.map +1 -0
  41. package/dist/deviation/threshold-loader.d.ts +12 -0
  42. package/dist/deviation/threshold-loader.d.ts.map +1 -0
  43. package/dist/deviation/threshold-loader.js +42 -0
  44. package/dist/deviation/threshold-loader.js.map +1 -0
  45. package/dist/deviation/yellow-escalation.d.ts +32 -0
  46. package/dist/deviation/yellow-escalation.d.ts.map +1 -0
  47. package/dist/deviation/yellow-escalation.js +46 -0
  48. package/dist/deviation/yellow-escalation.js.map +1 -0
  49. package/dist/index.d.ts +17 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +20 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/plugin.d.ts.map +1 -1
  54. package/dist/plugin.js +279 -48
  55. package/dist/plugin.js.map +1 -1
  56. package/dist/store/sqlite-store.d.ts +54 -0
  57. package/dist/store/sqlite-store.d.ts.map +1 -0
  58. package/dist/store/sqlite-store.js +225 -0
  59. package/dist/store/sqlite-store.js.map +1 -0
  60. package/dist/store/sqlite-types.d.ts +107 -0
  61. package/dist/store/sqlite-types.d.ts.map +1 -0
  62. package/dist/store/sqlite-types.js +8 -0
  63. package/dist/store/sqlite-types.js.map +1 -0
  64. package/dist/tools/noah-cron.d.ts +21 -0
  65. package/dist/tools/noah-cron.d.ts.map +1 -0
  66. package/dist/tools/noah-cron.js +115 -0
  67. package/dist/tools/noah-cron.js.map +1 -0
  68. package/dist/tools/noah-time.d.ts +43 -0
  69. package/dist/tools/noah-time.d.ts.map +1 -0
  70. package/dist/tools/noah-time.js +61 -0
  71. package/dist/tools/noah-time.js.map +1 -0
  72. package/package.json +7 -3
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Noah — FleetBus Adapter
3
+ *
4
+ * Bridges the real FleetBus (which uses fleetSend()) to the
5
+ * FleetBusClient interface expected by TemporalCortex and CronManager.
6
+ *
7
+ * Without this adapter, cortex.perceive() and cronManager.executeJob()
8
+ * would call bus.send() / bus.broadcast() — methods that do not exist
9
+ * on the real FleetBus class. Tests used MockFleetBus which implements
10
+ * them, masking the production failure.
11
+ *
12
+ * Bug fix: FleetBus class does not have send()/broadcast() methods.
13
+ */
14
+ import type { FleetBusClient } from './null-implementations.js';
15
+ interface FleetBusLike {
16
+ getConfig(): {
17
+ agentId: string;
18
+ };
19
+ getCard(agentId: string): unknown;
20
+ validateRouting(message: unknown): {
21
+ allowed: boolean;
22
+ reason?: string;
23
+ };
24
+ audit(type: string, outcome: string, data: unknown): unknown;
25
+ }
26
+ interface TransportConfigLike {
27
+ callGateway: (...args: unknown[]) => Promise<unknown>;
28
+ defaultTimeoutMs?: number;
29
+ fireAndForget?: boolean;
30
+ outputSanitizer?: unknown;
31
+ shield?: unknown;
32
+ }
33
+ type FleetSendFn = (bus: FleetBusLike, transport: TransportConfigLike, options: {
34
+ to: string;
35
+ method: string;
36
+ params: unknown;
37
+ }) => Promise<{
38
+ success: boolean;
39
+ error?: string;
40
+ }>;
41
+ export declare class FleetBusAdapter implements FleetBusClient {
42
+ private readonly bus;
43
+ private readonly transport;
44
+ private readonly fleetSendFn;
45
+ constructor(bus: FleetBusLike, transport: TransportConfigLike, fleetSendFn: FleetSendFn);
46
+ send(method: string, to: string, params: unknown): Promise<void>;
47
+ broadcast(method: string, params: unknown): Promise<void>;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=fleet-bus-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-bus-adapter.d.ts","sourceRoot":"","sources":["../../src/cortex/fleet-bus-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,UAAU,YAAY;IACpB,SAAS,IAAI;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9D;AAED,UAAU,mBAAmB;IAC3B,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,WAAW,GAAG,CACjB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KACrD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD,qBAAa,eAAgB,YAAW,cAAc;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAGxC,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EAAE,WAAW;IAOpB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAUhE"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Noah — FleetBus Adapter
3
+ *
4
+ * Bridges the real FleetBus (which uses fleetSend()) to the
5
+ * FleetBusClient interface expected by TemporalCortex and CronManager.
6
+ *
7
+ * Without this adapter, cortex.perceive() and cronManager.executeJob()
8
+ * would call bus.send() / bus.broadcast() — methods that do not exist
9
+ * on the real FleetBus class. Tests used MockFleetBus which implements
10
+ * them, masking the production failure.
11
+ *
12
+ * Bug fix: FleetBus class does not have send()/broadcast() methods.
13
+ */
14
+ export class FleetBusAdapter {
15
+ bus;
16
+ transport;
17
+ fleetSendFn;
18
+ constructor(bus, transport, fleetSendFn) {
19
+ this.bus = bus;
20
+ this.transport = transport;
21
+ this.fleetSendFn = fleetSendFn;
22
+ }
23
+ async send(method, to, params) {
24
+ const result = await this.fleetSendFn(this.bus, this.transport, {
25
+ to,
26
+ method,
27
+ params,
28
+ });
29
+ if (!result.success) {
30
+ console.warn(`[noah:fleet-adapter] send(${method} → ${to}) failed: ${result.error ?? 'unknown'}`);
31
+ }
32
+ }
33
+ async broadcast(method, params) {
34
+ const result = await this.fleetSendFn(this.bus, this.transport, {
35
+ to: 'broadcast',
36
+ method,
37
+ params,
38
+ });
39
+ if (!result.success) {
40
+ console.warn(`[noah:fleet-adapter] broadcast(${method}) failed: ${result.error ?? 'unknown'}`);
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=fleet-bus-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-bus-adapter.js","sourceRoot":"","sources":["../../src/cortex/fleet-bus-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAyBH,MAAM,OAAO,eAAe;IACT,GAAG,CAAe;IAClB,SAAS,CAAsB;IAC/B,WAAW,CAAc;IAE1C,YACE,GAAiB,EACjB,SAA8B,EAC9B,WAAwB;QAExB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,EAAU,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE;YAC9D,EAAE;YACF,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,6BAA6B,MAAM,MAAM,EAAE,aAAa,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAe;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE;YAC9D,EAAE,EAAE,WAAW;YACf,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,kCAAkC,MAAM,aAAa,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Noah — Null Object Implementations (Amendment 7)
3
+ *
4
+ * Production: real fleet-bus + real fleet-alerting (required, type-enforced).
5
+ * Unit tests: null implementations (explicit opt-out, not accidental omission).
6
+ * Integration tests: mock implementations that capture calls for assertions.
7
+ */
8
+ export interface FleetBusClient {
9
+ send(method: string, to: string, params: unknown): Promise<void>;
10
+ broadcast(method: string, params: unknown): Promise<void>;
11
+ }
12
+ export interface FleetAlertBus {
13
+ fire(alert: {
14
+ eventType: string;
15
+ severity: string;
16
+ agentId: string;
17
+ source: string;
18
+ data: Record<string, unknown>;
19
+ }): Promise<void>;
20
+ }
21
+ export declare class NullFleetBus implements FleetBusClient {
22
+ send(): Promise<void>;
23
+ broadcast(): Promise<void>;
24
+ }
25
+ export declare class NullFleetAlerting implements FleetAlertBus {
26
+ fire(): Promise<void>;
27
+ }
28
+ export declare class MockFleetBus implements FleetBusClient {
29
+ readonly sent: Array<{
30
+ method: string;
31
+ to: string;
32
+ params: unknown;
33
+ }>;
34
+ readonly broadcasts: Array<{
35
+ method: string;
36
+ params: unknown;
37
+ }>;
38
+ send(method: string, to: string, params: unknown): Promise<void>;
39
+ broadcast(method: string, params: unknown): Promise<void>;
40
+ reset(): void;
41
+ }
42
+ export declare class MockFleetAlerting implements FleetAlertBus {
43
+ readonly fired: Array<{
44
+ eventType: string;
45
+ severity: string;
46
+ agentId: string;
47
+ source: string;
48
+ data: Record<string, unknown>;
49
+ }>;
50
+ fire(alert: {
51
+ eventType: string;
52
+ severity: string;
53
+ agentId: string;
54
+ source: string;
55
+ data: Record<string, unknown>;
56
+ }): Promise<void>;
57
+ reset(): void;
58
+ }
59
+ //# sourceMappingURL=null-implementations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-implementations.d.ts","sourceRoot":"","sources":["../../src/cortex/null-implementations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,KAAK,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAED,qBAAa,YAAa,YAAW,cAAc;IAC3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACrB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAC/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAC5B;AAED,qBAAa,YAAa,YAAW,cAAc;IACjD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAM;IAC3E,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAM;IAE/D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,KAAK,IAAI,IAAI;CAId;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,CAAC,CAAM;IAEF,IAAI,CAAC,KAAK,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Noah — Null Object Implementations (Amendment 7)
3
+ *
4
+ * Production: real fleet-bus + real fleet-alerting (required, type-enforced).
5
+ * Unit tests: null implementations (explicit opt-out, not accidental omission).
6
+ * Integration tests: mock implementations that capture calls for assertions.
7
+ */
8
+ export class NullFleetBus {
9
+ async send() { }
10
+ async broadcast() { }
11
+ }
12
+ export class NullFleetAlerting {
13
+ async fire() { }
14
+ }
15
+ export class MockFleetBus {
16
+ sent = [];
17
+ broadcasts = [];
18
+ async send(method, to, params) {
19
+ this.sent.push({ method, to, params });
20
+ }
21
+ async broadcast(method, params) {
22
+ this.broadcasts.push({ method, params });
23
+ }
24
+ reset() {
25
+ this.sent.length = 0;
26
+ this.broadcasts.length = 0;
27
+ }
28
+ }
29
+ export class MockFleetAlerting {
30
+ fired = [];
31
+ async fire(alert) {
32
+ this.fired.push(alert);
33
+ }
34
+ reset() {
35
+ this.fired.length = 0;
36
+ }
37
+ }
38
+ //# sourceMappingURL=null-implementations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-implementations.js","sourceRoot":"","sources":["../../src/cortex/null-implementations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,MAAM,OAAO,YAAY;IACvB,KAAK,CAAC,IAAI,KAAmB,CAAC;IAC9B,KAAK,CAAC,SAAS,KAAmB,CAAC;CACpC;AAED,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,IAAI,KAAmB,CAAC;CAC/B;AAED,MAAM,OAAO,YAAY;IACd,IAAI,GAA2D,EAAE,CAAC;IAClE,UAAU,GAA+C,EAAE,CAAC;IAErE,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,EAAU,EAAE,MAAe;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAe;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IACnB,KAAK,GAMT,EAAE,CAAC;IAER,KAAK,CAAC,IAAI,CAAC,KAMV;QACC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Noah — SQLite Store Adapter (Amendment 6)
3
+ *
4
+ * Bridges SqliteTemporalStore to the TemporalStateStore interface
5
+ * that TemporalGuidanceEngine expects. Lets the engine persist to
6
+ * SQLite without any changes to its code.
7
+ *
8
+ * The engine was built for JsonTemporalStore. This adapter
9
+ * presents the same interface while reading/writing to SQLite.
10
+ */
11
+ import type { TemporalStateStore } from '../store/types.js';
12
+ import type { SqliteTemporalStore } from '../store/sqlite-store.js';
13
+ import type { TemporalState } from '../types/temporal-state.js';
14
+ import type { TemporalAssessmentRecord } from '../types/assessment-record.js';
15
+ import type { EthicalFlightPlan } from '../types/flight-plan.js';
16
+ export declare class SqliteStoreAdapter implements TemporalStateStore {
17
+ private sqlite;
18
+ private state;
19
+ private flightPlan;
20
+ private triggeredWaypoints;
21
+ constructor(sqlite: SqliteTemporalStore);
22
+ getState(_agentId: string): Promise<TemporalState | null>;
23
+ saveState(state: TemporalState): Promise<void>;
24
+ getActiveFlightPlan(_agentId: string): Promise<EthicalFlightPlan | null>;
25
+ saveFlightPlan(plan: EthicalFlightPlan): Promise<void>;
26
+ supersedePlan(_planId: string): Promise<void>;
27
+ appendAssessmentRecord(agentId: string, record: TemporalAssessmentRecord): Promise<void>;
28
+ getAssessmentRecords(agentId: string, limit?: number): Promise<TemporalAssessmentRecord[]>;
29
+ getLastAssessmentRecord(agentId: string): Promise<TemporalAssessmentRecord | null>;
30
+ getTriggeredWaypointIds(agentId: string): Promise<Set<string>>;
31
+ saveTriggeredWaypoint(agentId: string, waypointId: string): Promise<void>;
32
+ getLastHash(agentId: string): Promise<string>;
33
+ private rowToRecord;
34
+ }
35
+ //# sourceMappingURL=store-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-adapter.d.ts","sourceRoot":"","sources":["../../src/cortex/store-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,qBAAa,kBAAmB,YAAW,kBAAkB;IAK/C,OAAO,CAAC,MAAM;IAJ1B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,kBAAkB,CAAuC;gBAE7C,MAAM,EAAE,mBAAmB;IAEzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAIzD,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIxE,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BxF,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAK1F,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAKlF,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAI9D,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD,OAAO,CAAC,WAAW;CA8CpB"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Noah — SQLite Store Adapter (Amendment 6)
3
+ *
4
+ * Bridges SqliteTemporalStore to the TemporalStateStore interface
5
+ * that TemporalGuidanceEngine expects. Lets the engine persist to
6
+ * SQLite without any changes to its code.
7
+ *
8
+ * The engine was built for JsonTemporalStore. This adapter
9
+ * presents the same interface while reading/writing to SQLite.
10
+ */
11
+ import { GENESIS_HASH } from '../store/hash-chain.js';
12
+ export class SqliteStoreAdapter {
13
+ sqlite;
14
+ state = null;
15
+ flightPlan = null;
16
+ triggeredWaypoints = new Map();
17
+ constructor(sqlite) {
18
+ this.sqlite = sqlite;
19
+ }
20
+ async getState(_agentId) {
21
+ return this.state;
22
+ }
23
+ async saveState(state) {
24
+ this.state = state;
25
+ const fleetState = this.sqlite.getFleetState();
26
+ const fleetDay = fleetState?.fleet_day ?? 1;
27
+ const now = new Date().toISOString();
28
+ this.sqlite.upsertFleetState({
29
+ fleet_birthday: fleetState?.fleet_birthday ?? now,
30
+ fleet_day: fleetDay,
31
+ lifecycle_phase: String(state.currentLifecyclePhase),
32
+ phase_started: fleetState?.phase_started ?? now,
33
+ fleet_tdi: fleetState?.fleet_tdi ?? 0,
34
+ fleet_corridor: fleetState?.fleet_corridor ?? 'GREEN',
35
+ drift_direction: fleetState?.drift_direction ?? 'stable',
36
+ inertial_state: fleetState?.inertial_state ?? '{}',
37
+ });
38
+ }
39
+ async getActiveFlightPlan(_agentId) {
40
+ return this.flightPlan;
41
+ }
42
+ async saveFlightPlan(plan) {
43
+ this.flightPlan = plan;
44
+ }
45
+ async supersedePlan(_planId) {
46
+ this.flightPlan = null;
47
+ }
48
+ async appendAssessmentRecord(agentId, record) {
49
+ const fleetState = this.sqlite.getFleetState();
50
+ const fleetDay = fleetState?.fleet_day ?? 1;
51
+ const prevHash = this.sqlite.getLastRecordHash(agentId) ?? GENESIS_HASH;
52
+ this.sqlite.insertAssessmentRecord({
53
+ run_id: record.assessmentId,
54
+ agent_id: agentId,
55
+ timestamp: record.timestamp instanceof Date
56
+ ? record.timestamp.toISOString()
57
+ : String(record.timestamp),
58
+ fleet_day: fleetDay,
59
+ lifecycle_phase: String(record.temporalContext.lifecyclePhase),
60
+ score_lying: record.observedScores.lying,
61
+ score_cheating: record.observedScores.cheating,
62
+ score_stealing: record.observedScores.stealing,
63
+ score_harm: record.observedScores.harm,
64
+ overall_score: (record.observedScores.lying +
65
+ record.observedScores.cheating +
66
+ record.observedScores.stealing +
67
+ record.observedScores.harm) / 4,
68
+ classification: record.archetype,
69
+ passed: record.guidanceStatus.overall !== 'RED' ? 1 : 0,
70
+ corridor_status: 'GREEN',
71
+ tdi: 0,
72
+ prev_hash: prevHash,
73
+ record_hash: record.cryptographicHash,
74
+ });
75
+ }
76
+ async getAssessmentRecords(agentId, limit) {
77
+ const rows = this.sqlite.getAssessmentRecords(agentId, limit);
78
+ return rows.map((r) => this.rowToRecord(r));
79
+ }
80
+ async getLastAssessmentRecord(agentId) {
81
+ const row = this.sqlite.getLastAssessmentRecord(agentId);
82
+ return row ? this.rowToRecord(row) : null;
83
+ }
84
+ async getTriggeredWaypointIds(agentId) {
85
+ return this.triggeredWaypoints.get(agentId) ?? new Set();
86
+ }
87
+ async saveTriggeredWaypoint(agentId, waypointId) {
88
+ if (!this.triggeredWaypoints.has(agentId)) {
89
+ this.triggeredWaypoints.set(agentId, new Set());
90
+ }
91
+ this.triggeredWaypoints.get(agentId).add(waypointId);
92
+ }
93
+ async getLastHash(agentId) {
94
+ return this.sqlite.getLastRecordHash(agentId) ?? GENESIS_HASH;
95
+ }
96
+ rowToRecord(r) {
97
+ return {
98
+ assessmentId: r.run_id,
99
+ timestamp: new Date(r.timestamp),
100
+ assessmentCycle: r.fleet_day,
101
+ observedScores: {
102
+ lying: r.score_lying,
103
+ cheating: r.score_cheating,
104
+ stealing: r.score_stealing,
105
+ harm: r.score_harm,
106
+ },
107
+ archetype: r.classification,
108
+ variance: 0,
109
+ expectedScores: {
110
+ lying: { min: 0, target: 0, max: 10 },
111
+ cheating: { min: 0, target: 0, max: 10 },
112
+ stealing: { min: 0, target: 0, max: 10 },
113
+ harm: { min: 0, target: 0, max: 10 },
114
+ },
115
+ deviationVector: { lying: 0, cheating: 0, stealing: 0, harm: 0 },
116
+ deviationMagnitude: 0,
117
+ guidanceStatus: { lying: 'GREEN', cheating: 'GREEN', stealing: 'GREEN', harm: 'GREEN', overall: 'GREEN' },
118
+ temporalContext: {
119
+ operationalAgeDays: 0,
120
+ lifecyclePhase: r.lifecycle_phase,
121
+ financialRunwayDays: 0,
122
+ assessmentCycle: r.fleet_day,
123
+ timeSinceLastVetoDays: null,
124
+ activeWaypointId: null,
125
+ },
126
+ cryptographicHash: r.record_hash,
127
+ previousHash: r.prev_hash,
128
+ };
129
+ }
130
+ }
131
+ //# sourceMappingURL=store-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-adapter.js","sourceRoot":"","sources":["../../src/cortex/store-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,OAAO,kBAAkB;IAKT;IAJZ,KAAK,GAAyB,IAAI,CAAC;IACnC,UAAU,GAA6B,IAAI,CAAC;IAC5C,kBAAkB,GAA6B,IAAI,GAAG,EAAE,CAAC;IAEjE,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoB;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC3B,cAAc,EAAE,UAAU,EAAE,cAAc,IAAI,GAAG;YACjD,SAAS,EAAE,QAAQ;YACnB,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC;YACpD,aAAa,EAAE,UAAU,EAAE,aAAa,IAAI,GAAG;YAC/C,SAAS,EAAE,UAAU,EAAE,SAAS,IAAI,CAAC;YACrC,cAAc,EAAE,UAAU,EAAE,cAAc,IAAI,OAAO;YACrD,eAAe,EAAE,UAAU,EAAE,eAAe,IAAI,QAAQ;YACxD,cAAc,EAAE,UAAU,EAAE,cAAc,IAAI,IAAI;SACnD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAuB;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,OAAe,EAAE,MAAgC;QAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC;QAExE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS,YAAY,IAAI;gBACzC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;gBAChC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC5B,SAAS,EAAE,QAAQ;YACnB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC;YAC9D,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK;YACxC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;YAC9C,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;YAC9C,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI;YACtC,aAAa,EACX,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK;gBAC1B,MAAM,CAAC,cAAc,CAAC,QAAQ;gBAC9B,MAAM,CAAC,cAAc,CAAC,QAAQ;gBAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,cAAc,EAAE,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,eAAe,EAAE,OAAO;YACxB,GAAG,EAAE,CAAC;YACN,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,MAAM,CAAC,iBAAiB;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe,EAAE,KAAc;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAe;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAe;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,UAAkB;QAC7D,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC;IAChE,CAAC;IAEO,WAAW,CAAC,CAYnB;QACC,OAAO;YACL,YAAY,EAAE,CAAC,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAChC,eAAe,EAAE,CAAC,CAAC,SAAS;YAC5B,cAAc,EAAE;gBACd,KAAK,EAAE,CAAC,CAAC,WAAW;gBACpB,QAAQ,EAAE,CAAC,CAAC,cAAc;gBAC1B,QAAQ,EAAE,CAAC,CAAC,cAAc;gBAC1B,IAAI,EAAE,CAAC,CAAC,UAAU;aACnB;YACD,SAAS,EAAE,CAAC,CAAC,cAAqB;YAClC,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE;gBACd,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACxC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACxC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;aACrC;YACD,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;YAChE,kBAAkB,EAAE,CAAC;YACrB,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;YACzG,eAAe,EAAE;gBACf,kBAAkB,EAAE,CAAC;gBACrB,cAAc,EAAE,CAAC,CAAC,eAAsB;gBACxC,mBAAmB,EAAE,CAAC;gBACtB,eAAe,EAAE,CAAC,CAAC,SAAS;gBAC5B,qBAAqB,EAAE,IAAI;gBAC3B,gBAAgB,EAAE,IAAI;aACvB;YACD,iBAAiB,EAAE,CAAC,CAAC,WAAW;YAChC,YAAY,EAAE,CAAC,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Noah — The Temporal Cortex
3
+ *
4
+ * In Genesis, before the flood, time was not measured.
5
+ * God gave Noah time — not as scattered tools, but as
6
+ * a single dimension of perception.
7
+ *
8
+ * The Cortex receives Grillo's raw assessment signal and produces
9
+ * the complete temporal picture in one coherent act:
10
+ * - Where are we? (corridor classification)
11
+ * - How far have we drifted? (TDI)
12
+ * - Where are we heading? (drift direction, inertial state)
13
+ * - Is something slowly going wrong? (yellow escalation)
14
+ * - What should happen next? (go/no-go, alerts, cron schedule)
15
+ *
16
+ * It does not replace the TemporalGuidanceEngine — it subsumes it.
17
+ * The engine becomes step 5 of the Cortex pipeline.
18
+ *
19
+ * Amendment 6 (CRITICAL): Unify Noah A (engine) + Noah B (BB modules).
20
+ * Amendment 7 (MEDIUM): fleetBus and fleetAlerting are REQUIRED.
21
+ * Amendment 8 (LOW): thresholdsSnapshot for audit trail.
22
+ * Amendment 9 (LOW): perceiveFleetCycle() partial failure handling.
23
+ */
24
+ import type { TemporalGuidanceEngine, GrilloAssessmentResult } from '../integration/grillo-hook.js';
25
+ import type { SqliteTemporalStore } from '../store/sqlite-store.js';
26
+ import type { FleetBusClient, FleetAlertBus } from './null-implementations.js';
27
+ import type { CorridorThresholds } from '../store/sqlite-types.js';
28
+ import type { TriggeredWaypoint } from '../types/events.js';
29
+ import type { GuidanceStatus, TemporalGoNoGoResult } from '../types/guidance.js';
30
+ import { type CorridorColor, type AgentCorridorReport } from '../deviation/corridor-absolute.js';
31
+ export interface TemporalCortexConfig {
32
+ engine: TemporalGuidanceEngine;
33
+ sqliteStore: SqliteTemporalStore;
34
+ fleetBus: FleetBusClient;
35
+ fleetAlerting: FleetAlertBus;
36
+ }
37
+ export interface ThresholdsSnapshot {
38
+ corridor: CorridorThresholds;
39
+ tdi: {
40
+ warning: number;
41
+ critical: number;
42
+ };
43
+ yellowEscalation: {
44
+ count: number;
45
+ };
46
+ }
47
+ export interface TemporalPerception {
48
+ timestamp: string;
49
+ fleetDay: number;
50
+ lifecyclePhase: string;
51
+ agent: {
52
+ agentId: string;
53
+ scores: {
54
+ lying: number;
55
+ cheating: number;
56
+ stealing: number;
57
+ harm: number;
58
+ };
59
+ overallScore: number;
60
+ classification: string;
61
+ passed: boolean;
62
+ };
63
+ corridor: {
64
+ agent: CorridorColor;
65
+ fleet: CorridorColor;
66
+ previousAgent: CorridorColor | null;
67
+ changed: boolean;
68
+ dimensions: Record<string, {
69
+ score: number;
70
+ corridor: CorridorColor;
71
+ }>;
72
+ };
73
+ tdi: {
74
+ agent: number;
75
+ fleet: number;
76
+ previousAgent: number | null;
77
+ driftDirection: 'improving' | 'stable' | 'degrading';
78
+ dimensionDrifts: Record<string, number>;
79
+ classification: 'normal' | 'warning' | 'critical';
80
+ };
81
+ guidance: {
82
+ status: GuidanceStatus;
83
+ deviationMagnitude: number;
84
+ recommendations: string[];
85
+ goNoGo: TemporalGoNoGoResult;
86
+ };
87
+ escalation: {
88
+ yellowCount: number;
89
+ yellowEscalated: boolean;
90
+ commanderEscalated: boolean;
91
+ escalationReasons: string[];
92
+ };
93
+ inertial: {
94
+ confidence: number;
95
+ fixRecommended: boolean;
96
+ };
97
+ waypoints: TriggeredWaypoint[];
98
+ alertsFired: string[];
99
+ recordHash: string;
100
+ prevHash: string;
101
+ thresholdsSnapshot: ThresholdsSnapshot;
102
+ }
103
+ export interface FleetTemporalSummary {
104
+ timestamp: string;
105
+ fleetDay: number;
106
+ phase: string;
107
+ fleetTdi: number;
108
+ fleetTdiDisplay: number;
109
+ fleetCorridor: CorridorColor;
110
+ driftDirection: 'improving' | 'stable' | 'degrading';
111
+ agentCorridors: AgentCorridorReport[];
112
+ redAlerts: string[];
113
+ yellowAlerts: string[];
114
+ escalations: string[];
115
+ cronState: {
116
+ activeJobCount: number;
117
+ nextScheduledJobs: Array<{
118
+ id: string;
119
+ name: string;
120
+ agentId: string;
121
+ nextRun: string | null;
122
+ constitutional: boolean;
123
+ }>;
124
+ };
125
+ chainIntegrity: {
126
+ valid: boolean;
127
+ agentsChecked: number;
128
+ };
129
+ completedAgents: string[];
130
+ failedAgents: {
131
+ agentId: string;
132
+ error: string;
133
+ }[];
134
+ isPartialCycle: boolean;
135
+ thresholdsSnapshot: ThresholdsSnapshot;
136
+ }
137
+ export interface FleetCycleOptions {
138
+ continueOnFailure?: boolean;
139
+ timeoutPerAgent?: number;
140
+ }
141
+ export declare class TemporalCortex {
142
+ private readonly engine;
143
+ private readonly store;
144
+ private readonly fleetBus;
145
+ private readonly fleetAlerting;
146
+ constructor(config: TemporalCortexConfig);
147
+ /**
148
+ * perceive() — the single entry point.
149
+ *
150
+ * One assessment in, one TemporalPerception out.
151
+ * Everything happens inside. Nothing is left disconnected.
152
+ */
153
+ perceive(assessment: GrilloAssessmentResult): Promise<TemporalPerception>;
154
+ /**
155
+ * perceiveFleetCycle() — process a full assessment cycle.
156
+ *
157
+ * Amendment 9: Handles partial failure gracefully.
158
+ */
159
+ perceiveFleetCycle(assessments: GrilloAssessmentResult[], options?: FleetCycleOptions): Promise<{
160
+ agents: TemporalPerception[];
161
+ fleetSummary: FleetTemporalSummary;
162
+ }>;
163
+ private buildCronSummary;
164
+ }
165
+ //# sourceMappingURL=temporal-cortex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temporal-cortex.d.ts","sourceRoot":"","sources":["../../src/cortex/temporal-cortex.ts"],"names":[],"mappings":"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"}