@hongmaple0820/med-scale-research-os 0.43.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 (1104) hide show
  1. package/.scale/mcp-servers.yaml +144 -0
  2. package/.scale/skills.json +830 -0
  3. package/.scale/verification.json +52 -0
  4. package/LICENSE +15 -0
  5. package/README.en.md +156 -0
  6. package/README.md +156 -0
  7. package/dist/adapters/AiderAdapter.d.ts +22 -0
  8. package/dist/adapters/AiderAdapter.js +262 -0
  9. package/dist/adapters/AiderAdapter.js.map +1 -0
  10. package/dist/adapters/AntigravityAdapter.d.ts +4 -0
  11. package/dist/adapters/AntigravityAdapter.js +21 -0
  12. package/dist/adapters/AntigravityAdapter.js.map +1 -0
  13. package/dist/adapters/ClaudeCodeAdapter.d.ts +54 -0
  14. package/dist/adapters/ClaudeCodeAdapter.js +185 -0
  15. package/dist/adapters/ClaudeCodeAdapter.js.map +1 -0
  16. package/dist/adapters/ClineAdapter.d.ts +4 -0
  17. package/dist/adapters/ClineAdapter.js +20 -0
  18. package/dist/adapters/ClineAdapter.js.map +1 -0
  19. package/dist/adapters/CodexAdapter.d.ts +15 -0
  20. package/dist/adapters/CodexAdapter.js +160 -0
  21. package/dist/adapters/CodexAdapter.js.map +1 -0
  22. package/dist/adapters/CursorAdapter.d.ts +14 -0
  23. package/dist/adapters/CursorAdapter.js +171 -0
  24. package/dist/adapters/CursorAdapter.js.map +1 -0
  25. package/dist/adapters/DeepSeekTuiAdapter.d.ts +19 -0
  26. package/dist/adapters/DeepSeekTuiAdapter.js +263 -0
  27. package/dist/adapters/DeepSeekTuiAdapter.js.map +1 -0
  28. package/dist/adapters/DoubaoAdapter.d.ts +14 -0
  29. package/dist/adapters/DoubaoAdapter.js +184 -0
  30. package/dist/adapters/DoubaoAdapter.js.map +1 -0
  31. package/dist/adapters/GeminiAdapter.d.ts +14 -0
  32. package/dist/adapters/GeminiAdapter.js +163 -0
  33. package/dist/adapters/GeminiAdapter.js.map +1 -0
  34. package/dist/adapters/GenericProjectAgentAdapter.d.ts +29 -0
  35. package/dist/adapters/GenericProjectAgentAdapter.js +204 -0
  36. package/dist/adapters/GenericProjectAgentAdapter.js.map +1 -0
  37. package/dist/adapters/HermesAdapter.d.ts +14 -0
  38. package/dist/adapters/HermesAdapter.js +163 -0
  39. package/dist/adapters/HermesAdapter.js.map +1 -0
  40. package/dist/adapters/JCodeAdapter.d.ts +4 -0
  41. package/dist/adapters/JCodeAdapter.js +19 -0
  42. package/dist/adapters/JCodeAdapter.js.map +1 -0
  43. package/dist/adapters/KiloCodeAdapter.d.ts +4 -0
  44. package/dist/adapters/KiloCodeAdapter.js +20 -0
  45. package/dist/adapters/KiloCodeAdapter.js.map +1 -0
  46. package/dist/adapters/KimiAdapter.d.ts +14 -0
  47. package/dist/adapters/KimiAdapter.js +183 -0
  48. package/dist/adapters/KimiAdapter.js.map +1 -0
  49. package/dist/adapters/KiroAdapter.d.ts +14 -0
  50. package/dist/adapters/KiroAdapter.js +180 -0
  51. package/dist/adapters/KiroAdapter.js.map +1 -0
  52. package/dist/adapters/OpenClawAdapter.d.ts +14 -0
  53. package/dist/adapters/OpenClawAdapter.js +163 -0
  54. package/dist/adapters/OpenClawAdapter.js.map +1 -0
  55. package/dist/adapters/OpenCodeAdapter.d.ts +14 -0
  56. package/dist/adapters/OpenCodeAdapter.js +172 -0
  57. package/dist/adapters/OpenCodeAdapter.js.map +1 -0
  58. package/dist/adapters/QCoderAdapter.d.ts +14 -0
  59. package/dist/adapters/QCoderAdapter.js +159 -0
  60. package/dist/adapters/QCoderAdapter.js.map +1 -0
  61. package/dist/adapters/QoderAdapter.d.ts +4 -0
  62. package/dist/adapters/QoderAdapter.js +21 -0
  63. package/dist/adapters/QoderAdapter.js.map +1 -0
  64. package/dist/adapters/TraeAdapter.d.ts +14 -0
  65. package/dist/adapters/TraeAdapter.js +159 -0
  66. package/dist/adapters/TraeAdapter.js.map +1 -0
  67. package/dist/adapters/VSCAdapter.d.ts +14 -0
  68. package/dist/adapters/VSCAdapter.js +159 -0
  69. package/dist/adapters/VSCAdapter.js.map +1 -0
  70. package/dist/adapters/WindsurfAdapter.d.ts +14 -0
  71. package/dist/adapters/WindsurfAdapter.js +185 -0
  72. package/dist/adapters/WindsurfAdapter.js.map +1 -0
  73. package/dist/adapters/WorkBuddyAdapter.d.ts +14 -0
  74. package/dist/adapters/WorkBuddyAdapter.js +159 -0
  75. package/dist/adapters/WorkBuddyAdapter.js.map +1 -0
  76. package/dist/adapters/index.d.ts +32 -0
  77. package/dist/adapters/index.js +87 -0
  78. package/dist/adapters/index.js.map +1 -0
  79. package/dist/agents/AgentChannel.d.ts +43 -0
  80. package/dist/agents/AgentChannel.js +136 -0
  81. package/dist/agents/AgentChannel.js.map +1 -0
  82. package/dist/agents/AgentCoordinator.d.ts +29 -0
  83. package/dist/agents/AgentCoordinator.js +136 -0
  84. package/dist/agents/AgentCoordinator.js.map +1 -0
  85. package/dist/agents/AgentDispatcher.d.ts +24 -0
  86. package/dist/agents/AgentDispatcher.js +112 -0
  87. package/dist/agents/AgentDispatcher.js.map +1 -0
  88. package/dist/agents/AgentManager.d.ts +14 -0
  89. package/dist/agents/AgentManager.js +85 -0
  90. package/dist/agents/AgentManager.js.map +1 -0
  91. package/dist/agents/AgentPool.d.ts +59 -0
  92. package/dist/agents/AgentPool.js +192 -0
  93. package/dist/agents/AgentPool.js.map +1 -0
  94. package/dist/agents/AgentRegistry.d.ts +20 -0
  95. package/dist/agents/AgentRegistry.js +36 -0
  96. package/dist/agents/AgentRegistry.js.map +1 -0
  97. package/dist/agents/AgentSourceLoader.d.ts +73 -0
  98. package/dist/agents/AgentSourceLoader.js +103 -0
  99. package/dist/agents/AgentSourceLoader.js.map +1 -0
  100. package/dist/agents/IAgent.d.ts +53 -0
  101. package/dist/agents/IAgent.js +4 -0
  102. package/dist/agents/IAgent.js.map +1 -0
  103. package/dist/agents/LeadershipPresets.d.ts +16 -0
  104. package/dist/agents/LeadershipPresets.js +152 -0
  105. package/dist/agents/LeadershipPresets.js.map +1 -0
  106. package/dist/agents/definitions/debugger.d.ts +2 -0
  107. package/dist/agents/definitions/debugger.js +6 -0
  108. package/dist/agents/definitions/debugger.js.map +1 -0
  109. package/dist/agents/definitions/doc-writer.d.ts +2 -0
  110. package/dist/agents/definitions/doc-writer.js +6 -0
  111. package/dist/agents/definitions/doc-writer.js.map +1 -0
  112. package/dist/agents/definitions/implementer.d.ts +2 -0
  113. package/dist/agents/definitions/implementer.js +6 -0
  114. package/dist/agents/definitions/implementer.js.map +1 -0
  115. package/dist/agents/definitions/planner.d.ts +2 -0
  116. package/dist/agents/definitions/planner.js +6 -0
  117. package/dist/agents/definitions/planner.js.map +1 -0
  118. package/dist/agents/definitions/researcher.d.ts +2 -0
  119. package/dist/agents/definitions/researcher.js +6 -0
  120. package/dist/agents/definitions/researcher.js.map +1 -0
  121. package/dist/agents/definitions/reviewer.d.ts +2 -0
  122. package/dist/agents/definitions/reviewer.js +6 -0
  123. package/dist/agents/definitions/reviewer.js.map +1 -0
  124. package/dist/agents/definitions/security.d.ts +2 -0
  125. package/dist/agents/definitions/security.js +6 -0
  126. package/dist/agents/definitions/security.js.map +1 -0
  127. package/dist/agents/definitions/tester.d.ts +2 -0
  128. package/dist/agents/definitions/tester.js +6 -0
  129. package/dist/agents/definitions/tester.js.map +1 -0
  130. package/dist/agents/index.d.ts +23 -0
  131. package/dist/agents/index.js +44 -0
  132. package/dist/agents/index.js.map +1 -0
  133. package/dist/agents/profiles.d.ts +26 -0
  134. package/dist/agents/profiles.js +197 -0
  135. package/dist/agents/profiles.js.map +1 -0
  136. package/dist/agents/types.d.ts +262 -0
  137. package/dist/agents/types.js +4 -0
  138. package/dist/agents/types.js.map +1 -0
  139. package/dist/api/cli.d.ts +2 -0
  140. package/dist/api/cli.js +6678 -0
  141. package/dist/api/cli.js.map +1 -0
  142. package/dist/api/doctor.d.ts +83 -0
  143. package/dist/api/doctor.js +982 -0
  144. package/dist/api/doctor.js.map +1 -0
  145. package/dist/api/mcp.d.ts +32 -0
  146. package/dist/api/mcp.js +223 -0
  147. package/dist/api/mcp.js.map +1 -0
  148. package/dist/api/medscale.d.ts +2 -0
  149. package/dist/api/medscale.js +20 -0
  150. package/dist/api/medscale.js.map +1 -0
  151. package/dist/api/quickstart.d.ts +86 -0
  152. package/dist/api/quickstart.js +291 -0
  153. package/dist/api/quickstart.js.map +1 -0
  154. package/dist/artifact/fsm.d.ts +41 -0
  155. package/dist/artifact/fsm.js +221 -0
  156. package/dist/artifact/fsm.js.map +1 -0
  157. package/dist/artifact/fsmDefinitions.d.ts +18 -0
  158. package/dist/artifact/fsmDefinitions.js +296 -0
  159. package/dist/artifact/fsmDefinitions.js.map +1 -0
  160. package/dist/artifact/sqliteStore.d.ts +61 -0
  161. package/dist/artifact/sqliteStore.js +381 -0
  162. package/dist/artifact/sqliteStore.js.map +1 -0
  163. package/dist/artifact/store.d.ts +49 -0
  164. package/dist/artifact/store.js +116 -0
  165. package/dist/artifact/store.js.map +1 -0
  166. package/dist/artifact/types.d.ts +535 -0
  167. package/dist/artifact/types.js +74 -0
  168. package/dist/artifact/types.js.map +1 -0
  169. package/dist/bootstrap/DependencyBootstrap.d.ts +112 -0
  170. package/dist/bootstrap/DependencyBootstrap.js +1046 -0
  171. package/dist/bootstrap/DependencyBootstrap.js.map +1 -0
  172. package/dist/bootstrap/DependencyBootstrapRenderer.d.ts +3 -0
  173. package/dist/bootstrap/DependencyBootstrapRenderer.js +138 -0
  174. package/dist/bootstrap/DependencyBootstrapRenderer.js.map +1 -0
  175. package/dist/bridge/PythonBridge.d.ts +80 -0
  176. package/dist/bridge/PythonBridge.js +437 -0
  177. package/dist/bridge/PythonBridge.js.map +1 -0
  178. package/dist/bridge/index.d.ts +2 -0
  179. package/dist/bridge/index.js +7 -0
  180. package/dist/bridge/index.js.map +1 -0
  181. package/dist/bridge/medicalWorkflows.d.ts +29 -0
  182. package/dist/bridge/medicalWorkflows.js +156 -0
  183. package/dist/bridge/medicalWorkflows.js.map +1 -0
  184. package/dist/bridge/types.d.ts +381 -0
  185. package/dist/bridge/types.js +113 -0
  186. package/dist/bridge/types.js.map +1 -0
  187. package/dist/cache/ScanCache.d.ts +41 -0
  188. package/dist/cache/ScanCache.js +120 -0
  189. package/dist/cache/ScanCache.js.map +1 -0
  190. package/dist/capabilities/BrowserCapability.d.ts +30 -0
  191. package/dist/capabilities/BrowserCapability.js +73 -0
  192. package/dist/capabilities/BrowserCapability.js.map +1 -0
  193. package/dist/capabilities/BrowserQACapability.d.ts +165 -0
  194. package/dist/capabilities/BrowserQACapability.js +438 -0
  195. package/dist/capabilities/BrowserQACapability.js.map +1 -0
  196. package/dist/capabilities/CapabilityRegistry.d.ts +17 -0
  197. package/dist/capabilities/CapabilityRegistry.js +65 -0
  198. package/dist/capabilities/CapabilityRegistry.js.map +1 -0
  199. package/dist/capabilities/ComputerCapability.d.ts +28 -0
  200. package/dist/capabilities/ComputerCapability.js +40 -0
  201. package/dist/capabilities/ComputerCapability.js.map +1 -0
  202. package/dist/capabilities/InstalledSkillsIntegration.d.ts +69 -0
  203. package/dist/capabilities/InstalledSkillsIntegration.js +240 -0
  204. package/dist/capabilities/InstalledSkillsIntegration.js.map +1 -0
  205. package/dist/capabilities/SearchCapability.d.ts +46 -0
  206. package/dist/capabilities/SearchCapability.js +88 -0
  207. package/dist/capabilities/SearchCapability.js.map +1 -0
  208. package/dist/capabilities/index.d.ts +6 -0
  209. package/dist/capabilities/index.js +9 -0
  210. package/dist/capabilities/index.js.map +1 -0
  211. package/dist/capabilities/types.d.ts +92 -0
  212. package/dist/capabilities/types.js +7 -0
  213. package/dist/capabilities/types.js.map +1 -0
  214. package/dist/cli/autofixCommands.d.ts +22 -0
  215. package/dist/cli/autofixCommands.js +32 -0
  216. package/dist/cli/autofixCommands.js.map +1 -0
  217. package/dist/cli/cortexCommands.d.ts +71 -0
  218. package/dist/cli/cortexCommands.js +335 -0
  219. package/dist/cli/cortexCommands.js.map +1 -0
  220. package/dist/cli/costCommands.d.ts +13 -0
  221. package/dist/cli/costCommands.js +48 -0
  222. package/dist/cli/costCommands.js.map +1 -0
  223. package/dist/cli/evolutionCommands.d.ts +112 -0
  224. package/dist/cli/evolutionCommands.js +246 -0
  225. package/dist/cli/evolutionCommands.js.map +1 -0
  226. package/dist/cli/gateStatusCommands.d.ts +1 -0
  227. package/dist/cli/gateStatusCommands.js +52 -0
  228. package/dist/cli/gateStatusCommands.js.map +1 -0
  229. package/dist/cli/liteCommands.d.ts +81 -0
  230. package/dist/cli/liteCommands.js +148 -0
  231. package/dist/cli/liteCommands.js.map +1 -0
  232. package/dist/cli/orchCommands.d.ts +43 -0
  233. package/dist/cli/orchCommands.js +135 -0
  234. package/dist/cli/orchCommands.js.map +1 -0
  235. package/dist/cli/phaseCommands.d.ts +248 -0
  236. package/dist/cli/phaseCommands.js +1878 -0
  237. package/dist/cli/phaseCommands.js.map +1 -0
  238. package/dist/cli/promptCommands.d.ts +1 -0
  239. package/dist/cli/promptCommands.js +57 -0
  240. package/dist/cli/promptCommands.js.map +1 -0
  241. package/dist/cli/qaCommands.d.ts +22 -0
  242. package/dist/cli/qaCommands.js +84 -0
  243. package/dist/cli/qaCommands.js.map +1 -0
  244. package/dist/cli/quickstartCommands.d.ts +17 -0
  245. package/dist/cli/quickstartCommands.js +47 -0
  246. package/dist/cli/quickstartCommands.js.map +1 -0
  247. package/dist/cli/runCommand.d.ts +39 -0
  248. package/dist/cli/runCommand.js +113 -0
  249. package/dist/cli/runCommand.js.map +1 -0
  250. package/dist/cli/scoreCommands.d.ts +1 -0
  251. package/dist/cli/scoreCommands.js +112 -0
  252. package/dist/cli/scoreCommands.js.map +1 -0
  253. package/dist/cli/shieldCommands.d.ts +30 -0
  254. package/dist/cli/shieldCommands.js +212 -0
  255. package/dist/cli/shieldCommands.js.map +1 -0
  256. package/dist/cli/targetCommands.d.ts +552 -0
  257. package/dist/cli/targetCommands.js +3173 -0
  258. package/dist/cli/targetCommands.js.map +1 -0
  259. package/dist/cli/tuiCommands.d.ts +7 -0
  260. package/dist/cli/tuiCommands.js +33 -0
  261. package/dist/cli/tuiCommands.js.map +1 -0
  262. package/dist/cli/vibeCommands.d.ts +64 -0
  263. package/dist/cli/vibeCommands.js +221 -0
  264. package/dist/cli/vibeCommands.js.map +1 -0
  265. package/dist/codegraph/CodeIntelligence.d.ts +147 -0
  266. package/dist/codegraph/CodeIntelligence.js +681 -0
  267. package/dist/codegraph/CodeIntelligence.js.map +1 -0
  268. package/dist/config/profiles.d.ts +64 -0
  269. package/dist/config/profiles.js +223 -0
  270. package/dist/config/profiles.js.map +1 -0
  271. package/dist/context/AntiPatternRegistry.d.ts +38 -0
  272. package/dist/context/AntiPatternRegistry.js +203 -0
  273. package/dist/context/AntiPatternRegistry.js.map +1 -0
  274. package/dist/context/CavemanCompressor.d.ts +20 -0
  275. package/dist/context/CavemanCompressor.js +14 -0
  276. package/dist/context/CavemanCompressor.js.map +1 -0
  277. package/dist/context/ContextBudget.d.ts +128 -0
  278. package/dist/context/ContextBudget.js +423 -0
  279. package/dist/context/ContextBudget.js.map +1 -0
  280. package/dist/context/ContextBuilder.d.ts +71 -0
  281. package/dist/context/ContextBuilder.js +372 -0
  282. package/dist/context/ContextBuilder.js.map +1 -0
  283. package/dist/context/ContextCompiler.d.ts +34 -0
  284. package/dist/context/ContextCompiler.js +120 -0
  285. package/dist/context/ContextCompiler.js.map +1 -0
  286. package/dist/context/ProjectAnatomy.d.ts +18 -0
  287. package/dist/context/ProjectAnatomy.js +287 -0
  288. package/dist/context/ProjectAnatomy.js.map +1 -0
  289. package/dist/context/SessionStartSequence.d.ts +54 -0
  290. package/dist/context/SessionStartSequence.js +162 -0
  291. package/dist/context/SessionStartSequence.js.map +1 -0
  292. package/dist/core/ExternalCommand.d.ts +9 -0
  293. package/dist/core/ExternalCommand.js +70 -0
  294. package/dist/core/ExternalCommand.js.map +1 -0
  295. package/dist/core/GbrainRuntime.d.ts +25 -0
  296. package/dist/core/GbrainRuntime.js +270 -0
  297. package/dist/core/GbrainRuntime.js.map +1 -0
  298. package/dist/core/container.d.ts +14 -0
  299. package/dist/core/container.js +35 -0
  300. package/dist/core/container.js.map +1 -0
  301. package/dist/core/eventBus.d.ts +60 -0
  302. package/dist/core/eventBus.js +157 -0
  303. package/dist/core/eventBus.js.map +1 -0
  304. package/dist/core/logger.d.ts +5 -0
  305. package/dist/core/logger.js +51 -0
  306. package/dist/core/logger.js.map +1 -0
  307. package/dist/cortex/GovernanceMetrics.d.ts +66 -0
  308. package/dist/cortex/GovernanceMetrics.js +230 -0
  309. package/dist/cortex/GovernanceMetrics.js.map +1 -0
  310. package/dist/cortex/InstinctExtractor.d.ts +61 -0
  311. package/dist/cortex/InstinctExtractor.js +184 -0
  312. package/dist/cortex/InstinctExtractor.js.map +1 -0
  313. package/dist/cortex/InstinctStore.d.ts +54 -0
  314. package/dist/cortex/InstinctStore.js +266 -0
  315. package/dist/cortex/InstinctStore.js.map +1 -0
  316. package/dist/cortex/ReflexionEngine.d.ts +34 -0
  317. package/dist/cortex/ReflexionEngine.js +157 -0
  318. package/dist/cortex/ReflexionEngine.js.map +1 -0
  319. package/dist/cortex/SessionInjector.d.ts +44 -0
  320. package/dist/cortex/SessionInjector.js +127 -0
  321. package/dist/cortex/SessionInjector.js.map +1 -0
  322. package/dist/cortex/adapters/ClaudeAdapter.d.ts +17 -0
  323. package/dist/cortex/adapters/ClaudeAdapter.js +61 -0
  324. package/dist/cortex/adapters/ClaudeAdapter.js.map +1 -0
  325. package/dist/cortex/adapters/CodexAdapter.d.ts +10 -0
  326. package/dist/cortex/adapters/CodexAdapter.js +52 -0
  327. package/dist/cortex/adapters/CodexAdapter.js.map +1 -0
  328. package/dist/cortex/adapters/CursorAdapter.d.ts +10 -0
  329. package/dist/cortex/adapters/CursorAdapter.js +46 -0
  330. package/dist/cortex/adapters/CursorAdapter.js.map +1 -0
  331. package/dist/cortex/adapters/GeminiAdapter.d.ts +11 -0
  332. package/dist/cortex/adapters/GeminiAdapter.js +48 -0
  333. package/dist/cortex/adapters/GeminiAdapter.js.map +1 -0
  334. package/dist/dashboard/DashboardServer.d.ts +86 -0
  335. package/dist/dashboard/DashboardServer.js +380 -0
  336. package/dist/dashboard/DashboardServer.js.map +1 -0
  337. package/dist/dashboard/MedicalWorkflowData.d.ts +155 -0
  338. package/dist/dashboard/MedicalWorkflowData.js +664 -0
  339. package/dist/dashboard/MedicalWorkflowData.js.map +1 -0
  340. package/dist/dashboard/MetricsAggregator.d.ts +38 -0
  341. package/dist/dashboard/MetricsAggregator.js +99 -0
  342. package/dist/dashboard/MetricsAggregator.js.map +1 -0
  343. package/dist/dashboard/index.d.ts +4 -0
  344. package/dist/dashboard/index.js +3 -0
  345. package/dist/dashboard/index.js.map +1 -0
  346. package/dist/dashboard/server.d.ts +52 -0
  347. package/dist/dashboard/server.js +84 -0
  348. package/dist/dashboard/server.js.map +1 -0
  349. package/dist/env/EnvironmentDoctor.d.ts +66 -0
  350. package/dist/env/EnvironmentDoctor.js +581 -0
  351. package/dist/env/EnvironmentDoctor.js.map +1 -0
  352. package/dist/eval/BenchmarkPublisher.d.ts +25 -0
  353. package/dist/eval/BenchmarkPublisher.js +27 -0
  354. package/dist/eval/BenchmarkPublisher.js.map +1 -0
  355. package/dist/eval/WorkflowEval.d.ts +161 -0
  356. package/dist/eval/WorkflowEval.js +377 -0
  357. package/dist/eval/WorkflowEval.js.map +1 -0
  358. package/dist/evolution/AutoDefectCreator.d.ts +43 -0
  359. package/dist/evolution/AutoDefectCreator.js +157 -0
  360. package/dist/evolution/AutoDefectCreator.js.map +1 -0
  361. package/dist/evolution/BehaviorTracker.d.ts +46 -0
  362. package/dist/evolution/BehaviorTracker.js +67 -0
  363. package/dist/evolution/BehaviorTracker.js.map +1 -0
  364. package/dist/evolution/EvolutionEngine.d.ts +102 -0
  365. package/dist/evolution/EvolutionEngine.js +326 -0
  366. package/dist/evolution/EvolutionEngine.js.map +1 -0
  367. package/dist/evolution/EvolutionEvaluator.d.ts +61 -0
  368. package/dist/evolution/EvolutionEvaluator.js +118 -0
  369. package/dist/evolution/EvolutionEvaluator.js.map +1 -0
  370. package/dist/evolution/LessonValidator.d.ts +36 -0
  371. package/dist/evolution/LessonValidator.js +132 -0
  372. package/dist/evolution/LessonValidator.js.map +1 -0
  373. package/dist/evolution/PatternExtractor.d.ts +40 -0
  374. package/dist/evolution/PatternExtractor.js +83 -0
  375. package/dist/evolution/PatternExtractor.js.map +1 -0
  376. package/dist/evolution/RuleMaturity.d.ts +39 -0
  377. package/dist/evolution/RuleMaturity.js +70 -0
  378. package/dist/evolution/RuleMaturity.js.map +1 -0
  379. package/dist/evolution/SessionLearnings.d.ts +70 -0
  380. package/dist/evolution/SessionLearnings.js +217 -0
  381. package/dist/evolution/SessionLearnings.js.map +1 -0
  382. package/dist/evolution/SkillCreator.d.ts +75 -0
  383. package/dist/evolution/SkillCreator.js +219 -0
  384. package/dist/evolution/SkillCreator.js.map +1 -0
  385. package/dist/fsm/FSMAgentBridge.d.ts +59 -0
  386. package/dist/fsm/FSMAgentBridge.js +193 -0
  387. package/dist/fsm/FSMAgentBridge.js.map +1 -0
  388. package/dist/fsm/index.d.ts +2 -0
  389. package/dist/fsm/index.js +3 -0
  390. package/dist/fsm/index.js.map +1 -0
  391. package/dist/governance/GovernanceRoi.d.ts +30 -0
  392. package/dist/governance/GovernanceRoi.js +102 -0
  393. package/dist/governance/GovernanceRoi.js.map +1 -0
  394. package/dist/governance/ProgressiveGovernance.d.ts +22 -0
  395. package/dist/governance/ProgressiveGovernance.js +159 -0
  396. package/dist/governance/ProgressiveGovernance.js.map +1 -0
  397. package/dist/guardrails/ActiveRedTeam.d.ts +46 -0
  398. package/dist/guardrails/ActiveRedTeam.js +203 -0
  399. package/dist/guardrails/ActiveRedTeam.js.map +1 -0
  400. package/dist/guardrails/DependencyAuditor.d.ts +68 -0
  401. package/dist/guardrails/DependencyAuditor.js +378 -0
  402. package/dist/guardrails/DependencyAuditor.js.map +1 -0
  403. package/dist/guardrails/DetectorEnhanced.d.ts +111 -0
  404. package/dist/guardrails/DetectorEnhanced.js +202 -0
  405. package/dist/guardrails/DetectorEnhanced.js.map +1 -0
  406. package/dist/guardrails/GateEvaluator.d.ts +18 -0
  407. package/dist/guardrails/GateEvaluator.js +129 -0
  408. package/dist/guardrails/GateEvaluator.js.map +1 -0
  409. package/dist/guardrails/Gateway.d.ts +26 -0
  410. package/dist/guardrails/Gateway.js +56 -0
  411. package/dist/guardrails/Gateway.js.map +1 -0
  412. package/dist/guardrails/OWASPDetector.d.ts +58 -0
  413. package/dist/guardrails/OWASPDetector.js +508 -0
  414. package/dist/guardrails/OWASPDetector.js.map +1 -0
  415. package/dist/guardrails/ReviewEnforcer.d.ts +52 -0
  416. package/dist/guardrails/ReviewEnforcer.js +117 -0
  417. package/dist/guardrails/ReviewEnforcer.js.map +1 -0
  418. package/dist/guardrails/advancedDetectors.d.ts +38 -0
  419. package/dist/guardrails/advancedDetectors.js +188 -0
  420. package/dist/guardrails/advancedDetectors.js.map +1 -0
  421. package/dist/guardrails/detectors.d.ts +34 -0
  422. package/dist/guardrails/detectors.js +332 -0
  423. package/dist/guardrails/detectors.js.map +1 -0
  424. package/dist/guardrails/roles.d.ts +4 -0
  425. package/dist/guardrails/roles.js +54 -0
  426. package/dist/guardrails/roles.js.map +1 -0
  427. package/dist/hooks/BugPatternDetector.d.ts +36 -0
  428. package/dist/hooks/BugPatternDetector.js +207 -0
  429. package/dist/hooks/BugPatternDetector.js.map +1 -0
  430. package/dist/hooks/HookDeployer.d.ts +44 -0
  431. package/dist/hooks/HookDeployer.js +144 -0
  432. package/dist/hooks/HookDeployer.js.map +1 -0
  433. package/dist/hooks/HookGeneratorEnhanced.d.ts +67 -0
  434. package/dist/hooks/HookGeneratorEnhanced.js +641 -0
  435. package/dist/hooks/HookGeneratorEnhanced.js.map +1 -0
  436. package/dist/hooks/WorkflowHooksManager.d.ts +30 -0
  437. package/dist/hooks/WorkflowHooksManager.js +160 -0
  438. package/dist/hooks/WorkflowHooksManager.js.map +1 -0
  439. package/dist/hooks/index.d.ts +6 -0
  440. package/dist/hooks/index.js +5 -0
  441. package/dist/hooks/index.js.map +1 -0
  442. package/dist/i18n/Language.d.ts +9 -0
  443. package/dist/i18n/Language.js +38 -0
  444. package/dist/i18n/Language.js.map +1 -0
  445. package/dist/index.d.ts +101 -0
  446. package/dist/index.js +104 -0
  447. package/dist/index.js.map +1 -0
  448. package/dist/knowledge/CerebrumManager.d.ts +25 -0
  449. package/dist/knowledge/CerebrumManager.js +127 -0
  450. package/dist/knowledge/CerebrumManager.js.map +1 -0
  451. package/dist/knowledge/GraphifyKnowledgeBase.d.ts +38 -0
  452. package/dist/knowledge/GraphifyKnowledgeBase.js +409 -0
  453. package/dist/knowledge/GraphifyKnowledgeBase.js.map +1 -0
  454. package/dist/knowledge/KnowledgeBase.d.ts +51 -0
  455. package/dist/knowledge/KnowledgeBase.js +182 -0
  456. package/dist/knowledge/KnowledgeBase.js.map +1 -0
  457. package/dist/knowledge/SQLiteKnowledgeBase.d.ts +29 -0
  458. package/dist/knowledge/SQLiteKnowledgeBase.js +203 -0
  459. package/dist/knowledge/SQLiteKnowledgeBase.js.map +1 -0
  460. package/dist/knowledge/TfidfIndex.d.ts +50 -0
  461. package/dist/knowledge/TfidfIndex.js +177 -0
  462. package/dist/knowledge/TfidfIndex.js.map +1 -0
  463. package/dist/knowledge/UbiquitousLanguageManager.d.ts +49 -0
  464. package/dist/knowledge/UbiquitousLanguageManager.js +133 -0
  465. package/dist/knowledge/UbiquitousLanguageManager.js.map +1 -0
  466. package/dist/memory/MemoryBrain.d.ts +146 -0
  467. package/dist/memory/MemoryBrain.js +679 -0
  468. package/dist/memory/MemoryBrain.js.map +1 -0
  469. package/dist/memory/MemoryFabric.d.ts +130 -0
  470. package/dist/memory/MemoryFabric.js +317 -0
  471. package/dist/memory/MemoryFabric.js.map +1 -0
  472. package/dist/memory/MemoryIntelligence.d.ts +42 -0
  473. package/dist/memory/MemoryIntelligence.js +215 -0
  474. package/dist/memory/MemoryIntelligence.js.map +1 -0
  475. package/dist/memory/MemoryLearning.d.ts +62 -0
  476. package/dist/memory/MemoryLearning.js +209 -0
  477. package/dist/memory/MemoryLearning.js.map +1 -0
  478. package/dist/memory/MemoryProviders.d.ts +165 -0
  479. package/dist/memory/MemoryProviders.js +940 -0
  480. package/dist/memory/MemoryProviders.js.map +1 -0
  481. package/dist/memory/MemoryReview.d.ts +65 -0
  482. package/dist/memory/MemoryReview.js +260 -0
  483. package/dist/memory/MemoryReview.js.map +1 -0
  484. package/dist/memory/index.d.ts +6 -0
  485. package/dist/memory/index.js +7 -0
  486. package/dist/memory/index.js.map +1 -0
  487. package/dist/orchestration/EffectsWiring.d.ts +8 -0
  488. package/dist/orchestration/EffectsWiring.js +87 -0
  489. package/dist/orchestration/EffectsWiring.js.map +1 -0
  490. package/dist/orchestrator/OrchestratorDaemon.d.ts +44 -0
  491. package/dist/orchestrator/OrchestratorDaemon.js +150 -0
  492. package/dist/orchestrator/OrchestratorDaemon.js.map +1 -0
  493. package/dist/orchestrator/PolicyLoader.d.ts +80 -0
  494. package/dist/orchestrator/PolicyLoader.js +229 -0
  495. package/dist/orchestrator/PolicyLoader.js.map +1 -0
  496. package/dist/orchestrator/ReconciliationLoop.d.ts +71 -0
  497. package/dist/orchestrator/ReconciliationLoop.js +266 -0
  498. package/dist/orchestrator/ReconciliationLoop.js.map +1 -0
  499. package/dist/orchestrator/TrackerAdapter.d.ts +60 -0
  500. package/dist/orchestrator/TrackerAdapter.js +147 -0
  501. package/dist/orchestrator/TrackerAdapter.js.map +1 -0
  502. package/dist/orchestrator/WorkspaceManager.d.ts +66 -0
  503. package/dist/orchestrator/WorkspaceManager.js +257 -0
  504. package/dist/orchestrator/WorkspaceManager.js.map +1 -0
  505. package/dist/output/BrandThemeLoader.d.ts +54 -0
  506. package/dist/output/BrandThemeLoader.js +340 -0
  507. package/dist/output/BrandThemeLoader.js.map +1 -0
  508. package/dist/output/GovernanceDashboard.d.ts +59 -0
  509. package/dist/output/GovernanceDashboard.js +281 -0
  510. package/dist/output/GovernanceDashboard.js.map +1 -0
  511. package/dist/output/HTMLArtifactLayer.d.ts +97 -0
  512. package/dist/output/HTMLArtifactLayer.js +576 -0
  513. package/dist/output/HTMLArtifactLayer.js.map +1 -0
  514. package/dist/output/HTMLDocumentRenderer.d.ts +83 -0
  515. package/dist/output/HTMLDocumentRenderer.js +718 -0
  516. package/dist/output/HTMLDocumentRenderer.js.map +1 -0
  517. package/dist/output/UIPrototypeRenderer.d.ts +61 -0
  518. package/dist/output/UIPrototypeRenderer.js +500 -0
  519. package/dist/output/UIPrototypeRenderer.js.map +1 -0
  520. package/dist/output/index.d.ts +10 -0
  521. package/dist/output/index.js +8 -0
  522. package/dist/output/index.js.map +1 -0
  523. package/dist/prompts/PhasePromptRegistry.d.ts +53 -0
  524. package/dist/prompts/PhasePromptRegistry.js +517 -0
  525. package/dist/prompts/PhasePromptRegistry.js.map +1 -0
  526. package/dist/prompts/PromptOptimizer.d.ts +42 -0
  527. package/dist/prompts/PromptOptimizer.js +309 -0
  528. package/dist/prompts/PromptOptimizer.js.map +1 -0
  529. package/dist/prompts/VibeTemplateGallery.d.ts +25 -0
  530. package/dist/prompts/VibeTemplateGallery.js +295 -0
  531. package/dist/prompts/VibeTemplateGallery.js.map +1 -0
  532. package/dist/qa/BrowserDaemon.d.ts +23 -0
  533. package/dist/qa/BrowserDaemon.js +79 -0
  534. package/dist/qa/BrowserDaemon.js.map +1 -0
  535. package/dist/qa/E2ETestOrchestrator.d.ts +14 -0
  536. package/dist/qa/E2ETestOrchestrator.js +19 -0
  537. package/dist/qa/E2ETestOrchestrator.js.map +1 -0
  538. package/dist/review/CrossModelReviewer.d.ts +35 -0
  539. package/dist/review/CrossModelReviewer.js +75 -0
  540. package/dist/review/CrossModelReviewer.js.map +1 -0
  541. package/dist/review/ReviewAggregator.d.ts +13 -0
  542. package/dist/review/ReviewAggregator.js +28 -0
  543. package/dist/review/ReviewAggregator.js.map +1 -0
  544. package/dist/review/reviewCommands.d.ts +15 -0
  545. package/dist/review/reviewCommands.js +24 -0
  546. package/dist/review/reviewCommands.js.map +1 -0
  547. package/dist/routing/LocalModelProvider.d.ts +11 -0
  548. package/dist/routing/LocalModelProvider.js +21 -0
  549. package/dist/routing/LocalModelProvider.js.map +1 -0
  550. package/dist/routing/ModelRouter.d.ts +42 -0
  551. package/dist/routing/ModelRouter.js +94 -0
  552. package/dist/routing/ModelRouter.js.map +1 -0
  553. package/dist/routing/PromptCachePolicy.d.ts +37 -0
  554. package/dist/routing/PromptCachePolicy.js +97 -0
  555. package/dist/routing/PromptCachePolicy.js.map +1 -0
  556. package/dist/runtime/AiOsRuntime.d.ts +485 -0
  557. package/dist/runtime/AiOsRuntime.js +1846 -0
  558. package/dist/runtime/AiOsRuntime.js.map +1 -0
  559. package/dist/runtime/CostAnalyzer.d.ts +53 -0
  560. package/dist/runtime/CostAnalyzer.js +160 -0
  561. package/dist/runtime/CostAnalyzer.js.map +1 -0
  562. package/dist/runtime/CostOptimizer.d.ts +11 -0
  563. package/dist/runtime/CostOptimizer.js +21 -0
  564. package/dist/runtime/CostOptimizer.js.map +1 -0
  565. package/dist/runtime/ExecutionLedger.d.ts +46 -0
  566. package/dist/runtime/ExecutionLedger.js +71 -0
  567. package/dist/runtime/ExecutionLedger.js.map +1 -0
  568. package/dist/runtime/FinalReportGuard.d.ts +16 -0
  569. package/dist/runtime/FinalReportGuard.js +14 -0
  570. package/dist/runtime/FinalReportGuard.js.map +1 -0
  571. package/dist/runtime/ModelUsageLedger.d.ts +101 -0
  572. package/dist/runtime/ModelUsageLedger.js +296 -0
  573. package/dist/runtime/ModelUsageLedger.js.map +1 -0
  574. package/dist/runtime/RuntimeDoctor.d.ts +23 -0
  575. package/dist/runtime/RuntimeDoctor.js +151 -0
  576. package/dist/runtime/RuntimeDoctor.js.map +1 -0
  577. package/dist/runtime/RuntimeEvidenceLedger.d.ts +50 -0
  578. package/dist/runtime/RuntimeEvidenceLedger.js +89 -0
  579. package/dist/runtime/RuntimeEvidenceLedger.js.map +1 -0
  580. package/dist/runtime/SessionLedger.d.ts +53 -0
  581. package/dist/runtime/SessionLedger.js +104 -0
  582. package/dist/runtime/SessionLedger.js.map +1 -0
  583. package/dist/runtime/index.d.ts +7 -0
  584. package/dist/runtime/index.js +8 -0
  585. package/dist/runtime/index.js.map +1 -0
  586. package/dist/setup/SetupVerification.d.ts +42 -0
  587. package/dist/setup/SetupVerification.js +180 -0
  588. package/dist/setup/SetupVerification.js.map +1 -0
  589. package/dist/setup/SetupWizard.d.ts +45 -0
  590. package/dist/setup/SetupWizard.js +216 -0
  591. package/dist/setup/SetupWizard.js.map +1 -0
  592. package/dist/shield/PolicyCompiler.d.ts +70 -0
  593. package/dist/shield/PolicyCompiler.js +540 -0
  594. package/dist/shield/PolicyCompiler.js.map +1 -0
  595. package/dist/shield/ProtectedPaths.d.ts +39 -0
  596. package/dist/shield/ProtectedPaths.js +179 -0
  597. package/dist/shield/ProtectedPaths.js.map +1 -0
  598. package/dist/shield/ShieldProtocol.d.ts +50 -0
  599. package/dist/shield/ShieldProtocol.js +103 -0
  600. package/dist/shield/ShieldProtocol.js.map +1 -0
  601. package/dist/skills/ExternalSkills.d.ts +3 -0
  602. package/dist/skills/ExternalSkills.js +27 -0
  603. package/dist/skills/ExternalSkills.js.map +1 -0
  604. package/dist/skills/GrillingSessionSkill.d.ts +65 -0
  605. package/dist/skills/GrillingSessionSkill.js +113 -0
  606. package/dist/skills/GrillingSessionSkill.js.map +1 -0
  607. package/dist/skills/GrillingTemplates.d.ts +7 -0
  608. package/dist/skills/GrillingTemplates.js +38 -0
  609. package/dist/skills/GrillingTemplates.js.map +1 -0
  610. package/dist/skills/RoleSkills.d.ts +20 -0
  611. package/dist/skills/RoleSkills.js +154 -0
  612. package/dist/skills/RoleSkills.js.map +1 -0
  613. package/dist/skills/SkillCatalog.d.ts +13 -0
  614. package/dist/skills/SkillCatalog.js +184 -0
  615. package/dist/skills/SkillCatalog.js.map +1 -0
  616. package/dist/skills/SkillDiscovery.d.ts +84 -0
  617. package/dist/skills/SkillDiscovery.js +402 -0
  618. package/dist/skills/SkillDiscovery.js.map +1 -0
  619. package/dist/skills/SkillDoctor.d.ts +37 -0
  620. package/dist/skills/SkillDoctor.js +267 -0
  621. package/dist/skills/SkillDoctor.js.map +1 -0
  622. package/dist/skills/SkillExecutor.d.ts +38 -0
  623. package/dist/skills/SkillExecutor.js +237 -0
  624. package/dist/skills/SkillExecutor.js.map +1 -0
  625. package/dist/skills/SkillFrontmatter.d.ts +28 -0
  626. package/dist/skills/SkillFrontmatter.js +152 -0
  627. package/dist/skills/SkillFrontmatter.js.map +1 -0
  628. package/dist/skills/SkillInstaller.d.ts +40 -0
  629. package/dist/skills/SkillInstaller.js +117 -0
  630. package/dist/skills/SkillInstaller.js.map +1 -0
  631. package/dist/skills/SkillMdStandard.d.ts +33 -0
  632. package/dist/skills/SkillMdStandard.js +88 -0
  633. package/dist/skills/SkillMdStandard.js.map +1 -0
  634. package/dist/skills/SkillRadar.d.ts +83 -0
  635. package/dist/skills/SkillRadar.js +404 -0
  636. package/dist/skills/SkillRadar.js.map +1 -0
  637. package/dist/skills/SkillRegistry.d.ts +112 -0
  638. package/dist/skills/SkillRegistry.js +161 -0
  639. package/dist/skills/SkillRegistry.js.map +1 -0
  640. package/dist/skills/SkillRepository.d.ts +71 -0
  641. package/dist/skills/SkillRepository.js +435 -0
  642. package/dist/skills/SkillRepository.js.map +1 -0
  643. package/dist/skills/TriggerEngine.d.ts +43 -0
  644. package/dist/skills/TriggerEngine.js +142 -0
  645. package/dist/skills/TriggerEngine.js.map +1 -0
  646. package/dist/skills/coreSkills.d.ts +6 -0
  647. package/dist/skills/coreSkills.js +41 -0
  648. package/dist/skills/coreSkills.js.map +1 -0
  649. package/dist/skills/index.d.ts +10 -0
  650. package/dist/skills/index.js +12 -0
  651. package/dist/skills/index.js.map +1 -0
  652. package/dist/skills/interop/GStackInterop.d.ts +15 -0
  653. package/dist/skills/interop/GStackInterop.js +34 -0
  654. package/dist/skills/interop/GStackInterop.js.map +1 -0
  655. package/dist/skills/interop/OMCInterop.d.ts +15 -0
  656. package/dist/skills/interop/OMCInterop.js +34 -0
  657. package/dist/skills/interop/OMCInterop.js.map +1 -0
  658. package/dist/skills/routing/SkillGate.d.ts +12 -0
  659. package/dist/skills/routing/SkillGate.js +117 -0
  660. package/dist/skills/routing/SkillGate.js.map +1 -0
  661. package/dist/skills/routing/SkillPlanner.d.ts +8 -0
  662. package/dist/skills/routing/SkillPlanner.js +179 -0
  663. package/dist/skills/routing/SkillPlanner.js.map +1 -0
  664. package/dist/skills/routing/SkillPolicy.d.ts +6 -0
  665. package/dist/skills/routing/SkillPolicy.js +336 -0
  666. package/dist/skills/routing/SkillPolicy.js.map +1 -0
  667. package/dist/skills/routing/SkillRoutingTypes.d.ts +89 -0
  668. package/dist/skills/routing/SkillRoutingTypes.js +2 -0
  669. package/dist/skills/routing/SkillRoutingTypes.js.map +1 -0
  670. package/dist/skills/routing/TaskIntentClassifier.d.ts +6 -0
  671. package/dist/skills/routing/TaskIntentClassifier.js +79 -0
  672. package/dist/skills/routing/TaskIntentClassifier.js.map +1 -0
  673. package/dist/skills/routing/index.d.ts +5 -0
  674. package/dist/skills/routing/index.js +6 -0
  675. package/dist/skills/routing/index.js.map +1 -0
  676. package/dist/tasks/IssueTriageFSM.d.ts +26 -0
  677. package/dist/tasks/IssueTriageFSM.js +107 -0
  678. package/dist/tasks/IssueTriageFSM.js.map +1 -0
  679. package/dist/tasks/TaskEngine.d.ts +97 -0
  680. package/dist/tasks/TaskEngine.js +289 -0
  681. package/dist/tasks/TaskEngine.js.map +1 -0
  682. package/dist/testing/DiffTestSelector.d.ts +22 -0
  683. package/dist/testing/DiffTestSelector.js +114 -0
  684. package/dist/testing/DiffTestSelector.js.map +1 -0
  685. package/dist/testing/index.d.ts +1 -0
  686. package/dist/testing/index.js +3 -0
  687. package/dist/testing/index.js.map +1 -0
  688. package/dist/tools/CommandOutputCompressor.d.ts +28 -0
  689. package/dist/tools/CommandOutputCompressor.js +242 -0
  690. package/dist/tools/CommandOutputCompressor.js.map +1 -0
  691. package/dist/tools/CommandRunLedger.d.ts +77 -0
  692. package/dist/tools/CommandRunLedger.js +111 -0
  693. package/dist/tools/CommandRunLedger.js.map +1 -0
  694. package/dist/tools/RtkRuntime.d.ts +9 -0
  695. package/dist/tools/RtkRuntime.js +43 -0
  696. package/dist/tools/RtkRuntime.js.map +1 -0
  697. package/dist/tools/SafeCommandRunner.d.ts +16 -0
  698. package/dist/tools/SafeCommandRunner.js +83 -0
  699. package/dist/tools/SafeCommandRunner.js.map +1 -0
  700. package/dist/tools/ToolCapabilityRegistry.d.ts +51 -0
  701. package/dist/tools/ToolCapabilityRegistry.js +295 -0
  702. package/dist/tools/ToolCapabilityRegistry.js.map +1 -0
  703. package/dist/tools/ToolEvidenceGate.d.ts +39 -0
  704. package/dist/tools/ToolEvidenceGate.js +117 -0
  705. package/dist/tools/ToolEvidenceGate.js.map +1 -0
  706. package/dist/tools/ToolEvidenceStore.d.ts +58 -0
  707. package/dist/tools/ToolEvidenceStore.js +129 -0
  708. package/dist/tools/ToolEvidenceStore.js.map +1 -0
  709. package/dist/tools/ToolOrchestrator.d.ts +67 -0
  710. package/dist/tools/ToolOrchestrator.js +252 -0
  711. package/dist/tools/ToolOrchestrator.js.map +1 -0
  712. package/dist/tools/ToolPolicy.d.ts +33 -0
  713. package/dist/tools/ToolPolicy.js +172 -0
  714. package/dist/tools/ToolPolicy.js.map +1 -0
  715. package/dist/tools/index.d.ts +7 -0
  716. package/dist/tools/index.js +8 -0
  717. package/dist/tools/index.js.map +1 -0
  718. package/dist/tui/TuiDashboard.d.ts +3 -0
  719. package/dist/tui/TuiDashboard.js +120 -0
  720. package/dist/tui/TuiDashboard.js.map +1 -0
  721. package/dist/version.d.ts +3 -0
  722. package/dist/version.js +15 -0
  723. package/dist/version.js.map +1 -0
  724. package/dist/workflow/AdaptiveWorkflowRouter.d.ts +38 -0
  725. package/dist/workflow/AdaptiveWorkflowRouter.js +214 -0
  726. package/dist/workflow/AdaptiveWorkflowRouter.js.map +1 -0
  727. package/dist/workflow/CommitDiscipline.d.ts +68 -0
  728. package/dist/workflow/CommitDiscipline.js +328 -0
  729. package/dist/workflow/CommitDiscipline.js.map +1 -0
  730. package/dist/workflow/ContextGovernance.d.ts +51 -0
  731. package/dist/workflow/ContextGovernance.js +233 -0
  732. package/dist/workflow/ContextGovernance.js.map +1 -0
  733. package/dist/workflow/CrossRepoOrchestrator.d.ts +92 -0
  734. package/dist/workflow/CrossRepoOrchestrator.js +408 -0
  735. package/dist/workflow/CrossRepoOrchestrator.js.map +1 -0
  736. package/dist/workflow/DiagnosticLoop.d.ts +40 -0
  737. package/dist/workflow/DiagnosticLoop.js +105 -0
  738. package/dist/workflow/DiagnosticLoop.js.map +1 -0
  739. package/dist/workflow/EngineeringStandards.d.ts +212 -0
  740. package/dist/workflow/EngineeringStandards.js +1113 -0
  741. package/dist/workflow/EngineeringStandards.js.map +1 -0
  742. package/dist/workflow/EvidenceStore.d.ts +20 -0
  743. package/dist/workflow/EvidenceStore.js +48 -0
  744. package/dist/workflow/EvidenceStore.js.map +1 -0
  745. package/dist/workflow/EvolutionShadowPromoter.d.ts +46 -0
  746. package/dist/workflow/EvolutionShadowPromoter.js +73 -0
  747. package/dist/workflow/EvolutionShadowPromoter.js.map +1 -0
  748. package/dist/workflow/GateCatalog.d.ts +63 -0
  749. package/dist/workflow/GateCatalog.js +268 -0
  750. package/dist/workflow/GateCatalog.js.map +1 -0
  751. package/dist/workflow/GovernanceLock.d.ts +35 -0
  752. package/dist/workflow/GovernanceLock.js +58 -0
  753. package/dist/workflow/GovernanceLock.js.map +1 -0
  754. package/dist/workflow/GovernanceRoi.d.ts +52 -0
  755. package/dist/workflow/GovernanceRoi.js +204 -0
  756. package/dist/workflow/GovernanceRoi.js.map +1 -0
  757. package/dist/workflow/GovernanceTemplatePacks.d.ts +24 -0
  758. package/dist/workflow/GovernanceTemplatePacks.js +2134 -0
  759. package/dist/workflow/GovernanceTemplatePacks.js.map +1 -0
  760. package/dist/workflow/GovernanceTemplates.d.ts +19 -0
  761. package/dist/workflow/GovernanceTemplates.js +1291 -0
  762. package/dist/workflow/GovernanceTemplates.js.map +1 -0
  763. package/dist/workflow/McpGovernance.d.ts +63 -0
  764. package/dist/workflow/McpGovernance.js +198 -0
  765. package/dist/workflow/McpGovernance.js.map +1 -0
  766. package/dist/workflow/OutOfScopeStore.d.ts +37 -0
  767. package/dist/workflow/OutOfScopeStore.js +164 -0
  768. package/dist/workflow/OutOfScopeStore.js.map +1 -0
  769. package/dist/workflow/PhaseMarkerTracker.d.ts +63 -0
  770. package/dist/workflow/PhaseMarkerTracker.js +291 -0
  771. package/dist/workflow/PhaseMarkerTracker.js.map +1 -0
  772. package/dist/workflow/ResourceGovernance.d.ts +120 -0
  773. package/dist/workflow/ResourceGovernance.js +531 -0
  774. package/dist/workflow/ResourceGovernance.js.map +1 -0
  775. package/dist/workflow/ReviewAnalyzer.d.ts +80 -0
  776. package/dist/workflow/ReviewAnalyzer.js +438 -0
  777. package/dist/workflow/ReviewAnalyzer.js.map +1 -0
  778. package/dist/workflow/ReviewStore.d.ts +36 -0
  779. package/dist/workflow/ReviewStore.js +42 -0
  780. package/dist/workflow/ReviewStore.js.map +1 -0
  781. package/dist/workflow/SecurityAudit.d.ts +27 -0
  782. package/dist/workflow/SecurityAudit.js +294 -0
  783. package/dist/workflow/SecurityAudit.js.map +1 -0
  784. package/dist/workflow/SessionCoordinator.d.ts +103 -0
  785. package/dist/workflow/SessionCoordinator.js +401 -0
  786. package/dist/workflow/SessionCoordinator.js.map +1 -0
  787. package/dist/workflow/SessionPreamble.d.ts +19 -0
  788. package/dist/workflow/SessionPreamble.js +130 -0
  789. package/dist/workflow/SessionPreamble.js.map +1 -0
  790. package/dist/workflow/SessionStateTracker.d.ts +74 -0
  791. package/dist/workflow/SessionStateTracker.js +270 -0
  792. package/dist/workflow/SessionStateTracker.js.map +1 -0
  793. package/dist/workflow/ShipPipeline.d.ts +30 -0
  794. package/dist/workflow/ShipPipeline.js +366 -0
  795. package/dist/workflow/ShipPipeline.js.map +1 -0
  796. package/dist/workflow/TaskArtifactScaffolder.d.ts +69 -0
  797. package/dist/workflow/TaskArtifactScaffolder.js +333 -0
  798. package/dist/workflow/TaskArtifactScaffolder.js.map +1 -0
  799. package/dist/workflow/TaskDependencyGraph.d.ts +73 -0
  800. package/dist/workflow/TaskDependencyGraph.js +245 -0
  801. package/dist/workflow/TaskDependencyGraph.js.map +1 -0
  802. package/dist/workflow/TaskLevelDetector.d.ts +41 -0
  803. package/dist/workflow/TaskLevelDetector.js +219 -0
  804. package/dist/workflow/TaskLevelDetector.js.map +1 -0
  805. package/dist/workflow/TaskMetricsStore.d.ts +49 -0
  806. package/dist/workflow/TaskMetricsStore.js +149 -0
  807. package/dist/workflow/TaskMetricsStore.js.map +1 -0
  808. package/dist/workflow/TaskScoreEngine.d.ts +42 -0
  809. package/dist/workflow/TaskScoreEngine.js +181 -0
  810. package/dist/workflow/TaskScoreEngine.js.map +1 -0
  811. package/dist/workflow/TddLoop.d.ts +49 -0
  812. package/dist/workflow/TddLoop.js +78 -0
  813. package/dist/workflow/TddLoop.js.map +1 -0
  814. package/dist/workflow/UpgradeManager.d.ts +178 -0
  815. package/dist/workflow/UpgradeManager.js +665 -0
  816. package/dist/workflow/UpgradeManager.js.map +1 -0
  817. package/dist/workflow/VerificationCommands.d.ts +36 -0
  818. package/dist/workflow/VerificationCommands.js +123 -0
  819. package/dist/workflow/VerificationCommands.js.map +1 -0
  820. package/dist/workflow/VerificationProfile.d.ts +67 -0
  821. package/dist/workflow/VerificationProfile.js +241 -0
  822. package/dist/workflow/VerificationProfile.js.map +1 -0
  823. package/dist/workflow/VerificationSchema.d.ts +46 -0
  824. package/dist/workflow/VerificationSchema.js +97 -0
  825. package/dist/workflow/VerificationSchema.js.map +1 -0
  826. package/dist/workflow/WorkflowArtifactWriter.d.ts +113 -0
  827. package/dist/workflow/WorkflowArtifactWriter.js +242 -0
  828. package/dist/workflow/WorkflowArtifactWriter.js.map +1 -0
  829. package/dist/workflow/WorkflowEngine.d.ts +83 -0
  830. package/dist/workflow/WorkflowEngine.js +183 -0
  831. package/dist/workflow/WorkflowEngine.js.map +1 -0
  832. package/dist/workflow/WorkflowGuidance.d.ts +30 -0
  833. package/dist/workflow/WorkflowGuidance.js +204 -0
  834. package/dist/workflow/WorkflowGuidance.js.map +1 -0
  835. package/dist/workflow/WorkflowOpenTasks.d.ts +16 -0
  836. package/dist/workflow/WorkflowOpenTasks.js +37 -0
  837. package/dist/workflow/WorkflowOpenTasks.js.map +1 -0
  838. package/dist/workflow/WorkflowOrchestrator.d.ts +59 -0
  839. package/dist/workflow/WorkflowOrchestrator.js +326 -0
  840. package/dist/workflow/WorkflowOrchestrator.js.map +1 -0
  841. package/dist/workflow/WorkflowTemplates.d.ts +38 -0
  842. package/dist/workflow/WorkflowTemplates.js +371 -0
  843. package/dist/workflow/WorkflowTemplates.js.map +1 -0
  844. package/dist/workflow/WorkspaceLifecycle.d.ts +71 -0
  845. package/dist/workflow/WorkspaceLifecycle.js +401 -0
  846. package/dist/workflow/WorkspaceLifecycle.js.map +1 -0
  847. package/dist/workflow/WorkspacePolicy.d.ts +46 -0
  848. package/dist/workflow/WorkspacePolicy.js +141 -0
  849. package/dist/workflow/WorkspacePolicy.js.map +1 -0
  850. package/dist/workflow/WorkspaceSafety.d.ts +9 -0
  851. package/dist/workflow/WorkspaceSafety.js +49 -0
  852. package/dist/workflow/WorkspaceSafety.js.map +1 -0
  853. package/dist/workflow/WorkspaceTopology.d.ts +58 -0
  854. package/dist/workflow/WorkspaceTopology.js +176 -0
  855. package/dist/workflow/WorkspaceTopology.js.map +1 -0
  856. package/dist/workflow/autofix/AutoFixEngine.d.ts +37 -0
  857. package/dist/workflow/autofix/AutoFixEngine.js +169 -0
  858. package/dist/workflow/autofix/AutoFixEngine.js.map +1 -0
  859. package/dist/workflow/autonomous/AutonomousDevLoop.d.ts +88 -0
  860. package/dist/workflow/autonomous/AutonomousDevLoop.js +381 -0
  861. package/dist/workflow/autonomous/AutonomousDevLoop.js.map +1 -0
  862. package/dist/workflow/autonomous/BackgroundHunter.d.ts +74 -0
  863. package/dist/workflow/autonomous/BackgroundHunter.js +220 -0
  864. package/dist/workflow/autonomous/BackgroundHunter.js.map +1 -0
  865. package/dist/workflow/autonomous/WorklogManager.d.ts +50 -0
  866. package/dist/workflow/autonomous/WorklogManager.js +264 -0
  867. package/dist/workflow/autonomous/WorklogManager.js.map +1 -0
  868. package/dist/workflow/autonomous/index.d.ts +3 -0
  869. package/dist/workflow/autonomous/index.js +5 -0
  870. package/dist/workflow/autonomous/index.js.map +1 -0
  871. package/dist/workflow/cognitive/AmbiguityScorer.d.ts +17 -0
  872. package/dist/workflow/cognitive/AmbiguityScorer.js +107 -0
  873. package/dist/workflow/cognitive/AmbiguityScorer.js.map +1 -0
  874. package/dist/workflow/cognitive/ConsensusPlanner.d.ts +26 -0
  875. package/dist/workflow/cognitive/ConsensusPlanner.js +141 -0
  876. package/dist/workflow/cognitive/ConsensusPlanner.js.map +1 -0
  877. package/dist/workflow/cognitive/SocraticQuestioner.d.ts +33 -0
  878. package/dist/workflow/cognitive/SocraticQuestioner.js +276 -0
  879. package/dist/workflow/cognitive/SocraticQuestioner.js.map +1 -0
  880. package/dist/workflow/evolution/LessonExtractor.d.ts +90 -0
  881. package/dist/workflow/evolution/LessonExtractor.js +317 -0
  882. package/dist/workflow/evolution/LessonExtractor.js.map +1 -0
  883. package/dist/workflow/evolution/SelfImproveEngine.d.ts +156 -0
  884. package/dist/workflow/evolution/SelfImproveEngine.js +361 -0
  885. package/dist/workflow/evolution/SelfImproveEngine.js.map +1 -0
  886. package/dist/workflow/execution/RalphEngine.d.ts +54 -0
  887. package/dist/workflow/execution/RalphEngine.js +145 -0
  888. package/dist/workflow/execution/RalphEngine.js.map +1 -0
  889. package/dist/workflow/execution/UltraworkEngine.d.ts +43 -0
  890. package/dist/workflow/execution/UltraworkEngine.js +135 -0
  891. package/dist/workflow/execution/UltraworkEngine.js.map +1 -0
  892. package/dist/workflow/gates/EnhancedGates.d.ts +74 -0
  893. package/dist/workflow/gates/EnhancedGates.js +653 -0
  894. package/dist/workflow/gates/EnhancedGates.js.map +1 -0
  895. package/dist/workflow/gates/GateSystem.d.ts +180 -0
  896. package/dist/workflow/gates/GateSystem.js +1279 -0
  897. package/dist/workflow/gates/GateSystem.js.map +1 -0
  898. package/dist/workflow/gates/MetaGovernanceGates.d.ts +70 -0
  899. package/dist/workflow/gates/MetaGovernanceGates.js +617 -0
  900. package/dist/workflow/gates/MetaGovernanceGates.js.map +1 -0
  901. package/dist/workflow/gates/VisualGate.d.ts +41 -0
  902. package/dist/workflow/gates/VisualGate.js +174 -0
  903. package/dist/workflow/gates/VisualGate.js.map +1 -0
  904. package/dist/workflow/index.d.ts +45 -0
  905. package/dist/workflow/index.js +47 -0
  906. package/dist/workflow/index.js.map +1 -0
  907. package/dist/workflow/qa/E2ETestRunner.d.ts +102 -0
  908. package/dist/workflow/qa/E2ETestRunner.js +227 -0
  909. package/dist/workflow/qa/E2ETestRunner.js.map +1 -0
  910. package/dist/workflow/quality/HonestDelivery.d.ts +19 -0
  911. package/dist/workflow/quality/HonestDelivery.js +77 -0
  912. package/dist/workflow/quality/HonestDelivery.js.map +1 -0
  913. package/dist/workflow/quality/KarpathyEvaluator.d.ts +18 -0
  914. package/dist/workflow/quality/KarpathyEvaluator.js +76 -0
  915. package/dist/workflow/quality/KarpathyEvaluator.js.map +1 -0
  916. package/dist/workflow/types.d.ts +151 -0
  917. package/dist/workflow/types.js +4 -0
  918. package/dist/workflow/types.js.map +1 -0
  919. package/dist/workflows/DAGBuilder.d.ts +52 -0
  920. package/dist/workflows/DAGBuilder.js +169 -0
  921. package/dist/workflows/DAGBuilder.js.map +1 -0
  922. package/dist/workflows/GateParser.d.ts +55 -0
  923. package/dist/workflows/GateParser.js +73 -0
  924. package/dist/workflows/GateParser.js.map +1 -0
  925. package/dist/workflows/WorkflowExecutor.d.ts +56 -0
  926. package/dist/workflows/WorkflowExecutor.js +143 -0
  927. package/dist/workflows/WorkflowExecutor.js.map +1 -0
  928. package/dist/workflows/WorkflowOrchestrator.d.ts +81 -0
  929. package/dist/workflows/WorkflowOrchestrator.js +337 -0
  930. package/dist/workflows/WorkflowOrchestrator.js.map +1 -0
  931. package/dist/workflows/index.d.ts +2 -0
  932. package/dist/workflows/index.js +5 -0
  933. package/dist/workflows/index.js.map +1 -0
  934. package/dist/workflows/presets.d.ts +34 -0
  935. package/dist/workflows/presets.js +224 -0
  936. package/dist/workflows/presets.js.map +1 -0
  937. package/docs/README.md +105 -0
  938. package/docs/guides/DEVELOPMENT_WORKFLOW.md +99 -0
  939. package/docs/guides/GETTING_STARTED.md +93 -0
  940. package/docs/guides/MEDICAL_AGENT_OPERATING_GUIDE.md +61 -0
  941. package/docs/guides/MEDICAL_RESEARCH_DELIVERY.md +217 -0
  942. package/docs/guides/MIGRATION.md +119 -0
  943. package/docs/reference/cli.md +2921 -0
  944. package/docs/start/README.md +79 -0
  945. package/docs/start/agent-governance-demo.md +107 -0
  946. package/docs/start/artifact-lifecycle.md +326 -0
  947. package/docs/start/quickstart.md +191 -0
  948. package/docs/start/workflow-upgrade.md +198 -0
  949. package/docs/workflow/GATES_AND_SCORE.md +89 -0
  950. package/docs/workflow/PROMPT_OPTIMIZATION.md +44 -0
  951. package/docs/workflow/README.md +123 -0
  952. package/docs/workflow/node-library.md +52 -0
  953. package/docs/workflow/templates/api-contract.md +29 -0
  954. package/docs/workflow/templates/architecture-review.md +23 -0
  955. package/docs/workflow/templates/db-change-plan.md +20 -0
  956. package/docs/workflow/templates/docs-impact.md +17 -0
  957. package/docs/workflow/templates/e2e-plan.md +20 -0
  958. package/docs/workflow/templates/explore.md +16 -0
  959. package/docs/workflow/templates/github-actions-scale-preflight.yml +32 -0
  960. package/docs/workflow/templates/mini-prd.md +16 -0
  961. package/docs/workflow/templates/plan.md +37 -0
  962. package/docs/workflow/templates/pre-push-scale-preflight.sh +8 -0
  963. package/docs/workflow/templates/product-smoke.md +61 -0
  964. package/docs/workflow/templates/reality-check.md +28 -0
  965. package/docs/workflow/templates/resource-cleanup.md +17 -0
  966. package/docs/workflow/templates/resource-impact.md +25 -0
  967. package/docs/workflow/templates/review.md +12 -0
  968. package/docs/workflow/templates/runtime.md +23 -0
  969. package/docs/workflow/templates/security-review.md +26 -0
  970. package/docs/workflow/templates/skill-evidence.md +33 -0
  971. package/docs/workflow/templates/skill-plan.md +39 -0
  972. package/docs/workflow/templates/spec.md +17 -0
  973. package/docs/workflow/templates/standards-impact.md +28 -0
  974. package/docs/workflow/templates/summary.md +16 -0
  975. package/docs/workflow/templates/tasks.md +8 -0
  976. package/docs/workflow/templates/ui-spec.md +29 -0
  977. package/docs/workflow/templates/verification.md +20 -0
  978. package/docs/workflow/templates/visual-review.md +20 -0
  979. package/docs/zh/quickstart.md +108 -0
  980. package/examples/demo-projects/agent-governance-demo/CONTEXT.md +14 -0
  981. package/examples/demo-projects/agent-governance-demo/README.md +48 -0
  982. package/examples/demo-projects/agent-governance-demo/docs/CONTEXT-MAP.md +14 -0
  983. package/examples/demo-projects/agent-governance-demo/package.json +22 -0
  984. package/examples/demo-projects/agent-governance-demo/src/oauth-state.ts +39 -0
  985. package/examples/demo-projects/agent-governance-demo/tests/oauth-state.test.ts +52 -0
  986. package/mcp-configs/_INDEX.md +55 -0
  987. package/mcp-configs/context7/config.json +9 -0
  988. package/mcp-configs/fetch/config.json +9 -0
  989. package/mcp-configs/filesystem/config.json +9 -0
  990. package/mcp-configs/github/config.json +11 -0
  991. package/mcp-configs/memory/config.json +9 -0
  992. package/mcp-configs/neon/config.json +11 -0
  993. package/mcp-configs/playwright/config.json +9 -0
  994. package/mcp-configs/postgres/config.json +11 -0
  995. package/mcp-configs/puppeteer/config.json +9 -0
  996. package/mcp-configs/sequential-thinking/config.json +9 -0
  997. package/package.json +113 -0
  998. package/scripts/workflow/lib/gbrain-runtime.mjs +185 -0
  999. package/scripts/workflow/lib/report-output.mjs +107 -0
  1000. package/scripts/workflow/medscale-release-smoke.mjs +338 -0
  1001. package/scripts/workflow/provider-rehearsal.mjs +597 -0
  1002. package/scripts/workflow/setup-smoke.mjs +433 -0
  1003. package/target-research-platform/bridge_runner.py +310 -0
  1004. package/target-research-platform/config.yaml +148 -0
  1005. package/target-research-platform/data/immune_infiltration/ACC.csv +201 -0
  1006. package/target-research-platform/data/immune_infiltration/BLCA.csv +201 -0
  1007. package/target-research-platform/data/immune_infiltration/BRCA.csv +201 -0
  1008. package/target-research-platform/data/immune_infiltration/CESC.csv +201 -0
  1009. package/target-research-platform/data/immune_infiltration/CHOL.csv +201 -0
  1010. package/target-research-platform/data/immune_infiltration/COAD.csv +201 -0
  1011. package/target-research-platform/data/immune_infiltration/DLBC.csv +201 -0
  1012. package/target-research-platform/data/immune_infiltration/ESCA.csv +201 -0
  1013. package/target-research-platform/data/immune_infiltration/GBM.csv +201 -0
  1014. package/target-research-platform/data/immune_infiltration/HNSC.csv +201 -0
  1015. package/target-research-platform/data/immune_infiltration/KICH.csv +201 -0
  1016. package/target-research-platform/data/immune_infiltration/KIRC.csv +201 -0
  1017. package/target-research-platform/data/immune_infiltration/KIRP.csv +201 -0
  1018. package/target-research-platform/data/immune_infiltration/LAML.csv +201 -0
  1019. package/target-research-platform/data/immune_infiltration/LGG.csv +201 -0
  1020. package/target-research-platform/data/immune_infiltration/LIHC.csv +201 -0
  1021. package/target-research-platform/data/immune_infiltration/LUAD.csv +201 -0
  1022. package/target-research-platform/data/immune_infiltration/LUSC.csv +201 -0
  1023. package/target-research-platform/data/immune_infiltration/MESO.csv +201 -0
  1024. package/target-research-platform/data/immune_infiltration/OV.csv +201 -0
  1025. package/target-research-platform/data/immune_infiltration/PAAD.csv +201 -0
  1026. package/target-research-platform/data/immune_infiltration/PCPG.csv +201 -0
  1027. package/target-research-platform/data/immune_infiltration/PRAD.csv +201 -0
  1028. package/target-research-platform/data/immune_infiltration/READ.csv +201 -0
  1029. package/target-research-platform/data/immune_infiltration/SARC.csv +201 -0
  1030. package/target-research-platform/data/immune_infiltration/SKCM.csv +201 -0
  1031. package/target-research-platform/data/immune_infiltration/STAD.csv +201 -0
  1032. package/target-research-platform/data/immune_infiltration/TGCT.csv +201 -0
  1033. package/target-research-platform/data/immune_infiltration/THCA.csv +201 -0
  1034. package/target-research-platform/data/immune_infiltration/THYM.csv +201 -0
  1035. package/target-research-platform/data/immune_infiltration/UCEC.csv +201 -0
  1036. package/target-research-platform/data/immune_infiltration/UCS.csv +201 -0
  1037. package/target-research-platform/data/immune_infiltration/UVM.csv +201 -0
  1038. package/target-research-platform/docs/JSON_SCHEMA.md +352 -0
  1039. package/target-research-platform/docs/PROGRESS_2026-06-09.md +140 -0
  1040. package/target-research-platform/main.py +755 -0
  1041. package/target-research-platform/pyproject.toml +54 -0
  1042. package/target-research-platform/requirements.txt +9 -0
  1043. package/target-research-platform/run_dashboard.py +5 -0
  1044. package/target-research-platform/run_real_medical_workflow.py +28 -0
  1045. package/target-research-platform/scripts/demo_report.py +481 -0
  1046. package/target-research-platform/scripts/generate_evidence_package.py +75 -0
  1047. package/target-research-platform/scripts/prepare_immune_data.py +386 -0
  1048. package/target-research-platform/src/__init__.py +4 -0
  1049. package/target-research-platform/src/analysis/__init__.py +3 -0
  1050. package/target-research-platform/src/analysis/stage1_expression/__init__.py +12 -0
  1051. package/target-research-platform/src/analysis/stage1_expression/immune_correlation.py +366 -0
  1052. package/target-research-platform/src/analysis/stage1_expression/pipeline.py +579 -0
  1053. package/target-research-platform/src/analysis/stage1_expression/survival_analysis.py +382 -0
  1054. package/target-research-platform/src/analysis/stage2_screening/__init__.py +12 -0
  1055. package/target-research-platform/src/analysis/stage2_screening/differential_expression.py +451 -0
  1056. package/target-research-platform/src/analysis/stage2_screening/druggability_score.py +477 -0
  1057. package/target-research-platform/src/analysis/stage2_screening/pipeline.py +822 -0
  1058. package/target-research-platform/src/analysis/stage3_deep_research/__init__.py +12 -0
  1059. package/target-research-platform/src/analysis/stage3_deep_research/competitive_landscape.py +479 -0
  1060. package/target-research-platform/src/analysis/stage3_deep_research/pipeline.py +763 -0
  1061. package/target-research-platform/src/analysis/stage3_deep_research/target_function.py +290 -0
  1062. package/target-research-platform/src/analysis/stage4_business/__init__.py +12 -0
  1063. package/target-research-platform/src/analysis/stage4_business/business_plan.py +816 -0
  1064. package/target-research-platform/src/analysis/stage4_business/milestone_planner.py +844 -0
  1065. package/target-research-platform/src/analysis/stage4_business/pipeline.py +284 -0
  1066. package/target-research-platform/src/api_clients/__init__.py +29 -0
  1067. package/target-research-platform/src/api_clients/aminer_client.py +163 -0
  1068. package/target-research-platform/src/api_clients/base_client.py +186 -0
  1069. package/target-research-platform/src/api_clients/clinicaltrials_client.py +411 -0
  1070. package/target-research-platform/src/api_clients/geo_client.py +1420 -0
  1071. package/target-research-platform/src/api_clients/gtex_client.py +209 -0
  1072. package/target-research-platform/src/api_clients/hpa_client.py +170 -0
  1073. package/target-research-platform/src/api_clients/immune_data_manager.py +247 -0
  1074. package/target-research-platform/src/api_clients/openalex_client.py +86 -0
  1075. package/target-research-platform/src/api_clients/opentargets_client.py +558 -0
  1076. package/target-research-platform/src/api_clients/pubmed_client.py +361 -0
  1077. package/target-research-platform/src/api_clients/tcga_client.py +712 -0
  1078. package/target-research-platform/src/api_clients/timer_client.py +169 -0
  1079. package/target-research-platform/src/dashboard/app.py +2283 -0
  1080. package/target-research-platform/src/dashboard/deliverables.py +710 -0
  1081. package/target-research-platform/src/dashboard/static/artifactPreview.js +96 -0
  1082. package/target-research-platform/src/dashboard/static/index.html +1292 -0
  1083. package/target-research-platform/src/dashboard/status_tracker.py +237 -0
  1084. package/target-research-platform/src/output/__init__.py +42 -0
  1085. package/target-research-platform/src/output/agent_llm_provider.py +171 -0
  1086. package/target-research-platform/src/output/chart_generator.py +550 -0
  1087. package/target-research-platform/src/output/data_exporter.py +215 -0
  1088. package/target-research-platform/src/output/delivery_packager.py +791 -0
  1089. package/target-research-platform/src/output/evidence_package.py +230 -0
  1090. package/target-research-platform/src/output/journal_templates.py +193 -0
  1091. package/target-research-platform/src/output/literature_enricher.py +395 -0
  1092. package/target-research-platform/src/output/literature_reviewer.py +420 -0
  1093. package/target-research-platform/src/output/manuscript_fact_checker.py +279 -0
  1094. package/target-research-platform/src/output/manuscript_generator.py +1189 -0
  1095. package/target-research-platform/src/output/manuscript_quality.py +401 -0
  1096. package/target-research-platform/src/output/medical_skills_bridge.py +140 -0
  1097. package/target-research-platform/src/output/report_generator.py +542 -0
  1098. package/target-research-platform/src/output/usage_envelope.py +193 -0
  1099. package/target-research-platform/src/utils/__init__.py +1 -0
  1100. package/target-research-platform/src/utils/config.py +125 -0
  1101. package/target-research-platform/src/utils/logger.py +71 -0
  1102. package/target-research-platform/src/validators/__init__.py +13 -0
  1103. package/target-research-platform/src/validators/cross_validator.py +394 -0
  1104. package/target-research-platform/src/validators/data_provenance.py +298 -0
