attention-manifest-protocol 0.4.1 → 0.4.3

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 (829) hide show
  1. package/CHANGELOG.md +341 -283
  2. package/CHANGELOG.zh-CN.md +51 -8
  3. package/README.md +250 -169
  4. package/README.zh-CN.md +251 -169
  5. package/lib/assignment/assign.d.ts +102 -0
  6. package/lib/assignment/assign.js +556 -0
  7. package/lib/assignment/binding.d.ts +103 -0
  8. package/lib/assignment/binding.js +575 -0
  9. package/lib/assignment/errors.d.ts +14 -0
  10. package/lib/assignment/errors.js +16 -0
  11. package/lib/assignment/guards.d.ts +18 -0
  12. package/lib/assignment/guards.js +28 -0
  13. package/lib/assignment/index.d.ts +10 -0
  14. package/lib/assignment/index.js +10 -0
  15. package/lib/assignment/types.d.ts +169 -0
  16. package/lib/assignment/types.js +1 -0
  17. package/lib/attention/budget.d.ts +1 -1
  18. package/lib/attention/budget.js +31 -9
  19. package/lib/bayes/engine.js +2 -1
  20. package/lib/bayes/reliability.js +25 -10
  21. package/lib/boundary/frame.d.ts +10 -4
  22. package/lib/boundary/frame.js +346 -109
  23. package/lib/boundary/kinds.d.ts +11 -0
  24. package/lib/boundary/kinds.js +33 -0
  25. package/lib/boundary/refTable.d.ts +19 -9
  26. package/lib/boundary/refTable.js +128 -30
  27. package/lib/boundary/toolCall.d.ts +22 -10
  28. package/lib/boundary/toolCall.js +798 -97
  29. package/lib/concept/conceptBudget.js +10 -1
  30. package/lib/concurrency/idempotency.d.ts +4 -3
  31. package/lib/concurrency/idempotency.js +57 -13
  32. package/lib/concurrency/retry.js +18 -3
  33. package/lib/context/agentContext.d.ts +13 -0
  34. package/lib/context/agentContext.js +14 -1
  35. package/lib/context/ast.d.ts +4 -1
  36. package/lib/context/ast.js +13 -3
  37. package/lib/context/contentStore.js +22 -9
  38. package/lib/context/contextBuilder.d.ts +457 -0
  39. package/lib/context/contextBuilder.js +1395 -0
  40. package/lib/context/contextPackage.d.ts +214 -0
  41. package/lib/context/contextPackage.js +191 -0
  42. package/lib/context/index.d.ts +14 -3
  43. package/lib/context/index.js +9 -1
  44. package/lib/context/relevance.d.ts +171 -0
  45. package/lib/context/relevance.js +250 -0
  46. package/lib/context/workspaceDiff.d.ts +105 -0
  47. package/lib/context/workspaceDiff.js +238 -0
  48. package/lib/context/workspaceService.d.ts +236 -1
  49. package/lib/context/workspaceService.js +1501 -73
  50. package/lib/cooperation/collaboration.d.ts +9 -0
  51. package/lib/cooperation/session.d.ts +4 -4
  52. package/lib/cooperation/session.js +3 -3
  53. package/lib/database/adapter/filesystemStore.d.ts +145 -0
  54. package/lib/database/adapter/filesystemStore.js +321 -0
  55. package/lib/database/adapter/index.d.ts +2 -0
  56. package/lib/database/adapter/index.js +2 -0
  57. package/lib/database/adapter/workspaceSessionStore.d.ts +118 -0
  58. package/lib/database/adapter/workspaceSessionStore.js +120 -0
  59. package/lib/database/entity/fileGraph.d.ts +53 -0
  60. package/lib/database/entity/fileGraph.js +15 -0
  61. package/lib/database/entity/fileTree.d.ts +76 -0
  62. package/lib/database/entity/fileTree.js +39 -0
  63. package/lib/database/entity/hook.d.ts +29 -0
  64. package/lib/database/entity/hook.js +18 -0
  65. package/lib/database/entity/index.d.ts +4 -0
  66. package/lib/database/entity/index.js +4 -0
  67. package/lib/database/entity/workspaceSession.d.ts +53 -0
  68. package/lib/database/entity/workspaceSession.js +28 -0
  69. package/lib/database/repository/fileAnnotationRepository.d.ts +75 -0
  70. package/lib/database/repository/fileAnnotationRepository.js +109 -0
  71. package/lib/database/repository/fileGraphRepository.d.ts +188 -0
  72. package/lib/database/repository/fileGraphRepository.js +648 -0
  73. package/lib/database/repository/fileNodeRepository.d.ts +116 -0
  74. package/lib/database/repository/fileNodeRepository.js +263 -0
  75. package/lib/database/repository/fileOutlineRepository.d.ts +40 -0
  76. package/lib/database/repository/fileOutlineRepository.js +104 -0
  77. package/lib/database/repository/fileWriteRepository.d.ts +41 -0
  78. package/lib/database/repository/fileWriteRepository.js +93 -0
  79. package/lib/database/repository/hookRepository.d.ts +67 -0
  80. package/lib/database/repository/hookRepository.js +150 -0
  81. package/lib/database/repository/index.d.ts +7 -0
  82. package/lib/database/repository/index.js +7 -0
  83. package/lib/database/repository/workspaceSessionRepository.d.ts +134 -0
  84. package/lib/database/repository/workspaceSessionRepository.js +327 -0
  85. package/lib/database/service/database.d.ts +14 -0
  86. package/lib/database/service/database.js +21 -0
  87. package/lib/database/sql/schema.js +187 -0
  88. package/lib/database/store/database.js +6 -1
  89. package/lib/delegate/team.d.ts +5 -0
  90. package/lib/delegate/team.js +83 -20
  91. package/lib/discover/classify.d.ts +20 -0
  92. package/lib/discover/classify.js +85 -0
  93. package/lib/discover/host.d.ts +20 -0
  94. package/lib/discover/host.js +89 -0
  95. package/lib/discover/index.d.ts +11 -0
  96. package/lib/discover/index.js +11 -0
  97. package/lib/discover/kinds.d.ts +14 -0
  98. package/lib/discover/kinds.js +23 -0
  99. package/lib/discover/tree.d.ts +7 -0
  100. package/lib/discover/tree.js +432 -0
  101. package/lib/discover/types.d.ts +115 -0
  102. package/lib/discover/types.js +1 -0
  103. package/lib/error/boundaryRejection.d.ts +1 -1
  104. package/lib/evaluation/agreement.js +2 -2
  105. package/lib/execution/handles.js +6 -0
  106. package/lib/execution/pin.js +2 -2
  107. package/lib/file/cfb.d.ts +56 -0
  108. package/lib/file/cfb.js +396 -0
  109. package/lib/file/dependency.d.ts +151 -0
  110. package/lib/file/dependency.js +568 -0
  111. package/lib/file/directory.d.ts +34 -0
  112. package/lib/file/directory.js +141 -0
  113. package/lib/file/errors.d.ts +20 -0
  114. package/lib/file/errors.js +18 -0
  115. package/lib/file/exportGraph.d.ts +31 -0
  116. package/lib/file/exportGraph.js +554 -0
  117. package/lib/file/file.d.ts +40 -0
  118. package/lib/file/file.js +339 -0
  119. package/lib/file/importGraph.d.ts +121 -0
  120. package/lib/file/importGraph.js +1022 -0
  121. package/lib/file/index.d.ts +45 -0
  122. package/lib/file/index.js +30 -0
  123. package/lib/file/metadata.d.ts +66 -0
  124. package/lib/file/metadata.js +470 -0
  125. package/lib/file/path.d.ts +60 -0
  126. package/lib/file/path.js +259 -0
  127. package/lib/file/read.d.ts +168 -0
  128. package/lib/file/read.js +541 -0
  129. package/lib/file/runtime.d.ts +95 -0
  130. package/lib/file/runtime.js +150 -0
  131. package/lib/file/service.d.ts +227 -0
  132. package/lib/file/service.js +663 -0
  133. package/lib/file/syntaxTree.d.ts +7 -0
  134. package/lib/file/syntaxTree.js +38 -0
  135. package/lib/file/time.d.ts +38 -0
  136. package/lib/file/time.js +44 -0
  137. package/lib/file/tree.d.ts +53 -0
  138. package/lib/file/tree.js +417 -0
  139. package/lib/file/types.d.ts +371 -0
  140. package/lib/file/types.js +1 -0
  141. package/lib/file/write.d.ts +159 -0
  142. package/lib/file/write.js +1028 -0
  143. package/lib/file/zip.d.ts +35 -0
  144. package/lib/file/zip.js +349 -0
  145. package/lib/fingerprint/algorithm.d.ts +97 -0
  146. package/lib/fingerprint/algorithm.js +271 -0
  147. package/lib/fingerprint/bytes.d.ts +18 -0
  148. package/lib/fingerprint/bytes.js +31 -0
  149. package/lib/fingerprint/error.d.ts +73 -0
  150. package/lib/fingerprint/error.js +86 -0
  151. package/lib/fingerprint/file.d.ts +71 -0
  152. package/lib/fingerprint/file.js +254 -0
  153. package/lib/fingerprint/index.d.ts +37 -0
  154. package/lib/fingerprint/index.js +12 -0
  155. package/lib/fingerprint/json.d.ts +41 -0
  156. package/lib/fingerprint/json.js +94 -0
  157. package/lib/fingerprint/number.d.ts +32 -0
  158. package/lib/fingerprint/number.js +95 -0
  159. package/lib/fingerprint/policy.d.ts +54 -0
  160. package/lib/fingerprint/policy.js +50 -0
  161. package/lib/fingerprint/preimage.d.ts +84 -0
  162. package/lib/fingerprint/preimage.js +133 -0
  163. package/lib/fingerprint/raw.d.ts +26 -0
  164. package/lib/fingerprint/raw.js +45 -0
  165. package/lib/fingerprint/ref.d.ts +39 -0
  166. package/lib/fingerprint/ref.js +178 -0
  167. package/lib/fingerprint/text.d.ts +42 -0
  168. package/lib/fingerprint/text.js +155 -0
  169. package/lib/fingerprint/tree.d.ts +56 -0
  170. package/lib/fingerprint/tree.js +288 -0
  171. package/lib/fingerprint/verify.d.ts +20 -0
  172. package/lib/fingerprint/verify.js +99 -0
  173. package/lib/global/filesystem.d.ts +43 -0
  174. package/lib/global/filesystem.js +75 -0
  175. package/lib/global/index.d.ts +8 -0
  176. package/lib/global/index.js +8 -0
  177. package/lib/global/service.d.ts +51 -0
  178. package/lib/global/service.js +98 -0
  179. package/lib/governance/transport.js +18 -6
  180. package/lib/hook/ast.d.ts +29 -0
  181. package/lib/hook/ast.js +22 -0
  182. package/lib/hook/code.d.ts +55 -0
  183. package/lib/hook/code.js +47 -0
  184. package/lib/hook/dependency.d.ts +45 -0
  185. package/lib/hook/dependency.js +28 -0
  186. package/lib/hook/diff.d.ts +114 -0
  187. package/lib/hook/diff.js +327 -0
  188. package/lib/hook/exportation.d.ts +31 -0
  189. package/lib/hook/exportation.js +24 -0
  190. package/lib/hook/file.d.ts +44 -0
  191. package/lib/hook/file.js +154 -0
  192. package/lib/hook/importation.d.ts +33 -0
  193. package/lib/hook/importation.js +22 -0
  194. package/lib/hook/index.d.ts +30 -0
  195. package/lib/hook/index.js +23 -0
  196. package/lib/hook/outline.d.ts +35 -0
  197. package/lib/hook/outline.js +27 -0
  198. package/lib/hook/project.d.ts +65 -0
  199. package/lib/hook/project.js +217 -0
  200. package/lib/hook/types.d.ts +114 -0
  201. package/lib/hook/types.js +407 -0
  202. package/lib/index.d.ts +9 -0
  203. package/lib/index.js +9 -0
  204. package/lib/lock/lease.js +28 -3
  205. package/lib/manifest/cardSign.d.ts +1 -1
  206. package/lib/manifest/cardSign.js +37 -7
  207. package/lib/manifest/federation.js +13 -6
  208. package/lib/manifest/trust.d.ts +2 -0
  209. package/lib/manifest/trust.js +27 -6
  210. package/lib/module/index.d.ts +4 -0
  211. package/lib/module/index.js +4 -0
  212. package/lib/module/mcp/client.js +21 -2
  213. package/lib/module/mcp/filesystemServer.d.ts +24 -0
  214. package/lib/module/mcp/filesystemServer.js +102 -0
  215. package/lib/module/mcp/http.js +32 -19
  216. package/lib/module/mcp/workspaceServer.js +20 -3
  217. package/lib/module/tool/filesystemExecutor.d.ts +18 -0
  218. package/lib/module/tool/filesystemExecutor.js +49 -0
  219. package/lib/module/tool/globalExecutor.d.ts +17 -0
  220. package/lib/module/tool/globalExecutor.js +39 -0
  221. package/lib/module/tool/globalFilesystemExecutor.d.ts +18 -0
  222. package/lib/module/tool/globalFilesystemExecutor.js +49 -0
  223. package/lib/module/tool/workspaceExecutor.d.ts +9 -0
  224. package/lib/module/tool/workspaceExecutor.js +16 -3
  225. package/lib/naming/aliases.d.ts +48 -0
  226. package/lib/naming/aliases.js +79 -0
  227. package/lib/naming/catalog.d.ts +117 -0
  228. package/lib/naming/catalog.js +108 -0
  229. package/lib/naming/grammar.d.ts +67 -0
  230. package/lib/naming/grammar.js +212 -0
  231. package/lib/naming/ids.d.ts +157 -0
  232. package/lib/naming/ids.js +119 -0
  233. package/lib/naming/index.d.ts +13 -0
  234. package/lib/naming/index.js +13 -0
  235. package/lib/outline/index.d.ts +9 -0
  236. package/lib/outline/index.js +8 -0
  237. package/lib/outline/office.d.ts +160 -0
  238. package/lib/outline/office.js +2375 -0
  239. package/lib/outline/officeBridge.d.ts +32 -0
  240. package/lib/outline/officeBridge.js +27 -0
  241. package/lib/outline/outline.d.ts +159 -0
  242. package/lib/outline/outline.js +837 -0
  243. package/lib/outline/outlineIndex.d.ts +97 -0
  244. package/lib/outline/outlineIndex.js +325 -0
  245. package/lib/outline/outlineKeywords.d.ts +59 -0
  246. package/lib/outline/outlineKeywords.js +143 -0
  247. package/lib/outline/outlineStrategies.d.ts +414 -0
  248. package/lib/outline/outlineStrategies.js +8324 -0
  249. package/lib/outline/reactOutline.d.ts +37 -0
  250. package/lib/outline/reactOutline.js +1070 -0
  251. package/lib/outline/shellOutline.d.ts +65 -0
  252. package/lib/outline/shellOutline.js +873 -0
  253. package/lib/outline/sqlOutline.d.ts +170 -0
  254. package/lib/outline/sqlOutline.js +1536 -0
  255. package/lib/outline/strategy.d.ts +46 -0
  256. package/lib/outline/strategy.js +1 -0
  257. package/lib/outline/types.d.ts +95 -0
  258. package/lib/outline/types.js +1 -0
  259. package/lib/outline/visualBasicOutline.d.ts +27 -0
  260. package/lib/outline/visualBasicOutline.js +750 -0
  261. package/lib/protocol/filesystem.d.ts +55 -0
  262. package/lib/protocol/filesystem.js +105 -0
  263. package/lib/protocol/global.d.ts +42 -0
  264. package/lib/protocol/global.js +63 -0
  265. package/lib/protocol/globalFilesystem.d.ts +40 -0
  266. package/lib/protocol/globalFilesystem.js +59 -0
  267. package/lib/protocol/index.d.ts +4 -0
  268. package/lib/protocol/index.js +4 -0
  269. package/lib/protocol/protocol.d.ts +4 -0
  270. package/lib/protocol/wire.js +5 -2
  271. package/lib/protocol/workspace.d.ts +305 -0
  272. package/lib/protocol/workspace.js +258 -0
  273. package/lib/receipt/receipt.d.ts +8 -0
  274. package/lib/registry/content.js +9 -3
  275. package/lib/runtime/kernelRuntime.js +9 -1
  276. package/lib/scenario/scenario.js +5 -4
  277. package/lib/semantic/canonical.d.ts +61 -0
  278. package/lib/semantic/canonical.js +135 -8
  279. package/lib/semantic/jsonValue.d.ts +31 -0
  280. package/lib/semantic/jsonValue.js +122 -0
  281. package/lib/semantic/sha256.js +3 -0
  282. package/lib/semantic/time.d.ts +14 -0
  283. package/lib/semantic/time.js +56 -0
  284. package/lib/session/context.d.ts +76 -0
  285. package/lib/session/context.js +419 -0
  286. package/lib/session/errors.d.ts +24 -0
  287. package/lib/session/errors.js +22 -0
  288. package/lib/session/identity.d.ts +24 -0
  289. package/lib/session/identity.js +56 -0
  290. package/lib/session/index.d.ts +14 -0
  291. package/lib/session/index.js +12 -0
  292. package/lib/session/registry.d.ts +130 -0
  293. package/lib/session/registry.js +908 -0
  294. package/lib/session/types.d.ts +227 -0
  295. package/lib/session/types.js +14 -0
  296. package/lib/structure/index.d.ts +1 -0
  297. package/lib/structure/index.js +1 -0
  298. package/lib/structure/trie.d.ts +88 -0
  299. package/lib/structure/trie.js +183 -0
  300. package/lib/syntax/byteIndex.d.ts +44 -0
  301. package/lib/syntax/byteIndex.js +148 -0
  302. package/lib/syntax/charset.d.ts +88 -0
  303. package/lib/syntax/charset.js +276 -0
  304. package/lib/syntax/index.d.ts +6 -0
  305. package/lib/syntax/index.js +5 -0
  306. package/lib/syntax/syntaxRegistry.d.ts +150 -0
  307. package/lib/syntax/syntaxRegistry.js +314 -0
  308. package/lib/syntax/syntaxTree.d.ts +106 -0
  309. package/lib/syntax/syntaxTree.js +668 -0
  310. package/lib/syntax/types.d.ts +15 -0
  311. package/lib/syntax/types.js +1 -0
  312. package/lib/types/common.d.ts +1 -1
  313. package/lib/window/index.d.ts +3 -0
  314. package/lib/window/index.js +1 -0
  315. package/package.json +72 -193
  316. package/.editorconfig +0 -12
  317. package/.prettierignore +0 -17
  318. package/MCP-Token/347/250/216/344/270/216/344/270/213/344/270/200/344/273/243/345/267/245/345/205/267/345/215/217/350/256/256.html +0 -1763
  319. package/docs/annotation-campaign-A.csv +0 -54
  320. package/docs/annotation-campaign-B.csv +0 -54
  321. package/docs/annotation-campaign.csv +0 -54
  322. package/docs/eval/annotations-A.jsonl +0 -16
  323. package/docs/eval/annotations.json +0 -122
  324. package/docs/eval/recorded-labels.json +0 -12
  325. package/docs/eval/replay-cases.json +0 -14
  326. package/docs/eval/replay-labels-b.json +0 -14
  327. package/docs/examples/attention-request.json +0 -16
  328. package/docs/examples/checkpoint.json +0 -15
  329. package/docs/examples/claim.json +0 -66
  330. package/docs/examples/collaboration.json +0 -66
  331. package/docs/examples/concept-checkpoint.json +0 -15
  332. package/docs/examples/concept-prune-plan.json +0 -45
  333. package/docs/examples/federation.json +0 -126
  334. package/docs/examples/frame-chain.json +0 -77
  335. package/docs/examples/ledger-snapshot.json +0 -108
  336. package/docs/examples/manifest.json +0 -77
  337. package/docs/examples/message.json +0 -19
  338. package/docs/examples/other-model.json +0 -45
  339. package/docs/examples/plan.json +0 -50
  340. package/docs/examples/prune-plan.json +0 -48
  341. package/docs/examples/receipt.json +0 -22
  342. package/docs/examples/runtime-run.json +0 -573
  343. package/docs/examples/team.json +0 -66
  344. package/docs/examples/verb-note.json +0 -11
  345. package/docs/probes/bayes-scores.json +0 -1452
  346. package/docs/probes/calibration-imported.json +0 -141
  347. package/docs/probes/context-ast-deepseek.json +0 -1577
  348. package/docs/probes/deepseek-probe.json +0 -917
  349. package/docs/probes/eval-recorded-replay.json +0 -597
  350. package/docs/probes/eval-replay.json +0 -124
  351. package/docs/probes/eval-summary.json +0 -42
  352. package/docs/probes/runtime-eval.json +0 -4230
  353. package/docs/schemas/collaboration.schema.json +0 -73
  354. package/docs/schemas/common.schema.json +0 -125
  355. package/docs/schemas/compaction.schema.json +0 -121
  356. package/docs/schemas/concept-compaction.schema.json +0 -73
  357. package/docs/schemas/concept.schema.json +0 -97
  358. package/docs/schemas/epistemic.schema.json +0 -178
  359. package/docs/schemas/federation.schema.json +0 -66
  360. package/docs/schemas/frame.schema.json +0 -86
  361. package/docs/schemas/ledger-snapshot.schema.json +0 -30
  362. package/docs/schemas/manifest.schema.json +0 -169
  363. package/docs/schemas/message.schema.json +0 -41
  364. package/docs/schemas/plan.schema.json +0 -189
  365. package/docs/schemas/receipt.schema.json +0 -45
  366. package/docs/schemas/social.schema.json +0 -153
  367. package/docs/schemas/team.schema.json +0 -56
  368. package/docs/schemas/verb.schema.json +0 -120
  369. package/eslint.config.mts +0 -96
  370. package/index.html +0 -13
  371. package/lib/context/workspaceProtocol.d.ts +0 -30
  372. package/lib/context/workspaceProtocol.js +0 -49
  373. package/prettier.config.mts +0 -37
  374. package/public/favicon.svg +0 -1
  375. package/public/icons.svg +0 -24
  376. package/src/attention/attention.ts +0 -347
  377. package/src/attention/budget.ts +0 -72
  378. package/src/attention/cognition.ts +0 -519
  379. package/src/attention/index.ts +0 -8
  380. package/src/attention/interrupts.ts +0 -228
  381. package/src/attention/resource.ts +0 -316
  382. package/src/attention/social.ts +0 -217
  383. package/src/attention/socialTypes.ts +0 -115
  384. package/src/authz/authz.ts +0 -305
  385. package/src/authz/index.ts +0 -1
  386. package/src/bayes/calibration.ts +0 -204
  387. package/src/bayes/calibrationRegistry.ts +0 -111
  388. package/src/bayes/calibrationSelection.ts +0 -154
  389. package/src/bayes/engine.ts +0 -532
  390. package/src/bayes/index.ts +0 -6
  391. package/src/bayes/reliability.ts +0 -62
  392. package/src/bayes/scopedPriors.ts +0 -88
  393. package/src/boundary/frame.ts +0 -322
  394. package/src/boundary/ids.ts +0 -14
  395. package/src/boundary/index.ts +0 -12
  396. package/src/boundary/refTable.ts +0 -125
  397. package/src/boundary/toolCall.ts +0 -212
  398. package/src/concept/concept.ts +0 -75
  399. package/src/concept/conceptBudget.ts +0 -346
  400. package/src/concept/conceptBudgetTypes.ts +0 -79
  401. package/src/concept/index.ts +0 -3
  402. package/src/concurrency/idempotency.ts +0 -41
  403. package/src/concurrency/index.ts +0 -5
  404. package/src/concurrency/mutex.ts +0 -26
  405. package/src/concurrency/namedLocks.ts +0 -35
  406. package/src/concurrency/retry.ts +0 -50
  407. package/src/concurrency/worker.ts +0 -128
  408. package/src/context/agentContext.ts +0 -308
  409. package/src/context/ast.ts +0 -499
  410. package/src/context/contentStore.ts +0 -75
  411. package/src/context/context.ts +0 -65
  412. package/src/context/contextIndex.ts +0 -85
  413. package/src/context/document.ts +0 -137
  414. package/src/context/fileStorePath.ts +0 -14
  415. package/src/context/index.ts +0 -43
  416. package/src/context/lifecycle.ts +0 -221
  417. package/src/context/projections.ts +0 -151
  418. package/src/context/workspace.ts +0 -422
  419. package/src/context/workspaceProtocol.ts +0 -112
  420. package/src/context/workspaceService.ts +0 -423
  421. package/src/cooperation/board.ts +0 -104
  422. package/src/cooperation/collaboration.ts +0 -60
  423. package/src/cooperation/index.ts +0 -6
  424. package/src/cooperation/merge.ts +0 -190
  425. package/src/cooperation/metrics.ts +0 -57
  426. package/src/cooperation/session.ts +0 -131
  427. package/src/cooperation/unified.ts +0 -56
  428. package/src/counter.ts +0 -9
  429. package/src/database/adapter/adapters.ts +0 -35
  430. package/src/database/adapter/index.ts +0 -4
  431. package/src/database/adapter/runtimeSink.ts +0 -74
  432. package/src/database/adapter/sessionStore.ts +0 -32
  433. package/src/database/adapter/turnStore.ts +0 -23
  434. package/src/database/entity/agent.ts +0 -199
  435. package/src/database/entity/entity.ts +0 -1046
  436. package/src/database/entity/handle.ts +0 -79
  437. package/src/database/entity/index.ts +0 -32
  438. package/src/database/entity/message.ts +0 -74
  439. package/src/database/entity/meta.ts +0 -11
  440. package/src/database/entity/object.ts +0 -42
  441. package/src/database/entity/outbox.ts +0 -15
  442. package/src/database/entity/process.ts +0 -65
  443. package/src/database/entity/registry.ts +0 -155
  444. package/src/database/entity/runtimeApproval.ts +0 -30
  445. package/src/database/entity/runtimeSession.ts +0 -13
  446. package/src/database/entity/runtimeTurn.ts +0 -15
  447. package/src/database/entity/thread.ts +0 -85
  448. package/src/database/entity/window.ts +0 -85
  449. package/src/database/entity/worker.ts +0 -90
  450. package/src/database/index.ts +0 -6
  451. package/src/database/repository/addressSpaceRepository.ts +0 -72
  452. package/src/database/repository/agentRepository.ts +0 -460
  453. package/src/database/repository/base.ts +0 -41
  454. package/src/database/repository/executionRepository.ts +0 -477
  455. package/src/database/repository/handleRepository.ts +0 -64
  456. package/src/database/repository/index.ts +0 -20
  457. package/src/database/repository/messageRepository.ts +0 -52
  458. package/src/database/repository/objectRepository.ts +0 -69
  459. package/src/database/repository/outboxRepository.ts +0 -63
  460. package/src/database/repository/processRepository.ts +0 -58
  461. package/src/database/repository/registryRepository.ts +0 -119
  462. package/src/database/repository/repository.ts +0 -491
  463. package/src/database/repository/runtimeApprovalRepository.ts +0 -44
  464. package/src/database/repository/runtimeSessionRepository.ts +0 -27
  465. package/src/database/repository/runtimeTurnRepository.ts +0 -39
  466. package/src/database/repository/socialRepository.ts +0 -185
  467. package/src/database/repository/threadRepository.ts +0 -57
  468. package/src/database/repository/windowRepository.ts +0 -88
  469. package/src/database/repository/workerRepository.ts +0 -69
  470. package/src/database/service/database.ts +0 -90
  471. package/src/database/service/handleService.ts +0 -48
  472. package/src/database/service/index.ts +0 -16
  473. package/src/database/service/messageService.ts +0 -61
  474. package/src/database/service/objectService.ts +0 -59
  475. package/src/database/service/processService.ts +0 -61
  476. package/src/database/service/registryServices.ts +0 -88
  477. package/src/database/service/service.ts +0 -183
  478. package/src/database/service/stepService.ts +0 -53
  479. package/src/database/service/threadService.ts +0 -65
  480. package/src/database/service/windowService.ts +0 -30
  481. package/src/database/service/workerService.ts +0 -57
  482. package/src/database/sql/index.ts +0 -3
  483. package/src/database/sql/schema.ts +0 -418
  484. package/src/database/sql/sql.ts +0 -543
  485. package/src/database/store/database.ts +0 -210
  486. package/src/database/store/index.ts +0 -3
  487. package/src/database/store/store.ts +0 -266
  488. package/src/delegate/index.ts +0 -2
  489. package/src/delegate/team.ts +0 -268
  490. package/src/delegate/teamTypes.ts +0 -47
  491. package/src/diagnosis/checklist.ts +0 -74
  492. package/src/diagnosis/context.ts +0 -93
  493. package/src/diagnosis/frame.ts +0 -256
  494. package/src/diagnosis/index.ts +0 -5
  495. package/src/diagnosis/router.ts +0 -72
  496. package/src/diagnosis/types.ts +0 -89
  497. package/src/error/agentError.ts +0 -16
  498. package/src/error/ampError.ts +0 -20
  499. package/src/error/authzError.ts +0 -14
  500. package/src/error/boundaryRejection.ts +0 -20
  501. package/src/error/index.ts +0 -7
  502. package/src/error/kernelError.ts +0 -27
  503. package/src/error/mailboxError.ts +0 -9
  504. package/src/error/windowError.ts +0 -12
  505. package/src/evaluation/agreement.ts +0 -96
  506. package/src/evaluation/index.ts +0 -2
  507. package/src/evaluation/labels.ts +0 -241
  508. package/src/evidence/evidenceGraph.ts +0 -205
  509. package/src/evidence/index.ts +0 -4
  510. package/src/evidence/revalidation.ts +0 -191
  511. package/src/execution/exec.ts +0 -408
  512. package/src/execution/handles.ts +0 -65
  513. package/src/execution/index.ts +0 -3
  514. package/src/execution/pin.ts +0 -154
  515. package/src/frame/frame.ts +0 -70
  516. package/src/frame/index.ts +0 -1
  517. package/src/goal/goal.ts +0 -43
  518. package/src/goal/index.ts +0 -2
  519. package/src/goal/plan.ts +0 -196
  520. package/src/governance/attentionManifest.ts +0 -802
  521. package/src/governance/audit.ts +0 -362
  522. package/src/governance/budget.ts +0 -628
  523. package/src/governance/context.ts +0 -356
  524. package/src/governance/control.ts +0 -159
  525. package/src/governance/cooperation.ts +0 -479
  526. package/src/governance/credential.ts +0 -359
  527. package/src/governance/httpServer.ts +0 -99
  528. package/src/governance/index.ts +0 -32
  529. package/src/governance/legal.ts +0 -574
  530. package/src/governance/matrix.ts +0 -460
  531. package/src/governance/perspectives.ts +0 -406
  532. package/src/governance/signing.ts +0 -407
  533. package/src/governance/store.ts +0 -125
  534. package/src/governance/switching.ts +0 -459
  535. package/src/governance/toolPolicy.ts +0 -80
  536. package/src/governance/transport.ts +0 -204
  537. package/src/governance/types.ts +0 -380
  538. package/src/governance/workflow.ts +0 -743
  539. package/src/index.ts +0 -11
  540. package/src/interaction/index.ts +0 -1
  541. package/src/interaction/interaction.ts +0 -391
  542. package/src/ipc/index.ts +0 -4
  543. package/src/ipc/mailbox.ts +0 -132
  544. package/src/ipc/memorySocialStore.ts +0 -93
  545. package/src/ipc/social.ts +0 -93
  546. package/src/kernel/index.ts +0 -14
  547. package/src/kernel/scheduler.ts +0 -498
  548. package/src/ledger/checkpoint.ts +0 -304
  549. package/src/ledger/index.ts +0 -4
  550. package/src/ledger/ledger.ts +0 -31
  551. package/src/ledger/persistence.ts +0 -159
  552. package/src/ledger/share.ts +0 -80
  553. package/src/lock/index.ts +0 -2
  554. package/src/lock/lease.ts +0 -74
  555. package/src/main.ts +0 -199
  556. package/src/manifest/agentCard.ts +0 -72
  557. package/src/manifest/cardSign.ts +0 -87
  558. package/src/manifest/federation.ts +0 -237
  559. package/src/manifest/federationTypes.ts +0 -55
  560. package/src/manifest/index.ts +0 -8
  561. package/src/manifest/keys.ts +0 -643
  562. package/src/manifest/manifest.ts +0 -114
  563. package/src/manifest/sign.ts +0 -134
  564. package/src/manifest/trust.ts +0 -146
  565. package/src/mission/index.ts +0 -2
  566. package/src/mission/missionQueue.ts +0 -75
  567. package/src/module/index.ts +0 -9
  568. package/src/module/llm/deepseek.ts +0 -214
  569. package/src/module/llm/llm.ts +0 -84
  570. package/src/module/mcp/client.ts +0 -110
  571. package/src/module/mcp/http.ts +0 -102
  572. package/src/module/mcp/protocol.ts +0 -77
  573. package/src/module/mcp/server.ts +0 -148
  574. package/src/module/mcp/transport.ts +0 -30
  575. package/src/module/mcp/workspaceServer.ts +0 -111
  576. package/src/module/sandbox/sandbox.ts +0 -29
  577. package/src/module/tool/mcpExecutor.ts +0 -54
  578. package/src/module/tool/policy.ts +0 -52
  579. package/src/module/tool/redact.ts +0 -29
  580. package/src/module/tool/tool.ts +0 -53
  581. package/src/module/tool/workspaceExecutor.ts +0 -35
  582. package/src/policy/guard.ts +0 -240
  583. package/src/policy/index.ts +0 -2
  584. package/src/policy/policy.ts +0 -561
  585. package/src/process/agent.ts +0 -341
  586. package/src/process/agentService.ts +0 -236
  587. package/src/process/agentStore.ts +0 -378
  588. package/src/process/executionStore.ts +0 -151
  589. package/src/process/index.ts +0 -5
  590. package/src/process/process.ts +0 -240
  591. package/src/process/transitions.ts +0 -19
  592. package/src/progress/index.ts +0 -2
  593. package/src/progress/progress.ts +0 -85
  594. package/src/protocol/a2a.ts +0 -120
  595. package/src/protocol/channel.ts +0 -44
  596. package/src/protocol/envelope.ts +0 -655
  597. package/src/protocol/httpChannel.ts +0 -87
  598. package/src/protocol/index.ts +0 -6
  599. package/src/protocol/protocol.ts +0 -138
  600. package/src/protocol/wire.ts +0 -60
  601. package/src/receipt/index.ts +0 -1
  602. package/src/receipt/receipt.ts +0 -47
  603. package/src/registry/content.ts +0 -69
  604. package/src/registry/index.ts +0 -23
  605. package/src/registry/registry.ts +0 -599
  606. package/src/runtime/action.ts +0 -87
  607. package/src/runtime/behavior.ts +0 -330
  608. package/src/runtime/behaviorTuning.ts +0 -163
  609. package/src/runtime/cognitiveRuntime.ts +0 -703
  610. package/src/runtime/escalation.ts +0 -35
  611. package/src/runtime/governedTask.ts +0 -233
  612. package/src/runtime/index.ts +0 -15
  613. package/src/runtime/kernelRuntime.ts +0 -144
  614. package/src/runtime/operation.ts +0 -35
  615. package/src/runtime/replay.ts +0 -71
  616. package/src/runtime/routing.ts +0 -58
  617. package/src/runtime/safety.ts +0 -48
  618. package/src/runtime/session.ts +0 -341
  619. package/src/runtime/sessionStore.ts +0 -43
  620. package/src/runtime/telemetry.ts +0 -55
  621. package/src/runtime/turnStore.ts +0 -30
  622. package/src/scenario/index.ts +0 -1
  623. package/src/scenario/scenario.ts +0 -299
  624. package/src/semantic/canonical.ts +0 -24
  625. package/src/semantic/index.ts +0 -2
  626. package/src/semantic/sha256.ts +0 -82
  627. package/src/storage/appendLog.ts +0 -372
  628. package/src/storage/fileAppendSink.ts +0 -40
  629. package/src/storage/index.ts +0 -2
  630. package/src/store/bindCache.ts +0 -22
  631. package/src/store/cache.ts +0 -191
  632. package/src/store/context.ts +0 -31
  633. package/src/store/handleStore.ts +0 -31
  634. package/src/store/index.ts +0 -9
  635. package/src/store/messageStore.ts +0 -31
  636. package/src/store/objectStore.ts +0 -31
  637. package/src/store/processStore.ts +0 -31
  638. package/src/store/threadStore.ts +0 -31
  639. package/src/store/windowStore.ts +0 -31
  640. package/src/structure/abstractSyntaxTree.ts +0 -493
  641. package/src/structure/avlTree.ts +0 -408
  642. package/src/structure/binarySearchTree.ts +0 -352
  643. package/src/structure/binaryTree.ts +0 -525
  644. package/src/structure/bloomFilter.ts +0 -231
  645. package/src/structure/compare.ts +0 -110
  646. package/src/structure/cuckooFilter.ts +0 -337
  647. package/src/structure/deque.ts +0 -223
  648. package/src/structure/filterKey.ts +0 -36
  649. package/src/structure/hash.ts +0 -279
  650. package/src/structure/heap.ts +0 -268
  651. package/src/structure/index.ts +0 -20
  652. package/src/structure/iterator.ts +0 -22
  653. package/src/structure/lru.ts +0 -619
  654. package/src/structure/ordered.ts +0 -399
  655. package/src/structure/priority.ts +0 -915
  656. package/src/structure/queue.ts +0 -168
  657. package/src/structure/redBlackTree.ts +0 -680
  658. package/src/structure/segmentTree.ts +0 -248
  659. package/src/structure/stack.ts +0 -118
  660. package/src/structure/unordered.ts +0 -407
  661. package/src/style.css +0 -278
  662. package/src/thread/index.ts +0 -2
  663. package/src/thread/thread.ts +0 -176
  664. package/src/thread/transitions.ts +0 -17
  665. package/src/types/common.ts +0 -119
  666. package/src/types/index.ts +0 -23
  667. package/src/warrant/epistemic.ts +0 -154
  668. package/src/warrant/index.ts +0 -3
  669. package/src/warrant/inquiry.ts +0 -166
  670. package/src/warrant/warrant.ts +0 -179
  671. package/src/window/compaction.ts +0 -403
  672. package/src/window/compactionTypes.ts +0 -119
  673. package/src/window/index.ts +0 -4
  674. package/src/window/page.ts +0 -18
  675. package/src/window/window.ts +0 -244
  676. package/tools/_helpers.ts +0 -34
  677. package/tools/a2a-check.ts +0 -110
  678. package/tools/a2a-flow-check.ts +0 -78
  679. package/tools/agent-card-check.ts +0 -76
  680. package/tools/agent-check.ts +0 -236
  681. package/tools/agent-store-check.ts +0 -153
  682. package/tools/agreement-check.ts +0 -27
  683. package/tools/annotation-server-check.ts +0 -48
  684. package/tools/annotation-server.ts +0 -230
  685. package/tools/annotation-status.ts +0 -65
  686. package/tools/approval-access-check.ts +0 -66
  687. package/tools/arch-check.ts +0 -72
  688. package/tools/attention-core-check.ts +0 -48
  689. package/tools/attention-resource-check.ts +0 -169
  690. package/tools/audit-check.ts +0 -207
  691. package/tools/authority-check.ts +0 -124
  692. package/tools/authz-check.ts +0 -138
  693. package/tools/bayes-check.ts +0 -162
  694. package/tools/bayes-probe.ts +0 -154
  695. package/tools/behavior-tuning-check.ts +0 -53
  696. package/tools/board-check.ts +0 -87
  697. package/tools/boundary-check.ts +0 -199
  698. package/tools/bundle-trust-check.ts +0 -96
  699. package/tools/calibrate-imported.ts +0 -108
  700. package/tools/calibration-check.ts +0 -44
  701. package/tools/calibration-registry-check.ts +0 -40
  702. package/tools/calibration-sim.ts +0 -40
  703. package/tools/card-sign-check.ts +0 -71
  704. package/tools/card-trust-check.ts +0 -78
  705. package/tools/channel-check.ts +0 -86
  706. package/tools/checkpoint-check.ts +0 -620
  707. package/tools/cleanup-style-configs.ts +0 -29
  708. package/tools/cognition-check.ts +0 -648
  709. package/tools/cognitive-runtime-check.ts +0 -609
  710. package/tools/collaboration-demo.ts +0 -78
  711. package/tools/compaction-check.ts +0 -266
  712. package/tools/concept-check.ts +0 -260
  713. package/tools/concurrency-check.ts +0 -242
  714. package/tools/conformance-runtime.ts +0 -389
  715. package/tools/conformance.ts +0 -651
  716. package/tools/context-ast-check.ts +0 -90
  717. package/tools/context-ast-deepseek.ts +0 -242
  718. package/tools/context-graph-bench.ts +0 -50
  719. package/tools/context-graph-check.ts +0 -229
  720. package/tools/context-index-check.ts +0 -48
  721. package/tools/context-lifecycle-check.ts +0 -69
  722. package/tools/context-projection-check.ts +0 -73
  723. package/tools/context-scope-check.ts +0 -134
  724. package/tools/context-storage-check.ts +0 -113
  725. package/tools/cooperation-check.ts +0 -517
  726. package/tools/cooperation-http-check.ts +0 -125
  727. package/tools/deepseek-llm-check.ts +0 -147
  728. package/tools/deepseek-probe.ts +0 -494
  729. package/tools/diagnosis-check.ts +0 -109
  730. package/tools/diagnosis-router-check.ts +0 -50
  731. package/tools/document-context-check.ts +0 -237
  732. package/tools/envelope-check.ts +0 -659
  733. package/tools/eslint-rules/index.ts +0 -26
  734. package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
  735. package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
  736. package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
  737. package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
  738. package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
  739. package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
  740. package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
  741. package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
  742. package/tools/eslint-rules/rules/variable-naming.ts +0 -175
  743. package/tools/eval-recorded-replay.ts +0 -215
  744. package/tools/eval-replay.ts +0 -139
  745. package/tools/eval-summary.ts +0 -136
  746. package/tools/evidence-revalidation-check.ts +0 -235
  747. package/tools/exec-check.ts +0 -217
  748. package/tools/federation-check.ts +0 -166
  749. package/tools/federation-demo.ts +0 -45
  750. package/tools/filter-check.ts +0 -243
  751. package/tools/governance-check.ts +0 -680
  752. package/tools/governance-store-check.ts +0 -131
  753. package/tools/governed-task-check.ts +0 -227
  754. package/tools/guard-check.ts +0 -122
  755. package/tools/http-channel-check.ts +0 -125
  756. package/tools/import-campaign.ts +0 -28
  757. package/tools/inquiry-check.ts +0 -126
  758. package/tools/interaction-check.ts +0 -171
  759. package/tools/interrupts-check.ts +0 -173
  760. package/tools/ipc-check.ts +0 -170
  761. package/tools/kernel-async-check.ts +0 -136
  762. package/tools/kernel-check.ts +0 -369
  763. package/tools/kernel-runtime-check.ts +0 -276
  764. package/tools/keys-check.ts +0 -559
  765. package/tools/label-audit.ts +0 -70
  766. package/tools/labels-workflow-check.ts +0 -49
  767. package/tools/linear-structure-check.ts +0 -524
  768. package/tools/live-exec.ts +0 -62
  769. package/tools/live-governance-eval.ts +0 -813
  770. package/tools/live-legacy.ts +0 -50
  771. package/tools/lru-check.ts +0 -182
  772. package/tools/make-annotation-campaign.ts +0 -57
  773. package/tools/mcp-executor-check.ts +0 -33
  774. package/tools/merge-annotations.ts +0 -32
  775. package/tools/merge-check.ts +0 -98
  776. package/tools/metrics-check.ts +0 -84
  777. package/tools/net-probe.ts +0 -107
  778. package/tools/oauth-probe.ts +0 -117
  779. package/tools/outbox-check.ts +0 -50
  780. package/tools/persistence-check.ts +0 -144
  781. package/tools/pin-check.ts +0 -116
  782. package/tools/platform-check.ts +0 -281
  783. package/tools/policy-check.ts +0 -514
  784. package/tools/prettier-plugin/index.mts +0 -84
  785. package/tools/priority-check.ts +0 -627
  786. package/tools/probe-context7.ts +0 -63
  787. package/tools/registry-check.ts +0 -252
  788. package/tools/reliability-check.ts +0 -25
  789. package/tools/retry-check.ts +0 -85
  790. package/tools/rewrite-declaration-extensions.ts +0 -98
  791. package/tools/runtime-check.ts +0 -165
  792. package/tools/runtime-deepseek-check.ts +0 -85
  793. package/tools/runtime-eval.ts +0 -358
  794. package/tools/scenario-check.ts +0 -161
  795. package/tools/scenario-incident.ts +0 -162
  796. package/tools/scoped-priors-check.ts +0 -35
  797. package/tools/scoped-priors-pooling.ts +0 -34
  798. package/tools/segment-ast-check.ts +0 -649
  799. package/tools/session-check.ts +0 -196
  800. package/tools/session-store-check.ts +0 -73
  801. package/tools/share-check.ts +0 -88
  802. package/tools/sign-check.ts +0 -95
  803. package/tools/signing-check.ts +0 -275
  804. package/tools/snapshot-demo.ts +0 -65
  805. package/tools/social-check.ts +0 -146
  806. package/tools/structure-compare-check.ts +0 -95
  807. package/tools/support/documentScanner.ts +0 -577
  808. package/tools/support/texScanner.ts +0 -631
  809. package/tools/support/workspaceScanner.ts +0 -476
  810. package/tools/team-check.ts +0 -163
  811. package/tools/team-demo.ts +0 -36
  812. package/tools/telemetry-check.ts +0 -44
  813. package/tools/tex-context-check.ts +0 -263
  814. package/tools/tool-gate-check.ts +0 -98
  815. package/tools/tree-structure-check.ts +0 -786
  816. package/tools/trust-flow-check.ts +0 -158
  817. package/tools/turn-store-check.ts +0 -57
  818. package/tools/unified-check.ts +0 -83
  819. package/tools/validate.ts +0 -309
  820. package/tools/wire-check.ts +0 -96
  821. package/tools/workspace-agent-check.ts +0 -486
  822. package/tools/workspace-agent-demo.ts +0 -62
  823. package/tools/workspace-agent-server.ts +0 -101
  824. package/tools/workspace-context-check.ts +0 -331
  825. package/tools/workspace-context.ts +0 -131
  826. package/tsconfig.build.json +0 -14
  827. package/tsconfig.json +0 -24
  828. package/tsconfig.tools.json +0 -31
  829. package/viz/context-ast.json +0 -1577
