jfl 0.8.1 → 0.9.1

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 (296) hide show
  1. package/README.md +35 -4
  2. package/dist/commands/digest.d.ts +6 -0
  3. package/dist/commands/digest.d.ts.map +1 -1
  4. package/dist/commands/digest.js +70 -69
  5. package/dist/commands/digest.js.map +1 -1
  6. package/dist/commands/doctor.d.ts +1 -0
  7. package/dist/commands/doctor.d.ts.map +1 -1
  8. package/dist/commands/doctor.js +30 -1
  9. package/dist/commands/doctor.js.map +1 -1
  10. package/dist/commands/eval.d.ts +40 -0
  11. package/dist/commands/eval.d.ts.map +1 -1
  12. package/dist/commands/eval.js +8 -8
  13. package/dist/commands/eval.js.map +1 -1
  14. package/dist/commands/findings.d.ts +7 -0
  15. package/dist/commands/findings.d.ts.map +1 -1
  16. package/dist/commands/findings.js +4 -4
  17. package/dist/commands/findings.js.map +1 -1
  18. package/dist/commands/ide.d.ts +2 -1
  19. package/dist/commands/ide.d.ts.map +1 -1
  20. package/dist/commands/ide.js +61 -1
  21. package/dist/commands/ide.js.map +1 -1
  22. package/dist/commands/init-from-service.d.ts +15 -0
  23. package/dist/commands/init-from-service.d.ts.map +1 -0
  24. package/dist/commands/init-from-service.js +541 -0
  25. package/dist/commands/init-from-service.js.map +1 -0
  26. package/dist/commands/init.d.ts +1 -0
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +32 -1
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/kanban.d.ts.map +1 -1
  31. package/dist/commands/kanban.js +13 -4
  32. package/dist/commands/kanban.js.map +1 -1
  33. package/dist/commands/linear.d.ts +41 -0
  34. package/dist/commands/linear.d.ts.map +1 -0
  35. package/dist/commands/linear.js +715 -0
  36. package/dist/commands/linear.js.map +1 -0
  37. package/dist/commands/peter.d.ts.map +1 -1
  38. package/dist/commands/peter.js +232 -25
  39. package/dist/commands/peter.js.map +1 -1
  40. package/dist/commands/portfolio.d.ts +5 -0
  41. package/dist/commands/portfolio.d.ts.map +1 -1
  42. package/dist/commands/portfolio.js +193 -203
  43. package/dist/commands/portfolio.js.map +1 -1
  44. package/dist/commands/predict.d.ts +19 -0
  45. package/dist/commands/predict.d.ts.map +1 -1
  46. package/dist/commands/predict.js +4 -4
  47. package/dist/commands/predict.js.map +1 -1
  48. package/dist/commands/services.d.ts.map +1 -1
  49. package/dist/commands/services.js +146 -0
  50. package/dist/commands/services.js.map +1 -1
  51. package/dist/commands/setup.d.ts.map +1 -1
  52. package/dist/commands/setup.js +279 -20
  53. package/dist/commands/setup.js.map +1 -1
  54. package/dist/commands/start.d.ts +25 -0
  55. package/dist/commands/start.d.ts.map +1 -0
  56. package/dist/commands/start.js +191 -0
  57. package/dist/commands/start.js.map +1 -0
  58. package/dist/commands/telemetry-monitor.d.ts +11 -0
  59. package/dist/commands/telemetry-monitor.d.ts.map +1 -0
  60. package/dist/commands/telemetry-monitor.js +224 -0
  61. package/dist/commands/telemetry-monitor.js.map +1 -0
  62. package/dist/commands/telemetry-test.d.ts +11 -0
  63. package/dist/commands/telemetry-test.d.ts.map +1 -0
  64. package/dist/commands/telemetry-test.js +67 -0
  65. package/dist/commands/telemetry-test.js.map +1 -0
  66. package/dist/commands/tenet-agents.d.ts +13 -0
  67. package/dist/commands/tenet-agents.d.ts.map +1 -0
  68. package/dist/commands/tenet-agents.js +191 -0
  69. package/dist/commands/tenet-agents.js.map +1 -0
  70. package/dist/commands/tenet-setup.d.ts +20 -0
  71. package/dist/commands/tenet-setup.d.ts.map +1 -0
  72. package/dist/commands/tenet-setup.js +135 -0
  73. package/dist/commands/tenet-setup.js.map +1 -0
  74. package/dist/commands/train.d.ts +18 -0
  75. package/dist/commands/train.d.ts.map +1 -1
  76. package/dist/commands/train.js +182 -0
  77. package/dist/commands/train.js.map +1 -1
  78. package/dist/commands/viz.d.ts +33 -0
  79. package/dist/commands/viz.d.ts.map +1 -1
  80. package/dist/commands/viz.js +9 -9
  81. package/dist/commands/viz.js.map +1 -1
  82. package/dist/commands/whoami.d.ts +2 -0
  83. package/dist/commands/whoami.d.ts.map +1 -0
  84. package/dist/commands/whoami.js +24 -0
  85. package/dist/commands/whoami.js.map +1 -0
  86. package/dist/index.js +230 -30
  87. package/dist/index.js.map +1 -1
  88. package/dist/lib/advanced-setup.d.ts +78 -0
  89. package/dist/lib/advanced-setup.d.ts.map +1 -0
  90. package/dist/lib/advanced-setup.js +433 -0
  91. package/dist/lib/advanced-setup.js.map +1 -0
  92. package/dist/lib/agent-config.d.ts +33 -0
  93. package/dist/lib/agent-config.d.ts.map +1 -1
  94. package/dist/lib/agent-config.js +26 -0
  95. package/dist/lib/agent-config.js.map +1 -1
  96. package/dist/lib/counterfactual-training-bridge.d.ts +114 -0
  97. package/dist/lib/counterfactual-training-bridge.d.ts.map +1 -0
  98. package/dist/lib/counterfactual-training-bridge.js +322 -0
  99. package/dist/lib/counterfactual-training-bridge.js.map +1 -0
  100. package/dist/lib/discovery-agent.d.ts +48 -0
  101. package/dist/lib/discovery-agent.d.ts.map +1 -0
  102. package/dist/lib/discovery-agent.js +111 -0
  103. package/dist/lib/discovery-agent.js.map +1 -0
  104. package/dist/lib/flow-engine.d.ts.map +1 -1
  105. package/dist/lib/flow-engine.js +46 -8
  106. package/dist/lib/flow-engine.js.map +1 -1
  107. package/dist/lib/gtm-generator.d.ts +29 -0
  108. package/dist/lib/gtm-generator.d.ts.map +1 -0
  109. package/dist/lib/gtm-generator.js +252 -0
  110. package/dist/lib/gtm-generator.js.map +1 -0
  111. package/dist/lib/hub-health.d.ts +40 -0
  112. package/dist/lib/hub-health.d.ts.map +1 -0
  113. package/dist/lib/hub-health.js +89 -0
  114. package/dist/lib/hub-health.js.map +1 -0
  115. package/dist/lib/invariant-monitor.d.ts +6 -2
  116. package/dist/lib/invariant-monitor.d.ts.map +1 -1
  117. package/dist/lib/invariant-monitor.js +89 -2
  118. package/dist/lib/invariant-monitor.js.map +1 -1
  119. package/dist/lib/journal-analyzer.d.ts +71 -0
  120. package/dist/lib/journal-analyzer.d.ts.map +1 -0
  121. package/dist/lib/journal-analyzer.js +306 -0
  122. package/dist/lib/journal-analyzer.js.map +1 -0
  123. package/dist/lib/linear-client.d.ts +73 -0
  124. package/dist/lib/linear-client.d.ts.map +1 -0
  125. package/dist/lib/linear-client.js +112 -0
  126. package/dist/lib/linear-client.js.map +1 -0
  127. package/dist/lib/linear-id-map.d.ts +20 -0
  128. package/dist/lib/linear-id-map.d.ts.map +1 -0
  129. package/dist/lib/linear-id-map.js +59 -0
  130. package/dist/lib/linear-id-map.js.map +1 -0
  131. package/dist/lib/linear-kanban.d.ts +66 -0
  132. package/dist/lib/linear-kanban.d.ts.map +1 -0
  133. package/dist/lib/linear-kanban.js +175 -0
  134. package/dist/lib/linear-kanban.js.map +1 -0
  135. package/dist/lib/onboarding.d.ts +40 -0
  136. package/dist/lib/onboarding.d.ts.map +1 -0
  137. package/dist/lib/onboarding.js +213 -0
  138. package/dist/lib/onboarding.js.map +1 -0
  139. package/dist/lib/physical-world-model.d.ts +50 -0
  140. package/dist/lib/physical-world-model.d.ts.map +1 -0
  141. package/dist/lib/physical-world-model.js +251 -0
  142. package/dist/lib/physical-world-model.js.map +1 -0
  143. package/dist/lib/planning-loop.d.ts +157 -0
  144. package/dist/lib/planning-loop.d.ts.map +1 -0
  145. package/dist/lib/planning-loop.js +537 -0
  146. package/dist/lib/planning-loop.js.map +1 -0
  147. package/dist/lib/policy-head.d.ts +13 -0
  148. package/dist/lib/policy-head.d.ts.map +1 -1
  149. package/dist/lib/policy-head.js +168 -2
  150. package/dist/lib/policy-head.js.map +1 -1
  151. package/dist/lib/resource-optimizer-middleware.d.ts +39 -0
  152. package/dist/lib/resource-optimizer-middleware.d.ts.map +1 -0
  153. package/dist/lib/resource-optimizer-middleware.js +222 -0
  154. package/dist/lib/resource-optimizer-middleware.js.map +1 -0
  155. package/dist/lib/resource-optimizer.d.ts +71 -0
  156. package/dist/lib/resource-optimizer.d.ts.map +1 -0
  157. package/dist/lib/resource-optimizer.js +228 -0
  158. package/dist/lib/resource-optimizer.js.map +1 -0
  159. package/dist/lib/rl-manager.d.ts +74 -0
  160. package/dist/lib/rl-manager.d.ts.map +1 -0
  161. package/dist/lib/rl-manager.js +245 -0
  162. package/dist/lib/rl-manager.js.map +1 -0
  163. package/dist/lib/service-analyzer.d.ts +76 -0
  164. package/dist/lib/service-analyzer.d.ts.map +1 -0
  165. package/dist/lib/service-analyzer.js +704 -0
  166. package/dist/lib/service-analyzer.js.map +1 -0
  167. package/dist/lib/service-gtm.js +2 -2
  168. package/dist/lib/service-gtm.js.map +1 -1
  169. package/dist/lib/service-questionnaire.d.ts +11 -0
  170. package/dist/lib/service-questionnaire.d.ts.map +1 -0
  171. package/dist/lib/service-questionnaire.js +89 -0
  172. package/dist/lib/service-questionnaire.js.map +1 -0
  173. package/dist/lib/setup/agent-generator.d.ts +2 -0
  174. package/dist/lib/setup/agent-generator.d.ts.map +1 -1
  175. package/dist/lib/setup/agent-generator.js +128 -4
  176. package/dist/lib/setup/agent-generator.js.map +1 -1
  177. package/dist/lib/setup/flow-generator.d.ts +10 -0
  178. package/dist/lib/setup/flow-generator.d.ts.map +1 -0
  179. package/dist/lib/setup/flow-generator.js +113 -0
  180. package/dist/lib/setup/flow-generator.js.map +1 -0
  181. package/dist/lib/setup/invariant-bridge.d.ts +91 -0
  182. package/dist/lib/setup/invariant-bridge.d.ts.map +1 -0
  183. package/dist/lib/setup/invariant-bridge.js +384 -0
  184. package/dist/lib/setup/invariant-bridge.js.map +1 -0
  185. package/dist/lib/setup/spec-generator.d.ts +41 -5
  186. package/dist/lib/setup/spec-generator.d.ts.map +1 -1
  187. package/dist/lib/setup/spec-generator.js +503 -29
  188. package/dist/lib/setup/spec-generator.js.map +1 -1
  189. package/dist/lib/setup/starter-intelligence.d.ts +25 -0
  190. package/dist/lib/setup/starter-intelligence.d.ts.map +1 -0
  191. package/dist/lib/setup/starter-intelligence.js +309 -0
  192. package/dist/lib/setup/starter-intelligence.js.map +1 -0
  193. package/dist/lib/stratus-client.js +1 -1
  194. package/dist/lib/stratus-client.js.map +1 -1
  195. package/dist/lib/surface-agent.d.ts +78 -0
  196. package/dist/lib/surface-agent.d.ts.map +1 -0
  197. package/dist/lib/surface-agent.js +105 -0
  198. package/dist/lib/surface-agent.js.map +1 -0
  199. package/dist/lib/surface-coordination-example.d.ts +30 -0
  200. package/dist/lib/surface-coordination-example.d.ts.map +1 -0
  201. package/dist/lib/surface-coordination-example.js +164 -0
  202. package/dist/lib/surface-coordination-example.js.map +1 -0
  203. package/dist/lib/telemetry/physical-world-collector.d.ts +15 -0
  204. package/dist/lib/telemetry/physical-world-collector.d.ts.map +1 -0
  205. package/dist/lib/telemetry/physical-world-collector.js +177 -0
  206. package/dist/lib/telemetry/physical-world-collector.js.map +1 -0
  207. package/dist/lib/telemetry/training-bridge.d.ts +51 -0
  208. package/dist/lib/telemetry/training-bridge.d.ts.map +1 -0
  209. package/dist/lib/telemetry/training-bridge.js +185 -0
  210. package/dist/lib/telemetry/training-bridge.js.map +1 -0
  211. package/dist/lib/telemetry.d.ts +2 -1
  212. package/dist/lib/telemetry.d.ts.map +1 -1
  213. package/dist/lib/telemetry.js +23 -2
  214. package/dist/lib/telemetry.js.map +1 -1
  215. package/dist/lib/tenet-board-agent.d.ts +52 -0
  216. package/dist/lib/tenet-board-agent.d.ts.map +1 -0
  217. package/dist/lib/tenet-board-agent.js +226 -0
  218. package/dist/lib/tenet-board-agent.js.map +1 -0
  219. package/dist/lib/tenet-ide-agent.d.ts +40 -0
  220. package/dist/lib/tenet-ide-agent.d.ts.map +1 -0
  221. package/dist/lib/tenet-ide-agent.js +199 -0
  222. package/dist/lib/tenet-ide-agent.js.map +1 -0
  223. package/dist/lib/workspace/data-pipeline.d.ts.map +1 -1
  224. package/dist/lib/workspace/data-pipeline.js +27 -5
  225. package/dist/lib/workspace/data-pipeline.js.map +1 -1
  226. package/dist/lib/workspace/sidebar-runner.d.ts +13 -0
  227. package/dist/lib/workspace/sidebar-runner.d.ts.map +1 -0
  228. package/dist/lib/workspace/sidebar-runner.js +419 -0
  229. package/dist/lib/workspace/sidebar-runner.js.map +1 -0
  230. package/dist/lib/workspace/surface-registry.d.ts.map +1 -1
  231. package/dist/lib/workspace/surface-registry.js +9 -1
  232. package/dist/lib/workspace/surface-registry.js.map +1 -1
  233. package/dist/lib/workspace/surfaces/agent-overview.d.ts +3 -3
  234. package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -1
  235. package/dist/lib/workspace/surfaces/agent-overview.js +3 -3
  236. package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -1
  237. package/dist/lib/workspace/surfaces/index.d.ts +3 -0
  238. package/dist/lib/workspace/surfaces/index.d.ts.map +1 -1
  239. package/dist/lib/workspace/surfaces/index.js +3 -0
  240. package/dist/lib/workspace/surfaces/index.js.map +1 -1
  241. package/dist/lib/workspace/surfaces/kanban.d.ts +15 -0
  242. package/dist/lib/workspace/surfaces/kanban.d.ts.map +1 -0
  243. package/dist/lib/workspace/surfaces/kanban.js +43 -0
  244. package/dist/lib/workspace/surfaces/kanban.js.map +1 -0
  245. package/dist/lib/workspace/surfaces/physical-world.d.ts +15 -0
  246. package/dist/lib/workspace/surfaces/physical-world.d.ts.map +1 -0
  247. package/dist/lib/workspace/surfaces/physical-world.js +37 -0
  248. package/dist/lib/workspace/surfaces/physical-world.js.map +1 -0
  249. package/dist/lib/workspace/surfaces/sidebar.d.ts +22 -0
  250. package/dist/lib/workspace/surfaces/sidebar.d.ts.map +1 -0
  251. package/dist/lib/workspace/surfaces/sidebar.js +94 -0
  252. package/dist/lib/workspace/surfaces/sidebar.js.map +1 -0
  253. package/dist/lib/workspace/tmux-adapter.d.ts +8 -5
  254. package/dist/lib/workspace/tmux-adapter.d.ts.map +1 -1
  255. package/dist/lib/workspace/tmux-adapter.js +38 -7
  256. package/dist/lib/workspace/tmux-adapter.js.map +1 -1
  257. package/dist/lib/workspace/tmux-sidebar.d.ts +14 -0
  258. package/dist/lib/workspace/tmux-sidebar.d.ts.map +1 -0
  259. package/dist/lib/workspace/tmux-sidebar.js +230 -0
  260. package/dist/lib/workspace/tmux-sidebar.js.map +1 -0
  261. package/dist/types/flows.d.ts +2 -1
  262. package/dist/types/flows.d.ts.map +1 -1
  263. package/dist/types/physical-world-model.d.ts +65 -0
  264. package/dist/types/physical-world-model.d.ts.map +1 -0
  265. package/dist/types/physical-world-model.js +43 -0
  266. package/dist/types/physical-world-model.js.map +1 -0
  267. package/dist/types/telemetry.d.ts +37 -0
  268. package/dist/types/telemetry.d.ts.map +1 -1
  269. package/dist/types/world-model.d.ts.map +1 -1
  270. package/dist/types/world-model.js +14 -7
  271. package/dist/types/world-model.js.map +1 -1
  272. package/dist/utils/context-hub-port.d.ts.map +1 -1
  273. package/dist/utils/context-hub-port.js +6 -1
  274. package/dist/utils/context-hub-port.js.map +1 -1
  275. package/dist/utils/jfl-config.d.ts +7 -2
  276. package/dist/utils/jfl-config.d.ts.map +1 -1
  277. package/dist/utils/jfl-config.js +14 -4
  278. package/dist/utils/jfl-config.js.map +1 -1
  279. package/package.json +3 -2
  280. package/packages/pi/extensions/context.ts +51 -1
  281. package/packages/pi/extensions/hub-tools.ts +247 -0
  282. package/packages/pi/extensions/index.ts +38 -6
  283. package/packages/pi/extensions/memory-tool.ts +84 -4
  284. package/packages/pi/extensions/service-skills.ts +214 -0
  285. package/scripts/telemetry-dashboard.sh +44 -0
  286. package/scripts/test-planning-loop-e2e.ts +181 -0
  287. package/scripts/test-server-inference.ts +49 -0
  288. package/scripts/test-state-sensitivity.ts +32 -0
  289. package/scripts/train/v2/benchmark.py +661 -0
  290. package/scripts/train/v2/generate_balanced.py +439 -0
  291. package/scripts/train/v2/generate_hard_negatives.py +219 -0
  292. package/scripts/train/v2/infer.py +149 -36
  293. package/scripts/train/v2/infer_server.py +224 -0
  294. package/scripts/train/v2/online_train.py +576 -0
  295. package/scripts/train/v2/precompute.py +24 -6
  296. package/template/CLAUDE.md +74 -132
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @purpose Surface Agent - Subway-based agent that manages a specific product surface area
3
+ *
4
+ * Each Tenet surface (IDE, Board, Notes, Flow) gets its own Subway agent that:
5
+ * - Manages the surface UX and intelligence
6
+ * - Coordinates with domain-specific RL agents
7
+ * - Learns from user behavior patterns
8
+ * - Collaborates with other surface agents
9
+ */
10
+ export class SurfaceAgent {
11
+ surfaceType;
12
+ subwayId;
13
+ policyHead; // PolicyHead
14
+ associatedRLAgents;
15
+ constructor(surfaceType, subwayId) {
16
+ this.surfaceType = surfaceType;
17
+ this.subwayId = subwayId;
18
+ this.associatedRLAgents = [];
19
+ // Each surface has its own policy head trained on domain-specific patterns
20
+ // this.policyHead = new PolicyHead(`surface_${surfaceType}`)
21
+ }
22
+ /**
23
+ * Learn from user behavior on this surface
24
+ */
25
+ async updateLearning(userAction, outcome, context) {
26
+ // Update surface-specific policy head
27
+ await this.policyHead.updateFromFeedback({
28
+ state: this.serializeContext(context),
29
+ action: userAction,
30
+ reward: outcome === 'positive' ? 1 : outcome === 'negative' ? -1 : 0,
31
+ surfaceType: this.surfaceType
32
+ });
33
+ }
34
+ /**
35
+ * Coordinate with other surfaces
36
+ */
37
+ async coordinateWithSurface(targetSurface, method, payload) {
38
+ // This would use the subway_call tool in practice
39
+ console.log(`[${this.subwayId}] Calling ${targetSurface}.${method}(${JSON.stringify(payload)})`);
40
+ // Placeholder for actual Subway coordination
41
+ return { success: true, data: {} };
42
+ }
43
+ /**
44
+ * Spawn domain-specific RL agent
45
+ */
46
+ async spawnRLAgent(agentType, task) {
47
+ const agentId = `${this.surfaceType}_${agentType}_${Date.now()}`;
48
+ console.log(`[${this.subwayId}] Spawning RL agent: ${agentId} for ${agentType}`);
49
+ // This would integrate with the existing RL agent infrastructure
50
+ // For now, just track that we spawned it
51
+ this.associatedRLAgents.push(agentId);
52
+ return agentId;
53
+ }
54
+ /**
55
+ * Share learning insights across surfaces
56
+ */
57
+ async broadcastLearning(insight) {
58
+ // This would use subway_broadcast tool
59
+ console.log(`[${this.subwayId}] Broadcasting learning: ${insight.pattern} (${insight.optimization})`);
60
+ // Track cross-surface learning impact
61
+ await this.updateCrossSurfaceLearning(insight);
62
+ }
63
+ /**
64
+ * Convert surface context to state representation for policy head
65
+ */
66
+ serializeContext(context) {
67
+ return {
68
+ surface: context.surfaceType,
69
+ userId: context.userId,
70
+ session: context.sessionId,
71
+ capabilities: context.capabilities,
72
+ preferences: context.userPreferences,
73
+ crossSurfaceSignals: Object.keys(context.crossSurfaceData).length
74
+ };
75
+ }
76
+ /**
77
+ * Update learning that spans multiple surfaces
78
+ */
79
+ async updateCrossSurfaceLearning(insight) {
80
+ // Store cross-surface patterns for coordination optimization
81
+ // This helps surfaces learn when and how to work together
82
+ const crossSurfacePattern = {
83
+ pattern: insight.pattern,
84
+ surfaces: insight.surfaces,
85
+ optimization: insight.optimization,
86
+ timestamp: new Date().toISOString(),
87
+ confidence: insight.confidence
88
+ };
89
+ // Would be stored in shared learning database
90
+ console.log('Cross-surface learning update:', crossSurfacePattern);
91
+ }
92
+ /**
93
+ * Get current surface metrics for coordination decisions
94
+ */
95
+ async getSurfaceMetrics() {
96
+ return {
97
+ activeUsers: Math.floor(Math.random() * 100),
98
+ avgSessionLength: Math.floor(Math.random() * 30) + 10,
99
+ engagementScore: Math.random() * 100,
100
+ errorRate: Math.random() * 0.1,
101
+ optimizationOpportunities: Math.floor(Math.random() * 5)
102
+ };
103
+ }
104
+ }
105
+ //# sourceMappingURL=surface-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-agent.js","sourceRoot":"","sources":["../../src/lib/surface-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @purpose Example of how Surface Agents coordinate via Subway P2P mesh
3
+ *
4
+ * Scenario: User files GitHub issue → Multi-surface intelligent response
5
+ */
6
+ /**
7
+ * Example coordination flow between surface agents
8
+ */
9
+ export declare class SurfaceCoordinationExample {
10
+ private ideAgent;
11
+ private boardAgent;
12
+ constructor();
13
+ /**
14
+ * Simulate the full coordination flow
15
+ */
16
+ demonstrateCoordination(): Promise<void>;
17
+ /**
18
+ * Simulate an RL agent working on the fix
19
+ */
20
+ private simulateFixAgent;
21
+ /**
22
+ * Example of learning insights being shared across surfaces
23
+ */
24
+ demonstrateCrossSurfaceLearning(): Promise<void>;
25
+ }
26
+ /**
27
+ * Run the example
28
+ */
29
+ export declare function runSurfaceCoordinationDemo(): Promise<void>;
30
+ //# sourceMappingURL=surface-coordination-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-coordination-example.d.ts","sourceRoot":"","sources":["../../src/lib/surface-coordination-example.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAiB;;IAOnC;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0F9C;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;IACG,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;CAsCvD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAYhE"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @purpose Example of how Surface Agents coordinate via Subway P2P mesh
3
+ *
4
+ * Scenario: User files GitHub issue → Multi-surface intelligent response
5
+ */
6
+ import { TenetIDEAgent } from './tenet-ide-agent.js';
7
+ import { TenetBoardAgent } from './tenet-board-agent.js';
8
+ /**
9
+ * Example coordination flow between surface agents
10
+ */
11
+ export class SurfaceCoordinationExample {
12
+ ideAgent;
13
+ boardAgent;
14
+ constructor() {
15
+ this.ideAgent = new TenetIDEAgent();
16
+ this.boardAgent = new TenetBoardAgent();
17
+ }
18
+ /**
19
+ * Simulate the full coordination flow
20
+ */
21
+ async demonstrateCoordination() {
22
+ console.log('🚀 Surface Agent Coordination Example');
23
+ console.log('===================================');
24
+ // 1. User files a new issue
25
+ const newIssue = {
26
+ id: 'issue-42',
27
+ title: 'CLI startup latency regression',
28
+ body: 'The jfl command takes 500ms+ to start, used to be <200ms',
29
+ priority: 'high',
30
+ labels: ['bug', 'performance'],
31
+ createdAt: new Date().toISOString()
32
+ };
33
+ console.log(`\n📋 New issue filed: ${newIssue.title}`);
34
+ // 2. Board agent receives the issue
35
+ console.log(`\n[tenet-board.relay] Processing new issue...`);
36
+ const boardContext = {
37
+ surfaceType: 'board',
38
+ userId: 'user123',
39
+ sessionId: 'session456',
40
+ capabilities: ['issue_tracking', 'project_management'],
41
+ userPreferences: { autoAssignment: true },
42
+ crossSurfaceData: {
43
+ newIssues: 1,
44
+ backlogItems: 5,
45
+ availableAgents: 2
46
+ }
47
+ };
48
+ const boardAction = await this.boardAgent.decide(boardContext);
49
+ console.log(`[tenet-board.relay] Decision:`, boardAction);
50
+ // 3. Board agent notifies IDE agent about technical issue
51
+ console.log(`\n[tenet-board.relay] → [tenet-ide.relay] Sending issue for analysis...`);
52
+ await this.boardAgent.handleCrossSurfaceEvent('new_issue_filed', {
53
+ issue: newIssue
54
+ });
55
+ // Simulate IDE agent receiving the issue
56
+ await this.ideAgent.handleCrossSurfaceEvent('new_issue_filed', {
57
+ issue: newIssue
58
+ });
59
+ // 4. IDE agent analyzes and potentially spawns RL agent
60
+ console.log(`\n[tenet-ide.relay] Analyzing issue fixability...`);
61
+ const ideContext = {
62
+ surfaceType: 'ide',
63
+ userId: 'user123',
64
+ sessionId: 'session456',
65
+ capabilities: ['code_analysis', 'performance_tuning'],
66
+ userPreferences: {
67
+ autoFix: true,
68
+ cliSlowness: 520 // Current latency
69
+ },
70
+ crossSurfaceData: {
71
+ newIssues: 1,
72
+ performanceAlerts: 1
73
+ }
74
+ };
75
+ const ideAction = await this.ideAgent.decide(ideContext);
76
+ console.log(`[tenet-ide.relay] Decision:`, ideAction);
77
+ // 5. Coordination between surfaces
78
+ console.log(`\n🤝 Cross-surface coordination happening...`);
79
+ // IDE assigns a fix agent
80
+ await this.simulateFixAgent(newIssue);
81
+ // Board updates issue status
82
+ await this.boardAgent.handleCrossSurfaceEvent('agent_assigned', {
83
+ issue: newIssue.id,
84
+ agent: 'cli-speed-agent-123',
85
+ estimatedTime: 15
86
+ });
87
+ // 6. Learning and optimization
88
+ console.log(`\n🧠 Cross-surface learning...`);
89
+ await this.ideAgent.learnFromIDEUsage('issue_auto_assigned', ideContext);
90
+ await this.boardAgent.learnFromBoardUsage('issue_prioritized', boardContext);
91
+ console.log(`\n✅ Coordination complete! Issue moving through automated pipeline.`);
92
+ }
93
+ /**
94
+ * Simulate an RL agent working on the fix
95
+ */
96
+ async simulateFixAgent(issue) {
97
+ console.log(`\n[cli-speed-agent] Working on: ${issue.title}`);
98
+ console.log(`[cli-speed-agent] Analyzing startup performance...`);
99
+ console.log(`[cli-speed-agent] Found: Unnecessary import loading`);
100
+ console.log(`[cli-speed-agent] Applying fix: Lazy import optimization`);
101
+ console.log(`[cli-speed-agent] Testing: New startup time 180ms ✅`);
102
+ console.log(`[cli-speed-agent] Creating PR...`);
103
+ // Notify board agent of completion
104
+ await this.boardAgent.handleCrossSurfaceEvent('fix_completed', {
105
+ issue: issue.id,
106
+ agent: 'cli-speed-agent-123',
107
+ improvement: '65% faster startup',
108
+ prUrl: 'https://github.com/user/repo/pull/123'
109
+ });
110
+ }
111
+ /**
112
+ * Example of learning insights being shared across surfaces
113
+ */
114
+ async demonstrateCrossSurfaceLearning() {
115
+ console.log('\n🎓 Cross-surface Learning Example');
116
+ console.log('=================================');
117
+ const learningInsights = [
118
+ {
119
+ pattern: 'performance_issues_auto_fixable',
120
+ surfaces: ['board', 'ide'],
121
+ optimization: '+80% performance issues resolved automatically',
122
+ userImpact: '+25% developer velocity',
123
+ confidence: 0.9
124
+ },
125
+ {
126
+ pattern: 'issue_priority_correlation',
127
+ surfaces: ['board', 'ide'],
128
+ optimization: 'High priority issues fixed 3x faster',
129
+ userImpact: '+30% customer satisfaction',
130
+ confidence: 0.85
131
+ },
132
+ {
133
+ pattern: 'cross_surface_handoff_timing',
134
+ surfaces: ['board', 'ide'],
135
+ optimization: 'Optimal handoff: <2min from issue creation',
136
+ userImpact: '+15% issue resolution speed',
137
+ confidence: 0.78
138
+ }
139
+ ];
140
+ for (const insight of learningInsights) {
141
+ console.log(`\n📊 Learning Insight: ${insight.pattern}`);
142
+ console.log(` Optimization: ${insight.optimization}`);
143
+ console.log(` User Impact: ${insight.userImpact}`);
144
+ console.log(` Confidence: ${(insight.confidence * 100).toFixed(0)}%`);
145
+ console.log(` Surfaces: ${insight.surfaces.join(', ')}`);
146
+ }
147
+ console.log(`\n🚀 Result: Each surface gets smarter at its domain AND coordination`);
148
+ }
149
+ }
150
+ /**
151
+ * Run the example
152
+ */
153
+ export async function runSurfaceCoordinationDemo() {
154
+ const example = new SurfaceCoordinationExample();
155
+ await example.demonstrateCoordination();
156
+ await example.demonstrateCrossSurfaceLearning();
157
+ console.log(`\n🎯 Key Benefits of Surface Agent Architecture:`);
158
+ console.log(`• Specialized intelligence per product surface`);
159
+ console.log(`• Distributed learning and optimization`);
160
+ console.log(`• Cross-surface coordination via Subway mesh`);
161
+ console.log(`• Each agent owns and evolves its domain`);
162
+ console.log(`• Scalable to new surfaces (Notes, Flow, etc.)`);
163
+ }
164
+ //# sourceMappingURL=surface-coordination-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-coordination-example.js","sourceRoot":"","sources":["../../src/lib/surface-coordination-example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @purpose Physical-World Data Engine — System telemetry collection
3
+ * Captures hardware, system, and workflow context that web UIs can't access
4
+ */
5
+ import type { TelemetryEvent } from '../../types/telemetry.js';
6
+ export declare class PhysicalWorldCollector {
7
+ private startTime;
8
+ collect(baseEvent: Partial<TelemetryEvent>): Promise<Partial<TelemetryEvent>>;
9
+ private collectSystemMetrics;
10
+ private collectWorkflowMetrics;
11
+ private collectNetworkMetrics;
12
+ private extractVmStatValue;
13
+ }
14
+ export declare const physicalWorldCollector: PhysicalWorldCollector;
15
+ //# sourceMappingURL=physical-world-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physical-world-collector.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/physical-world-collector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AA4B9D,qBAAa,sBAAsB;IACjC,OAAO,CAAC,SAAS,CAAa;IAExB,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAcrE,oBAAoB;YA0EpB,sBAAsB;YAgDtB,qBAAqB;IAoCnC,OAAO,CAAC,kBAAkB;CAK3B;AAGD,eAAO,MAAM,sBAAsB,wBAA+B,CAAA"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @purpose Physical-World Data Engine — System telemetry collection
3
+ * Captures hardware, system, and workflow context that web UIs can't access
4
+ */
5
+ import { execSync } from 'child_process';
6
+ import { existsSync } from 'fs';
7
+ export class PhysicalWorldCollector {
8
+ startTime = Date.now();
9
+ async collect(baseEvent) {
10
+ const systemMetrics = await this.collectSystemMetrics();
11
+ const workflowMetrics = await this.collectWorkflowMetrics();
12
+ const networkMetrics = await this.collectNetworkMetrics();
13
+ return {
14
+ ...baseEvent,
15
+ ...systemMetrics,
16
+ ...workflowMetrics,
17
+ ...networkMetrics,
18
+ session_uptime_s: Math.floor((Date.now() - this.startTime) / 1000)
19
+ };
20
+ }
21
+ async collectSystemMetrics() {
22
+ const metrics = {};
23
+ try {
24
+ // CPU usage (macOS)
25
+ if (process.platform === 'darwin') {
26
+ const cpuUsage = execSync("top -l 1 | grep 'CPU usage:' | awk '{print $3}' | sed 's/%//'", {
27
+ encoding: 'utf-8', timeout: 3000
28
+ }).trim();
29
+ if (cpuUsage)
30
+ metrics.cpu_usage_percent = parseFloat(cpuUsage);
31
+ // Memory stats
32
+ const vmStat = execSync('vm_stat', { encoding: 'utf-8', timeout: 3000 });
33
+ const freePages = this.extractVmStatValue(vmStat, 'Pages free:');
34
+ const activePages = this.extractVmStatValue(vmStat, 'Pages active:');
35
+ const inactivePages = this.extractVmStatValue(vmStat, 'Pages inactive:');
36
+ const wiredPages = this.extractVmStatValue(vmStat, 'Pages wired down:');
37
+ if (freePages && activePages && inactivePages && wiredPages) {
38
+ const totalPages = freePages + activePages + inactivePages + wiredPages;
39
+ const pageSize = 4096; // 4KB pages on macOS
40
+ metrics.memory_available_mb = Math.round((freePages * pageSize) / (1024 * 1024));
41
+ metrics.memory_usage_mb = Math.round(((totalPages - freePages) * pageSize) / (1024 * 1024));
42
+ }
43
+ // System load
44
+ const uptime = execSync('uptime', { encoding: 'utf-8', timeout: 3000 });
45
+ const loadMatch = uptime.match(/load averages?:\s*([0-9.]+)/);
46
+ if (loadMatch)
47
+ metrics.system_load_1m = parseFloat(loadMatch[1]);
48
+ // Disk space
49
+ const diskInfo = execSync("df -h / | tail -1 | awk '{print $4}'", {
50
+ encoding: 'utf-8', timeout: 3000
51
+ }).trim();
52
+ if (diskInfo) {
53
+ const sizeMatch = diskInfo.match(/([0-9.]+)([KMGT])i?/);
54
+ if (sizeMatch) {
55
+ const [, size, unit] = sizeMatch;
56
+ const multiplier = { K: 0.001, M: 1 / 1024, G: 1, T: 1024 }[unit] || 1;
57
+ metrics.disk_free_gb = Math.round(parseFloat(size) * multiplier * 10) / 10;
58
+ }
59
+ }
60
+ // Battery info
61
+ try {
62
+ const batteryInfo = execSync('pmset -g batt', { encoding: 'utf-8', timeout: 3000 });
63
+ if (batteryInfo.includes('Battery')) {
64
+ const pctMatch = batteryInfo.match(/([0-9]+)%/);
65
+ if (pctMatch)
66
+ metrics.battery_level = parseInt(pctMatch[1]);
67
+ metrics.battery_charging = batteryInfo.includes('charging');
68
+ }
69
+ }
70
+ catch {
71
+ // No battery (desktop)
72
+ }
73
+ // Thermal state (basic heuristic based on CPU usage and system load)
74
+ const cpuPct = metrics.cpu_usage_percent || 0;
75
+ const load = metrics.system_load_1m || 0;
76
+ if (cpuPct > 80 || load > 3.0) {
77
+ metrics.thermal_state = 'hot';
78
+ }
79
+ else if (cpuPct > 60 || load > 2.0) {
80
+ metrics.thermal_state = 'warm';
81
+ }
82
+ else {
83
+ metrics.thermal_state = 'nominal';
84
+ }
85
+ }
86
+ }
87
+ catch (error) {
88
+ // Fail silently - telemetry shouldn't break functionality
89
+ }
90
+ return metrics;
91
+ }
92
+ async collectWorkflowMetrics() {
93
+ const metrics = {};
94
+ try {
95
+ // Git information
96
+ if (existsSync('.git')) {
97
+ try {
98
+ metrics.git_branch = execSync('git branch --show-current', {
99
+ encoding: 'utf-8', timeout: 2000
100
+ }).trim();
101
+ const gitStatus = execSync('git status --porcelain', {
102
+ encoding: 'utf-8', timeout: 2000
103
+ });
104
+ metrics.git_dirty_files = gitStatus.split('\n').filter(line => line.trim()).length;
105
+ }
106
+ catch {
107
+ // Not in a git repo or git not available
108
+ }
109
+ }
110
+ // Tmux sessions (indicator of terminal workflows)
111
+ try {
112
+ const tmuxSessions = execSync('tmux list-sessions 2>/dev/null || echo ""', {
113
+ encoding: 'utf-8', timeout: 2000
114
+ });
115
+ metrics.concurrent_terminals = tmuxSessions.split('\n').filter(line => line.trim()).length;
116
+ }
117
+ catch {
118
+ metrics.concurrent_terminals = 1; // Default single terminal
119
+ }
120
+ // Current workspace path
121
+ metrics.workspace_path = process.cwd();
122
+ // Detect IDE (basic heuristics)
123
+ const processes = execSync('ps aux | grep -E "(code|cursor|nvim|vim|emacs)" | grep -v grep | wc -l', {
124
+ encoding: 'utf-8', timeout: 2000
125
+ }).trim();
126
+ if (parseInt(processes) > 0) {
127
+ // Could be enhanced to detect specific IDE
128
+ metrics.active_ide = 'detected';
129
+ }
130
+ }
131
+ catch (error) {
132
+ // Fail silently
133
+ }
134
+ return metrics;
135
+ }
136
+ async collectNetworkMetrics() {
137
+ const metrics = {};
138
+ try {
139
+ // Network latency test
140
+ const pingResult = execSync('ping -c 1 -W 2000 8.8.8.8 | grep "time=" | awk -F"time=" \'{print $2}\' | awk \'{print $1}\'', {
141
+ encoding: 'utf-8', timeout: 5000
142
+ }).trim();
143
+ if (pingResult) {
144
+ metrics.network_latency_ms = Math.round(parseFloat(pingResult));
145
+ metrics.internet_connectivity = true;
146
+ }
147
+ }
148
+ catch {
149
+ metrics.internet_connectivity = false;
150
+ }
151
+ try {
152
+ // Active localhost ports (development servers)
153
+ const portsOutput = execSync("lsof -i :3000-9000 -sTCP:LISTEN 2>/dev/null | awk 'NR>1 {print $9}' | cut -d: -f2 | sort -n", {
154
+ encoding: 'utf-8', timeout: 3000
155
+ });
156
+ const ports = portsOutput.split('\n')
157
+ .filter(line => line.trim())
158
+ .map(port => parseInt(port))
159
+ .filter(port => !isNaN(port));
160
+ if (ports.length > 0) {
161
+ metrics.localhost_ports_active = ports;
162
+ }
163
+ }
164
+ catch {
165
+ // Command failed - no ports or lsof not available
166
+ }
167
+ return metrics;
168
+ }
169
+ extractVmStatValue(vmStat, label) {
170
+ const regex = new RegExp(`${label.replace(':', '\\:')}\\s+(\\d+)\\.?`);
171
+ const match = vmStat.match(regex);
172
+ return match ? parseInt(match[1]) : null;
173
+ }
174
+ }
175
+ // Singleton instance
176
+ export const physicalWorldCollector = new PhysicalWorldCollector();
177
+ //# sourceMappingURL=physical-world-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physical-world-collector.js","sourceRoot":"","sources":["../../../src/lib/telemetry/physical-world-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @purpose Bridge between physical-world telemetry and RL training pipeline
3
+ * Converts telemetry events into training data for RL agents
4
+ */
5
+ import type { TelemetryEvent } from '../../types/telemetry.js';
6
+ interface TrainingTuple {
7
+ agent: string;
8
+ state: PhysicalWorldState;
9
+ action: string;
10
+ reward: number;
11
+ next_state: PhysicalWorldState;
12
+ terminal: boolean;
13
+ timestamp: string;
14
+ }
15
+ interface PhysicalWorldState {
16
+ cpu_usage_percent: number;
17
+ memory_usage_mb: number;
18
+ thermal_state: 'nominal' | 'warm' | 'hot' | 'critical';
19
+ system_load_1m: number;
20
+ git_dirty_files: number;
21
+ concurrent_terminals: number;
22
+ active_ide: boolean;
23
+ avg_command_duration_ms: number;
24
+ recent_build_time_ms?: number;
25
+ recent_test_time_ms?: number;
26
+ }
27
+ export declare class PhysicalWorldTrainingBridge {
28
+ private stateHistory;
29
+ private readonly STATE_WINDOW_SIZE;
30
+ /**
31
+ * Convert telemetry events into RL training tuples
32
+ */
33
+ processEventForTraining(event: TelemetryEvent, agentName: string, action: string): TrainingTuple | null;
34
+ private extractPhysicalWorldState;
35
+ private calculatePhysicalWorldReward;
36
+ private getThermalScore;
37
+ private isTerminalState;
38
+ private updateStateHistory;
39
+ /**
40
+ * Export training data for RL pipeline
41
+ */
42
+ exportTrainingData(): TrainingTuple[];
43
+ /**
44
+ * Get physical-world state summary for current system
45
+ */
46
+ getCurrentPhysicalWorldSummary(): Partial<PhysicalWorldState>;
47
+ private average;
48
+ }
49
+ export declare const physicalWorldTrainingBridge: PhysicalWorldTrainingBridge;
50
+ export {};
51
+ //# sourceMappingURL=training-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training-bridge.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/training-bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9D,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,kBAAkB,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,kBAAkB,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,kBAAkB;IAE1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAA;IACtD,cAAc,EAAE,MAAM,CAAA;IAGtB,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,UAAU,EAAE,OAAO,CAAA;IAGnB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAQD,qBAAa,2BAA2B;IACtC,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAEvC;;OAEG;IACH,uBAAuB,CACrB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,IAAI;IA6BvB,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,4BAA4B;IA+FpC,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,kBAAkB,IAAI,aAAa,EAAE;IAMrC;;OAEG;IACH,8BAA8B,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAY7D,OAAO,CAAC,OAAO;CAGhB;AAGD,eAAO,MAAM,2BAA2B,6BAAoC,CAAA"}