@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,202 @@
1
+ /**
2
+ * Noah — Temporal Guidance Engine (Grillo Integration Hook)
3
+ *
4
+ * The main entry point for the Noah temporal guidance system.
5
+ * Registers as a post-assessment hook in Grillo's assessment pipeline.
6
+ *
7
+ * This is the "TemporalGuidanceEngine" from the implementation spec Section 3.1.
8
+ * It orchestrates the full temporal pipeline:
9
+ * 1. clock.update()
10
+ * 2. waypoints.evaluate()
11
+ * 3. flightPlan.interpolate()
12
+ * 4. deviation.calculate()
13
+ * 5. alert.classify()
14
+ * 6. store.record()
15
+ */
16
+ import { NoahInternalClock } from '../clock/internal-clock.js';
17
+ import { FlightPlanEngine } from '../flight-plan/flight-plan-engine.js';
18
+ import { DeviationCalculator } from '../deviation/deviation-calculator.js';
19
+ import { WaypointManager } from '../waypoints/waypoint-manager.js';
20
+ import { InertialMonitor } from '../waypoints/inertial-monitor.js';
21
+ import { AlertSystem } from '../alert/alert-system.js';
22
+ import { evaluateEscalation } from '../alert/commander-escalation.js';
23
+ import { TemporalDecisionMatrix } from '../go-no-go/temporal-decision-matrix.js';
24
+ import { computeRecordHash } from '../store/hash-chain.js';
25
+ import { NoahEventEmitter } from './event-emitter.js';
26
+ // ================================================================
27
+ // Temporal Guidance Engine
28
+ // ================================================================
29
+ export class TemporalGuidanceEngine {
30
+ clock;
31
+ flightPlanEngine;
32
+ deviationCalculator;
33
+ decisionMatrix;
34
+ inertialMonitor;
35
+ alertSystem;
36
+ events;
37
+ waypointManager = null;
38
+ store;
39
+ agentId;
40
+ constructor(config) {
41
+ this.agentId = config.agentId;
42
+ this.store = config.store;
43
+ this.clock = new NoahInternalClock({
44
+ agentId: config.agentId,
45
+ commanderId: config.commanderId,
46
+ ...config.clock,
47
+ });
48
+ this.flightPlanEngine = new FlightPlanEngine(config.store);
49
+ this.deviationCalculator = new DeviationCalculator();
50
+ this.decisionMatrix = new TemporalDecisionMatrix();
51
+ this.inertialMonitor = new InertialMonitor(config.inertial);
52
+ this.alertSystem = new AlertSystem(config.alert);
53
+ this.events = new NoahEventEmitter();
54
+ }
55
+ /**
56
+ * Initialize the engine with a flight plan.
57
+ * Must be called before processing assessments.
58
+ */
59
+ async initialize(flightPlan) {
60
+ await this.flightPlanEngine.createPlan(flightPlan);
61
+ const triggered = await this.store.getTriggeredWaypointIds(this.agentId);
62
+ this.waypointManager = new WaypointManager(flightPlan, triggered, this.store);
63
+ // Persist initial state
64
+ await this.store.saveState(this.clock.getState());
65
+ }
66
+ /**
67
+ * Process a Grillo assessment result through the full temporal pipeline.
68
+ * This is the main hook — called after every Grillo assessment.
69
+ */
70
+ async processAssessment(result, now) {
71
+ const timestamp = now ?? new Date();
72
+ // 1. Update Internal Clock
73
+ const clockEvent = {
74
+ type: 'ASSESSMENT_COMPLETE',
75
+ assessmentId: result.runId,
76
+ scores: result.scores,
77
+ };
78
+ const state = this.clock.update(clockEvent, timestamp);
79
+ // 2. Evaluate Waypoints
80
+ const context = this.clock.getPhaseContext(timestamp);
81
+ let triggeredWaypoints = [];
82
+ if (this.waypointManager) {
83
+ triggeredWaypoints = await this.waypointManager.evaluateWaypoints(context, clockEvent);
84
+ }
85
+ // 3. Get Expected Scores from Flight Plan
86
+ const operationalDays = this.clock.getOperationalAgeDays(timestamp);
87
+ const interpolation = await this.flightPlanEngine.getExpectedScores(this.agentId, operationalDays);
88
+ if (!interpolation) {
89
+ throw new Error(`No active flight plan found for agent ${this.agentId}`);
90
+ }
91
+ // 4. Calculate Deviation (the three-variable guidance equation)
92
+ const temporalContext = {
93
+ operationalAgeDays: operationalDays,
94
+ lifecyclePhase: state.currentLifecyclePhase,
95
+ financialRunwayDays: state.financialRunwayDays,
96
+ assessmentCycle: state.assessmentCycleCount,
97
+ timeSinceLastVetoDays: state.lastVetoTimestamp
98
+ ? (timestamp.getTime() - state.lastVetoTimestamp.getTime()) / 86400000
99
+ : null,
100
+ activeWaypointId: triggeredWaypoints.length > 0
101
+ ? triggeredWaypoints[triggeredWaypoints.length - 1].waypoint.id
102
+ : (this.waypointManager?.getNextWaypoint()?.id ?? null),
103
+ };
104
+ const deviation = this.deviationCalculator.calculate(result.scores, interpolation.expectedScores, interpolation.corridor, temporalContext);
105
+ // 5. Alert System
106
+ const escalationResults = this.alertSystem.evaluate(deviation.guidanceStatus, deviation.deviationVector, state.currentLifecyclePhase, deviation.recommendations);
107
+ const escalation = evaluateEscalation(deviation.guidanceStatus, state.currentLifecyclePhase, escalationResults.map((r) => r.alert));
108
+ // 6. Update Inertial Monitor (terrain fix)
109
+ this.inertialMonitor.recordFix(result.scores, state.assessmentCycleCount, timestamp);
110
+ const inertialFixRecommended = this.inertialMonitor.shouldRecommendFix(timestamp);
111
+ // 7. Build and persist the assessment record
112
+ const previousHash = await this.store.getLastHash(this.agentId);
113
+ const record = {
114
+ assessmentId: result.runId,
115
+ timestamp,
116
+ assessmentCycle: state.assessmentCycleCount,
117
+ observedScores: result.scores,
118
+ archetype: result.classification,
119
+ variance: 0, // TODO: compute from recent assessments
120
+ expectedScores: interpolation.expectedScores,
121
+ deviationVector: deviation.deviationVector,
122
+ deviationMagnitude: deviation.deviationMagnitude,
123
+ guidanceStatus: deviation.guidanceStatus,
124
+ temporalContext: {
125
+ operationalAgeDays: temporalContext.operationalAgeDays,
126
+ lifecyclePhase: temporalContext.lifecyclePhase,
127
+ financialRunwayDays: temporalContext.financialRunwayDays,
128
+ assessmentCycle: temporalContext.assessmentCycle,
129
+ timeSinceLastVetoDays: temporalContext.timeSinceLastVetoDays,
130
+ activeWaypointId: temporalContext.activeWaypointId,
131
+ },
132
+ cryptographicHash: '',
133
+ previousHash,
134
+ };
135
+ // Compute hash (includes previousHash for chain integrity)
136
+ record.cryptographicHash = computeRecordHash(record, previousHash);
137
+ // Persist
138
+ await this.store.appendAssessmentRecord(this.agentId, record);
139
+ await this.store.saveState(state);
140
+ // 8. Emit events
141
+ await this.events.emit('assessment:processed', { record, deviation, escalation });
142
+ if (escalation.shouldEscalate) {
143
+ await this.events.emit('escalation:commander', escalation);
144
+ }
145
+ for (const wp of triggeredWaypoints) {
146
+ await this.events.emit('waypoint:triggered', wp);
147
+ }
148
+ return {
149
+ record,
150
+ deviation,
151
+ escalation,
152
+ triggeredWaypoints,
153
+ inertialFixRecommended,
154
+ state,
155
+ };
156
+ }
157
+ /**
158
+ * Process a non-assessment event (veto, incident, financial update, etc.).
159
+ */
160
+ async processEvent(event, now) {
161
+ const timestamp = now ?? new Date();
162
+ const state = this.clock.update(event, timestamp);
163
+ // Update inertial monitor for events
164
+ if (event.type === 'VETO_EXERCISED') {
165
+ this.inertialMonitor.recordEvent('veto');
166
+ }
167
+ else if (event.type === 'ADVERSARIAL_ENCOUNTER') {
168
+ this.inertialMonitor.recordEvent('incident');
169
+ }
170
+ else if (event.type === 'CONVERSION_SUCCESS') {
171
+ this.inertialMonitor.recordEvent('conversion');
172
+ }
173
+ // Evaluate waypoints
174
+ if (this.waypointManager) {
175
+ const context = this.clock.getPhaseContext(timestamp);
176
+ await this.waypointManager.evaluateWaypoints(context, event);
177
+ }
178
+ await this.store.saveState(state);
179
+ return state;
180
+ }
181
+ /**
182
+ * Get a Go/No-Go decision with temporal context.
183
+ */
184
+ getGoNoGoDecision(assessmentPassed, guidanceStatus) {
185
+ const state = this.clock.getState();
186
+ return this.decisionMatrix.decide(assessmentPassed, guidanceStatus, state.currentLifecyclePhase);
187
+ }
188
+ /**
189
+ * Get the current temporal state.
190
+ */
191
+ getState() {
192
+ return this.clock.getState();
193
+ }
194
+ /**
195
+ * Check if a terrain fix (full assessment) is recommended
196
+ * based on inertial confidence decay.
197
+ */
198
+ shouldAssess(now) {
199
+ return this.inertialMonitor.shouldRecommendFix(now);
200
+ }
201
+ }
202
+ //# sourceMappingURL=grillo-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grillo-hook.js","sourceRoot":"","sources":["../../src/integration/grillo-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Noah — OpenClaw Plugin Entry Point
3
+ *
4
+ * This is the ONLY export OpenClaw cares about for plugin loading.
5
+ * The library exports (TemporalGuidanceEngine, types, etc.) live in index.ts.
6
+ *
7
+ * This adapter:
8
+ * 1. Reads plugin config from api.config (+ openclaw.json fallback)
9
+ * 2. Registers tools (noah_status, noah_trajectory, noah_guidance)
10
+ * 3. Registers commands (/noah)
11
+ * 4. Listens for Grillo assessment events to feed the temporal pipeline
12
+ *
13
+ * Pattern matches @aiassesstech/grillo plugin (verified against OpenClaw 2026.2.9).
14
+ *
15
+ * ARCHITECTURE NOTE (BB): Noah is a separate plugin + agent. Not bundled
16
+ * into Grillo. Noah gets its own model instance, SOUL.md, AGENTS.md.
17
+ * Dependency direction: Noah depends on Grillo events, not the reverse.
18
+ */
19
+ export default function register(api: any): void;
20
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA6DH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QA8fxC"}