@@ -1,230 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Local annotation UI. Two annotators open separate URLs, label with 1/2/3,
4
- * and the server writes one JSONL row per case (last write wins).
5
- */
6
- import { createServer } from "node:http";
7
- import type { IncomingMessage, Server, ServerResponse } from "node:http";
8
- import { existsSync, readFileSync, writeFileSync } from "node:fs";
9
- import type { AddressInfo } from "node:net";
10
- import { pathToFileURL } from "node:url";
11
-
12
- interface CampaignRow {
13
- caseId: string;
14
- source: string;
15
- input: string;
16
- answer: string;
17
- expected: string;
18
- }
19
-
20
- interface LabelRow {
21
- caseId: string;
22
- annotator: string;
23
- label: string;
24
- note?: string;
25
- }
26
-
27
- export interface AnnotationServerOptions {
28
- annotator: string;
29
- port: number;
30
- campaignPath?: string;
31
- outputPath?: string;
32
- }
33
-
34
- export interface AnnotationServer {
35
- server: Server;
36
- url: string;
37
- close: () => Promise<void>;
38
- }
39
-
40
- type CasePayload = {
41
- caseId: string;
42
- source: string;
43
- input: string;
44
- answer: string;
45
- expected: string;
46
- annotator?: string;
47
- label?: string;
48
- note: string;
49
- };
50
-
51
- type ParsedLabel = {
52
- caseId?: string;
53
- label?: string;
54
- note?: string;
55
- };
56
-
57
- type SendResponse = (response: ServerResponse, status: number, body: string, type?: string) => void;
58
-
59
- type AnnotationServerFactory = (options: AnnotationServerOptions) => Promise<AnnotationServer>;
60
-
61
- const loadCsvRows: (path: string) => CampaignRow[] = (path: string): CampaignRow[] => {
62
- const raw: string = readFileSync(path, "utf8");
63
- const lines: string[] = raw.split(/\r?\n/).filter((line) => line.trim().length > 0);
64
- if (lines.length === 0) {
65
- return [];
66
- }
67
- const records: string[][] = [];
68
- let record: string[] = [];
69
- let cell: string = "";
70
- let quoted: boolean = false;
71
- for (let index: number = 0; index < raw.length; index += 1) {
72
- const char: string = raw[index];
73
- if (char === '"') {
74
- if (quoted && raw[index + 1] === '"') {
75
- cell += '"';
76
- index += 1;
77
- } else {
78
- quoted = !quoted;
79
- }
80
- } else if (char === "," && !quoted) {
81
- record.push(cell);
82
- cell = "";
83
- } else if ((char === "\n" || char === "\r") && !quoted) {
84
- if (char === "\r" && raw[index + 1] === "\n") {
85
- index += 1;
86
- }
87
- record.push(cell);
88
- records.push(record);
89
- record = [];
90
- cell = "";
91
- } else {
92
- cell += char;
93
- }
94
- }
95
- if (cell.length > 0 || record.length > 0) {
96
- record.push(cell);
97
- records.push(record);
98
- }
99
- const header: string[] = records[0].map((entry) => entry.trim());
100
- const get: (row: string[], name: string) => string = (row: string[], name: string): string => row[header.indexOf(name)] ?? "";
101
- return records.slice(1).map((row) => ({
102
- caseId: get(row, "caseId"),
103
- source: get(row, "source"),
104
- input: get(row, "input"),
105
- answer: get(row, "answer"),
106
- expected: get(row, "expected"),
107
- }));
108
- };
109
-
110
- const readLabels: (path: string) => LabelRow[] = (path: string): LabelRow[] => {
111
- if (!existsSync(path)) {
112
- return [];
113
- }
114
- return readFileSync(path, "utf8")
115
- .split(/\r?\n/)
116
- .filter((line) => line.trim().length > 0)
117
- .map((line) => JSON.parse(line) as LabelRow);
118
- };
119
-
120
- const saveLabels: (path: string, labels: Map<string, LabelRow>) => void = (path: string, labels: Map<string, LabelRow>): void => {
121
- writeFileSync(path, [...labels.values()].map((row) => JSON.stringify(row)).join("\n") + (labels.size > 0 ? "\n" : ""), "utf8");
122
- };
123
-
124
- const html: (annotator: string) => string = (annotator: string): string => `<!doctype html>
125
- <html lang="zh-CN"><head><meta charset="utf-8"><title>AMP annotation ${annotator}</title>
126
- <style>
127
- body{font:16px/1.5 system-ui,sans-serif;max-width:860px;margin:40px auto;padding:0 20px;color:#111}
128
- .card{border:1px solid #ddd;border-radius:12px;padding:20px;margin:16px 0;background:#fff}
129
- .meta{color:#666;font-size:13px}.pre{white-space:pre-wrap;background:#f7f7f7;padding:12px;border-radius:8px}
130
- button{font-size:16px;padding:10px 18px;margin:6px 6px 6px 0;border-radius:8px;border:1px solid #bbb;background:#fafafa;cursor:pointer}
131
- button:hover{background:#eee}.ok{border-color:#2a7}.bad{border-color:#c33}.unsure{border-color:#ca0}
132
- textarea{width:100%;min-height:70px;margin-top:8px;padding:8px;box-sizing:border-box}
133
- .bar{position:sticky;bottom:0;background:#fff;padding:12px 0;border-top:1px solid #eee}
134
- </style></head><body>
135
- <h2>AMP 盲标 <small>${annotator}</small></h2>
136
- <p class="meta">1=correct 2=incorrect 3=unsure|不要看 repo 里的 humanLabel/actual|共 <b id="total">?</b> 条</p>
137
- <div class="card" id="case"><div class="meta">loading…</div></div>
138
- <div class="bar"><button class="ok" onclick="mark('correct')">1 correct</button><button class="bad" onclick="mark('incorrect')">2 incorrect</button><button class="unsure" onclick="mark('unsure')">3 unsure</button><button onclick="skip()">跳过</button><span id="prog"></span></div>
139
- <textarea id="note" placeholder="note(可选)"></textarea>
140
- <script>
141
- let rows=[], index=0;
142
- const esc=s=>String(s??'').replace(/[&<>]/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;'}[c]));
143
- async function load(){rows=await (await fetch('/api/cases')).json(); document.getElementById('total').textContent=rows.length; render();}
144
- function render(){const r=rows[index]; if(!r){document.getElementById('case').innerHTML='<b>done</b>'; document.getElementById('prog').textContent=''; return;}
145
- document.getElementById('case').innerHTML='<div class="meta">'+esc(r.caseId)+' · '+esc(r.source)+'</div><h3>Input</h3><div class="pre">'+esc(r.input)+'</div><h3>Answer</h3><div class="pre">'+esc(r.answer)+'</div>'+(r.expected?'<div class="meta">expected: '+esc(r.expected)+'</div>':'');
146
- document.getElementById('note').value=r.note||''; document.getElementById('prog').textContent=(index+1)+'/'+rows.length;}
147
- async function mark(label){const r=rows[index]; if(!r)return; await fetch('/api/labels',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({caseId:r.caseId,label,note:document.getElementById('note').value})}); index++; render();}
148
- function skip(){index++; render();}
149
- document.addEventListener('keydown',e=>{if(e.key==='1')mark('correct'); if(e.key==='2')mark('incorrect'); if(e.key==='3')mark('unsure');});
150
- load();
151
- </script></body></html>`;
152
-
153
- export const startAnnotationServer: AnnotationServerFactory = async (options: AnnotationServerOptions): Promise<AnnotationServer> => {
154
- const campaignPath: string = options.campaignPath ?? "docs/annotation-campaign.csv";
155
- const outputPath: string = options.outputPath ?? `docs/eval/annotations-${options.annotator}.jsonl`;
156
- const campaign: CampaignRow[] = loadCsvRows(campaignPath);
157
- const labels: Map<string, LabelRow> = new Map<string, LabelRow>(readLabels(outputPath).map((row) => [row.caseId, row]));
158
- const send: SendResponse = (response: ServerResponse, status: number, body: string, type: string = "application/json"): void => {
159
- response.writeHead(status, { "content-type": type, "cache-control": "no-store" });
160
- response.end(body);
161
- };
162
- const handler: (request: IncomingMessage, response: ServerResponse) => void = (request: IncomingMessage, response: ServerResponse): void => {
163
- const url: URL = new URL(request.url ?? "/", "http://127.0.0.1");
164
- if (request.method === "GET" && url.pathname === "/") {
165
- return send(response, 200, html(options.annotator), "text/html; charset=utf-8");
166
- }
167
- if (request.method === "GET" && url.pathname === "/api/cases") {
168
- const rows: CasePayload[] = campaign.map((row) => ({ ...row, ...(labels.get(row.caseId) ?? {}), note: labels.get(row.caseId)?.note ?? "" }));
169
- return send(response, 200, JSON.stringify(rows));
170
- }
171
- if (request.method === "GET" && url.pathname === "/api/progress") {
172
- return send(response, 200, JSON.stringify({ done: labels.size, total: campaign.length }));
173
- }
174
- if (request.method === "POST" && url.pathname === "/api/labels") {
175
- let body: string = "";
176
- request.on("data", (chunk) => {
177
- body += chunk;
178
- if (body.length > 100_000) {
179
- request.destroy();
180
- }
181
- });
182
- request.on("end", () => {
183
- try {
184
- const parsed: ParsedLabel = JSON.parse(body) as ParsedLabel;
185
- if (typeof(parsed.caseId) !== "string" || typeof(parsed.label) !== "string" || !["correct", "incorrect", "unsure"].includes(parsed.label)) {
186
- return send(response, 400, JSON.stringify({ error: "invalid label" }));
187
- }
188
- if (!campaign.some((row) => row.caseId === parsed.caseId)) {
189
- return send(response, 400, JSON.stringify({ error: "unknown case" }));
190
- }
191
- labels.set(parsed.caseId, {
192
- caseId: parsed.caseId,
193
- annotator: options.annotator,
194
- label: parsed.label,
195
- ...(typeof(parsed.note) === "string" && parsed.note.trim().length > 0 ? { note: parsed.note.trim() } : {}),
196
- });
197
- saveLabels(outputPath, labels);
198
- return send(response, 200, JSON.stringify({ done: labels.size, total: campaign.length }));
199
- } catch {
200
- return send(response, 400, JSON.stringify({ error: "bad json" }));
201
- }
202
- });
203
- return;
204
- }
205
- return send(response, 404, JSON.stringify({ error: "not found" }));
206
- };
207
-
208
- const server: Server = createServer(handler);
209
- await new Promise<void>((resolve, reject) => {
210
- server.once("error", reject);
211
- server.listen(options.port, "127.0.0.1", () => resolve());
212
- });
213
- const address: AddressInfo | string | null = server.address();
214
- const port: number = typeof(address) === "object" && address !== null ? address.port : options.port;
215
- return {
216
- server,
217
- url: `http://127.0.0.1:${port}/`,
218
- close: () => new Promise<void>((resolve, reject) => server.close((error) => (error === (void 0) ? resolve() : reject(error)))),
219
- };
220
- };
221
-
222
- const IsMain: boolean = process.argv[1] !== (void 0) && import.meta.url === pathToFileURL(process.argv[1]).href;
223
- if (IsMain) {
224
- const args: string[] = process.argv.slice(2);
225
- const annotator: string = args.find((arg) => arg.startsWith("--annotator="))?.split("=")[1] ?? "A";
226
- const port: number = Number(args.find((arg) => arg.startsWith("--port="))?.split("=")[1] ?? "8787");
227
- const running: AnnotationServer = await startAnnotationServer({ annotator, port });
228
- console.log(`annotation UI: ${running.url} (${annotator})`);
229
- console.log("Ctrl+C to stop");
230
- }
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Progress/validation for the two blind annotation packets.
4
- */
5
- import assert from "node:assert/strict";
6
- import { existsSync, readFileSync } from "node:fs";
7
-
8
- import type { Annotation } from "../src/evaluation/labels.ts";
9
- import { importAnnotationsCsv } from "../src/evaluation/labels.ts";
10
-
11
- type InspectResult = {
12
- filled: number;
13
- invalid: string[];
14
- unknown: string[];
15
- duplicate: string[];
16
- };
17
-
18
- const Allowed: Set<string> = new Set(["correct", "incorrect", "unsure"]);
19
- const Campaign: Annotation[] = importAnnotationsCsv(readFileSync("docs/annotation-campaign.csv", "utf8"));
20
- const Expected: Set<string> = new Set(Campaign.map((row) => row.caseId));
21
-
22
- const inspect: (path: string) => InspectResult = (path: string): InspectResult => {
23
- const rows: Annotation[] = importAnnotationsCsv(readFileSync(path, "utf8"));
24
- const seen: Set<string> = new Set<string>();
25
- const duplicate: string[] = [];
26
- for (let index: number = 0; index < rows.length; index += 1) {
27
- const row: Annotation = rows[index];
28
- if (seen.has(row.caseId)) {
29
- duplicate.push(row.caseId);
30
- }
31
- seen.add(row.caseId);
32
- }
33
- return {
34
- filled: rows.filter((row) => row.label.trim().length > 0).length,
35
- invalid: rows.filter((row) => row.label.length > 0 && !Allowed.has(row.label)).map((row) => `${row.caseId}:${row.label}`),
36
- unknown: rows.filter((row) => !Expected.has(row.caseId)).map((row) => row.caseId),
37
- duplicate,
38
- };
39
- };
40
-
41
- const Left: InspectResult = inspect("docs/annotation-campaign-A.csv");
42
- const Right: InspectResult = inspect("docs/annotation-campaign-B.csv");
43
- const Results: InspectResult[] = [Left, Right];
44
- for (let index: number = 0; index < Results.length; index += 1) {
45
- const result: InspectResult = Results[index];
46
- assert.equal(result.unknown.length, 0);
47
- assert.equal(result.duplicate.length, 0);
48
- assert.equal(result.invalid.length, 0);
49
- }
50
-
51
- console.log(
52
- `A=${Left.filled}/${Campaign.length} B=${Right.filled}/${Campaign.length} invalid=${Left.invalid.length + Right.invalid.length} unknown=${Left.unknown.length + Right.unknown.length}`,
53
- );
54
- const jsonl: (path: string) => number = (path: string): number =>
55
- existsSync(path)
56
- ? readFileSync(path, "utf8")
57
- .split(/\r?\n/)
58
- .filter((line) => line.trim().length > 0).length
59
- : 0;
60
- console.log(`UI A=${jsonl("docs/eval/annotations-A.jsonl")}/${Campaign.length} UI B=${jsonl("docs/eval/annotations-B.jsonl")}/${Campaign.length}`);
61
- if (Left.filled < Campaign.length || Right.filled < Campaign.length) {
62
- console.log("status=pending human labels");
63
- } else {
64
- console.log("status=ready to import");
65
- }
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Approval audit access control + field redaction.
4
- */
5
- import assert from "node:assert/strict";
6
-
7
- import { openStore } from "../src/database/store/database.ts";
8
- import { RuntimeApprovalRepository } from "../src/database/repository/runtimeApprovalRepository.ts";
9
- import { outboxEventSink } from "../src/database/adapter/runtimeSink.ts";
10
- import { createProcess } from "../src/process/process.ts";
11
- import { grant } from "../src/authz/authz.ts";
12
- import type { Subject } from "../src/authz/authz.ts";
13
- import { AuthzError } from "../src/error/authzError.ts";
14
-
15
- const At = "2026-10-24T00:00:00.000Z";
16
- const db = openStore(":memory:");
17
- const owner = createProcess(db, { id: "a.approval.owner", name: "Owner" }, At);
18
- const stranger = createProcess(db, { id: "a.approval.stranger", name: "Stranger" }, At);
19
- const ownerSubject: Subject = { kind: "process", id: "a.approval.owner", pid: owner.pid };
20
- const strangerSubject: Subject = { kind: "process", id: "a.approval.stranger", pid: stranger.pid };
21
- const approvals = new RuntimeApprovalRepository(db);
22
-
23
- outboxEventSink(
24
- db,
25
- {
26
- topic: "runtime.approval",
27
- payload: {
28
- pid: owner.pid,
29
- turnId: "rt.1",
30
- operationId: "op.1",
31
- tool: "deploy.rollback",
32
- risk: "destructive",
33
- decision: "token sk-abcdefghijklmnop123456",
34
- status: "denied",
35
- },
36
- },
37
- At,
38
- );
39
-
40
- const rows = approvals.list(owner.pid);
41
- assert.equal(rows.length, 1);
42
- assert.equal(rows[0].decision.includes("sk-abcdefghijklmnop123456"), false);
43
- assert.equal(rows[0].decision.includes("[REDACTED]"), true);
44
-
45
- assert.equal(approvals.listForSubject(ownerSubject, owner.pid, At).length, 1);
46
- assert.throws(
47
- () => approvals.listForSubject(strangerSubject, owner.pid, At),
48
- (error: unknown) => error instanceof AuthzError && error.code === "permission_denied",
49
- );
50
-
51
- grant(
52
- db,
53
- {
54
- grantor: ownerSubject,
55
- grantee: strangerSubject,
56
- resource: { kind: "object", id: `approval:${owner.pid}`, ownerPid: owner.pid },
57
- rights: ["read"],
58
- },
59
- At,
60
- );
61
- assert.equal(approvals.listForSubject(strangerSubject, owner.pid, At).length, 1);
62
- assert.equal(approvals.prune("2026-10-25T00:00:00.000Z"), 1);
63
-
64
- db.close();
65
- console.log("\x1b[32m✓\x1b[0m approval audit is authz-gated and redacted");
66
- console.log("\n1 passed, 0 failed");
@@ -1,72 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Architecture fitness checks. These are intentionally cheap textual guards;
4
- * they fail the verify when a dependency rule regresses.
5
- */
6
- import assert from "node:assert/strict";
7
- import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
8
- import { join } from "node:path";
9
-
10
- assert.equal(existsSync("src/cycle"), false, "legacy cycle directory must stay deleted");
11
- assert.equal(existsSync("tools/support/ampRuntime.ts"), false, "legacy AmpRuntime fixture must stay deleted");
12
-
13
- const walk: (dir: string) => string[] = (dir: string): string[] => {
14
- const files: string[] = [];
15
- const names: string[] = readdirSync(dir);
16
- for (let index: number = 0; index < names.length; index += 1) {
17
- const name: string = names[index];
18
- const path: string = join(dir, name);
19
- if (statSync(path).isDirectory()) {
20
- files.push(...walk(path));
21
- } else if (path.endsWith(".ts")) {
22
- files.push(path);
23
- }
24
- }
25
- return files;
26
- };
27
-
28
- const RuntimeFiles: string[] = walk("src/runtime");
29
- const RuntimeText: string = RuntimeFiles.map((file) => readFileSync(file, "utf8")).join("\n");
30
- assert.equal(/from\s+["'][^"']*database/.test(RuntimeText), false, "runtime must not import database");
31
- assert.equal(/node:sqlite/.test(RuntimeText), false, "runtime must not import node:sqlite");
32
-
33
- const Kernel: string = readFileSync("src/kernel/scheduler.ts", "utf8");
34
- const WorkspaceServiceFiles: string[] = [
35
- "src/context/workspaceService.ts", "src/context/workspaceProtocol.ts",
36
- "src/module/tool/workspaceExecutor.ts", "src/module/mcp/workspaceServer.ts",
37
- ];
38
- const WorkspaceServiceText: string = WorkspaceServiceFiles.map((file: string): string => readFileSync(file, "utf8")).join("\n");
39
- assert.equal(/from\s+["'][^"']*(?:database|tools\/support)/.test(WorkspaceServiceText), false, "workspace service must not import database or offline parsers");
40
- assert.equal(/from\s+["'](?:typescript|fflate|fast-xml-parser|node:sqlite)["']/.test(WorkspaceServiceText), false, "workspace service must stay independent of parsers and SQL");
41
- assert.equal(/\bdb\.prepare\(/.test(Kernel), false, "kernel must use the execution port, not raw SQL");
42
-
43
- const ProcessSqlBaseline: number = 0;
44
- const ProcessSql: number =
45
- ["src/process/process.ts", "src/thread/thread.ts"]
46
- .map((file) => readFileSync(file, "utf8"))
47
- .join("\n")
48
- .match(/\.prepare\(/g)?.length ?? 0;
49
- assert.ok(ProcessSql <= ProcessSqlBaseline, `process/thread raw SQL grew to ${ProcessSql} (baseline ${ProcessSqlBaseline})`);
50
-
51
- const RuntimeIndex: string = readFileSync("src/runtime/index.ts", "utf8");
52
- assert.equal(RuntimeIndex.includes("database"), false, "runtime index must not re-export database");
53
-
54
- const GovernanceFiles: string[] = walk("src/governance");
55
- const GovernanceText: string = GovernanceFiles.map((file) => readFileSync(file, "utf8")).join("\n");
56
- assert.equal(/from\s+["'][^"']*database/.test(GovernanceText), false, "governance must not import database");
57
- assert.equal(/node:sqlite/.test(GovernanceText), false, "governance must not import node:sqlite");
58
- assert.equal(/from\s+["'][^"']*\/runtime\//.test(GovernanceText), false, "governance must not import runtime");
59
- const RuntimeCoreFiles: string[] = RuntimeFiles.filter((file: string) => !file.endsWith("governedTask.ts"));
60
- const RuntimeCoreText: string = RuntimeCoreFiles.map((file: string) => readFileSync(file, "utf8")).join("\n");
61
- assert.equal(/from\s+["'][^"']*\/governance\//.test(RuntimeCoreText), false, "runtime core must not import governance directly; use governedTask.ts");
62
-
63
- const LegacyUsers: string[] = readdirSync("tools")
64
- .filter((name) => name.endsWith(".ts") && name !== "arch-check.ts")
65
- .filter((name) => readFileSync(join("tools", name), "utf8").includes("support/ampRuntime"))
66
- .sort();
67
- assert.deepEqual(LegacyUsers, [], `legacy AmpRuntime references must be gone, found: ${LegacyUsers.join(", ")}`);
68
-
69
- console.log(
70
- `\x1b[32m✓\x1b[0m architecture fitness: runtime database-free, kernel SQL-free, process/thread SQL=${ProcessSql}<=${ProcessSqlBaseline}, legacy runtime deleted`,
71
- );
72
- console.log("\n1 passed, 0 failed");
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env node
2
- /** One Attention state: stable window, attraction/distraction forces, shift as Action. */
3
- import assert from "node:assert/strict";
4
-
5
- import { Attention, toShiftAction } from "../src/attention/index.ts";
6
- import type { AttentionItem } from "../src/attention/index.ts";
7
-
8
- const At = "2026-10-24T00:00:00.000Z";
9
- const item = (id: string, order: number): AttentionItem => ({ target: { kind: "evidence", id }, order, weight: 0.5 });
10
-
11
- const attention = new Attention({
12
- subject: { pid: 1 },
13
- capacity: { slots: 2, tokens: 100 },
14
- items: [item("a", 0), item("b", 1), item("c", 2), item("d", 3)],
15
- now: () => At,
16
- });
17
-
18
- assert.deepEqual(attention.focus().map((entry) => entry.target.id), ["a", "b"]);
19
- const right = attention.shift({ actionId: "act.1", direction: "right", reason: "next two" });
20
- assert.equal(right.changed, true);
21
- assert.equal(right.blocked, false);
22
- assert.deepEqual(right.snapshot.focus.map((entry) => entry.target.id), ["b", "c"]);
23
- attention.shift({ actionId: "act.2", direction: "right", reason: "next two" });
24
- const edge = attention.shift({ actionId: "act.3", direction: "right", reason: "beyond edge" });
25
- assert.equal(edge.changed, false);
26
- assert.equal(edge.blocked, true);
27
- assert.match(edge.reason, /boundary/);
28
- attention.shift({ actionId: "act.4", direction: "left", reason: "back" });
29
- assert.deepEqual(attention.focus().map((entry) => entry.target.id), ["b", "c"]);
30
-
31
- attention.observe({ kind: "attraction", from: { kind: "human", id: "user.1" }, target: { kind: "evidence", id: "d" }, strength: 0.4 });
32
- attention.observe({ kind: "distraction", from: { kind: "event", id: "alert.1" }, target: { kind: "evidence", id: "d" }, competesWith: { kind: "evidence", id: "b" }, strength: 0.3 });
33
- const snapshot = attention.snapshot();
34
- assert.equal(snapshot.forces.length, 2);
35
- assert.equal(snapshot.focus.length, 2);
36
- assert.equal(snapshot.ignored.length, 2);
37
-
38
- const action = toShiftAction({ direction: "right", steps: 1, reason: "test" });
39
- assert.equal(action.intent, "attention.shift");
40
- assert.equal(action.risk, "none");
41
- assert.equal(action.successCriteria?.includes("a Receipt is recorded"), true);
42
-
43
- attention.close();
44
- assert.throws(() => attention.shift({ actionId: "act.x", direction: "left", reason: "closed" }), /closed/);
45
-
46
- console.log(`focus=${snapshot.focus.map((entry) => entry.target.id).join(",")} ignored=${snapshot.ignored.map((entry) => entry.target.id).join(",")} forces=${snapshot.forces.length}`);
47
- console.log("\x1b[32m✓\x1b[0m Attention is one state object; shift is an Action; forces do not reorder the window");
48
- console.log("\n1 passed, 0 failed");
@@ -1,169 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Attention resource checks: process capacity -> thread allocation.
4
- *
5
- * The model is deliberately pure. It answers three questions:
6
- * 1. how much foreground can this agent run before the reserve is touched?
7
- * 2. when must the agent go offline/rest?
8
- * 3. does the floor belong to safety and admitted tasks, not to every task?
9
- */
10
- import assert from "node:assert/strict";
11
-
12
- import type { CognitiveState } from "../src/attention/cognition.ts";
13
- import {
14
- DefaultAttentionPolicy,
15
- applyRest,
16
- attentionHealth,
17
- planAttention,
18
- processAttention,
19
- qualityAdjustedThroughput,
20
- recoveryDebtOf,
21
- shouldRest,
22
- } from "../src/attention/resource.ts";
23
- import type { ThreadAttentionCandidate } from "../src/attention/resource.ts";
24
-
25
- const At = "2026-10-24T00:00:00.000Z";
26
-
27
- let passed = 0;
28
- let failed = 0;
29
-
30
- const test = (name: string, fn: () => void): void => {
31
- try {
32
- fn();
33
- passed += 1;
34
- console.log(`\x1b[32m\u2713\x1b[0m ${name}`);
35
- } catch (error) {
36
- failed += 1;
37
- const message = error instanceof Error ? error.message : `${error}`;
38
- console.error(`\x1b[31m\u2717\x1b[0m ${name}\n ${message}`);
39
- }
40
- };
41
-
42
- const state = (overrides: Partial<CognitiveState> = {}): CognitiveState => {
43
- const base: CognitiveState = {
44
- load: 0.2,
45
- vigilance: 0.9,
46
- arousal: 0.1,
47
- mastery: 0.7,
48
- accountability: 0.5,
49
- cyclesSinceRest: 0,
50
- capacityEff: 4,
51
- pLapse: 0.1,
52
- source: "default",
53
- samples: 0,
54
- };
55
- return { ...base, ...overrides };
56
- };
57
-
58
- const candidate = (
59
- tid: number,
60
- priority: number,
61
- preferredSlots: number,
62
- foreground = true,
63
- extras: Partial<ThreadAttentionCandidate> = {},
64
- ): ThreadAttentionCandidate => ({
65
- tid,
66
- pid: 1,
67
- priority,
68
- preferredSlots,
69
- foreground,
70
- ...extras,
71
- });
72
-
73
- test("process attention keeps a foreground cap and a safety reserve", () => {
74
- const process = processAttention(1, state());
75
- assert.equal(process.effectiveSlots, 4);
76
- assert.equal(process.foregroundCap, 3);
77
- assert.equal(process.reserveSlots, 1);
78
- assert.equal(process.safetySlots, 1);
79
- assert.equal(process.offline, false);
80
- assert.equal(process.foregroundCap + process.reserveSlots, process.effectiveSlots);
81
- });
82
-
83
- test("effective capacity shrinks with load, and rest is triggered by policy", () => {
84
- const loaded = state({ load: 0.95, capacityEff: 3, vigilance: 0.3, pLapse: 0.7, cyclesSinceRest: 2 });
85
- const process = processAttention(1, loaded);
86
- assert.equal(process.effectiveSlots, 3);
87
- assert.equal(process.foregroundCap, 2);
88
- assert.equal(process.offline, true);
89
- assert.equal(shouldRest(loaded), true);
90
- assert.equal(recoveryDebtOf(loaded) > 0.5, true);
91
-
92
- const rested = applyRest(loaded);
93
- assert.equal(rested.cyclesSinceRest, 0);
94
- assert.equal(rested.vigilance > loaded.vigilance, true);
95
- assert.equal(rested.load < loaded.load, true);
96
- });
97
-
98
- test("offline plans admit no foreground and explain every deferral", () => {
99
- const process = processAttention(1, state({ vigilance: 0.2, cyclesSinceRest: 9 }));
100
- const plan = planAttention(process, [candidate(1, 9, 2), candidate(2, 5, 1)]);
101
- assert.equal(plan.rest, true);
102
- assert.equal(plan.foreground, (void 0));
103
- assert.equal(plan.deferred.length, 2);
104
- assert.equal(
105
- plan.deferred.every((entry) => entry.reason === "offline"),
106
- true,
107
- );
108
- assert.equal(plan.utilization, 0);
109
- });
110
-
111
- test("one foreground gets a slice; background uses only the reserve", () => {
112
- const process = processAttention(1, state());
113
- const plan = planAttention(process, [candidate(1, 9, 2), candidate(2, 8, 2), candidate(3, 5, 1, false), candidate(4, 4, 2, false)]);
114
- assert.equal(plan.foreground?.tid, 1);
115
- assert.equal(plan.foreground?.slots, 2);
116
- assert.equal(plan.background.length, 1);
117
- assert.equal(plan.background[0]?.tid, 3);
118
- assert.equal(plan.background[0]?.slots, 1);
119
- assert.equal(
120
- plan.deferred.some((entry) => entry.tid === 2 && entry.reason === "low-priority"),
121
- true,
122
- );
123
- assert.equal(
124
- plan.deferred.some((entry) => entry.tid === 4 && entry.reason === "budget"),
125
- true,
126
- );
127
- assert.equal(plan.utilization, 3 / 4);
128
- assert.equal(plan.pressure > 0, true);
129
- assert.deepEqual(attentionHealth(plan), { utilization: 0.75, pressure: plan.pressure, headroom: 0.25, rest: false });
130
- });
131
-
132
- test("floors apply to safety and admitted tasks, never to deferred tasks", () => {
133
- const process = processAttention(1, state());
134
- const plan = planAttention(process, [candidate(1, 9, 0, true, { minSlots: 1 }), candidate(2, 8, 2, true), candidate(3, 7, 1, false)]);
135
- assert.equal(plan.foreground?.slots, 1);
136
- assert.equal(plan.background[0]?.slots, 1);
137
- assert.equal(
138
- plan.deferred.some((entry) => entry.tid === 2),
139
- true,
140
- );
141
- assert.equal(plan.process.safetySlots, 1);
142
- });
143
-
144
- test("switch cost raises pressure without silently consuming capacity", () => {
145
- const process = processAttention(1, state({ dominantRole: "goal" }));
146
- const plan = planAttention(process, [candidate(1, 9, 2, true, { role: "engineer", switchCost: 2 })]);
147
- assert.equal(plan.foreground?.switchCost, 2);
148
- assert.equal(plan.utilization, 2 / 4);
149
- assert.equal(plan.pressure >= 0.5, true);
150
- });
151
-
152
- test("quality-adjusted throughput punishes busy-but-wrong agents", () => {
153
- const busyWrong = qualityAdjustedThroughput({ successes: 10, attempts: 20, errors: 4, rework: 3, attentionSlots: 4 });
154
- const slowerClean = qualityAdjustedThroughput({ successes: 8, attempts: 10, errors: 1, rework: 0, attentionSlots: 4 });
155
- assert.equal(slowerClean > busyWrong, true);
156
- });
157
-
158
- test("a policy can be tuned without changing the model", () => {
159
- const conservative = { ...DefaultAttentionPolicy, maxForegroundUtil: 0.5, reserveRatio: 0.5 };
160
- const process = processAttention(1, state(), conservative);
161
- assert.equal(process.foregroundCap, 2);
162
- assert.equal(process.reserveSlots, 2);
163
- assert.equal(process.safetySlots, 1);
164
- });
165
-
166
- console.log(`\n${passed} passed, ${failed} failed`);
167
- if (failed > 0) {
168
- process.exitCode = 1;
169
- }