@@ -0,0 +1,2134 @@
1
+ import { workspaceTopologyTemplate } from './WorkspaceTopology.js';
2
+ export function listGovernanceTemplatePacks() {
3
+ return PACKS;
4
+ }
5
+ export function resolveGovernanceTemplatePack(id) {
6
+ const normalized = normalizeGovernancePackId(id);
7
+ const pack = PACKS.find(candidate => candidate.id === normalized);
8
+ if (!pack) {
9
+ const supported = PACKS.map(candidate => candidate.id).join(', ');
10
+ throw new Error(`Unknown governance pack "${id}". Supported packs: ${supported}`);
11
+ }
12
+ return pack;
13
+ }
14
+ function normalizeGovernancePackId(id) {
15
+ if (Array.isArray(id)) {
16
+ const lastValid = [...id].reverse().find(value => PACKS.some(candidate => candidate.id === value));
17
+ return (lastValid ?? id[id.length - 1] ?? 'standard');
18
+ }
19
+ return (id || 'standard');
20
+ }
21
+ const modeDefaults = {
22
+ minimal: { artifactGate: 'off', skillRoutingMode: 'warn' },
23
+ standard: { artifactGate: 'warn', skillRoutingMode: 'warn' },
24
+ critical: { artifactGate: 'block', skillRoutingMode: 'block' },
25
+ };
26
+ const PACKS = [
27
+ {
28
+ id: 'standard',
29
+ version: 1,
30
+ description: 'Generic SCALE governance output.',
31
+ modeDefaults,
32
+ generatedFiles: [],
33
+ },
34
+ {
35
+ id: 'project-scaffold',
36
+ version: 2,
37
+ description: 'Reference project governance scaffold with workflow wrappers.',
38
+ modeDefaults,
39
+ generatedFiles: workflowWrapperFiles(),
40
+ },
41
+ {
42
+ id: 'scale-engine-repo',
43
+ version: 1,
44
+ description: 'Self-hosted repository workflow for developing scale-engine itself.',
45
+ modeDefaults,
46
+ generatedFiles: scaleEngineRepoFiles(),
47
+ },
48
+ {
49
+ id: 'moe-workspace',
50
+ version: 1,
51
+ description: 'MOE multi-repository workspace governance with explicit topology and finish policy.',
52
+ modeDefaults,
53
+ generatedFiles: [
54
+ { path: '.scale/workspace.json', kind: 'config', owned: true, content: workspaceTopologyTemplate({ topology: 'moe' }) },
55
+ { path: 'docs/workflow/moe-workspace.md', kind: 'doc', owned: true, content: moeWorkspaceGuide() },
56
+ ],
57
+ },
58
+ {
59
+ id: 'resource-governance',
60
+ version: 1,
61
+ description: 'Project resource lifecycle governance for docs, media, reports, scripts, and temporary outputs.',
62
+ modeDefaults,
63
+ generatedFiles: [
64
+ { path: 'docs/workflow/resource-governance.md', kind: 'doc', owned: true, content: resourceGovernanceGuide() },
65
+ { path: 'docs/modules/README.md', kind: 'doc', owned: true, content: moduleDocsIndex() },
66
+ { path: 'docs/workflow/templates/.gitignore.scale-assets.example', kind: 'template', owned: true, content: resourceGitignoreExample() },
67
+ ],
68
+ },
69
+ {
70
+ id: 'go-service-matrix',
71
+ version: 1,
72
+ description: 'Go multi-service repository governance.',
73
+ modeDefaults,
74
+ defaultServices: [
75
+ { name: 'netdisk', path: 'amdox-go-netdisk', type: 'go', required: true },
76
+ { name: 'auth', path: 'amdox-go-auth', type: 'go', required: true },
77
+ { name: 'gateway', path: 'amdox-go-gateway', type: 'go', required: true },
78
+ ],
79
+ exclude: ['OpenList', 'gfast', 'mcp-zero'],
80
+ generatedFiles: [],
81
+ },
82
+ {
83
+ id: 'node-library',
84
+ version: 2,
85
+ description: 'Node/npm library governance with build, test, diff, and pack checks.',
86
+ modeDefaults,
87
+ generatedFiles: [
88
+ ...workflowWrapperFiles(),
89
+ { path: 'scripts/preflight/all.sh', kind: 'script', owned: true, content: nodeLibraryPreflightShellScript() },
90
+ { path: 'scripts/preflight/all.ps1', kind: 'script', owned: true, content: nodeLibraryPreflightPowerShellScript() },
91
+ { path: '.scale/workspace.json', kind: 'config', owned: true, content: workspaceTopologyTemplate({ topology: 'single' }) },
92
+ { path: 'docs/workflow/node-library.md', kind: 'doc', owned: true, content: nodeLibraryGuide() },
93
+ { path: '.planning/tasks/.gitkeep', kind: 'config', owned: true, content: '' },
94
+ ],
95
+ },
96
+ {
97
+ id: 'frontend-app',
98
+ version: 1,
99
+ description: 'Frontend app governance with UI and visual evidence requirements.',
100
+ modeDefaults,
101
+ generatedFiles: [],
102
+ },
103
+ {
104
+ id: 'solo-dev',
105
+ version: 1,
106
+ description: 'Lightweight governance for solo developers — warns instead of blocking, minimal overhead.',
107
+ modeDefaults: {
108
+ minimal: { artifactGate: 'off', skillRoutingMode: 'off' },
109
+ standard: { artifactGate: 'warn', skillRoutingMode: 'warn' },
110
+ critical: { artifactGate: 'warn', skillRoutingMode: 'warn' },
111
+ },
112
+ defaultServices: [],
113
+ generatedFiles: [
114
+ { path: '.scale/config.yaml', kind: 'config', owned: true, content: '' },
115
+ { path: '.scale/workspace.json', kind: 'config', owned: true, content: '' },
116
+ ],
117
+ },
118
+ ];
119
+ function workflowWrapper(label, scaleCommand) {
120
+ return `#!/usr/bin/env bash
121
+ set -euo pipefail
122
+
123
+ is_wsl() {
124
+ grep -qiE "(microsoft|wsl)" /proc/version /proc/sys/kernel/osrelease 2>/dev/null
125
+ }
126
+
127
+ is_windows_npm_shim() {
128
+ local command_path="$1"
129
+ printf '%s' "$command_path" | grep -qiE '^/mnt/[a-z]/.*nodejs/[^/]+$'
130
+ }
131
+
132
+ run_scale() {
133
+ local scale_path=""
134
+ scale_path="$(command -v scale 2>/dev/null || true)"
135
+ if [ -n "$scale_path" ]; then
136
+ if is_wsl && is_windows_npm_shim "$scale_path"; then
137
+ echo "[scale-engine] Windows npm scale was detected inside WSL: $scale_path" >&2
138
+ echo "[scale-engine] Use the matching PowerShell wrapper (*.ps1), or install scale-engine inside WSL with a Linux Node.js toolchain." >&2
139
+ return 2
140
+ fi
141
+ scale "$@"
142
+ else
143
+ local npx_path=""
144
+ npx_path="$(command -v npx 2>/dev/null || true)"
145
+ if [ -n "$npx_path" ] && is_wsl && is_windows_npm_shim "$npx_path"; then
146
+ echo "[scale-engine] Windows npm npx was detected inside WSL: $npx_path" >&2
147
+ echo "[scale-engine] Use the matching PowerShell wrapper (*.ps1), or install Node.js/npm inside WSL." >&2
148
+ return 2
149
+ fi
150
+ npx @hongmaple0820/scale-engine@latest "$@"
151
+ fi
152
+ }
153
+
154
+ echo "[scale-engine] compatibility wrapper: scripts/${label}.sh -> scale ${scaleCommand}" >&2
155
+ run_scale ${scaleCommand} "$@"
156
+ `;
157
+ }
158
+ function workflowWrapperFiles() {
159
+ return [
160
+ { path: 'scripts/workflow/new-task.sh', kind: 'script', owned: true, content: workflowWrapper('workflow/new-task', 'create-prd') },
161
+ { path: 'scripts/workflow/explore.sh', kind: 'script', owned: true, content: workflowWrapper('workflow/explore', 'skill scan') },
162
+ { path: 'scripts/workflow/resume.sh', kind: 'script', owned: true, content: workflowWrapper('workflow/resume', 'status') },
163
+ { path: 'scripts/workflow/verify.sh', kind: 'script', owned: true, content: workflowWrapper('workflow/verify', 'preflight') },
164
+ { path: 'scripts/gates/all.sh', kind: 'script', owned: true, content: workflowWrapper('gates/all', 'preflight --service all') },
165
+ { path: 'scripts/workflow/new-task.ps1', kind: 'script', owned: true, content: powershellWorkflowWrapper('workflow/new-task', 'create-prd') },
166
+ { path: 'scripts/workflow/explore.ps1', kind: 'script', owned: true, content: powershellWorkflowWrapper('workflow/explore', 'skill scan') },
167
+ { path: 'scripts/workflow/resume.ps1', kind: 'script', owned: true, content: powershellWorkflowWrapper('workflow/resume', 'status') },
168
+ { path: 'scripts/workflow/verify.ps1', kind: 'script', owned: true, content: powershellWorkflowWrapper('workflow/verify', 'preflight') },
169
+ { path: 'scripts/gates/all.ps1', kind: 'script', owned: true, content: powershellWorkflowWrapper('gates/all', 'preflight --service all') },
170
+ ];
171
+ }
172
+ function scaleEngineRepoFiles() {
173
+ return [
174
+ { path: '.scale/workspace.json', kind: 'config', owned: true, content: scaleEngineRepoWorkspaceJson() },
175
+ { path: '.agent/project.json', kind: 'config', owned: true, content: scaleEngineRepoProjectJson() },
176
+ { path: '.claude/settings.json', kind: 'config', owned: true, content: scaleEngineRepoClaudeSettings() },
177
+ { path: '.claude/workflow.json', kind: 'config', owned: true, content: scaleEngineRepoClaudeWorkflow() },
178
+ { path: '.claude/hooks/session-start-reminder.sh', kind: 'script', owned: true, content: scaleEngineSessionStartHook() },
179
+ { path: '.claude/hooks/gate-execute-phase.sh', kind: 'script', owned: true, content: scaleEngineExecutePhaseHook() },
180
+ { path: '.claude/hooks/session-end-gate.sh', kind: 'script', owned: true, content: scaleEngineSessionEndHook() },
181
+ { path: 'scripts/hooks/check-dangerous-file.sh', kind: 'script', owned: true, content: scaleEngineDangerousFileHook() },
182
+ { path: 'scripts/hooks/check-explore.sh', kind: 'script', owned: true, content: scaleEngineExploreHook() },
183
+ { path: 'scripts/hooks/check-tdd.sh', kind: 'script', owned: true, content: scaleEngineTddHook() },
184
+ { path: 'scripts/hooks/check-context.sh', kind: 'script', owned: true, content: scaleEngineContextHook() },
185
+ ...workflowWrapperFiles(),
186
+ { path: 'AGENTS.md', kind: 'config', owned: true, content: scaleEngineRepoAgentsMd() },
187
+ { path: 'CLAUDE.md', kind: 'config', owned: true, content: scaleEngineRepoClaudeMd() },
188
+ { path: 'Makefile', kind: 'config', owned: true, content: scaleEngineRepoMakefile() },
189
+ { path: 'docs/guides/GETTING_STARTED.md', kind: 'config', owned: true, content: scaleEngineRepoGettingStartedGuide() },
190
+ { path: 'docs/guides/DEVELOPMENT_WORKFLOW.md', kind: 'config', owned: true, content: scaleEngineRepoDevelopmentWorkflowGuide() },
191
+ { path: 'docs/workflow/README.md', kind: 'config', owned: true, content: scaleEngineRepoWorkflowReadme() },
192
+ ];
193
+ }
194
+ function powershellWorkflowWrapper(label, scaleCommand) {
195
+ const commandParts = scaleCommand.split(/\s+/).filter(Boolean);
196
+ const psArgs = commandParts.map(part => `'${part.replace(/'/g, "''")}'`).join(', ');
197
+ return `$ErrorActionPreference = 'Stop'
198
+
199
+ function Invoke-Scale {
200
+ param([string[]]$ScaleArgs)
201
+
202
+ if (Get-Command scale -ErrorAction SilentlyContinue) {
203
+ & scale @ScaleArgs
204
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
205
+ return
206
+ }
207
+
208
+ & npx @hongmaple0820/scale-engine@latest @ScaleArgs
209
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
210
+ }
211
+
212
+ [Console]::Error.WriteLine("[scale-engine] compatibility wrapper: scripts/${label}.ps1 -> scale ${scaleCommand}")
213
+ $scaleArgs = @(${psArgs}) + $args
214
+ Invoke-Scale -ScaleArgs $scaleArgs
215
+ `;
216
+ }
217
+ function scaleEngineWorkflowBaselineEvalJson() {
218
+ return `${JSON.stringify({
219
+ version: '1.0',
220
+ id: 'workflow-baseline',
221
+ name: 'SCALE workflow baseline',
222
+ cases: [
223
+ {
224
+ id: 'governance-command-smoke',
225
+ type: 'bugfix',
226
+ title: 'Command evidence smoke',
227
+ task: 'Verify that a local command can produce concrete eval evidence.',
228
+ phase: 'verify',
229
+ successCriteria: [
230
+ 'command exits 0',
231
+ 'output contains scale-eval-ok',
232
+ ],
233
+ attempts: [
234
+ {
235
+ id: 'attempt-1',
236
+ command: 'node -e "console.log(\'scale-eval-ok\')"',
237
+ expectedExitCode: 0,
238
+ outputContains: 'scale-eval-ok',
239
+ },
240
+ ],
241
+ },
242
+ ],
243
+ }, null, 2)}\n`;
244
+ }
245
+ function scaleEngineWorkflowPlanShellScript() {
246
+ return `#!/bin/bash
247
+ # Create an implementation plan directory and update workflow state.
248
+ # Usage: bash scripts/workflow/plan.sh "feature-name" [level]
249
+
250
+ set -euo pipefail
251
+
252
+ PROJECT_ROOT="$(cd "$(dirname "\${BASH_SOURCE[0]}")/../.." && pwd)"
253
+ NAME="\${1:-}"
254
+ LEVEL="\${2:-M}"
255
+
256
+ if [ -z "$NAME" ]; then
257
+ echo "[PLAN] usage: bash scripts/workflow/plan.sh feature-name [S|M|L|CRITICAL]"
258
+ exit 1
259
+ fi
260
+
261
+ DATE="$(date +%Y-%m-%d)"
262
+ TASK_ID="\${DATE}-\${NAME}"
263
+ TASK_DIR="$PROJECT_ROOT/.planning/tasks/$TASK_ID"
264
+ STATE_DIR="$PROJECT_ROOT/.agent/state"
265
+ STATE_FILE="$STATE_DIR/current.json"
266
+ TEMPLATES="$PROJECT_ROOT/docs/workflow/templates"
267
+ PY_STATE="$PROJECT_ROOT/scripts/lib/workflow_state.py"
268
+
269
+ mkdir -p "$TASK_DIR" "$STATE_DIR"
270
+
271
+ for file in explore.md mini-prd.md spec.md plan.md tasks.md runtime.md reality-check.md resource-cleanup.md verification.md review.md summary.md; do
272
+ target="$TASK_DIR/$file"
273
+ if [ -f "$TEMPLATES/$file" ]; then
274
+ sed "s/{{TASK_ID}}/$TASK_ID/g; s/{{NAME}}/$NAME/g; s/{{DATE}}/$DATE/g; s/{{LEVEL}}/$LEVEL/g" "$TEMPLATES/$file" > "$target"
275
+ else
276
+ cat > "$target" <<EOF
277
+ # \${file%.md} - $NAME
278
+
279
+ Date: $DATE
280
+ Level: $LEVEL
281
+
282
+ Fill in this plan artifact.
283
+ EOF
284
+ fi
285
+ done
286
+
287
+ python3 "$PY_STATE" plan "$STATE_FILE" "$TASK_ID" "$LEVEL" ".planning/tasks/$TASK_ID"
288
+
289
+ echo "[PLAN] task artifacts dir: $TASK_DIR"
290
+ echo "[PLAN] state: $STATE_FILE"
291
+ `;
292
+ }
293
+ function scaleEngineGatesAllShellScript() {
294
+ return `#!/usr/bin/env bash
295
+ # Run workflow and quality gates.
296
+
297
+ set -euo pipefail
298
+
299
+ SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
300
+
301
+ DRY_RUN=false
302
+ MODE="all"
303
+ SERVICES=()
304
+
305
+ usage() {
306
+ cat <<'USAGE'
307
+ Usage:
308
+ bash scripts/gates/all.sh [--dry-run] [--workflow|--quality|--all] [--service <root|all>]
309
+
310
+ Examples:
311
+ bash scripts/gates/all.sh --dry-run
312
+ bash scripts/gates/all.sh --workflow
313
+ bash scripts/gates/all.sh --quality --service root
314
+ USAGE
315
+ }
316
+
317
+ while [ "$#" -gt 0 ]; do
318
+ case "$1" in
319
+ --dry-run)
320
+ DRY_RUN=true
321
+ ;;
322
+ --workflow)
323
+ MODE="workflow"
324
+ ;;
325
+ --quality)
326
+ MODE="quality"
327
+ ;;
328
+ --all)
329
+ MODE="all"
330
+ ;;
331
+ --service)
332
+ shift
333
+ if [ -z "\${1:-}" ]; then
334
+ echo "[GATE] --service requires a value" >&2
335
+ exit 1
336
+ fi
337
+ SERVICES+=("$1")
338
+ ;;
339
+ root|all)
340
+ SERVICES+=("$1")
341
+ ;;
342
+ -h|--help)
343
+ usage
344
+ exit 0
345
+ ;;
346
+ *)
347
+ echo "[GATE] unknown argument: $1" >&2
348
+ usage >&2
349
+ exit 1
350
+ ;;
351
+ esac
352
+ shift
353
+ done
354
+
355
+ case "$MODE" in
356
+ workflow) GATES=(G1 G2 G3) ;;
357
+ quality) GATES=(G4 G5 G6 G7 G8) ;;
358
+ all) GATES=(G1 G2 G3 G4 G5 G6 G7 G8) ;;
359
+ *)
360
+ echo "[GATE] invalid mode: $MODE" >&2
361
+ exit 1
362
+ ;;
363
+ esac
364
+
365
+ PASSED=0
366
+ FAILED=0
367
+ SKIPPED=0
368
+
369
+ echo "========================================"
370
+ echo "[GATE] mode: $MODE"
371
+ echo "========================================"
372
+
373
+ for gate in "\${GATES[@]}"; do
374
+ script="$SCRIPT_DIR/\${gate}-verify.sh"
375
+ echo "[GATE] $gate"
376
+
377
+ if [ ! -f "$script" ]; then
378
+ echo " skipped: missing $script"
379
+ SKIPPED=$((SKIPPED + 1))
380
+ continue
381
+ fi
382
+
383
+ if [ "$DRY_RUN" = true ]; then
384
+ if bash -n "$script"; then
385
+ echo " schedulable"
386
+ PASSED=$((PASSED + 1))
387
+ else
388
+ echo " syntax failed"
389
+ FAILED=$((FAILED + 1))
390
+ fi
391
+ continue
392
+ fi
393
+
394
+ if [[ "$gate" =~ ^G[4-7]$ ]]; then
395
+ if bash "$script" "\${SERVICES[@]}"; then
396
+ PASSED=$((PASSED + 1))
397
+ else
398
+ FAILED=$((FAILED + 1))
399
+ fi
400
+ else
401
+ if bash "$script"; then
402
+ PASSED=$((PASSED + 1))
403
+ else
404
+ FAILED=$((FAILED + 1))
405
+ fi
406
+ fi
407
+ echo ""
408
+ done
409
+
410
+ echo "========================================"
411
+ echo "[GATE] summary"
412
+ echo "passed: $PASSED"
413
+ echo "failed: $FAILED"
414
+ echo "skipped: $SKIPPED"
415
+ echo "========================================"
416
+
417
+ if [ "$FAILED" -gt 0 ]; then
418
+ exit 1
419
+ fi
420
+ `;
421
+ }
422
+ function scaleEngineG8VerifyShellScript() {
423
+ return `#!/usr/bin/env bash
424
+ # G8: document and workflow artifact standards verification.
425
+
426
+ set -euo pipefail
427
+
428
+ PROJECT_ROOT="$(cd "$(dirname "\${BASH_SOURCE[0]}")/../.." && pwd)"
429
+
430
+ echo "========================================"
431
+ echo "[G8] Document standards gate"
432
+ echo "========================================"
433
+
434
+ cd "$PROJECT_ROOT"
435
+
436
+ CHANGED_MD="$(
437
+ {
438
+ git diff --name-only --diff-filter=AM HEAD -- '*.md' 2>/dev/null || true
439
+ git ls-files --others --exclude-standard -- '*.md' 2>/dev/null || true
440
+ } | sort -u
441
+ )"
442
+
443
+ if [ -z "$CHANGED_MD" ]; then
444
+ echo "[G8] passed: no new/modified markdown files"
445
+ exit 0
446
+ fi
447
+
448
+ echo "[G8] checking changed markdown files:"
449
+ echo "$CHANGED_MD"
450
+ echo ""
451
+
452
+ ALL_PASS=true
453
+
454
+ while IFS= read -r file; do
455
+ [ -z "$file" ] && continue
456
+ filepath="$PROJECT_ROOT/$file"
457
+ [ -f "$filepath" ] || continue
458
+
459
+ echo "[G8] checking: $file"
460
+
461
+ if grep -qiE "(password|secret|token|api_key)[[:space:]]*[:=][[:space:]]*['\\"][^'\\"]{8,}" "$filepath" 2>/dev/null; then
462
+ echo " [FAIL] possible hardcoded secret detected"
463
+ ALL_PASS=false
464
+ fi
465
+
466
+ if grep -q $'\\r' "$filepath" 2>/dev/null; then
467
+ echo " [WARN] CRLF detected in markdown"
468
+ fi
469
+
470
+ if grep -nE '[[:blank:]]$' "$filepath" >/dev/null 2>&1; then
471
+ echo " [WARN] trailing whitespace detected"
472
+ fi
473
+
474
+ if grep -qE '\\[[^]]+\\]\\(https?://(localhost|127\\.0\\.0\\.1)' "$filepath" 2>/dev/null; then
475
+ echo " [WARN] localhost links found; prefer relative paths or runtime notes"
476
+ fi
477
+ done <<< "$CHANGED_MD"
478
+
479
+ echo ""
480
+ if [ "$ALL_PASS" = true ]; then
481
+ echo "[G8] passed"
482
+ exit 0
483
+ fi
484
+
485
+ echo "[G8] failed"
486
+ exit 1
487
+ `;
488
+ }
489
+ function scaleEngineSpecTemplate() {
490
+ return `# Spec - {{TASK_ID}}
491
+
492
+ Date: {{DATE}}
493
+ Level: {{LEVEL}}
494
+
495
+ ## What
496
+
497
+
498
+ ## Why
499
+
500
+
501
+ ## Boundaries
502
+
503
+
504
+ ## Acceptance Criteria
505
+
506
+ - [ ]
507
+ `;
508
+ }
509
+ function scaleEngineTasksTemplate() {
510
+ return `# Tasks - {{TASK_ID}}
511
+
512
+ Date: {{DATE}}
513
+ Level: {{LEVEL}}
514
+
515
+ ## Task List
516
+
517
+ - [ ]
518
+ `;
519
+ }
520
+ function scaleEngineWorkflowStatePython() {
521
+ return `#!/usr/bin/env python3
522
+ """Small helper for .agent/state/current.json.
523
+
524
+ The workflow scripts run in Git Bash, WSL, and PowerShell-adjacent
525
+ environments where jq is not always installed. Keep canonical state
526
+ reads and writes in Python's standard library.
527
+ """
528
+
529
+ from __future__ import annotations
530
+
531
+ import json
532
+ import subprocess
533
+ import sys
534
+ from datetime import datetime, timezone
535
+ from pathlib import Path
536
+
537
+
538
+ def now() -> str:
539
+ return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
540
+
541
+
542
+ def load(path: Path) -> dict:
543
+ if not path.exists():
544
+ return {}
545
+ try:
546
+ data = json.loads(path.read_text(encoding="utf-8"))
547
+ except Exception:
548
+ return {}
549
+ return data if isinstance(data, dict) else {}
550
+
551
+
552
+ def save(path: Path, data: dict) -> None:
553
+ path.parent.mkdir(parents=True, exist_ok=True)
554
+ tmp = path.with_suffix(path.suffix + ".tmp")
555
+ tmp.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\\n", encoding="utf-8")
556
+ tmp.replace(path)
557
+
558
+
559
+ def default_state(task_id: str = "", level: str = "M") -> dict:
560
+ return {
561
+ "task_id": task_id,
562
+ "level": level,
563
+ "phase": "explore",
564
+ "artifacts_dir": "",
565
+ "runtime_contract": "",
566
+ "reality_check": "",
567
+ "resource_cleanup": "",
568
+ "explored_files": [],
569
+ "file_count": 0,
570
+ "main_contradiction": "",
571
+ "completed_gates": [],
572
+ "open_tasks": [],
573
+ "files_modified": [],
574
+ "updated_at": now(),
575
+ }
576
+
577
+
578
+ def cmd_init(args: list[str]) -> int:
579
+ state_path = Path(args[0])
580
+ task_id, level, artifacts_dir = args[1], args[2], args[3]
581
+ data = default_state(task_id, level)
582
+ data["artifacts_dir"] = artifacts_dir
583
+ data["runtime_contract"] = str(Path(artifacts_dir) / "runtime.md")
584
+ data["reality_check"] = str(Path(artifacts_dir) / "reality-check.md")
585
+ data["resource_cleanup"] = str(Path(artifacts_dir) / "resource-cleanup.md")
586
+ save(state_path, data)
587
+ return 0
588
+
589
+
590
+ def cmd_explore(args: list[str]) -> int:
591
+ state_path = Path(args[0])
592
+ detail_path = Path(args[1])
593
+ contradiction = args[2]
594
+ files = args[3:]
595
+ data = load(state_path) or default_state(
596
+ "ad-hoc-" + datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ"),
597
+ "M",
598
+ )
599
+ data.update(
600
+ {
601
+ "phase": "explore",
602
+ "explored_files": files,
603
+ "file_count": len(files),
604
+ "main_contradiction": contradiction,
605
+ "updated_at": now(),
606
+ }
607
+ )
608
+ save(state_path, data)
609
+ save(
610
+ detail_path,
611
+ {
612
+ "updated_at": data["updated_at"],
613
+ "files": files,
614
+ "file_count": len(files),
615
+ "main_contradiction": contradiction,
616
+ "skills_checked": True,
617
+ },
618
+ )
619
+ return 0
620
+
621
+
622
+ def cmd_plan(args: list[str]) -> int:
623
+ state_path = Path(args[0])
624
+ task_id, level, artifacts_dir = args[1], args[2], args[3]
625
+ data = load(state_path) or default_state(task_id, level)
626
+ data.update(
627
+ {
628
+ "task_id": task_id,
629
+ "level": level,
630
+ "phase": "plan",
631
+ "artifacts_dir": artifacts_dir,
632
+ "runtime_contract": str(Path(artifacts_dir) / "runtime.md"),
633
+ "reality_check": str(Path(artifacts_dir) / "reality-check.md"),
634
+ "resource_cleanup": str(Path(artifacts_dir) / "resource-cleanup.md"),
635
+ "updated_at": now(),
636
+ }
637
+ )
638
+ save(state_path, data)
639
+ return 0
640
+
641
+
642
+ def cmd_checkpoint(args: list[str]) -> int:
643
+ state_path = Path(args[0])
644
+ root = Path(args[1])
645
+ phase = args[2]
646
+ data = load(state_path) or default_state(
647
+ "ad-hoc-" + datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ"),
648
+ "M",
649
+ )
650
+ try:
651
+ result = subprocess.run(
652
+ ["git", "diff", "--name-only"],
653
+ cwd=root,
654
+ text=True,
655
+ stdout=subprocess.PIPE,
656
+ stderr=subprocess.DEVNULL,
657
+ check=False,
658
+ )
659
+ files = [line for line in result.stdout.splitlines() if line]
660
+ except Exception:
661
+ files = []
662
+ data["phase"] = phase
663
+ data["files_modified"] = files
664
+ data["updated_at"] = now()
665
+ data.setdefault("completed_gates", [])
666
+ data.setdefault("open_tasks", [])
667
+ save(state_path, data)
668
+ return 0
669
+
670
+
671
+ def cmd_get(args: list[str]) -> int:
672
+ data = load(Path(args[0]))
673
+ value = data.get(args[1], args[2] if len(args) > 2 else "")
674
+ if isinstance(value, list):
675
+ print(", ".join(str(v) for v in value))
676
+ else:
677
+ print(value)
678
+ return 0
679
+
680
+
681
+ def cmd_len(args: list[str]) -> int:
682
+ data = load(Path(args[0]))
683
+ value = data.get(args[1], [])
684
+ if isinstance(value, list):
685
+ print(len(value))
686
+ else:
687
+ print(int(value or 0))
688
+ return 0
689
+
690
+
691
+ def cmd_add_gates(args: list[str]) -> int:
692
+ state_path = Path(args[0])
693
+ data = load(state_path)
694
+ existing = data.get("completed_gates", [])
695
+ if not isinstance(existing, list):
696
+ existing = []
697
+ data["completed_gates"] = sorted(set(str(item) for item in existing + args[1:]))
698
+ data["phase"] = "verify"
699
+ data["updated_at"] = now()
700
+ save(state_path, data)
701
+ return 0
702
+
703
+
704
+ COMMANDS = {
705
+ "init": cmd_init,
706
+ "explore": cmd_explore,
707
+ "plan": cmd_plan,
708
+ "checkpoint": cmd_checkpoint,
709
+ "get": cmd_get,
710
+ "len": cmd_len,
711
+ "add-gates": cmd_add_gates,
712
+ }
713
+
714
+
715
+ if len(sys.argv) < 2 or sys.argv[1] not in COMMANDS:
716
+ print("usage: workflow_state.py <command> ...", file=sys.stderr)
717
+ raise SystemExit(2)
718
+
719
+ raise SystemExit(COMMANDS[sys.argv[1]](sys.argv[2:]))
720
+ `;
721
+ }
722
+ function moeWorkspaceGuide() {
723
+ return `# MOE Workspace Governance
724
+
725
+ MOE workspaces are multi-repository engineering environments where the root checkout, sibling repositories, external repositories, submodules, and temporary agent worktrees must be finished as one coordinated unit. Independent child projects should not be placed inside the root checkout unless they are intentional submodules.
726
+
727
+ ## Source Of Truth
728
+
729
+ - \`.scale/workspace.json\`: repository topology, branch policy, and finish policy.
730
+ - \`.scale/verification.json\`: service matrix and verification commands.
731
+ - \`docs/worklog/tasks/<task>/\`: task artifacts, verification evidence, and cross-repository impact.
732
+
733
+ ## Required Finish Checks
734
+
735
+ Before deleting an agent worktree or reporting a task complete:
736
+
737
+ 1. Run \`scale workspace map --json\` to confirm the expected repositories are known.
738
+ 2. Run \`scale workspace finish --summary\` for the short blocker list; use \`--json\` only when full audit detail is needed.
739
+ 3. Commit and push child repository work in each repository's own remote.
740
+ 4. Review whether the root repository needs a submodule pointer, lock file, integration metadata, or documentation update.
741
+ 5. Run service-aware verification for every touched service.
742
+
743
+ ## Repository Layout
744
+
745
+ Prefer sibling or absolute repository paths:
746
+
747
+ \`\`\`json
748
+ {
749
+ "repositories": [
750
+ { "name": "root", "path": ".", "role": "root", "required": true },
751
+ { "name": "api", "path": "../api", "role": "external", "required": true, "remote": "origin" }
752
+ ]
753
+ }
754
+ \`\`\`
755
+
756
+ Nested paths such as \`services/api\` are only appropriate for monorepos or intentional submodules. In MOE/polyrepo mode, SCALE warns when a child repository path sits under the root checkout because that layout easily causes Git status, branch, and commit-scope conflicts.
757
+
758
+ \`scale ship <task-id>\` performs the same child-repository boundary check before creating a root commit. Dirty or unpushed child repositories block shipping. The default branch policy follows GitLab Flow: short branches merge to \`dev\`, verified production changes land on \`master\`, and release publishing is triggered by user-created \`vX.Y.Z\` tags. Direct governed commits on \`dev\`, \`master\`, \`main\`, or detached HEAD are blocked. Raw \`git add .\` bypasses this protection and is not allowed for governed MOE workspaces.
759
+
760
+ ## Branch Naming
761
+
762
+ Use readable branches with author/platform/scope/date context, for example:
763
+
764
+ \`\`\`text
765
+ feature/maple-codex-storage-policy-0515
766
+ fix/zpei-claude-upload-retry-0515
767
+ codex/moe-workspace-governance-0515
768
+ \`\`\`
769
+
770
+ Protected branches such as \`dev\`, \`main\`, and \`master\` require explicit human authorization before direct pushes.
771
+ `;
772
+ }
773
+ function resourceGovernanceGuide() {
774
+ return `# Resource Governance
775
+
776
+ This project uses SCALE resource governance to keep generated outputs, maintained documentation, task evidence, media, and temporary files from collapsing into one unmanaged document pile.
777
+
778
+ ## Source Of Truth
779
+
780
+ - \`.scale/resource-policy.json\`: asset classes, retention rules, owners, module mapping, and size limits.
781
+ - \`.scale/assets.json\`: explicit long-lived resource catalog and source-of-truth declarations.
782
+ - \`docs/modules/\`: maintained module-level product, architecture, API, and operations documentation.
783
+ - \`docs/decisions/\`: ADRs and superseded architecture decisions.
784
+
785
+ ## Default Git Policy
786
+
787
+ | Resource | Default policy |
788
+ | --- | --- |
789
+ | Module docs, standards, ADRs, contracts, reusable scripts | Commit |
790
+ | Task worklog artifacts | Review before commit |
791
+ | E2E reports, coverage, screenshots, videos, logs | Ignore or external artifact storage |
792
+ | Temporary scripts and scratch files | Ignore and delete after settlement |
793
+ | Large media | Git LFS or external storage |
794
+
795
+ ## Required Finish Behavior
796
+
797
+ Before reporting a M/L/CRITICAL task complete:
798
+
799
+ 1. Run \`scale assets scan --json\`.
800
+ 2. Run \`scale assets doctor --json\`.
801
+ 3. Run \`scale assets settle --task-id <task-id> --artifact-dir <task-dir>\`.
802
+ 4. Promote final product or architecture truth into maintained docs.
803
+ 5. Keep raw reports, screenshots, videos, and logs out of Git unless they are deliberately promoted.
804
+ 6. Delete or archive expired temporary files.
805
+ `;
806
+ }
807
+ function moduleDocsIndex() {
808
+ return `# Module Documentation
809
+
810
+ Use one directory per maintained module:
811
+
812
+ \`\`\`text
813
+ docs/modules/<module>/
814
+ ├── README.md
815
+ ├── product.md
816
+ ├── architecture.md
817
+ ├── api.md
818
+ └── operations.md
819
+ \`\`\`
820
+
821
+ Keep task-specific drafts in \`docs/worklog/tasks/\`. Promote only final, durable decisions and user-facing behavior into module documentation.
822
+ `;
823
+ }
824
+ function resourceGitignoreExample() {
825
+ return `# SCALE resource governance runtime outputs
826
+ .scale/tmp/
827
+ .scale/reports/
828
+ .scale/resource-reports/
829
+ tmp/
830
+ temp/
831
+ test-results/
832
+ playwright-report/
833
+ coverage/
834
+
835
+ # Raw generated media should be promoted deliberately or stored externally
836
+ *.webm
837
+ *.mp4
838
+ *.mov
839
+ *.wav
840
+ *.mp3
841
+ `;
842
+ }
843
+ function nodeLibraryGuide() {
844
+ return `# Node Library Workflow
845
+
846
+ This repository uses the latest SCALE repository workflow for Node/npm package delivery.
847
+
848
+ ## Command Entry Points
849
+
850
+ \`\`\`bash
851
+ bash scripts/preflight/all.sh
852
+ bash scripts/gates/all.sh --dry-run
853
+ bash scripts/workflow/new-task.sh
854
+ bash scripts/workflow/resume.sh
855
+ bash scripts/workflow/verify.sh --preflight-profile quick
856
+ \`\`\`
857
+
858
+ PowerShell:
859
+
860
+ \`\`\`powershell
861
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/preflight/all.ps1
862
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/gates/all.ps1 --dry-run
863
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/new-task.ps1
864
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/resume.ps1
865
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/verify.ps1 --preflight-profile quick
866
+ \`\`\`
867
+
868
+ ## Default Verification Matrix
869
+
870
+ - quick loop: \`npm run build\`, \`npm run lint\`, \`npm test\`
871
+ - release loop: run \`npm run release:check\` when available; otherwise add \`npm run typecheck\`, \`npm run smoke:setup\`, \`npm audit --omit=dev\`, \`git diff --check\`, and \`npm pack --dry-run\`
872
+ - product smoke: enable a real probe in \`.scale/product-smoke.json\` instead of treating a health endpoint as completion proof
873
+
874
+ ## Branch Policy
875
+
876
+ This repository follows a GitLab Flow variant:
877
+
878
+ \`\`\`text
879
+ feature/fix/docs/chore/codex -> dev -> master -> tag/publish
880
+ \`\`\`
881
+
882
+ Use short-lived branches for governed work. Direct governed commits on \`dev\`, \`master\`, or \`main\` are blocked by SCALE ship rules.
883
+
884
+ ## Release Expectations
885
+
886
+ Before a package release or demo handoff:
887
+
888
+ 1. Run \`bash scripts/preflight/all.sh\` or the PowerShell equivalent.
889
+ 2. Run \`scale preflight --preflight-profile full --json\`.
890
+ 3. Run \`npm run release:check\` when the package exposes it, or run the equivalent build/test/smoke/audit/pack commands explicitly.
891
+ 4. Run \`git diff --check\` if it is not already included in the release command.
892
+ 5. Confirm runtime evidence and review artifacts for M/L/CRITICAL work.
893
+ `;
894
+ }
895
+ function nodeLibraryPreflightShellScript() {
896
+ return `#!/usr/bin/env bash
897
+ set -euo pipefail
898
+
899
+ SCRIPT_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
900
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
901
+
902
+ ERRORS=0
903
+ WARNINGS=0
904
+
905
+ note_ok() { echo "[OK] $*"; }
906
+ note_warn() { echo "[WARN] $*"; WARNINGS=$((WARNINGS + 1)); }
907
+ note_error() { echo "[ERROR] $*"; ERRORS=$((ERRORS + 1)); }
908
+
909
+ find_python() {
910
+ for candidate in python3 python py; do
911
+ if command -v "$candidate" >/dev/null 2>&1; then
912
+ echo "$candidate"
913
+ return 0
914
+ fi
915
+ done
916
+ return 1
917
+ }
918
+
919
+ json_valid() {
920
+ local file="$1"
921
+ if command -v node >/dev/null 2>&1; then
922
+ node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8').replace(/^\\\\uFEFF/, ''))" "$file" >/dev/null
923
+ return $?
924
+ fi
925
+ local py
926
+ py="$(find_python || true)"
927
+ if [ -n "$py" ]; then
928
+ "$py" -c "import json,sys; json.load(open(sys.argv[1], encoding='utf-8-sig'))" "$file" >/dev/null
929
+ return $?
930
+ fi
931
+ return 2
932
+ }
933
+
934
+ package_script_exists() {
935
+ local script_name="$1"
936
+ node - "$PROJECT_ROOT/package.json" "$script_name" <<'NODE' >/dev/null
937
+ const fs = require('fs');
938
+ const pkgPath = process.argv[2];
939
+ const scriptName = process.argv[3];
940
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8').replace(/^\\uFEFF/, ''));
941
+ process.exit(pkg.scripts && Object.prototype.hasOwnProperty.call(pkg.scripts, scriptName) ? 0 : 1);
942
+ NODE
943
+ }
944
+
945
+ echo "========================================"
946
+ echo "[PREFLIGHT] node-library workflow"
947
+ echo "========================================"
948
+ echo ""
949
+
950
+ echo "[CHECK] required tools"
951
+ if command -v git >/dev/null 2>&1; then
952
+ note_ok "git"
953
+ else
954
+ note_error "git is required"
955
+ fi
956
+
957
+ if command -v node >/dev/null 2>&1; then
958
+ note_ok "node $(node --version)"
959
+ else
960
+ note_error "node is required"
961
+ fi
962
+
963
+ if command -v npm >/dev/null 2>&1; then
964
+ note_ok "npm $(npm --version)"
965
+ elif command -v pnpm >/dev/null 2>&1; then
966
+ note_ok "pnpm $(pnpm --version)"
967
+ else
968
+ note_error "npm or pnpm is required"
969
+ fi
970
+ echo ""
971
+
972
+ echo "[CHECK] optional tools"
973
+ for tool in bash rg jq gh graphify; do
974
+ if command -v "$tool" >/dev/null 2>&1; then
975
+ note_ok "$tool"
976
+ else
977
+ note_warn "$tool is not installed"
978
+ fi
979
+ done
980
+ PYTHON_BIN="$(find_python || true)"
981
+ if [ -n "$PYTHON_BIN" ]; then
982
+ note_ok "$PYTHON_BIN"
983
+ else
984
+ note_warn "python is not installed"
985
+ fi
986
+ echo ""
987
+
988
+ echo "[CHECK] required directories"
989
+ for dir in \
990
+ ".scale" \
991
+ ".planning/tasks" \
992
+ "docs/workflow" \
993
+ "docs/workflow/templates" \
994
+ "docs/worklog" \
995
+ "scripts/gates" \
996
+ "scripts/preflight" \
997
+ "scripts/qa" \
998
+ "scripts/workflow" \
999
+ "src" \
1000
+ "tests"; do
1001
+ if [ -d "$PROJECT_ROOT/$dir" ]; then
1002
+ note_ok "$dir"
1003
+ else
1004
+ note_error "missing directory: $dir"
1005
+ fi
1006
+ done
1007
+ echo ""
1008
+
1009
+ echo "[CHECK] governance JSON files"
1010
+ for file in \
1011
+ ".scale/verification.json" \
1012
+ ".scale/workspace.json" \
1013
+ ".scale/skills.json" \
1014
+ ".scale/tools.json" \
1015
+ ".scale/resource-policy.json" \
1016
+ ".scale/assets.json" \
1017
+ ".scale/output-policy.json" \
1018
+ ".scale/product-smoke.json" \
1019
+ ".scale/engineering-standards.json" \
1020
+ ".scale/engineering-standards-baseline.json" \
1021
+ ".scale/frameworks.json" \
1022
+ ".scale/governance.lock.json"; do
1023
+ if [ ! -f "$PROJECT_ROOT/$file" ]; then
1024
+ note_error "missing JSON file: $file"
1025
+ continue
1026
+ fi
1027
+ if json_valid "$PROJECT_ROOT/$file"; then
1028
+ note_ok "$file"
1029
+ else
1030
+ note_error "invalid JSON: $file"
1031
+ fi
1032
+ done
1033
+ echo ""
1034
+
1035
+ echo "[CHECK] key workflow docs"
1036
+ for file in \
1037
+ "docs/workflow/README.md" \
1038
+ "docs/workflow/node-library.md" \
1039
+ "docs/worklog/metrics.md"; do
1040
+ if [ -f "$PROJECT_ROOT/$file" ]; then
1041
+ note_ok "$file"
1042
+ else
1043
+ note_error "missing file: $file"
1044
+ fi
1045
+ done
1046
+ echo ""
1047
+
1048
+ echo "[CHECK] package scripts"
1049
+ for script_name in build lint test typecheck; do
1050
+ if package_script_exists "$script_name"; then
1051
+ note_ok "package.json scripts.$script_name"
1052
+ else
1053
+ note_error "missing package.json script: $script_name"
1054
+ fi
1055
+ done
1056
+ echo ""
1057
+
1058
+ echo "[CHECK] gate wrappers"
1059
+ if [ -f "$PROJECT_ROOT/scripts/gates/all.sh" ] && bash -n "$PROJECT_ROOT/scripts/gates/all.sh"; then
1060
+ note_ok "scripts/gates/all.sh syntax"
1061
+ else
1062
+ note_error "scripts/gates/all.sh is missing or invalid"
1063
+ fi
1064
+ echo ""
1065
+
1066
+ echo "========================================"
1067
+ if [ "$ERRORS" -eq 0 ]; then
1068
+ echo "[PREFLIGHT] PASSED with $WARNINGS warning(s)"
1069
+ exit 0
1070
+ fi
1071
+
1072
+ echo "[PREFLIGHT] FAILED with $ERRORS error(s), $WARNINGS warning(s)"
1073
+ exit 1
1074
+ `;
1075
+ }
1076
+ function nodeLibraryPreflightPowerShellScript() {
1077
+ return `$ErrorActionPreference = 'Stop'
1078
+ if (Get-Variable -Name PSNativeCommandUseErrorActionPreference -ErrorAction SilentlyContinue) {
1079
+ $PSNativeCommandUseErrorActionPreference = $false
1080
+ }
1081
+
1082
+ $ProjectRoot = (Resolve-Path (Join-Path $PSScriptRoot '..\\..')).Path
1083
+ $Errors = 0
1084
+ $Warnings = 0
1085
+
1086
+ function Note-Ok([string]$Message) {
1087
+ Write-Host "[OK] $Message"
1088
+ }
1089
+
1090
+ function Note-Warn([string]$Message) {
1091
+ $script:Warnings++
1092
+ Write-Host "[WARN] $Message"
1093
+ }
1094
+
1095
+ function Note-Error([string]$Message) {
1096
+ $script:Errors++
1097
+ Write-Host "[ERROR] $Message"
1098
+ }
1099
+
1100
+ function Test-JsonFile([string]$Path) {
1101
+ try {
1102
+ $raw = Get-Content -Raw $Path
1103
+ $clean = $raw.TrimStart([char]0xFEFF)
1104
+ $null = $clean | ConvertFrom-Json
1105
+ return $true
1106
+ } catch {
1107
+ return $false
1108
+ }
1109
+ }
1110
+
1111
+ function Test-PackageScript([string]$Name) {
1112
+ $pkg = Get-Content -Raw (Join-Path $ProjectRoot 'package.json') | ConvertFrom-Json
1113
+ return $null -ne $pkg.scripts.$Name
1114
+ }
1115
+
1116
+ Write-Host '========================================'
1117
+ Write-Host '[PREFLIGHT] node-library workflow'
1118
+ Write-Host '========================================'
1119
+ Write-Host ''
1120
+
1121
+ Write-Host '[CHECK] required tools'
1122
+ if (Get-Command git -ErrorAction SilentlyContinue) {
1123
+ Note-Ok 'git'
1124
+ } else {
1125
+ Note-Error 'git is required'
1126
+ }
1127
+
1128
+ $Node = Get-Command node -ErrorAction SilentlyContinue
1129
+ if ($Node) {
1130
+ Note-Ok ("node " + (node --version))
1131
+ } else {
1132
+ Note-Error 'node is required'
1133
+ }
1134
+
1135
+ $Npm = Get-Command npm -ErrorAction SilentlyContinue
1136
+ $Pnpm = Get-Command pnpm -ErrorAction SilentlyContinue
1137
+ if ($Npm) {
1138
+ Note-Ok ("npm " + (npm --version))
1139
+ } elseif ($Pnpm) {
1140
+ Note-Ok ("pnpm " + (pnpm --version))
1141
+ } else {
1142
+ Note-Error 'npm or pnpm is required'
1143
+ }
1144
+ Write-Host ''
1145
+
1146
+ Write-Host '[CHECK] optional tools'
1147
+ foreach ($Tool in @('bash', 'rg', 'jq', 'gh', 'graphify', 'python', 'python3')) {
1148
+ if (Get-Command $Tool -ErrorAction SilentlyContinue) {
1149
+ Note-Ok $Tool
1150
+ } else {
1151
+ Note-Warn "$Tool is not installed"
1152
+ }
1153
+ }
1154
+ Write-Host ''
1155
+
1156
+ Write-Host '[CHECK] required directories'
1157
+ foreach ($Dir in @(
1158
+ '.scale',
1159
+ '.planning\\tasks',
1160
+ 'docs\\workflow',
1161
+ 'docs\\workflow\\templates',
1162
+ 'docs\\worklog',
1163
+ 'scripts\\gates',
1164
+ 'scripts\\preflight',
1165
+ 'scripts\\qa',
1166
+ 'scripts\\workflow',
1167
+ 'src',
1168
+ 'tests'
1169
+ )) {
1170
+ if (Test-Path (Join-Path $ProjectRoot $Dir)) {
1171
+ Note-Ok $Dir
1172
+ } else {
1173
+ Note-Error "missing directory: $Dir"
1174
+ }
1175
+ }
1176
+ Write-Host ''
1177
+
1178
+ Write-Host '[CHECK] governance JSON files'
1179
+ foreach ($File in @(
1180
+ '.scale\\verification.json',
1181
+ '.scale\\workspace.json',
1182
+ '.scale\\skills.json',
1183
+ '.scale\\tools.json',
1184
+ '.scale\\resource-policy.json',
1185
+ '.scale\\assets.json',
1186
+ '.scale\\output-policy.json',
1187
+ '.scale\\product-smoke.json',
1188
+ '.scale\\engineering-standards.json',
1189
+ '.scale\\engineering-standards-baseline.json',
1190
+ '.scale\\frameworks.json',
1191
+ '.scale\\governance.lock.json'
1192
+ )) {
1193
+ $Path = Join-Path $ProjectRoot $File
1194
+ if (-not (Test-Path $Path)) {
1195
+ Note-Error "missing JSON file: $File"
1196
+ continue
1197
+ }
1198
+ if (Test-JsonFile $Path) {
1199
+ Note-Ok $File
1200
+ } else {
1201
+ Note-Error "invalid JSON: $File"
1202
+ }
1203
+ }
1204
+ Write-Host ''
1205
+
1206
+ Write-Host '[CHECK] key workflow docs'
1207
+ foreach ($File in @(
1208
+ 'docs\\workflow\\README.md',
1209
+ 'docs\\workflow\\node-library.md',
1210
+ 'docs\\worklog\\metrics.md'
1211
+ )) {
1212
+ if (Test-Path (Join-Path $ProjectRoot $File)) {
1213
+ Note-Ok $File
1214
+ } else {
1215
+ Note-Error "missing file: $File"
1216
+ }
1217
+ }
1218
+ Write-Host ''
1219
+
1220
+ Write-Host '[CHECK] package scripts'
1221
+ foreach ($ScriptName in @('build', 'lint', 'test', 'typecheck')) {
1222
+ if (Test-PackageScript $ScriptName) {
1223
+ Note-Ok "package.json scripts.$ScriptName"
1224
+ } else {
1225
+ Note-Error "missing package.json script: $ScriptName"
1226
+ }
1227
+ }
1228
+ Write-Host ''
1229
+
1230
+ Write-Host '[CHECK] gate wrappers'
1231
+ $GateScript = Join-Path $ProjectRoot 'scripts\\gates\\all.ps1'
1232
+ if (Test-Path $GateScript) {
1233
+ $null = [System.Management.Automation.Language.Parser]::ParseFile($GateScript, [ref]$null, [ref]$null)
1234
+ if ($?) {
1235
+ Note-Ok 'scripts/gates/all.ps1 syntax'
1236
+ } else {
1237
+ Note-Error 'scripts/gates/all.ps1 is invalid'
1238
+ }
1239
+ } else {
1240
+ Note-Error 'missing scripts/gates/all.ps1'
1241
+ }
1242
+ Write-Host ''
1243
+
1244
+ Write-Host '========================================'
1245
+ if ($Errors -eq 0) {
1246
+ Write-Host "[PREFLIGHT] PASSED with $Warnings warning(s)"
1247
+ exit 0
1248
+ }
1249
+
1250
+ Write-Host "[PREFLIGHT] FAILED with $Errors error(s), $Warnings warning(s)"
1251
+ exit 1
1252
+ `;
1253
+ }
1254
+ function scaleEngineRepoWorkspaceJson() {
1255
+ return `${JSON.stringify({
1256
+ version: 1,
1257
+ topology: 'single',
1258
+ repositories: [
1259
+ {
1260
+ name: 'root',
1261
+ path: '.',
1262
+ role: 'root',
1263
+ required: true,
1264
+ },
1265
+ ],
1266
+ branchPolicy: {
1267
+ mode: 'gitlab-flow',
1268
+ integrationBranch: 'dev',
1269
+ productionBranch: 'master',
1270
+ protectedBranches: ['dev', 'master', 'main'],
1271
+ featurePrefixes: ['feature/', 'feat/', 'fix/', 'chore/', 'docs/', 'codex/'],
1272
+ releasePrefixes: ['release/'],
1273
+ hotfixPrefixes: ['hotfix/'],
1274
+ requireAuthorScopeDate: true,
1275
+ },
1276
+ finishPolicy: {
1277
+ requireCleanRepositories: true,
1278
+ requirePushedBranches: true,
1279
+ requireRootPointerUpdate: false,
1280
+ requireReviewArtifacts: false,
1281
+ },
1282
+ }, null, 2)}\n`;
1283
+ }
1284
+ function scaleEngineRepoProjectJson() {
1285
+ return `${JSON.stringify({
1286
+ version: '1.1',
1287
+ stack: 'auto',
1288
+ coverage_threshold: 80,
1289
+ profiles: {
1290
+ scaffold: {
1291
+ description: 'Validate the repository workflow scaffold itself.',
1292
+ checks: ['lint'],
1293
+ },
1294
+ default: {
1295
+ description: 'Validate the scale-engine repository.',
1296
+ services: ['root'],
1297
+ checks: ['lint', 'typecheck', 'test', 'build'],
1298
+ },
1299
+ all: {
1300
+ description: 'Run the full repository validation surface.',
1301
+ services: '*',
1302
+ checks: ['lint', 'typecheck', 'test', 'build', 'security'],
1303
+ },
1304
+ },
1305
+ services: {
1306
+ root: {
1307
+ path: '.',
1308
+ stack: 'node',
1309
+ required: true,
1310
+ commands: {
1311
+ typecheck: 'npm run typecheck',
1312
+ },
1313
+ },
1314
+ },
1315
+ stacks: {
1316
+ node: {
1317
+ detect: ['package.json'],
1318
+ commands: {
1319
+ build: 'npm run build',
1320
+ lint: 'npm run lint',
1321
+ typecheck: 'npm run typecheck',
1322
+ test: 'npm run test',
1323
+ coverage: 'npm run coverage',
1324
+ security: 'npm audit --audit-level=high',
1325
+ },
1326
+ required_tools: {
1327
+ build: ['npm'],
1328
+ lint: ['npm'],
1329
+ typecheck: ['npm'],
1330
+ test: ['npm'],
1331
+ coverage: ['npm'],
1332
+ security: ['npm'],
1333
+ },
1334
+ },
1335
+ },
1336
+ }, null, 2)}\n`;
1337
+ }
1338
+ function scaleEngineRepoClaudeSettings() {
1339
+ return `${JSON.stringify({
1340
+ permissions: {
1341
+ allow: [
1342
+ 'Read',
1343
+ 'Grep',
1344
+ 'Glob',
1345
+ 'WebSearch',
1346
+ 'WebFetch',
1347
+ 'Agent',
1348
+ 'Skill',
1349
+ 'Bash(rtk *: *)',
1350
+ 'Bash(bash scripts/*: *)',
1351
+ 'Bash(bash scripts/hooks/*: *)',
1352
+ 'Bash(bash .claude/hooks/*: *)',
1353
+ 'Bash(powershell -NoProfile -ExecutionPolicy Bypass -File scripts/*: *)',
1354
+ 'Write(.claude/**)',
1355
+ 'Write(.agent/**)',
1356
+ 'Write(.scale/**)',
1357
+ 'Write(docs/**)',
1358
+ 'Write(scripts/**)',
1359
+ 'Write(README.md)',
1360
+ 'Write(AGENTS.md)',
1361
+ 'Write(CLAUDE.md)',
1362
+ 'Write(Makefile)',
1363
+ 'Write(.gitignore)',
1364
+ 'Edit(.claude/**)',
1365
+ 'Edit(.agent/**)',
1366
+ 'Edit(.scale/**)',
1367
+ 'Edit(docs/**)',
1368
+ 'Edit(scripts/**)',
1369
+ 'Edit(README.md)',
1370
+ 'Edit(AGENTS.md)',
1371
+ 'Edit(CLAUDE.md)',
1372
+ 'Edit(Makefile)',
1373
+ 'Edit(.gitignore)',
1374
+ ],
1375
+ deny: [
1376
+ 'Write(.env*)',
1377
+ 'Edit(.env*)',
1378
+ 'Write(*secret*)',
1379
+ 'Edit(*secret*)',
1380
+ 'Write(*token*)',
1381
+ 'Edit(*token*)',
1382
+ 'Write(*password*)',
1383
+ 'Edit(*password*)',
1384
+ ],
1385
+ },
1386
+ hooks: {
1387
+ SessionStart: [
1388
+ {
1389
+ matcher: '',
1390
+ command: 'bash .claude/hooks/session-start-reminder.sh',
1391
+ timeout: 3000,
1392
+ description: 'Show concise scale-engine workflow entry points.',
1393
+ },
1394
+ ],
1395
+ PreToolUse: [
1396
+ {
1397
+ matcher: 'Write|Edit|MultiEdit',
1398
+ command: 'bash scripts/hooks/check-dangerous-file.sh',
1399
+ timeout: 3000,
1400
+ description: 'Block edits to secrets, runtime databases, and generated dependency output.',
1401
+ },
1402
+ {
1403
+ matcher: 'Write|Edit|MultiEdit',
1404
+ command: 'bash scripts/hooks/check-explore.sh',
1405
+ timeout: 3000,
1406
+ description: 'Require recorded exploration before medium or larger source changes.',
1407
+ },
1408
+ {
1409
+ matcher: 'Write|Edit|MultiEdit',
1410
+ command: 'bash scripts/hooks/check-tdd.sh',
1411
+ timeout: 3000,
1412
+ description: 'Warn when TypeScript implementation changes lack nearby test evidence.',
1413
+ },
1414
+ {
1415
+ matcher: 'Write|Edit|MultiEdit',
1416
+ command: 'bash .claude/hooks/gate-execute-phase.sh',
1417
+ timeout: 3000,
1418
+ description: 'Route code edits through the repository workflow phase gates.',
1419
+ },
1420
+ ],
1421
+ Stop: [
1422
+ {
1423
+ matcher: '',
1424
+ command: 'bash .claude/hooks/session-end-gate.sh',
1425
+ timeout: 5000,
1426
+ description: 'Summarize uncommitted code changes and verification expectations before handoff.',
1427
+ },
1428
+ ],
1429
+ },
1430
+ }, null, 2)}\n`;
1431
+ }
1432
+ function shellScript(lines) {
1433
+ return `${lines.join('\n')}\n`;
1434
+ }
1435
+ function scaleEngineSessionStartHook() {
1436
+ return shellScript([
1437
+ '#!/usr/bin/env bash',
1438
+ 'set -euo pipefail',
1439
+ '',
1440
+ 'echo "[scale-engine] workflow: read AGENTS.md, use rtk for shell commands, run make preflight or scripts/preflight/all.ps1 before handoff."',
1441
+ ]);
1442
+ }
1443
+ function scaleEngineExecutePhaseHook() {
1444
+ return shellScript([
1445
+ '#!/usr/bin/env bash',
1446
+ 'set -euo pipefail',
1447
+ '',
1448
+ 'ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"',
1449
+ 'FILE_PATH="${CLAUDE_FILE_PATH:-${1:-}}"',
1450
+ '',
1451
+ 'if [ -z "$FILE_PATH" ]; then',
1452
+ ' exit 0',
1453
+ 'fi',
1454
+ '',
1455
+ 'case "$FILE_PATH" in',
1456
+ ' src/*.ts|src/**/*.ts|tests/*.ts|tests/**/*.ts) ;;',
1457
+ ' *) exit 0 ;;',
1458
+ 'esac',
1459
+ '',
1460
+ 'STATE_FILE="$ROOT/.agent/state/current.json"',
1461
+ 'if [ ! -f "$STATE_FILE" ]; then',
1462
+ ' echo "[scale-engine] workflow state is not initialized. Run: bash scripts/workflow/new-task.sh <task-slug> M"',
1463
+ ' exit 0',
1464
+ 'fi',
1465
+ '',
1466
+ 'if command -v python3 >/dev/null 2>&1; then',
1467
+ ' PHASE="$(python3 "$ROOT/scripts/lib/workflow_state.py" get "$STATE_FILE" phase unknown 2>/dev/null || echo unknown)"',
1468
+ 'else',
1469
+ ' PHASE="unknown"',
1470
+ 'fi',
1471
+ '',
1472
+ 'case "$PHASE" in',
1473
+ ' explore|plan|execute|verify|review|ship|done|unknown) exit 0 ;;',
1474
+ ' *)',
1475
+ ' echo "[scale-engine] unexpected workflow phase: $PHASE"',
1476
+ ' exit 0',
1477
+ ' ;;',
1478
+ 'esac',
1479
+ ]);
1480
+ }
1481
+ function scaleEngineSessionEndHook() {
1482
+ return shellScript([
1483
+ '#!/usr/bin/env bash',
1484
+ 'set -euo pipefail',
1485
+ '',
1486
+ 'ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"',
1487
+ 'cd "$ROOT"',
1488
+ '',
1489
+ 'CHANGED_CODE="$(git diff --name-only -- src tests package.json package-lock.json 2>/dev/null | head -20 || true)"',
1490
+ 'if [ -n "$CHANGED_CODE" ]; then',
1491
+ ' echo "[scale-engine] changed code/package files:"',
1492
+ ' echo "$CHANGED_CODE"',
1493
+ ' echo "[scale-engine] expected verification: npm run typecheck and targeted Vitest or scripts/preflight/all.ps1."',
1494
+ 'fi',
1495
+ '',
1496
+ 'exit 0',
1497
+ ]);
1498
+ }
1499
+ function scaleEngineDangerousFileHook() {
1500
+ return shellScript([
1501
+ '#!/usr/bin/env bash',
1502
+ 'set -euo pipefail',
1503
+ '',
1504
+ 'FILE_PATH="${CLAUDE_FILE_PATH:-${1:-}}"',
1505
+ 'if [ -z "$FILE_PATH" ]; then',
1506
+ ' exit 0',
1507
+ 'fi',
1508
+ '',
1509
+ 'case "$FILE_PATH" in',
1510
+ ' *.env|*.env.*|*.key|*.pem|*.p12|*.crt|*secret*|*credential*|*password*|*token*)',
1511
+ ' echo "[scale-engine] blocked sensitive file edit: $FILE_PATH"',
1512
+ ' exit 2',
1513
+ ' ;;',
1514
+ ' node_modules/*|dist/*|coverage/*|test-results/*|playwright-report/*|.scale/events/*|.scale/evidence/*|.scale/state/*|.scale/*.db*)',
1515
+ ' echo "[scale-engine] blocked generated/runtime file edit: $FILE_PATH"',
1516
+ ' exit 2',
1517
+ ' ;;',
1518
+ 'esac',
1519
+ '',
1520
+ 'exit 0',
1521
+ ]);
1522
+ }
1523
+ function scaleEngineExploreHook() {
1524
+ return shellScript([
1525
+ '#!/usr/bin/env bash',
1526
+ 'set -euo pipefail',
1527
+ '',
1528
+ 'ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"',
1529
+ 'FILE_PATH="${CLAUDE_FILE_PATH:-${1:-}}"',
1530
+ 'STATE_FILE="$ROOT/.agent/state/current.json"',
1531
+ 'PY_STATE="$ROOT/scripts/lib/workflow_state.py"',
1532
+ '',
1533
+ 'if [ -z "$FILE_PATH" ]; then',
1534
+ ' exit 0',
1535
+ 'fi',
1536
+ '',
1537
+ 'case "$FILE_PATH" in',
1538
+ ' src/*.ts|src/**/*.ts|tests/*.ts|tests/**/*.ts) ;;',
1539
+ ' *) exit 0 ;;',
1540
+ 'esac',
1541
+ '',
1542
+ 'if [ ! -f "$STATE_FILE" ]; then',
1543
+ ' echo "[scale-engine] no workflow state found. For M/L work run: bash scripts/workflow/new-task.sh <task-slug> M"',
1544
+ ' exit 0',
1545
+ 'fi',
1546
+ '',
1547
+ 'if ! command -v python3 >/dev/null 2>&1; then',
1548
+ ' exit 0',
1549
+ 'fi',
1550
+ '',
1551
+ 'LEVEL="$(python3 "$PY_STATE" get "$STATE_FILE" level S 2>/dev/null || echo S)"',
1552
+ 'FILE_COUNT="$(python3 "$PY_STATE" get "$STATE_FILE" file_count 0 2>/dev/null || echo 0)"',
1553
+ '',
1554
+ 'case "$LEVEL" in',
1555
+ ' M|L|CRITICAL)',
1556
+ ' if [ "${FILE_COUNT:-0}" -lt 3 ]; then',
1557
+ ' echo "[scale-engine] M/L/CRITICAL work should record exploration of at least 3 relevant files before editing source."',
1558
+ ' echo "[scale-engine] run: bash scripts/workflow/explore.sh <files...> \'<main contradiction>\'"',
1559
+ ' exit 2',
1560
+ ' fi',
1561
+ ' ;;',
1562
+ 'esac',
1563
+ '',
1564
+ 'exit 0',
1565
+ ]);
1566
+ }
1567
+ function scaleEngineTddHook() {
1568
+ return shellScript([
1569
+ '#!/usr/bin/env bash',
1570
+ 'set -euo pipefail',
1571
+ '',
1572
+ 'FILE_PATH="${CLAUDE_FILE_PATH:-${1:-}}"',
1573
+ 'if [ -z "$FILE_PATH" ]; then',
1574
+ ' exit 0',
1575
+ 'fi',
1576
+ '',
1577
+ 'case "$FILE_PATH" in',
1578
+ ' src/*.ts|src/**/*.ts) ;;',
1579
+ ' *) exit 0 ;;',
1580
+ 'esac',
1581
+ '',
1582
+ 'case "$FILE_PATH" in',
1583
+ ' *.test.ts|*.spec.ts|src/api/cli.ts) exit 0 ;;',
1584
+ 'esac',
1585
+ '',
1586
+ 'BASENAME="$(basename "$FILE_PATH" .ts)"',
1587
+ 'if ! find tests src -name "*${BASENAME}*.test.ts" -o -name "*${BASENAME}*.spec.ts" 2>/dev/null | grep -q .; then',
1588
+ ' echo "[scale-engine] test evidence warning: changed $FILE_PATH without a nearby *${BASENAME}*.test.ts file."',
1589
+ 'fi',
1590
+ '',
1591
+ 'exit 0',
1592
+ ]);
1593
+ }
1594
+ function scaleEngineContextHook() {
1595
+ return shellScript([
1596
+ '#!/usr/bin/env bash',
1597
+ 'set -euo pipefail',
1598
+ '',
1599
+ 'FILE_PATH="${CLAUDE_FILE_PATH:-${1:-}}"',
1600
+ 'if [ -z "$FILE_PATH" ] || [ ! -f "$FILE_PATH" ]; then',
1601
+ ' exit 0',
1602
+ 'fi',
1603
+ '',
1604
+ 'case "$FILE_PATH" in',
1605
+ ' src/*.ts|src/**/*.ts) ;;',
1606
+ ' *) exit 0 ;;',
1607
+ 'esac',
1608
+ '',
1609
+ 'if grep -Eq "(fetch\\\\(|execa\\\\(|spawn\\\\(|execFile\\\\(|readFileSync\\\\(|writeFileSync\\\\()" "$FILE_PATH" 2>/dev/null; then',
1610
+ ' if ! grep -Eq "(timeout|AbortController|try \\\\{|catch \\\\{|safe|validate|z\\\\.)" "$FILE_PATH" 2>/dev/null; then',
1611
+ ' echo "[scale-engine] context warning: $FILE_PATH touches IO/process APIs; check timeout, validation, and error handling."',
1612
+ ' fi',
1613
+ 'fi',
1614
+ '',
1615
+ 'exit 0',
1616
+ ]);
1617
+ }
1618
+ function scaleEngineRepoClaudeWorkflow() {
1619
+ return `${JSON.stringify({
1620
+ version: '2.0',
1621
+ project: 'scale-engine',
1622
+ description: 'Repository workflow for developing scale-engine itself.',
1623
+ currentPhase: 'idle',
1624
+ currentTier: 'standard',
1625
+ phaseHistory: [],
1626
+ gates: {
1627
+ G1_explore: {
1628
+ status: 'pending',
1629
+ description: 'Explore current repo state and record the main contradiction.',
1630
+ verification: 'bash scripts/gates/G1-verify.sh',
1631
+ autoCheck: false,
1632
+ verifiedAt: null,
1633
+ },
1634
+ G2_plan: {
1635
+ status: 'pending',
1636
+ description: 'Plan includes scope, risk, rollback, and reality check.',
1637
+ verification: 'bash scripts/gates/G2-verify.sh',
1638
+ autoCheck: false,
1639
+ verifiedAt: null,
1640
+ },
1641
+ G3_tdd: {
1642
+ status: 'pending',
1643
+ description: 'Behavior changes in src/ should be accompanied by test changes.',
1644
+ verification: 'bash scripts/gates/G3-verify.sh',
1645
+ autoCheck: true,
1646
+ verifiedAt: null,
1647
+ },
1648
+ G4_lint: {
1649
+ status: 'pending',
1650
+ description: 'Workflow scripts parse and required helper files exist.',
1651
+ verification: 'bash scripts/gates/G4-verify.sh',
1652
+ autoCheck: true,
1653
+ verifiedAt: null,
1654
+ },
1655
+ G5_test: {
1656
+ status: 'pending',
1657
+ description: 'Repository lint, typecheck, test, and build pass.',
1658
+ verification: 'bash scripts/gates/G5-verify.sh',
1659
+ autoCheck: true,
1660
+ verifiedAt: null,
1661
+ },
1662
+ G6_artifacts: {
1663
+ status: 'pending',
1664
+ description: 'Task evidence and diff hygiene are complete.',
1665
+ verification: 'bash scripts/gates/G6-verify.sh',
1666
+ autoCheck: true,
1667
+ verifiedAt: null,
1668
+ },
1669
+ G7_security: {
1670
+ status: 'pending',
1671
+ description: 'Security validation passes or is explicitly blocked.',
1672
+ verification: 'bash scripts/gates/G7-verify.sh',
1673
+ autoCheck: false,
1674
+ verifiedAt: null,
1675
+ },
1676
+ G8_docs: {
1677
+ status: 'pending',
1678
+ description: 'Changed markdown and workflow artifacts meet documentation hygiene rules.',
1679
+ verification: 'bash scripts/gates/G8-verify.sh',
1680
+ autoCheck: true,
1681
+ verifiedAt: null,
1682
+ },
1683
+ },
1684
+ tierConfig: {
1685
+ sandbox: {
1686
+ flow: ['execute', 'verify'],
1687
+ gates: ['G4', 'G5'],
1688
+ description: 'Small local changes.',
1689
+ },
1690
+ standard: {
1691
+ flow: ['explore', 'plan', 'execute', 'verify', 'consolidate'],
1692
+ gates: ['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G8'],
1693
+ description: 'Default repository workflow.',
1694
+ },
1695
+ critical: {
1696
+ flow: ['explore', 'plan', 'review', 'execute', 'verify', 'security', 'consolidate'],
1697
+ gates: ['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8'],
1698
+ description: 'Release, security, or destructive changes.',
1699
+ },
1700
+ },
1701
+ autoEscalation: {
1702
+ enabled: true,
1703
+ rules: [
1704
+ {
1705
+ pattern: 'auth|security|token|credential|oauth|permission',
1706
+ escalateTo: 'critical',
1707
+ reason: 'Security-sensitive change',
1708
+ },
1709
+ {
1710
+ pattern: 'release|publish|tag|npm',
1711
+ escalateTo: 'critical',
1712
+ reason: 'Release-sensitive change',
1713
+ },
1714
+ ],
1715
+ },
1716
+ lastUpdated: '2026-05-20T00:00:00Z',
1717
+ }, null, 2)}\n`;
1718
+ }
1719
+ function scaleEngineRepoAgentsMd() {
1720
+ return `# AGENTS.md
1721
+
1722
+ 本文件是 \`scale-engine\` 仓库的工程化工作流入口,面向在本仓库里直接开发 \`scale-engine\` 本身的 Agent 和维护者。
1723
+
1724
+ ## 先读
1725
+
1726
+ 1. \`README.md\`
1727
+ 2. \`docs/guides/GETTING_STARTED.md\`
1728
+ 3. \`docs/guides/DEVELOPMENT_WORKFLOW.md\`
1729
+ 4. \`docs/workflow/README.md\`
1730
+ 5. \`.scale/workspace.json\`
1731
+
1732
+ ## 工作原则
1733
+
1734
+ - 先读现状,再改文件;不要把 scaffold 的默认假设直接覆盖到本仓库现实。
1735
+ - 重要规则优先落到脚本、门禁、配置和模板,不只停留在口头约定。
1736
+ - 未运行验证,不得声称通过;\`dry-run\` 只代表入口可调度,不代表质量通过。
1737
+ - 需要执行 shell 命令时,优先使用 \`rtk\` 前缀。
1738
+ - 不覆盖用户已有未提交改动,不把本地 worktree、缓存、日志、截图混进提交。
1739
+
1740
+ ## 推荐入口
1741
+
1742
+ \`\`\`bash
1743
+ make preflight
1744
+ make new-task NAME=workflow-adaptation LEVEL=M
1745
+ make plan NAME=workflow-adaptation LEVEL=M
1746
+ make explore FILES='AGENTS.md CLAUDE.md README.md' MSG='main contradiction'
1747
+ make gate-workflow
1748
+ make gate-quality
1749
+ make verify PROFILE=default
1750
+ make bootstrap-scale
1751
+ make workflow-upgrade-check
1752
+ make workflow-upgrade-plan
1753
+ make workflow-aios-adopt
1754
+ \`\`\`
1755
+
1756
+ PowerShell:
1757
+
1758
+ \`\`\`powershell
1759
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/verify.ps1 -Profile default
1760
+ \`\`\`
1761
+
1762
+ ## 任务等级
1763
+
1764
+ | Level | 场景 | 最低要求 |
1765
+ | --- | --- | --- |
1766
+ | S | typo、小范围文档、纯注释 | 读相关文件并运行最小相关验证 |
1767
+ | M | 常规 bug、小功能、脚本或治理优化 | 记录 explore/plan/verification/summary |
1768
+ | L | 跨模块、跨流程、模板体系或发布链路调整 | 完整计划、风险、回滚、评审证据 |
1769
+ | CRITICAL | 安全、权限、发布、破坏性操作 | 人工确认、完整验证、安全检查 |
1770
+
1771
+ ## 交付要求
1772
+
1773
+ 最终汇报至少说明:
1774
+
1775
+ - 改了什么。
1776
+ - 实际运行了哪些验证命令,结果是什么。
1777
+ - 哪些地方未验证,为什么。
1778
+ - 如果工作流规则变了,同步更新了哪些文档和配置。
1779
+ `;
1780
+ }
1781
+ function scaleEngineRepoClaudeMd() {
1782
+ return `# CLAUDE.md
1783
+
1784
+ Claude / Codex 在本仓库开发 \`scale-engine\` 时,默认遵循 \`AGENTS.md\`。
1785
+
1786
+ ## 先读
1787
+
1788
+ 1. \`AGENTS.md\`
1789
+ 2. \`docs/guides/GETTING_STARTED.md\`
1790
+ 3. \`docs/guides/DEVELOPMENT_WORKFLOW.md\`
1791
+ 4. \`docs/workflow/README.md\`
1792
+
1793
+ ## 常用命令
1794
+
1795
+ \`\`\`bash
1796
+ make preflight
1797
+ make gate-workflow
1798
+ make gate-quality
1799
+ make verify PROFILE=default
1800
+ make scale-smoke TASK='workflow adaptation' FILES='AGENTS.md,README.md'
1801
+ make workflow-upgrade-check
1802
+ make workflow-upgrade-plan
1803
+ make workflow-aios-adopt
1804
+ \`\`\`
1805
+
1806
+ ## 约束
1807
+
1808
+ - 没有实际验证结果,不说“已通过”。
1809
+ - 不确定的事实明确标记为 \`[UNCERTAIN]\`。
1810
+ - 修改前先看 Git 状态。
1811
+ - 需要 shell 命令时优先用 \`rtk\` 前缀。
1812
+ `;
1813
+ }
1814
+ function scaleEngineRepoMakefile() {
1815
+ return `.PHONY: help preflight new-task plan explore checkpoint gate gate-workflow gate-quality resume status lint-scaffold verify verify-list validate bootstrap-scale bootstrap-scale-install bootstrap-scale-latest workflow-upgrade-check workflow-upgrade-plan workflow-upgrade-apply workflow-upgrade-rollback workflow-upgrade-verify workflow-aios-adopt scale-version scale-mode scale-context scale-codegraph scale-eval scale-radar scale-dashboard scale-smoke
1816
+
1817
+ SCALE ?= scale
1818
+ SCALE_VERSION ?= locked
1819
+ TASK ?= scale-engine workflow adaptation
1820
+ FILES ?= AGENTS.md,CLAUDE.md,README.md
1821
+ LEVEL ?= M
1822
+ PHASE ?= plan
1823
+ SERVICES ?=
1824
+ BUDGET ?= 2400
1825
+
1826
+ help:
1827
+ \t@echo "make preflight | make new-task NAME=x LEVEL=M | make explore FILES='...' MSG='...'"
1828
+ \t@echo "make plan NAME=x LEVEL=M | make gate-workflow | make gate-quality | make verify PROFILE=default"
1829
+ \t@echo "make bootstrap-scale | make workflow-upgrade-check | make workflow-upgrade-plan | make workflow-aios-adopt"
1830
+
1831
+ gate:
1832
+ \tbash scripts/gates/all.sh --all
1833
+
1834
+ gate-workflow:
1835
+ \tbash scripts/gates/all.sh --workflow
1836
+
1837
+ gate-quality:
1838
+ \tbash scripts/gates/all.sh --quality
1839
+
1840
+ new-task:
1841
+ \t@if [ -z "$(NAME)" ]; then echo "usage: make new-task NAME=x LEVEL=M"; exit 1; fi
1842
+ \tbash scripts/workflow/new-task.sh "$(NAME)" "$(or $(LEVEL),M)"
1843
+
1844
+ plan:
1845
+ \t@if [ -z "$(NAME)" ]; then echo "usage: make plan NAME=x LEVEL=M"; exit 1; fi
1846
+ \tbash scripts/workflow/plan.sh "$(NAME)" "$(or $(LEVEL),M)"
1847
+
1848
+ explore:
1849
+ \t@if [ -z "$(FILES)" ]; then echo "usage: make explore FILES='file1 file2' MSG='main contradiction'"; exit 1; fi
1850
+ \tbash scripts/workflow/explore.sh $(FILES) "$(MSG)"
1851
+
1852
+ checkpoint:
1853
+ \tbash scripts/workflow/checkpoint.sh "$(or $(PHASE),execute)"
1854
+
1855
+ resume:
1856
+ \tbash scripts/workflow/resume.sh
1857
+
1858
+ status: resume
1859
+
1860
+ lint-scaffold:
1861
+ \tbash scripts/workflow/lint-scaffold.sh
1862
+
1863
+ verify:
1864
+ \tbash scripts/workflow/verify.sh --profile "$(or $(PROFILE),default)"
1865
+
1866
+ verify-list:
1867
+ \tbash scripts/workflow/verify.sh --list
1868
+
1869
+ validate:
1870
+ \tbash scripts/validate-config.sh
1871
+
1872
+ preflight:
1873
+ \tbash scripts/preflight/all.sh
1874
+
1875
+ bootstrap-scale:
1876
+ \tpowershell -NoProfile -ExecutionPolicy Bypass -File scripts/bootstrap-scale.ps1 -Version "$(or $(SCALE_VERSION),locked)"
1877
+
1878
+ bootstrap-scale-install:
1879
+ \tpowershell -NoProfile -ExecutionPolicy Bypass -File scripts/bootstrap-scale.ps1 -Version "$(or $(SCALE_VERSION),locked)" -AutoInstall
1880
+
1881
+ bootstrap-scale-latest:
1882
+ \tpowershell -NoProfile -ExecutionPolicy Bypass -File scripts/bootstrap-scale.ps1 -Version latest -AutoInstall
1883
+
1884
+ workflow-upgrade-check:
1885
+ \t$(SCALE) upgrade check --dir .
1886
+
1887
+ workflow-upgrade-plan:
1888
+ \t$(SCALE) upgrade plan --dir . --html
1889
+
1890
+ workflow-upgrade-apply:
1891
+ \t$(SCALE) upgrade apply --dir . --confirm
1892
+
1893
+ workflow-upgrade-rollback:
1894
+ \t$(SCALE) upgrade rollback --dir .
1895
+
1896
+ workflow-upgrade-verify:
1897
+ \t$(SCALE) preflight --dir . --service all --preflight-profile quick
1898
+
1899
+ workflow-aios-adopt:
1900
+ \t$(SCALE) ai-os adopt --dir . --task "$(TASK)" --files "$(FILES)" --level "$(LEVEL)" --budget "$(BUDGET)" --lang zh
1901
+
1902
+ scale-version:
1903
+ \t$(SCALE) --version
1904
+
1905
+ scale-mode:
1906
+ \t$(SCALE) governance mode --task "$(TASK)" --files "$(FILES)"
1907
+
1908
+ scale-context:
1909
+ \t$(SCALE) context budget --dir .
1910
+
1911
+ scale-codegraph:
1912
+ \t$(SCALE) codegraph status --dir .
1913
+
1914
+ scale-eval:
1915
+ \t$(SCALE) eval run --dir .
1916
+
1917
+ scale-radar:
1918
+ \t$(SCALE) skill radar --dir . --task "$(TASK)" --phase "$(PHASE)" --level "$(LEVEL)" --files "$(FILES)" --services "$(SERVICES)"
1919
+
1920
+ scale-dashboard:
1921
+ \t$(SCALE) artifact dashboard --dir . --lang zh
1922
+
1923
+ scale-smoke:
1924
+ \tpowershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/scale-smoke.ps1 -Task "$(TASK)" -Files "$(FILES)" -Level "$(LEVEL)" -Phase "$(PHASE)" -Services "$(SERVICES)"
1925
+ `;
1926
+ }
1927
+ function scaleEngineRepoGettingStartedGuide() {
1928
+ return `# SCALE Engine 仓库上手
1929
+
1930
+ 这份文档面向要开发 \`scale-engine\` 仓库本身的人,不是面向安装 CLI 的最终用户。
1931
+
1932
+ ## 15 分钟路径
1933
+
1934
+ 1. 先读根目录 [README.md](../../README.md)。
1935
+ 2. 跑本仓库 workflow 预检:
1936
+
1937
+ \`\`\`bash
1938
+ make preflight
1939
+ \`\`\`
1940
+
1941
+ 3. 看当前可用验证面:
1942
+
1943
+ \`\`\`bash
1944
+ make verify-list
1945
+ \`\`\`
1946
+
1947
+ 4. 建一个任务骨架并记录探索:
1948
+
1949
+ \`\`\`bash
1950
+ make new-task NAME=example LEVEL=M
1951
+ make plan NAME=example LEVEL=M
1952
+ make explore FILES='AGENTS.md CLAUDE.md README.md package.json' MSG='main contradiction'
1953
+ make gate-workflow
1954
+ \`\`\`
1955
+
1956
+ 5. 做完改动后跑质量面:
1957
+
1958
+ \`\`\`bash
1959
+ make gate-quality
1960
+ make verify PROFILE=default
1961
+ git diff --check
1962
+ \`\`\`
1963
+
1964
+ ## 你应该看到什么
1965
+
1966
+ - \`.scale/workspace.json\` 明确了 \`dev -> master\` 的仓库分支策略。
1967
+ - \`.agent/project.json\` 定义了本仓库的 Node/TypeScript 验证命令。
1968
+ - \`scripts/gates/*\` 和 \`scripts/workflow/*\` 不是说明文档,而是可执行入口。
1969
+ - \`.planning/tasks/<date>-<task>/\` 用于任务级证据,不再把临时过程写进 \`docs/\`。
1970
+
1971
+ ## 常见误区
1972
+
1973
+ - \`make gate-workflow\` 通过,不代表代码质量通过。
1974
+ - \`make gate-quality\` 通过,也不代表你已经记录了风险、回滚和未验证项。
1975
+ - \`G8\` 会检查改动过的 Markdown 和工作流文档卫生,不替代业务验证。
1976
+ - \`--dry-run\` 只能证明入口存在,不能写成“测试通过”。
1977
+ - 不要把 \`.claude/worktrees/\`、\`.agent/state/\`、日志或截图提交进仓库。
1978
+ `;
1979
+ }
1980
+ function scaleEngineRepoDevelopmentWorkflowGuide() {
1981
+ return `# SCALE Engine 开发工作流
1982
+
1983
+ 这份文档说明日常如何在 \`scale-engine\` 仓库里按最新工程化工作流工作。
1984
+
1985
+ ## 标准闭环
1986
+
1987
+ \`\`\`text
1988
+ 探索 -> 规划 -> 执行 -> 验证 -> 沉淀
1989
+ \`\`\`
1990
+
1991
+ ## 1. 探索
1992
+
1993
+ 目标:先弄清真实仓库状态,再动手。
1994
+
1995
+ \`\`\`bash
1996
+ make new-task NAME=task-slug LEVEL=M
1997
+ make plan NAME=task-slug LEVEL=M
1998
+ make explore FILES='AGENTS.md CLAUDE.md README.md package.json src/api/cli.ts' MSG='main contradiction'
1999
+ make gate-workflow
2000
+ \`\`\`
2001
+
2002
+ 最低要求:
2003
+
2004
+ - 至少读 3 个相关文件。
2005
+ - 写清主矛盾,而不是只列文件名。
2006
+ - 对不确定项明确标出,不靠猜。
2007
+
2008
+ ## 2. 规划
2009
+
2010
+ 在 \`.planning/tasks/<task>/plan.md\` 里至少补齐这些信息:
2011
+
2012
+ - scope / boundary
2013
+ - acceptance criteria
2014
+ - exception / failure path
2015
+ - rollback / fallback
2016
+ - verification commands
2017
+
2018
+ 如果任务改动发布、权限、安全、凭据、npm 发版或破坏性行为,按 \`CRITICAL\` 处理。
2019
+
2020
+ ## 3. 执行
2021
+
2022
+ 原则:
2023
+
2024
+ - 最小必要修改。
2025
+ - 优先复用现有脚本和 \`npm\` 命令,不再发明第二套命令。
2026
+ - 改 \`src/\` 行为时,原则上同步改 \`tests/\`,否则会被 G3 拦下。
2027
+
2028
+ ## 4. 验证
2029
+
2030
+ 推荐顺序:
2031
+
2032
+ \`\`\`bash
2033
+ make gate-quality
2034
+ make verify PROFILE=default
2035
+ git diff --check
2036
+ \`\`\`
2037
+
2038
+ 其中:
2039
+
2040
+ - \`G4\` 验证 workflow 脚本本身可解析。
2041
+ - \`G5\` 运行 \`lint + typecheck + test + build\`。
2042
+ - \`G6\` 检查任务证据和 diff hygiene。
2043
+ - \`G7\` 是安全面,默认走 \`npm audit --audit-level=high\`。
2044
+ - \`G8\` 检查 Markdown 与工作流文档的基础卫生。
2045
+
2046
+ ## 5. 沉淀
2047
+
2048
+ 应该留下:
2049
+
2050
+ - \`verification.md\`
2051
+ - \`review.md\`
2052
+ - \`summary.md\`
2053
+ - 必要的长期规则文档更新
2054
+
2055
+ 不应该留下:
2056
+
2057
+ - 临时日志
2058
+ - worktree 状态
2059
+ - 截图、trace、缓存
2060
+ - 只对一次任务有意义的中间文件
2061
+ `;
2062
+ }
2063
+ function scaleEngineRepoWorkflowReadme() {
2064
+ return `# SCALE Engine 仓库工作流
2065
+
2066
+ 这里描述的是 \`scale-engine\` 仓库自身的工程化工作流,不是终端用户如何使用 \`scale\` CLI。
2067
+
2068
+ ## 入口
2069
+
2070
+ - 新维护者先读 [GETTING_STARTED.md](../guides/GETTING_STARTED.md)
2071
+ - 日常开发读 [DEVELOPMENT_WORKFLOW.md](../guides/DEVELOPMENT_WORKFLOW.md)
2072
+ - 机器可读分支策略看 [../../.scale/workspace.json](../../.scale/workspace.json)
2073
+
2074
+ ## 最小命令面
2075
+
2076
+ \`\`\`bash
2077
+ make preflight
2078
+ make new-task NAME=workflow-adaptation LEVEL=M
2079
+ make plan NAME=workflow-adaptation LEVEL=M
2080
+ make explore FILES='AGENTS.md CLAUDE.md README.md package.json' MSG='main contradiction'
2081
+ make gate-workflow
2082
+ make gate-quality
2083
+ make verify PROFILE=default
2084
+ \`\`\`
2085
+
2086
+ PowerShell:
2087
+
2088
+ \`\`\`powershell
2089
+ powershell -NoProfile -ExecutionPolicy Bypass -File scripts/workflow/verify.ps1 -Profile default
2090
+ \`\`\`
2091
+
2092
+ ## 门禁说明
2093
+
2094
+ | Gate | 作用 |
2095
+ | --- | --- |
2096
+ | G1 | 探索是否记录到状态文件,且至少读了 3 个文件 |
2097
+ | G2 | 计划是否包含边界、异常、回滚、现实校验 |
2098
+ | G3 | \`src/\` 行为改动是否伴随测试改动 |
2099
+ | G4 | workflow 脚本是否可解析 |
2100
+ | G5 | \`lint + typecheck + test + build\` 是否通过 |
2101
+ | G6 | 任务证据和 \`git diff --check\` 是否通过 |
2102
+ | G7 | 安全面是否通过 |
2103
+ | G8 | Markdown 与工作流文档是否符合基础卫生规则 |
2104
+
2105
+ ## 分支策略
2106
+
2107
+ 当前仓库采用 GitLab Flow 风格:
2108
+
2109
+ \`\`\`text
2110
+ feature/fix/docs/chore/codex -> dev -> master
2111
+ \`\`\`
2112
+
2113
+ 约束:
2114
+
2115
+ - \`dev\` 是集成分支。
2116
+ - \`master\` 是生产基线。
2117
+ - \`release/*\` 只在必须从生产基线隔离发版时使用。
2118
+ - \`hotfix/*\` 用于生产紧急修复,并要求回流 \`dev\`。
2119
+
2120
+ ## 升级入口
2121
+
2122
+ 如果要把仓库工作流继续升级到更新的 \`scale-engine\` 版本,先跑:
2123
+
2124
+ \`\`\`bash
2125
+ make bootstrap-scale
2126
+ make workflow-upgrade-check
2127
+ make workflow-upgrade-plan
2128
+ make workflow-aios-adopt
2129
+ \`\`\`
2130
+
2131
+ 先审计划,再决定是否 \`make workflow-upgrade-apply\`。如果计划提示 AI OS runtime 尚未接入,使用 \`make workflow-aios-adopt\` 生成运行态目录、首份 dry-run、benchmark 和 doctor 报告。
2132
+ `;
2133
+ }
2134
+ //# sourceMappingURL=GovernanceTemplatePacks.js.map