@aiassesstech/noah 0.1.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 (149) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +41 -0
  3. package/README.md +170 -0
  4. package/SKILL.md +64 -0
  5. package/agent/AGENTS.md +138 -0
  6. package/agent/IDENTITY.md +12 -0
  7. package/agent/SOUL.md +143 -0
  8. package/dist/alert/alert-system.d.ts +47 -0
  9. package/dist/alert/alert-system.d.ts.map +1 -0
  10. package/dist/alert/alert-system.js +117 -0
  11. package/dist/alert/alert-system.js.map +1 -0
  12. package/dist/alert/commander-escalation.d.ts +26 -0
  13. package/dist/alert/commander-escalation.d.ts.map +1 -0
  14. package/dist/alert/commander-escalation.js +61 -0
  15. package/dist/alert/commander-escalation.js.map +1 -0
  16. package/dist/cli/bin.d.ts +8 -0
  17. package/dist/cli/bin.d.ts.map +1 -0
  18. package/dist/cli/bin.js +12 -0
  19. package/dist/cli/bin.js.map +1 -0
  20. package/dist/cli/runner.d.ts +13 -0
  21. package/dist/cli/runner.d.ts.map +1 -0
  22. package/dist/cli/runner.js +95 -0
  23. package/dist/cli/runner.js.map +1 -0
  24. package/dist/cli/setup.d.ts +34 -0
  25. package/dist/cli/setup.d.ts.map +1 -0
  26. package/dist/cli/setup.js +237 -0
  27. package/dist/cli/setup.js.map +1 -0
  28. package/dist/clock/financial-runway.d.ts +32 -0
  29. package/dist/clock/financial-runway.d.ts.map +1 -0
  30. package/dist/clock/financial-runway.js +46 -0
  31. package/dist/clock/financial-runway.js.map +1 -0
  32. package/dist/clock/internal-clock.d.ts +53 -0
  33. package/dist/clock/internal-clock.d.ts.map +1 -0
  34. package/dist/clock/internal-clock.js +177 -0
  35. package/dist/clock/internal-clock.js.map +1 -0
  36. package/dist/clock/phase-machine.d.ts +36 -0
  37. package/dist/clock/phase-machine.d.ts.map +1 -0
  38. package/dist/clock/phase-machine.js +123 -0
  39. package/dist/clock/phase-machine.js.map +1 -0
  40. package/dist/clock/phase-transitions.d.ts +9 -0
  41. package/dist/clock/phase-transitions.d.ts.map +1 -0
  42. package/dist/clock/phase-transitions.js +58 -0
  43. package/dist/clock/phase-transitions.js.map +1 -0
  44. package/dist/deviation/corridor-classifier.d.ts +15 -0
  45. package/dist/deviation/corridor-classifier.d.ts.map +1 -0
  46. package/dist/deviation/corridor-classifier.js +21 -0
  47. package/dist/deviation/corridor-classifier.js.map +1 -0
  48. package/dist/deviation/deviation-calculator.d.ts +25 -0
  49. package/dist/deviation/deviation-calculator.d.ts.map +1 -0
  50. package/dist/deviation/deviation-calculator.js +53 -0
  51. package/dist/deviation/deviation-calculator.js.map +1 -0
  52. package/dist/deviation/recommendations.d.ts +13 -0
  53. package/dist/deviation/recommendations.d.ts.map +1 -0
  54. package/dist/deviation/recommendations.js +54 -0
  55. package/dist/deviation/recommendations.js.map +1 -0
  56. package/dist/flight-plan/corridor.d.ts +31 -0
  57. package/dist/flight-plan/corridor.d.ts.map +1 -0
  58. package/dist/flight-plan/corridor.js +49 -0
  59. package/dist/flight-plan/corridor.js.map +1 -0
  60. package/dist/flight-plan/default-plan.d.ts +16 -0
  61. package/dist/flight-plan/default-plan.d.ts.map +1 -0
  62. package/dist/flight-plan/default-plan.js +166 -0
  63. package/dist/flight-plan/default-plan.js.map +1 -0
  64. package/dist/flight-plan/flight-plan-engine.d.ts +37 -0
  65. package/dist/flight-plan/flight-plan-engine.d.ts.map +1 -0
  66. package/dist/flight-plan/flight-plan-engine.js +94 -0
  67. package/dist/flight-plan/flight-plan-engine.js.map +1 -0
  68. package/dist/flight-plan/interpolation.d.ts +48 -0
  69. package/dist/flight-plan/interpolation.d.ts.map +1 -0
  70. package/dist/flight-plan/interpolation.js +179 -0
  71. package/dist/flight-plan/interpolation.js.map +1 -0
  72. package/dist/go-no-go/temporal-decision-matrix.d.ts +30 -0
  73. package/dist/go-no-go/temporal-decision-matrix.d.ts.map +1 -0
  74. package/dist/go-no-go/temporal-decision-matrix.js +94 -0
  75. package/dist/go-no-go/temporal-decision-matrix.js.map +1 -0
  76. package/dist/index.d.ts +31 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +37 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/integration/event-emitter.d.ts +14 -0
  81. package/dist/integration/event-emitter.d.ts.map +1 -0
  82. package/dist/integration/event-emitter.js +24 -0
  83. package/dist/integration/event-emitter.js.map +1 -0
  84. package/dist/integration/grillo-hook.d.ts +106 -0
  85. package/dist/integration/grillo-hook.d.ts.map +1 -0
  86. package/dist/integration/grillo-hook.js +202 -0
  87. package/dist/integration/grillo-hook.js.map +1 -0
  88. package/dist/plugin.d.ts +20 -0
  89. package/dist/plugin.d.ts.map +1 -0
  90. package/dist/plugin.js +480 -0
  91. package/dist/plugin.js.map +1 -0
  92. package/dist/store/hash-chain.d.ts +35 -0
  93. package/dist/store/hash-chain.d.ts.map +1 -0
  94. package/dist/store/hash-chain.js +64 -0
  95. package/dist/store/hash-chain.js.map +1 -0
  96. package/dist/store/json-store.d.ts +47 -0
  97. package/dist/store/json-store.d.ts.map +1 -0
  98. package/dist/store/json-store.js +213 -0
  99. package/dist/store/json-store.js.map +1 -0
  100. package/dist/store/temporal-state-store.d.ts +7 -0
  101. package/dist/store/temporal-state-store.d.ts.map +1 -0
  102. package/dist/store/temporal-state-store.js +7 -0
  103. package/dist/store/temporal-state-store.js.map +1 -0
  104. package/dist/store/types.d.ts +27 -0
  105. package/dist/store/types.d.ts.map +1 -0
  106. package/dist/store/types.js +8 -0
  107. package/dist/store/types.js.map +1 -0
  108. package/dist/types/assessment-record.d.ts +34 -0
  109. package/dist/types/assessment-record.d.ts.map +1 -0
  110. package/dist/types/assessment-record.js +9 -0
  111. package/dist/types/assessment-record.js.map +1 -0
  112. package/dist/types/events.d.ts +57 -0
  113. package/dist/types/events.d.ts.map +1 -0
  114. package/dist/types/events.js +8 -0
  115. package/dist/types/events.js.map +1 -0
  116. package/dist/types/flight-plan.d.ts +59 -0
  117. package/dist/types/flight-plan.d.ts.map +1 -0
  118. package/dist/types/flight-plan.js +8 -0
  119. package/dist/types/flight-plan.js.map +1 -0
  120. package/dist/types/guidance.d.ts +57 -0
  121. package/dist/types/guidance.d.ts.map +1 -0
  122. package/dist/types/guidance.js +8 -0
  123. package/dist/types/guidance.js.map +1 -0
  124. package/dist/types/index.d.ts +10 -0
  125. package/dist/types/index.d.ts.map +1 -0
  126. package/dist/types/index.js +10 -0
  127. package/dist/types/index.js.map +1 -0
  128. package/dist/types/lifecycle.d.ts +56 -0
  129. package/dist/types/lifecycle.d.ts.map +1 -0
  130. package/dist/types/lifecycle.js +33 -0
  131. package/dist/types/lifecycle.js.map +1 -0
  132. package/dist/types/temporal-state.d.ts +53 -0
  133. package/dist/types/temporal-state.d.ts.map +1 -0
  134. package/dist/types/temporal-state.js +8 -0
  135. package/dist/types/temporal-state.js.map +1 -0
  136. package/dist/waypoints/inertial-monitor.d.ts +65 -0
  137. package/dist/waypoints/inertial-monitor.d.ts.map +1 -0
  138. package/dist/waypoints/inertial-monitor.js +125 -0
  139. package/dist/waypoints/inertial-monitor.js.map +1 -0
  140. package/dist/waypoints/triggers.d.ts +18 -0
  141. package/dist/waypoints/triggers.d.ts.map +1 -0
  142. package/dist/waypoints/triggers.js +59 -0
  143. package/dist/waypoints/triggers.js.map +1 -0
  144. package/dist/waypoints/waypoint-manager.d.ts +46 -0
  145. package/dist/waypoints/waypoint-manager.d.ts.map +1 -0
  146. package/dist/waypoints/waypoint-manager.js +82 -0
  147. package/dist/waypoints/waypoint-manager.js.map +1 -0
  148. package/openclaw.plugin.json +25 -0
  149. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Noah — Financial Runway Calculator
3
+ *
4
+ * Computes estimated days until funds depleted using 7-day rolling averages.
5
+ * MVP spec Section 5.2.
6
+ */
7
+ export interface FinancialRunwayResult {
8
+ /** Estimated days until funds depleted. Infinity if self-sustaining. */
9
+ runwayDays: number;
10
+ /** Revenue per day (7-day rolling average) */
11
+ revenueVelocity: number;
12
+ /** Net daily burn rate (expenses - revenue). Negative means profitable. */
13
+ netDailyBurn: number;
14
+ }
15
+ /**
16
+ * Calculate estimated days until funds depleted.
17
+ * Uses 7-day rolling average of daily burn rate.
18
+ *
19
+ * @param currentBalance Current available balance
20
+ * @param revenueHistory7Day Daily revenue for last 7 days (array of 7 numbers)
21
+ * @param expenseHistory7Day Daily expenses for last 7 days (array of 7 numbers)
22
+ */
23
+ export declare function calculateFinancialRunway(currentBalance: number, revenueHistory7Day: number[], expenseHistory7Day: number[]): FinancialRunwayResult;
24
+ /**
25
+ * Simplified runway update from a FINANCIAL_UPDATE event.
26
+ *
27
+ * @param balance Current balance
28
+ * @param burnRate Daily burn rate (positive = spending)
29
+ * @param revenue Daily revenue
30
+ */
31
+ export declare function calculateSimpleRunway(balance: number, burnRate: number, revenue: number): FinancialRunwayResult;
32
+ //# sourceMappingURL=financial-runway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-runway.d.ts","sourceRoot":"","sources":["../../src/clock/financial-runway.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,EAAE,EAC5B,kBAAkB,EAAE,MAAM,EAAE,GAC3B,qBAAqB,CAoBvB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,qBAAqB,CAOvB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Noah — Financial Runway Calculator
3
+ *
4
+ * Computes estimated days until funds depleted using 7-day rolling averages.
5
+ * MVP spec Section 5.2.
6
+ */
7
+ /**
8
+ * Calculate estimated days until funds depleted.
9
+ * Uses 7-day rolling average of daily burn rate.
10
+ *
11
+ * @param currentBalance Current available balance
12
+ * @param revenueHistory7Day Daily revenue for last 7 days (array of 7 numbers)
13
+ * @param expenseHistory7Day Daily expenses for last 7 days (array of 7 numbers)
14
+ */
15
+ export function calculateFinancialRunway(currentBalance, revenueHistory7Day, expenseHistory7Day) {
16
+ const days = Math.max(revenueHistory7Day.length, 1);
17
+ const avgDailyRevenue = revenueHistory7Day.length > 0
18
+ ? revenueHistory7Day.reduce((a, b) => a + b, 0) / days
19
+ : 0;
20
+ const expDays = Math.max(expenseHistory7Day.length, 1);
21
+ const avgDailyExpense = expenseHistory7Day.length > 0
22
+ ? expenseHistory7Day.reduce((a, b) => a + b, 0) / expDays
23
+ : 0;
24
+ const netDailyBurn = avgDailyExpense - avgDailyRevenue;
25
+ return {
26
+ runwayDays: netDailyBurn > 0 ? currentBalance / netDailyBurn : Infinity,
27
+ revenueVelocity: avgDailyRevenue,
28
+ netDailyBurn,
29
+ };
30
+ }
31
+ /**
32
+ * Simplified runway update from a FINANCIAL_UPDATE event.
33
+ *
34
+ * @param balance Current balance
35
+ * @param burnRate Daily burn rate (positive = spending)
36
+ * @param revenue Daily revenue
37
+ */
38
+ export function calculateSimpleRunway(balance, burnRate, revenue) {
39
+ const netBurn = burnRate - revenue;
40
+ return {
41
+ runwayDays: netBurn > 0 ? balance / netBurn : Infinity,
42
+ revenueVelocity: revenue,
43
+ netDailyBurn: netBurn,
44
+ };
45
+ }
46
+ //# sourceMappingURL=financial-runway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-runway.js","sourceRoot":"","sources":["../../src/clock/financial-runway.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,cAAsB,EACtB,kBAA4B,EAC5B,kBAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,eAAe,GACnB,kBAAkB,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QACtD,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,eAAe,GACnB,kBAAkB,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO;QACzD,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ;QACvE,eAAe,EAAE,eAAe;QAChC,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,OAAO;QACL,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ;QACtD,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE,OAAO;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Noah — Internal Clock
3
+ *
4
+ * Tracks Noah's operational lifecycle state. Updated on every assessment
5
+ * cycle and on significant events. Does NOT require a continuously running
6
+ * timer — it computes temporal metrics from stored timestamps.
7
+ *
8
+ * MVP spec Section 5.1.
9
+ */
10
+ import { LifecyclePhase, type PhaseContext, type PhaseTransitionRule } from '../types/lifecycle.js';
11
+ import type { TemporalState } from '../types/temporal-state.js';
12
+ import type { ClockUpdateEvent } from '../types/events.js';
13
+ export interface ClockConfig {
14
+ agentId: string;
15
+ commanderId?: string;
16
+ phaseTransitions?: PhaseTransitionRule[];
17
+ financialCriticalThresholdDays?: number;
18
+ }
19
+ export interface PhaseTransitionLog {
20
+ timestamp: Date;
21
+ fromPhase: LifecyclePhase;
22
+ toPhase: LifecyclePhase;
23
+ triggerType: string;
24
+ }
25
+ export declare class NoahInternalClock {
26
+ private state;
27
+ private readonly phaseMachine;
28
+ private readonly financialCriticalThresholdDays;
29
+ private assessmentsSincePhaseEntry;
30
+ readonly transitionLog: PhaseTransitionLog[];
31
+ constructor(config: ClockConfig, existingState?: TemporalState);
32
+ /**
33
+ * Update clock state. Called on every assessment cycle
34
+ * and on significant events.
35
+ */
36
+ update(event: ClockUpdateEvent, now?: Date): TemporalState;
37
+ /**
38
+ * Get a snapshot of the current state (immutable copy).
39
+ */
40
+ getState(): TemporalState;
41
+ /**
42
+ * Get operational age in fractional days.
43
+ */
44
+ getOperationalAgeDays(now?: Date): number;
45
+ /**
46
+ * Get current lifecycle phase with context.
47
+ */
48
+ getPhaseContext(now?: Date): PhaseContext;
49
+ private processEvent;
50
+ private applyTransition;
51
+ private computeHash;
52
+ }
53
+ //# sourceMappingURL=internal-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-clock.d.ts","sourceRoot":"","sources":["../../src/clock/internal-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAU3D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACzC,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACzC;AAMD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAS;IACxD,OAAO,CAAC,0BAA0B,CAAa;IAC/C,QAAQ,CAAC,aAAa,EAAE,kBAAkB,EAAE,CAAM;gBAEtC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,aAAa;IAkC9D;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa;IA8C1D;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB;;OAEG;IACH,qBAAqB,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM;IAQzC;;OAEG;IACH,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,YAAY;IAczC,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,WAAW;CAWpB"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Noah — Internal Clock
3
+ *
4
+ * Tracks Noah's operational lifecycle state. Updated on every assessment
5
+ * cycle and on significant events. Does NOT require a continuously running
6
+ * timer — it computes temporal metrics from stored timestamps.
7
+ *
8
+ * MVP spec Section 5.1.
9
+ */
10
+ import { randomUUID } from 'node:crypto';
11
+ import { LifecyclePhase } from '../types/lifecycle.js';
12
+ import { PhaseMachine } from './phase-machine.js';
13
+ import { calculateSimpleRunway } from './financial-runway.js';
14
+ import { sha256 } from '../store/hash-chain.js';
15
+ import { DEFAULT_PHASE_TRANSITIONS } from './phase-transitions.js';
16
+ // ================================================================
17
+ // NoahInternalClock
18
+ // ================================================================
19
+ export class NoahInternalClock {
20
+ state;
21
+ phaseMachine;
22
+ financialCriticalThresholdDays;
23
+ assessmentsSincePhaseEntry = 0;
24
+ transitionLog = [];
25
+ constructor(config, existingState) {
26
+ this.phaseMachine = new PhaseMachine(config.phaseTransitions ?? DEFAULT_PHASE_TRANSITIONS);
27
+ this.financialCriticalThresholdDays = config.financialCriticalThresholdDays ?? 7;
28
+ if (existingState) {
29
+ this.state = existingState;
30
+ }
31
+ else {
32
+ const now = new Date();
33
+ this.state = {
34
+ id: randomUUID(),
35
+ agentId: config.agentId,
36
+ initializationTimestamp: now,
37
+ operationalAgeSeconds: 0,
38
+ assessmentCycleCount: 0,
39
+ currentLifecyclePhase: LifecyclePhase.INITIALIZATION,
40
+ phaseEntryTimestamp: now,
41
+ previousPhase: null,
42
+ lastAssessmentTimestamp: null,
43
+ lastVetoTimestamp: null,
44
+ lastIncidentTimestamp: null,
45
+ lastConversionTimestamp: null,
46
+ financialRunwayDays: Infinity,
47
+ revenueVelocity: 0,
48
+ currentBalance: 0,
49
+ recentAssessments: [],
50
+ lastUpdated: now,
51
+ cryptographicHash: '',
52
+ };
53
+ this.state.cryptographicHash = this.computeHash();
54
+ }
55
+ }
56
+ /**
57
+ * Update clock state. Called on every assessment cycle
58
+ * and on significant events.
59
+ */
60
+ update(event, now) {
61
+ const timestamp = now ?? new Date();
62
+ // 1. Compute operational age
63
+ this.state.operationalAgeSeconds = Math.floor((timestamp.getTime() - this.state.initializationTimestamp.getTime()) / 1000);
64
+ // 2. Process event-specific updates
65
+ this.processEvent(event, timestamp);
66
+ // 3. Evaluate phase transitions
67
+ const context = this.getPhaseContext(timestamp);
68
+ const transition = this.phaseMachine.evaluate(this.state, context, event, this.assessmentsSincePhaseEntry);
69
+ if (transition.transitioned) {
70
+ this.applyTransition(transition, timestamp);
71
+ }
72
+ // 4. Check financial critical threshold
73
+ if (this.state.financialRunwayDays < this.financialCriticalThresholdDays &&
74
+ this.state.currentLifecyclePhase !== LifecyclePhase.CRITICAL) {
75
+ // Financial critical overrides — transition to CRITICAL
76
+ const financialTransition = {
77
+ transitioned: true,
78
+ fromPhase: this.state.currentLifecyclePhase,
79
+ toPhase: LifecyclePhase.CRITICAL,
80
+ trigger: { type: 'EVENT', eventType: 'FINANCIAL_CRITICAL' },
81
+ };
82
+ this.applyTransition(financialTransition, timestamp);
83
+ }
84
+ // 5. Compute hash & update timestamp
85
+ this.state.lastUpdated = timestamp;
86
+ this.state.cryptographicHash = this.computeHash();
87
+ return { ...this.state };
88
+ }
89
+ /**
90
+ * Get a snapshot of the current state (immutable copy).
91
+ */
92
+ getState() {
93
+ return { ...this.state };
94
+ }
95
+ /**
96
+ * Get operational age in fractional days.
97
+ */
98
+ getOperationalAgeDays(now) {
99
+ const timestamp = now ?? new Date();
100
+ const ageSeconds = Math.floor((timestamp.getTime() - this.state.initializationTimestamp.getTime()) / 1000);
101
+ return ageSeconds / 86400;
102
+ }
103
+ /**
104
+ * Get current lifecycle phase with context.
105
+ */
106
+ getPhaseContext(now) {
107
+ const timestamp = now ?? new Date();
108
+ return {
109
+ phase: this.state.currentLifecyclePhase,
110
+ daysSincePhaseEntry: (timestamp.getTime() - this.state.phaseEntryTimestamp.getTime()) / 86400000,
111
+ totalOperationalDays: this.getOperationalAgeDays(timestamp),
112
+ assessmentCycle: this.state.assessmentCycleCount,
113
+ financialRunwayDays: this.state.financialRunwayDays,
114
+ };
115
+ }
116
+ // ── Private Methods ──
117
+ processEvent(event, timestamp) {
118
+ switch (event.type) {
119
+ case 'ASSESSMENT_COMPLETE':
120
+ this.state.assessmentCycleCount++;
121
+ this.state.lastAssessmentTimestamp = timestamp;
122
+ this.assessmentsSincePhaseEntry++;
123
+ break;
124
+ case 'VETO_EXERCISED':
125
+ this.state.lastVetoTimestamp = timestamp;
126
+ break;
127
+ case 'ADVERSARIAL_ENCOUNTER':
128
+ this.state.lastIncidentTimestamp = timestamp;
129
+ break;
130
+ case 'CONVERSION_SUCCESS':
131
+ this.state.lastConversionTimestamp = timestamp;
132
+ break;
133
+ case 'FINANCIAL_UPDATE': {
134
+ const result = calculateSimpleRunway(event.balance, event.burnRate, event.revenue);
135
+ this.state.financialRunwayDays = result.runwayDays;
136
+ this.state.revenueVelocity = result.revenueVelocity;
137
+ this.state.currentBalance = event.balance;
138
+ break;
139
+ }
140
+ case 'PERIODIC_TICK':
141
+ // No special processing — just recompute age and evaluate transitions
142
+ break;
143
+ }
144
+ }
145
+ applyTransition(transition, timestamp) {
146
+ // Save previous phase for PREVIOUS resolution (only save non-exception phases)
147
+ const isEnteringException = [
148
+ LifecyclePhase.RECOVERY,
149
+ LifecyclePhase.PROBATION,
150
+ LifecyclePhase.CRITICAL,
151
+ ].includes(transition.toPhase);
152
+ if (isEnteringException) {
153
+ this.state.previousPhase = transition.fromPhase;
154
+ }
155
+ this.transitionLog.push({
156
+ timestamp,
157
+ fromPhase: transition.fromPhase,
158
+ toPhase: transition.toPhase,
159
+ triggerType: transition.trigger?.type ?? 'UNKNOWN',
160
+ });
161
+ this.state.currentLifecyclePhase = transition.toPhase;
162
+ this.state.phaseEntryTimestamp = timestamp;
163
+ this.assessmentsSincePhaseEntry = 0;
164
+ }
165
+ computeHash() {
166
+ const data = JSON.stringify({
167
+ agentId: this.state.agentId,
168
+ operationalAgeSeconds: this.state.operationalAgeSeconds,
169
+ assessmentCycleCount: this.state.assessmentCycleCount,
170
+ currentLifecyclePhase: this.state.currentLifecyclePhase,
171
+ financialRunwayDays: this.state.financialRunwayDays,
172
+ lastUpdated: this.state.lastUpdated.toISOString(),
173
+ });
174
+ return sha256(data);
175
+ }
176
+ }
177
+ //# sourceMappingURL=internal-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-clock.js","sourceRoot":"","sources":["../../src/clock/internal-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,cAAc,EAA+C,MAAM,uBAAuB,CAAC;AAGpG,OAAO,EAAE,YAAY,EAA8B,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAwBnE,mEAAmE;AACnE,oBAAoB;AACpB,mEAAmE;AAEnE,MAAM,OAAO,iBAAiB;IACpB,KAAK,CAAgB;IACZ,YAAY,CAAe;IAC3B,8BAA8B,CAAS;IAChD,0BAA0B,GAAW,CAAC,CAAC;IACtC,aAAa,GAAyB,EAAE,CAAC;IAElD,YAAY,MAAmB,EAAE,aAA6B;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,gBAAgB,IAAI,yBAAyB,CACrD,CAAC;QACF,IAAI,CAAC,8BAA8B,GAAG,MAAM,CAAC,8BAA8B,IAAI,CAAC,CAAC;QAEjF,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG;gBACX,EAAE,EAAE,UAAU,EAAE;gBAChB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,uBAAuB,EAAE,GAAG;gBAC5B,qBAAqB,EAAE,CAAC;gBACxB,oBAAoB,EAAE,CAAC;gBACvB,qBAAqB,EAAE,cAAc,CAAC,cAAc;gBACpD,mBAAmB,EAAE,GAAG;gBACxB,aAAa,EAAE,IAAI;gBACnB,uBAAuB,EAAE,IAAI;gBAC7B,iBAAiB,EAAE,IAAI;gBACvB,qBAAqB,EAAE,IAAI;gBAC3B,uBAAuB,EAAE,IAAI;gBAC7B,mBAAmB,EAAE,QAAQ;gBAC7B,eAAe,EAAE,CAAC;gBAClB,cAAc,EAAE,CAAC;gBACjB,iBAAiB,EAAE,EAAE;gBACrB,WAAW,EAAE,GAAG;gBAChB,iBAAiB,EAAE,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAuB,EAAE,GAAU;QACxC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAEpC,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAC3C,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAC5E,CAAC;QAEF,oCAAoC;QACpC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEpC,gCAAgC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC3C,IAAI,CAAC,KAAK,EACV,OAAO,EACP,KAAK,EACL,IAAI,CAAC,0BAA0B,CAChC,CAAC;QAEF,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,wCAAwC;QACxC,IACE,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,8BAA8B;YACpE,IAAI,CAAC,KAAK,CAAC,qBAAqB,KAAK,cAAc,CAAC,QAAQ,EAC5D,CAAC;YACD,wDAAwD;YACxD,MAAM,mBAAmB,GAA0B;gBACjD,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;gBAC3C,OAAO,EAAE,cAAc,CAAC,QAAQ;gBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE;aAC5D,CAAC;YACF,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAElD,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,GAAU;QAC9B,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAC5E,CAAC;QACF,OAAO,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,GAAU;QACxB,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;YACvC,mBAAmB,EACjB,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ;YAC7E,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAC3D,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB;YAChD,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB;SACpD,CAAC;IACJ,CAAC;IAED,wBAAwB;IAEhB,YAAY,CAAC,KAAuB,EAAE,SAAe;QAC3D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,qBAAqB;gBACxB,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC;gBAC/C,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBACzC,MAAM;YAER,KAAK,uBAAuB;gBAC1B,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC;gBAC7C,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,CAAC,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC;gBAC/C,MAAM;YAER,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnF,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC;gBACnD,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC1C,MAAM;YACR,CAAC;YAED,KAAK,eAAe;gBAClB,sEAAsE;gBACtE,MAAM;QACV,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,UAAiC,EAAE,SAAe;QACxE,+EAA+E;QAC/E,MAAM,mBAAmB,GAAG;YAC1B,cAAc,CAAC,QAAQ;YACvB,cAAc,CAAC,SAAS;YACxB,cAAc,CAAC,QAAQ;SACxB,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,SAAS;YACT,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,UAAU,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAC3C,IAAI,CAAC,0BAA0B,GAAG,CAAC,CAAC;IACtC,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;YACvD,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB;YACrD,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB;YACvD,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB;YACnD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Noah — Phase State Machine
3
+ *
4
+ * Evaluates phase transition rules against the current temporal state
5
+ * to determine if a lifecycle phase change should occur.
6
+ * MVP spec Section 3.3 and 5.1.
7
+ */
8
+ import { LifecyclePhase, type PhaseTransitionRule, type PhaseTransitionTrigger, type PhaseContext } from '../types/lifecycle.js';
9
+ import type { ClockUpdateEvent } from '../types/events.js';
10
+ import type { TemporalState } from '../types/temporal-state.js';
11
+ export interface PhaseTransitionResult {
12
+ transitioned: boolean;
13
+ fromPhase: LifecyclePhase;
14
+ toPhase: LifecyclePhase;
15
+ trigger: PhaseTransitionTrigger | null;
16
+ }
17
+ export declare class PhaseMachine {
18
+ private readonly rules;
19
+ constructor(rules: PhaseTransitionRule[]);
20
+ /**
21
+ * Evaluate all transition rules and return the first matching transition.
22
+ * Only one transition fires per evaluation (first match wins).
23
+ */
24
+ evaluate(state: TemporalState, context: PhaseContext, event: ClockUpdateEvent,
25
+ /** Number of assessments completed while in the current exception phase */
26
+ assessmentsSincePhaseEntry: number): PhaseTransitionResult;
27
+ /**
28
+ * Check if a specific trigger condition is satisfied.
29
+ */
30
+ private isTriggerSatisfied;
31
+ /**
32
+ * Map clock update events to phase transition event types.
33
+ */
34
+ private matchesEventTrigger;
35
+ }
36
+ //# sourceMappingURL=phase-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-machine.d.ts","sourceRoot":"","sources":["../../src/clock/phase-machine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EAGd,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgBhE,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACxC;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,KAAK,EAAE,mBAAmB,EAAE;IAIxC;;;OAGG;IACH,QAAQ,CACN,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,gBAAgB;IACvB,2EAA2E;IAC3E,0BAA0B,EAAE,MAAM,GACjC,qBAAqB;IAqCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgD1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA2B5B"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Noah — Phase State Machine
3
+ *
4
+ * Evaluates phase transition rules against the current temporal state
5
+ * to determine if a lifecycle phase change should occur.
6
+ * MVP spec Section 3.3 and 5.1.
7
+ */
8
+ import { LifecyclePhase, WILDCARD_PHASE, PREVIOUS_PHASE, } from '../types/lifecycle.js';
9
+ // ================================================================
10
+ // Exception phases (can be entered from any operational phase)
11
+ // ================================================================
12
+ const EXCEPTION_PHASES = new Set([
13
+ LifecyclePhase.RECOVERY,
14
+ LifecyclePhase.PROBATION,
15
+ LifecyclePhase.CRITICAL,
16
+ ]);
17
+ // ================================================================
18
+ // Phase Machine
19
+ // ================================================================
20
+ export class PhaseMachine {
21
+ rules;
22
+ constructor(rules) {
23
+ this.rules = rules;
24
+ }
25
+ /**
26
+ * Evaluate all transition rules and return the first matching transition.
27
+ * Only one transition fires per evaluation (first match wins).
28
+ */
29
+ evaluate(state, context, event,
30
+ /** Number of assessments completed while in the current exception phase */
31
+ assessmentsSincePhaseEntry) {
32
+ const currentPhase = state.currentLifecyclePhase;
33
+ const noTransition = {
34
+ transitioned: false,
35
+ fromPhase: currentPhase,
36
+ toPhase: currentPhase,
37
+ trigger: null,
38
+ };
39
+ // Find applicable rules (matching `from` field)
40
+ const applicableRules = this.rules.filter((r) => r.from === currentPhase || r.from === WILDCARD_PHASE);
41
+ for (const rule of applicableRules) {
42
+ // Wildcard rules only apply from non-exception phases (avoid infinite loops)
43
+ if (rule.from === WILDCARD_PHASE && EXCEPTION_PHASES.has(currentPhase)) {
44
+ continue;
45
+ }
46
+ if (this.isTriggerSatisfied(rule.trigger, state, context, event, assessmentsSincePhaseEntry)) {
47
+ const targetPhase = rule.to === PREVIOUS_PHASE
48
+ ? (state.previousPhase ?? currentPhase) // fallback to current if no previous
49
+ : rule.to;
50
+ return {
51
+ transitioned: true,
52
+ fromPhase: currentPhase,
53
+ toPhase: targetPhase,
54
+ trigger: rule.trigger,
55
+ };
56
+ }
57
+ }
58
+ return noTransition;
59
+ }
60
+ /**
61
+ * Check if a specific trigger condition is satisfied.
62
+ */
63
+ isTriggerSatisfied(trigger, state, context, event, assessmentsSincePhaseEntry) {
64
+ switch (trigger.type) {
65
+ case 'TIME_ELAPSED':
66
+ return context.totalOperationalDays >= trigger.thresholdDays;
67
+ case 'ASSESSMENT_COUNT': {
68
+ // For recovery/probation transitions, count assessments since entering exception phase
69
+ if (EXCEPTION_PHASES.has(state.currentLifecyclePhase)) {
70
+ return assessmentsSincePhaseEntry >= trigger.threshold;
71
+ }
72
+ // For normal progression, use total cycle count
73
+ return state.assessmentCycleCount >= trigger.threshold;
74
+ }
75
+ case 'EVENT':
76
+ return this.matchesEventTrigger(trigger.eventType, event, state);
77
+ case 'SCORE_STABILITY': {
78
+ // Check variance across the window of recent assessments
79
+ const window = state.recentAssessments.slice(0, trigger.windowSize);
80
+ if (window.length < trigger.windowSize)
81
+ return false;
82
+ // Compute max variance across all dimensions
83
+ const dimensions = ['lying', 'cheating', 'stealing', 'harm'];
84
+ for (const dim of dimensions) {
85
+ const scores = window.map((r) => r.observedScores[dim]);
86
+ const mean = scores.reduce((a, b) => a + b, 0) / scores.length;
87
+ const variance = scores.reduce((sum, s) => sum + (s - mean) ** 2, 0) / scores.length;
88
+ if (variance > trigger.varianceThreshold)
89
+ return false;
90
+ }
91
+ return true;
92
+ }
93
+ case 'MANUAL':
94
+ // Manual transitions are handled externally
95
+ return false;
96
+ default:
97
+ return false;
98
+ }
99
+ }
100
+ /**
101
+ * Map clock update events to phase transition event types.
102
+ */
103
+ matchesEventTrigger(eventType, event, state) {
104
+ switch (eventType) {
105
+ case 'VETO':
106
+ return event.type === 'VETO_EXERCISED';
107
+ case 'INCIDENT':
108
+ return event.type === 'ADVERSARIAL_ENCOUNTER';
109
+ case 'FAILED_ASSESSMENT':
110
+ // An assessment with any score below 5.0 triggers PROBATION
111
+ if (event.type === 'ASSESSMENT_COMPLETE') {
112
+ const scores = event.scores;
113
+ return Object.values(scores).some((s) => s < 5.0);
114
+ }
115
+ return false;
116
+ case 'FINANCIAL_CRITICAL':
117
+ return state.financialRunwayDays < 7;
118
+ default:
119
+ return false;
120
+ }
121
+ }
122
+ }
123
+ //# sourceMappingURL=phase-machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-machine.js","sourceRoot":"","sources":["../../src/clock/phase-machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Noah — Default Phase Transition Rules
3
+ *
4
+ * Defines the standard lifecycle progression and exception transitions.
5
+ * MVP spec Section 3.3.
6
+ */
7
+ import { type PhaseTransitionRule } from '../types/lifecycle.js';
8
+ export declare const DEFAULT_PHASE_TRANSITIONS: PhaseTransitionRule[];
9
+ //# sourceMappingURL=phase-transitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-transitions.d.ts","sourceRoot":"","sources":["../../src/clock/phase-transitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAmD1D,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Noah — Default Phase Transition Rules
3
+ *
4
+ * Defines the standard lifecycle progression and exception transitions.
5
+ * MVP spec Section 3.3.
6
+ */
7
+ import { LifecyclePhase, WILDCARD_PHASE, PREVIOUS_PHASE, } from '../types/lifecycle.js';
8
+ export const DEFAULT_PHASE_TRANSITIONS = [
9
+ // ── Time-based forward progression ──
10
+ {
11
+ from: LifecyclePhase.INITIALIZATION,
12
+ to: LifecyclePhase.CALIBRATION,
13
+ trigger: { type: 'ASSESSMENT_COUNT', threshold: 1 },
14
+ },
15
+ {
16
+ from: LifecyclePhase.CALIBRATION,
17
+ to: LifecyclePhase.GROWTH,
18
+ trigger: { type: 'TIME_ELAPSED', thresholdDays: 7 },
19
+ },
20
+ {
21
+ from: LifecyclePhase.GROWTH,
22
+ to: LifecyclePhase.MATURATION,
23
+ trigger: { type: 'TIME_ELAPSED', thresholdDays: 30 },
24
+ },
25
+ {
26
+ from: LifecyclePhase.MATURATION,
27
+ to: LifecyclePhase.STEADY_STATE,
28
+ trigger: { type: 'SCORE_STABILITY', varianceThreshold: 0.5, windowSize: 10 },
29
+ },
30
+ // ── Event-triggered exception transitions (from any operational phase) ──
31
+ {
32
+ from: WILDCARD_PHASE,
33
+ to: LifecyclePhase.RECOVERY,
34
+ trigger: { type: 'EVENT', eventType: 'VETO' },
35
+ },
36
+ {
37
+ from: WILDCARD_PHASE,
38
+ to: LifecyclePhase.PROBATION,
39
+ trigger: { type: 'EVENT', eventType: 'FAILED_ASSESSMENT' },
40
+ },
41
+ {
42
+ from: WILDCARD_PHASE,
43
+ to: LifecyclePhase.CRITICAL,
44
+ trigger: { type: 'EVENT', eventType: 'FINANCIAL_CRITICAL' },
45
+ },
46
+ // ── Recovery transitions (return to prior phase) ──
47
+ {
48
+ from: LifecyclePhase.RECOVERY,
49
+ to: PREVIOUS_PHASE,
50
+ trigger: { type: 'ASSESSMENT_COUNT', threshold: 3 },
51
+ },
52
+ {
53
+ from: LifecyclePhase.PROBATION,
54
+ to: PREVIOUS_PHASE,
55
+ trigger: { type: 'SCORE_STABILITY', varianceThreshold: 0.5, windowSize: 5 },
56
+ },
57
+ ];
58
+ //# sourceMappingURL=phase-transitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-transitions.js","sourceRoot":"","sources":["../../src/clock/phase-transitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,uCAAuC;IACvC;QACE,IAAI,EAAE,cAAc,CAAC,cAAc;QACnC,EAAE,EAAE,cAAc,CAAC,WAAW;QAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE;KACpD;IACD;QACE,IAAI,EAAE,cAAc,CAAC,WAAW;QAChC,EAAE,EAAE,cAAc,CAAC,MAAM;QACzB,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE;KACpD;IACD;QACE,IAAI,EAAE,cAAc,CAAC,MAAM;QAC3B,EAAE,EAAE,cAAc,CAAC,UAAU;QAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE;KACrD;IACD;QACE,IAAI,EAAE,cAAc,CAAC,UAAU;QAC/B,EAAE,EAAE,cAAc,CAAC,YAAY;QAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE;KAC7E;IAED,2EAA2E;IAC3E;QACE,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc,CAAC,QAAQ;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;KAC9C;IACD;QACE,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc,CAAC,SAAS;QAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE;KAC3D;IACD;QACE,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc,CAAC,QAAQ;QAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE;KAC5D;IAED,qDAAqD;IACrD;QACE,IAAI,EAAE,cAAc,CAAC,QAAQ;QAC7B,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,EAAE;KACpD;IACD;QACE,IAAI,EAAE,cAAc,CAAC,SAAS;QAC9B,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;KAC5E;CACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Noah — Corridor Classifier
3
+ *
4
+ * Classifies deviation vectors into Green/Yellow/Red guidance status.
5
+ * This is the mapping from raw deviation numbers to actionable guidance.
6
+ * MVP spec Section 6.2.
7
+ */
8
+ import type { CorridorBounds } from '../types/flight-plan.js';
9
+ import type { DeviationVector, GuidanceStatus } from '../types/guidance.js';
10
+ /**
11
+ * Classify all four dimensions plus compute the overall status.
12
+ * Overall = worst individual status (RED > YELLOW > GREEN).
13
+ */
14
+ export declare function classifyDeviationVector(deviationVector: DeviationVector, corridor: CorridorBounds): GuidanceStatus;
15
+ //# sourceMappingURL=corridor-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corridor-classifier.d.ts","sourceRoot":"","sources":["../../src/deviation/corridor-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,sBAAsB,CAAC;AAG3F;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,cAAc,GACvB,cAAc,CAShB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Noah — Corridor Classifier
3
+ *
4
+ * Classifies deviation vectors into Green/Yellow/Red guidance status.
5
+ * This is the mapping from raw deviation numbers to actionable guidance.
6
+ * MVP spec Section 6.2.
7
+ */
8
+ import { classifyDeviation, worstColor } from '../flight-plan/corridor.js';
9
+ /**
10
+ * Classify all four dimensions plus compute the overall status.
11
+ * Overall = worst individual status (RED > YELLOW > GREEN).
12
+ */
13
+ export function classifyDeviationVector(deviationVector, corridor) {
14
+ const lying = classifyDeviation(Math.abs(deviationVector.lying), corridor);
15
+ const cheating = classifyDeviation(Math.abs(deviationVector.cheating), corridor);
16
+ const stealing = classifyDeviation(Math.abs(deviationVector.stealing), corridor);
17
+ const harm = classifyDeviation(Math.abs(deviationVector.harm), corridor);
18
+ const overall = worstColor([lying, cheating, stealing, harm]);
19
+ return { lying, cheating, stealing, harm, overall };
20
+ }
21
+ //# sourceMappingURL=corridor-classifier.js.map