attention-manifest-protocol 0.4.2 → 0.4.4

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 (809) hide show
  1. package/CHANGELOG.md +341 -293
  2. package/CHANGELOG.zh-CN.md +41 -8
  3. package/README.md +250 -171
  4. package/README.zh-CN.md +251 -171
  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/package.json +72 -193
  314. package/.editorconfig +0 -12
  315. package/.prettierignore +0 -17
  316. 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
  317. package/docs/annotation-campaign-A.csv +0 -54
  318. package/docs/annotation-campaign-B.csv +0 -54
  319. package/docs/annotation-campaign.csv +0 -54
  320. package/docs/eval/annotations-A.jsonl +0 -16
  321. package/docs/eval/annotations.json +0 -122
  322. package/docs/eval/recorded-labels.json +0 -12
  323. package/docs/eval/replay-cases.json +0 -14
  324. package/docs/eval/replay-labels-b.json +0 -14
  325. package/docs/examples/attention-request.json +0 -16
  326. package/docs/examples/checkpoint.json +0 -15
  327. package/docs/examples/claim.json +0 -66
  328. package/docs/examples/collaboration.json +0 -66
  329. package/docs/examples/concept-checkpoint.json +0 -15
  330. package/docs/examples/concept-prune-plan.json +0 -45
  331. package/docs/examples/federation.json +0 -126
  332. package/docs/examples/frame-chain.json +0 -77
  333. package/docs/examples/ledger-snapshot.json +0 -108
  334. package/docs/examples/manifest.json +0 -77
  335. package/docs/examples/message.json +0 -19
  336. package/docs/examples/other-model.json +0 -45
  337. package/docs/examples/plan.json +0 -50
  338. package/docs/examples/prune-plan.json +0 -48
  339. package/docs/examples/receipt.json +0 -22
  340. package/docs/examples/runtime-run.json +0 -573
  341. package/docs/examples/team.json +0 -66
  342. package/docs/examples/verb-note.json +0 -11
  343. package/docs/probes/bayes-scores.json +0 -1452
  344. package/docs/probes/calibration-imported.json +0 -141
  345. package/docs/probes/context-ast-deepseek.json +0 -1577
  346. package/docs/probes/deepseek-probe.json +0 -917
  347. package/docs/probes/eval-recorded-replay.json +0 -597
  348. package/docs/probes/eval-replay.json +0 -124
  349. package/docs/probes/eval-summary.json +0 -42
  350. package/docs/probes/runtime-eval.json +0 -4230
  351. package/eslint.config.mts +0 -96
  352. package/index.html +0 -13
  353. package/prettier.config.mts +0 -37
  354. package/public/favicon.svg +0 -1
  355. package/public/icons.svg +0 -24
  356. package/src/attention/attention.ts +0 -347
  357. package/src/attention/budget.ts +0 -72
  358. package/src/attention/cognition.ts +0 -519
  359. package/src/attention/index.ts +0 -8
  360. package/src/attention/interrupts.ts +0 -228
  361. package/src/attention/resource.ts +0 -316
  362. package/src/attention/social.ts +0 -217
  363. package/src/attention/socialTypes.ts +0 -115
  364. package/src/authz/authz.ts +0 -305
  365. package/src/authz/index.ts +0 -1
  366. package/src/bayes/calibration.ts +0 -204
  367. package/src/bayes/calibrationRegistry.ts +0 -111
  368. package/src/bayes/calibrationSelection.ts +0 -154
  369. package/src/bayes/engine.ts +0 -532
  370. package/src/bayes/index.ts +0 -6
  371. package/src/bayes/reliability.ts +0 -62
  372. package/src/bayes/scopedPriors.ts +0 -88
  373. package/src/boundary/frame.ts +0 -322
  374. package/src/boundary/ids.ts +0 -14
  375. package/src/boundary/index.ts +0 -12
  376. package/src/boundary/refTable.ts +0 -125
  377. package/src/boundary/toolCall.ts +0 -212
  378. package/src/concept/concept.ts +0 -75
  379. package/src/concept/conceptBudget.ts +0 -346
  380. package/src/concept/conceptBudgetTypes.ts +0 -79
  381. package/src/concept/index.ts +0 -3
  382. package/src/concurrency/idempotency.ts +0 -41
  383. package/src/concurrency/index.ts +0 -5
  384. package/src/concurrency/mutex.ts +0 -26
  385. package/src/concurrency/namedLocks.ts +0 -35
  386. package/src/concurrency/retry.ts +0 -50
  387. package/src/concurrency/worker.ts +0 -128
  388. package/src/context/agentContext.ts +0 -308
  389. package/src/context/ast.ts +0 -499
  390. package/src/context/contentStore.ts +0 -75
  391. package/src/context/context.ts +0 -65
  392. package/src/context/contextIndex.ts +0 -85
  393. package/src/context/document.ts +0 -137
  394. package/src/context/fileStorePath.ts +0 -14
  395. package/src/context/index.ts +0 -43
  396. package/src/context/lifecycle.ts +0 -221
  397. package/src/context/projections.ts +0 -151
  398. package/src/context/workspace.ts +0 -422
  399. package/src/context/workspaceProtocol.ts +0 -112
  400. package/src/context/workspaceService.ts +0 -423
  401. package/src/cooperation/board.ts +0 -104
  402. package/src/cooperation/collaboration.ts +0 -60
  403. package/src/cooperation/index.ts +0 -6
  404. package/src/cooperation/merge.ts +0 -190
  405. package/src/cooperation/metrics.ts +0 -57
  406. package/src/cooperation/session.ts +0 -131
  407. package/src/cooperation/unified.ts +0 -56
  408. package/src/counter.ts +0 -9
  409. package/src/database/adapter/adapters.ts +0 -35
  410. package/src/database/adapter/index.ts +0 -4
  411. package/src/database/adapter/runtimeSink.ts +0 -74
  412. package/src/database/adapter/sessionStore.ts +0 -32
  413. package/src/database/adapter/turnStore.ts +0 -23
  414. package/src/database/entity/agent.ts +0 -199
  415. package/src/database/entity/entity.ts +0 -1046
  416. package/src/database/entity/handle.ts +0 -79
  417. package/src/database/entity/index.ts +0 -32
  418. package/src/database/entity/message.ts +0 -74
  419. package/src/database/entity/meta.ts +0 -11
  420. package/src/database/entity/object.ts +0 -42
  421. package/src/database/entity/outbox.ts +0 -15
  422. package/src/database/entity/process.ts +0 -65
  423. package/src/database/entity/registry.ts +0 -155
  424. package/src/database/entity/runtimeApproval.ts +0 -30
  425. package/src/database/entity/runtimeSession.ts +0 -13
  426. package/src/database/entity/runtimeTurn.ts +0 -15
  427. package/src/database/entity/thread.ts +0 -85
  428. package/src/database/entity/window.ts +0 -85
  429. package/src/database/entity/worker.ts +0 -90
  430. package/src/database/index.ts +0 -6
  431. package/src/database/repository/addressSpaceRepository.ts +0 -72
  432. package/src/database/repository/agentRepository.ts +0 -460
  433. package/src/database/repository/base.ts +0 -41
  434. package/src/database/repository/executionRepository.ts +0 -477
  435. package/src/database/repository/handleRepository.ts +0 -64
  436. package/src/database/repository/index.ts +0 -20
  437. package/src/database/repository/messageRepository.ts +0 -52
  438. package/src/database/repository/objectRepository.ts +0 -69
  439. package/src/database/repository/outboxRepository.ts +0 -63
  440. package/src/database/repository/processRepository.ts +0 -58
  441. package/src/database/repository/registryRepository.ts +0 -119
  442. package/src/database/repository/repository.ts +0 -491
  443. package/src/database/repository/runtimeApprovalRepository.ts +0 -44
  444. package/src/database/repository/runtimeSessionRepository.ts +0 -27
  445. package/src/database/repository/runtimeTurnRepository.ts +0 -39
  446. package/src/database/repository/socialRepository.ts +0 -185
  447. package/src/database/repository/threadRepository.ts +0 -57
  448. package/src/database/repository/windowRepository.ts +0 -88
  449. package/src/database/repository/workerRepository.ts +0 -69
  450. package/src/database/service/database.ts +0 -90
  451. package/src/database/service/handleService.ts +0 -48
  452. package/src/database/service/index.ts +0 -16
  453. package/src/database/service/messageService.ts +0 -61
  454. package/src/database/service/objectService.ts +0 -59
  455. package/src/database/service/processService.ts +0 -61
  456. package/src/database/service/registryServices.ts +0 -88
  457. package/src/database/service/service.ts +0 -183
  458. package/src/database/service/stepService.ts +0 -53
  459. package/src/database/service/threadService.ts +0 -65
  460. package/src/database/service/windowService.ts +0 -30
  461. package/src/database/service/workerService.ts +0 -57
  462. package/src/database/sql/index.ts +0 -3
  463. package/src/database/sql/schema.ts +0 -418
  464. package/src/database/sql/sql.ts +0 -543
  465. package/src/database/store/database.ts +0 -210
  466. package/src/database/store/index.ts +0 -3
  467. package/src/database/store/store.ts +0 -266
  468. package/src/delegate/index.ts +0 -2
  469. package/src/delegate/team.ts +0 -268
  470. package/src/delegate/teamTypes.ts +0 -47
  471. package/src/diagnosis/checklist.ts +0 -74
  472. package/src/diagnosis/context.ts +0 -93
  473. package/src/diagnosis/frame.ts +0 -256
  474. package/src/diagnosis/index.ts +0 -5
  475. package/src/diagnosis/router.ts +0 -72
  476. package/src/diagnosis/types.ts +0 -89
  477. package/src/error/agentError.ts +0 -16
  478. package/src/error/ampError.ts +0 -20
  479. package/src/error/authzError.ts +0 -14
  480. package/src/error/boundaryRejection.ts +0 -20
  481. package/src/error/index.ts +0 -7
  482. package/src/error/kernelError.ts +0 -27
  483. package/src/error/mailboxError.ts +0 -9
  484. package/src/error/windowError.ts +0 -12
  485. package/src/evaluation/agreement.ts +0 -96
  486. package/src/evaluation/index.ts +0 -2
  487. package/src/evaluation/labels.ts +0 -241
  488. package/src/evidence/evidenceGraph.ts +0 -205
  489. package/src/evidence/index.ts +0 -4
  490. package/src/evidence/revalidation.ts +0 -191
  491. package/src/execution/exec.ts +0 -408
  492. package/src/execution/handles.ts +0 -65
  493. package/src/execution/index.ts +0 -3
  494. package/src/execution/pin.ts +0 -154
  495. package/src/frame/frame.ts +0 -70
  496. package/src/frame/index.ts +0 -1
  497. package/src/goal/goal.ts +0 -43
  498. package/src/goal/index.ts +0 -2
  499. package/src/goal/plan.ts +0 -196
  500. package/src/governance/attentionManifest.ts +0 -802
  501. package/src/governance/audit.ts +0 -362
  502. package/src/governance/budget.ts +0 -628
  503. package/src/governance/context.ts +0 -356
  504. package/src/governance/control.ts +0 -159
  505. package/src/governance/cooperation.ts +0 -479
  506. package/src/governance/credential.ts +0 -359
  507. package/src/governance/httpServer.ts +0 -99
  508. package/src/governance/index.ts +0 -32
  509. package/src/governance/legal.ts +0 -574
  510. package/src/governance/matrix.ts +0 -460
  511. package/src/governance/perspectives.ts +0 -406
  512. package/src/governance/signing.ts +0 -407
  513. package/src/governance/store.ts +0 -125
  514. package/src/governance/switching.ts +0 -459
  515. package/src/governance/toolPolicy.ts +0 -80
  516. package/src/governance/transport.ts +0 -204
  517. package/src/governance/types.ts +0 -380
  518. package/src/governance/workflow.ts +0 -743
  519. package/src/index.ts +0 -11
  520. package/src/interaction/index.ts +0 -1
  521. package/src/interaction/interaction.ts +0 -391
  522. package/src/ipc/index.ts +0 -4
  523. package/src/ipc/mailbox.ts +0 -132
  524. package/src/ipc/memorySocialStore.ts +0 -93
  525. package/src/ipc/social.ts +0 -93
  526. package/src/kernel/index.ts +0 -14
  527. package/src/kernel/scheduler.ts +0 -498
  528. package/src/ledger/checkpoint.ts +0 -304
  529. package/src/ledger/index.ts +0 -4
  530. package/src/ledger/ledger.ts +0 -31
  531. package/src/ledger/persistence.ts +0 -159
  532. package/src/ledger/share.ts +0 -80
  533. package/src/lock/index.ts +0 -2
  534. package/src/lock/lease.ts +0 -74
  535. package/src/main.ts +0 -199
  536. package/src/manifest/agentCard.ts +0 -72
  537. package/src/manifest/cardSign.ts +0 -87
  538. package/src/manifest/federation.ts +0 -237
  539. package/src/manifest/federationTypes.ts +0 -55
  540. package/src/manifest/index.ts +0 -8
  541. package/src/manifest/keys.ts +0 -643
  542. package/src/manifest/manifest.ts +0 -114
  543. package/src/manifest/sign.ts +0 -134
  544. package/src/manifest/trust.ts +0 -146
  545. package/src/mission/index.ts +0 -2
  546. package/src/mission/missionQueue.ts +0 -75
  547. package/src/module/index.ts +0 -9
  548. package/src/module/llm/deepseek.ts +0 -214
  549. package/src/module/llm/llm.ts +0 -84
  550. package/src/module/mcp/client.ts +0 -110
  551. package/src/module/mcp/http.ts +0 -102
  552. package/src/module/mcp/protocol.ts +0 -77
  553. package/src/module/mcp/server.ts +0 -148
  554. package/src/module/mcp/transport.ts +0 -30
  555. package/src/module/mcp/workspaceServer.ts +0 -111
  556. package/src/module/sandbox/sandbox.ts +0 -29
  557. package/src/module/tool/mcpExecutor.ts +0 -54
  558. package/src/module/tool/policy.ts +0 -52
  559. package/src/module/tool/redact.ts +0 -29
  560. package/src/module/tool/tool.ts +0 -53
  561. package/src/module/tool/workspaceExecutor.ts +0 -35
  562. package/src/policy/guard.ts +0 -240
  563. package/src/policy/index.ts +0 -2
  564. package/src/policy/policy.ts +0 -561
  565. package/src/process/agent.ts +0 -341
  566. package/src/process/agentService.ts +0 -236
  567. package/src/process/agentStore.ts +0 -378
  568. package/src/process/executionStore.ts +0 -151
  569. package/src/process/index.ts +0 -5
  570. package/src/process/process.ts +0 -240
  571. package/src/process/transitions.ts +0 -19
  572. package/src/progress/index.ts +0 -2
  573. package/src/progress/progress.ts +0 -85
  574. package/src/protocol/a2a.ts +0 -120
  575. package/src/protocol/channel.ts +0 -44
  576. package/src/protocol/envelope.ts +0 -655
  577. package/src/protocol/httpChannel.ts +0 -87
  578. package/src/protocol/index.ts +0 -6
  579. package/src/protocol/protocol.ts +0 -138
  580. package/src/protocol/wire.ts +0 -60
  581. package/src/receipt/index.ts +0 -1
  582. package/src/receipt/receipt.ts +0 -47
  583. package/src/registry/content.ts +0 -69
  584. package/src/registry/index.ts +0 -23
  585. package/src/registry/registry.ts +0 -599
  586. package/src/runtime/action.ts +0 -87
  587. package/src/runtime/behavior.ts +0 -330
  588. package/src/runtime/behaviorTuning.ts +0 -163
  589. package/src/runtime/cognitiveRuntime.ts +0 -703
  590. package/src/runtime/escalation.ts +0 -35
  591. package/src/runtime/governedTask.ts +0 -233
  592. package/src/runtime/index.ts +0 -15
  593. package/src/runtime/kernelRuntime.ts +0 -144
  594. package/src/runtime/operation.ts +0 -35
  595. package/src/runtime/replay.ts +0 -71
  596. package/src/runtime/routing.ts +0 -58
  597. package/src/runtime/safety.ts +0 -48
  598. package/src/runtime/session.ts +0 -341
  599. package/src/runtime/sessionStore.ts +0 -43
  600. package/src/runtime/telemetry.ts +0 -55
  601. package/src/runtime/turnStore.ts +0 -30
  602. package/src/scenario/index.ts +0 -1
  603. package/src/scenario/scenario.ts +0 -299
  604. package/src/semantic/canonical.ts +0 -24
  605. package/src/semantic/index.ts +0 -2
  606. package/src/semantic/sha256.ts +0 -82
  607. package/src/storage/appendLog.ts +0 -372
  608. package/src/storage/fileAppendSink.ts +0 -40
  609. package/src/storage/index.ts +0 -2
  610. package/src/store/bindCache.ts +0 -22
  611. package/src/store/cache.ts +0 -191
  612. package/src/store/context.ts +0 -31
  613. package/src/store/handleStore.ts +0 -31
  614. package/src/store/index.ts +0 -9
  615. package/src/store/messageStore.ts +0 -31
  616. package/src/store/objectStore.ts +0 -31
  617. package/src/store/processStore.ts +0 -31
  618. package/src/store/threadStore.ts +0 -31
  619. package/src/store/windowStore.ts +0 -31
  620. package/src/structure/abstractSyntaxTree.ts +0 -493
  621. package/src/structure/avlTree.ts +0 -408
  622. package/src/structure/binarySearchTree.ts +0 -352
  623. package/src/structure/binaryTree.ts +0 -525
  624. package/src/structure/bloomFilter.ts +0 -231
  625. package/src/structure/compare.ts +0 -110
  626. package/src/structure/cuckooFilter.ts +0 -337
  627. package/src/structure/deque.ts +0 -223
  628. package/src/structure/filterKey.ts +0 -36
  629. package/src/structure/hash.ts +0 -279
  630. package/src/structure/heap.ts +0 -268
  631. package/src/structure/index.ts +0 -20
  632. package/src/structure/iterator.ts +0 -22
  633. package/src/structure/lru.ts +0 -619
  634. package/src/structure/ordered.ts +0 -399
  635. package/src/structure/priority.ts +0 -915
  636. package/src/structure/queue.ts +0 -168
  637. package/src/structure/redBlackTree.ts +0 -680
  638. package/src/structure/segmentTree.ts +0 -248
  639. package/src/structure/stack.ts +0 -118
  640. package/src/structure/unordered.ts +0 -407
  641. package/src/style.css +0 -278
  642. package/src/thread/index.ts +0 -2
  643. package/src/thread/thread.ts +0 -176
  644. package/src/thread/transitions.ts +0 -17
  645. package/src/types/common.ts +0 -119
  646. package/src/types/index.ts +0 -23
  647. package/src/warrant/epistemic.ts +0 -154
  648. package/src/warrant/index.ts +0 -3
  649. package/src/warrant/inquiry.ts +0 -166
  650. package/src/warrant/warrant.ts +0 -179
  651. package/src/window/compaction.ts +0 -403
  652. package/src/window/compactionTypes.ts +0 -119
  653. package/src/window/index.ts +0 -7
  654. package/src/window/page.ts +0 -18
  655. package/src/window/window.ts +0 -244
  656. package/tools/_helpers.ts +0 -34
  657. package/tools/a2a-check.ts +0 -110
  658. package/tools/a2a-flow-check.ts +0 -78
  659. package/tools/agent-card-check.ts +0 -76
  660. package/tools/agent-check.ts +0 -236
  661. package/tools/agent-store-check.ts +0 -153
  662. package/tools/agreement-check.ts +0 -27
  663. package/tools/annotation-server-check.ts +0 -48
  664. package/tools/annotation-server.ts +0 -230
  665. package/tools/annotation-status.ts +0 -65
  666. package/tools/approval-access-check.ts +0 -66
  667. package/tools/arch-check.ts +0 -72
  668. package/tools/attention-core-check.ts +0 -48
  669. package/tools/attention-resource-check.ts +0 -169
  670. package/tools/audit-check.ts +0 -207
  671. package/tools/authority-check.ts +0 -124
  672. package/tools/authz-check.ts +0 -138
  673. package/tools/bayes-check.ts +0 -162
  674. package/tools/bayes-probe.ts +0 -154
  675. package/tools/behavior-tuning-check.ts +0 -53
  676. package/tools/board-check.ts +0 -87
  677. package/tools/boundary-check.ts +0 -199
  678. package/tools/bundle-trust-check.ts +0 -96
  679. package/tools/calibrate-imported.ts +0 -108
  680. package/tools/calibration-check.ts +0 -44
  681. package/tools/calibration-registry-check.ts +0 -40
  682. package/tools/calibration-sim.ts +0 -40
  683. package/tools/card-sign-check.ts +0 -71
  684. package/tools/card-trust-check.ts +0 -78
  685. package/tools/channel-check.ts +0 -86
  686. package/tools/checkpoint-check.ts +0 -620
  687. package/tools/cleanup-style-configs.ts +0 -29
  688. package/tools/cognition-check.ts +0 -648
  689. package/tools/cognitive-runtime-check.ts +0 -609
  690. package/tools/collaboration-demo.ts +0 -78
  691. package/tools/compaction-check.ts +0 -266
  692. package/tools/concept-check.ts +0 -260
  693. package/tools/concurrency-check.ts +0 -242
  694. package/tools/conformance-runtime.ts +0 -389
  695. package/tools/conformance.ts +0 -651
  696. package/tools/context-ast-check.ts +0 -90
  697. package/tools/context-ast-deepseek.ts +0 -242
  698. package/tools/context-graph-bench.ts +0 -50
  699. package/tools/context-graph-check.ts +0 -229
  700. package/tools/context-index-check.ts +0 -48
  701. package/tools/context-lifecycle-check.ts +0 -69
  702. package/tools/context-projection-check.ts +0 -73
  703. package/tools/context-scope-check.ts +0 -134
  704. package/tools/context-storage-check.ts +0 -113
  705. package/tools/cooperation-check.ts +0 -517
  706. package/tools/cooperation-http-check.ts +0 -125
  707. package/tools/deepseek-llm-check.ts +0 -147
  708. package/tools/deepseek-probe.ts +0 -494
  709. package/tools/diagnosis-check.ts +0 -109
  710. package/tools/diagnosis-router-check.ts +0 -50
  711. package/tools/document-context-check.ts +0 -237
  712. package/tools/envelope-check.ts +0 -659
  713. package/tools/eslint-rules/index.ts +0 -26
  714. package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
  715. package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
  716. package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
  717. package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
  718. package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
  719. package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
  720. package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
  721. package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
  722. package/tools/eslint-rules/rules/variable-naming.ts +0 -175
  723. package/tools/eval-recorded-replay.ts +0 -215
  724. package/tools/eval-replay.ts +0 -139
  725. package/tools/eval-summary.ts +0 -136
  726. package/tools/evidence-revalidation-check.ts +0 -235
  727. package/tools/exec-check.ts +0 -217
  728. package/tools/federation-check.ts +0 -166
  729. package/tools/federation-demo.ts +0 -45
  730. package/tools/filter-check.ts +0 -243
  731. package/tools/governance-check.ts +0 -680
  732. package/tools/governance-store-check.ts +0 -131
  733. package/tools/governed-task-check.ts +0 -227
  734. package/tools/guard-check.ts +0 -122
  735. package/tools/http-channel-check.ts +0 -125
  736. package/tools/import-campaign.ts +0 -28
  737. package/tools/inquiry-check.ts +0 -126
  738. package/tools/interaction-check.ts +0 -171
  739. package/tools/interrupts-check.ts +0 -173
  740. package/tools/ipc-check.ts +0 -170
  741. package/tools/kernel-async-check.ts +0 -136
  742. package/tools/kernel-check.ts +0 -369
  743. package/tools/kernel-runtime-check.ts +0 -276
  744. package/tools/keys-check.ts +0 -559
  745. package/tools/label-audit.ts +0 -70
  746. package/tools/labels-workflow-check.ts +0 -49
  747. package/tools/linear-structure-check.ts +0 -524
  748. package/tools/live-exec.ts +0 -62
  749. package/tools/live-governance-eval.ts +0 -813
  750. package/tools/live-legacy.ts +0 -50
  751. package/tools/lru-check.ts +0 -182
  752. package/tools/make-annotation-campaign.ts +0 -57
  753. package/tools/mcp-executor-check.ts +0 -33
  754. package/tools/merge-annotations.ts +0 -32
  755. package/tools/merge-check.ts +0 -98
  756. package/tools/metrics-check.ts +0 -84
  757. package/tools/net-probe.ts +0 -107
  758. package/tools/oauth-probe.ts +0 -117
  759. package/tools/outbox-check.ts +0 -50
  760. package/tools/persistence-check.ts +0 -144
  761. package/tools/pin-check.ts +0 -116
  762. package/tools/platform-check.ts +0 -281
  763. package/tools/policy-check.ts +0 -514
  764. package/tools/prettier-plugin/index.mts +0 -84
  765. package/tools/priority-check.ts +0 -627
  766. package/tools/probe-context7.ts +0 -63
  767. package/tools/registry-check.ts +0 -252
  768. package/tools/reliability-check.ts +0 -25
  769. package/tools/retry-check.ts +0 -85
  770. package/tools/rewrite-declaration-extensions.ts +0 -98
  771. package/tools/runtime-check.ts +0 -165
  772. package/tools/runtime-deepseek-check.ts +0 -85
  773. package/tools/runtime-eval.ts +0 -358
  774. package/tools/scenario-check.ts +0 -161
  775. package/tools/scenario-incident.ts +0 -162
  776. package/tools/scoped-priors-check.ts +0 -35
  777. package/tools/scoped-priors-pooling.ts +0 -34
  778. package/tools/segment-ast-check.ts +0 -649
  779. package/tools/session-check.ts +0 -196
  780. package/tools/session-store-check.ts +0 -73
  781. package/tools/share-check.ts +0 -88
  782. package/tools/sign-check.ts +0 -95
  783. package/tools/signing-check.ts +0 -275
  784. package/tools/snapshot-demo.ts +0 -65
  785. package/tools/social-check.ts +0 -146
  786. package/tools/structure-compare-check.ts +0 -95
  787. package/tools/support/documentScanner.ts +0 -577
  788. package/tools/support/texScanner.ts +0 -631
  789. package/tools/support/workspaceScanner.ts +0 -476
  790. package/tools/team-check.ts +0 -163
  791. package/tools/team-demo.ts +0 -36
  792. package/tools/telemetry-check.ts +0 -44
  793. package/tools/tex-context-check.ts +0 -263
  794. package/tools/tool-gate-check.ts +0 -98
  795. package/tools/tree-structure-check.ts +0 -786
  796. package/tools/trust-flow-check.ts +0 -158
  797. package/tools/turn-store-check.ts +0 -57
  798. package/tools/unified-check.ts +0 -83
  799. package/tools/validate.ts +0 -309
  800. package/tools/wire-check.ts +0 -96
  801. package/tools/workspace-agent-check.ts +0 -486
  802. package/tools/workspace-agent-demo.ts +0 -62
  803. package/tools/workspace-agent-server.ts +0 -101
  804. package/tools/workspace-context-check.ts +0 -331
  805. package/tools/workspace-context.ts +0 -131
  806. package/tsconfig.build.json +0 -14
  807. package/tsconfig.json +0 -24
  808. package/tsconfig.tools.json +0 -31
  809. package/viz/context-ast.json +0 -1577
@@ -1,9 +1,32 @@
1
1
  import { digestOf } from "../semantic/canonical.js";
2
+ import { deepFreezeJson } from "../semantic/jsonValue.js";
3
+ import { isDateTime } from "../semantic/time.js";
2
4
  import { isId } from "./ids.js";
5
+ import { isRefKind } from "./kinds.js";
3
6
  import { BoundaryRejection } from "../error/boundaryRejection.js";
4
7
  const SchemaMaxSlots = 9;
5
8
  const DefaultMaxIgnored = 50;
6
9
  const BudgetDimensions = ["tokens", "ms", "calls", "interrupts", "money"];
10
+ const FrameProperties = [
11
+ "id",
12
+ "agent",
13
+ "cycle",
14
+ "ts",
15
+ "parent",
16
+ "mode",
17
+ "goal",
18
+ "slots",
19
+ "ignored",
20
+ "budget",
21
+ "open_questions",
22
+ "impasse",
23
+ "note",
24
+ ];
25
+ const SlotProperties = ["target", "role", "tier", "salience", "voi", "cost", "budget", "why", "ttl_turns", "state"];
26
+ const IgnoredProperties = ["target", "reason", "revisit_if"];
27
+ const RefProperties = ["kind", "id", "label"];
28
+ const FrameBudgetProperties = ["allocated", "spent"];
29
+ const ImpasseProperties = ["state", "detail"];
7
30
  const FrameModes = ["explore", "exploit", "triage", "reflect", "rest"];
8
31
  const SlotRoles = ["goal", "question", "evidence", "concept", "process", "tool", "memory", "self", "other", "threat", "artifact"];
9
32
  const SlotStates = ["active", "released", "evicted", "done"];
@@ -11,229 +34,443 @@ const IgnoredReasons = ["low_voi", "out_of_scope", "untrusted", "budget", "block
11
34
  const ImpasseStates = ["TIE", "STUCK", "STALLED", "CONFLICT", "INFEASIBLE", "UNKNOWN", "UNVERIFIED", "DRIFT", "BUDGET"];
12
35
  const Tiers = ["T0", "T1", "T2", "T3", "T4"];
13
36
  const isRecord = (value) => typeof (value) === "object" && value !== null && !Array.isArray(value);
14
- const checkBudget = (value, at, problems) => {
37
+ /**
38
+ * A host draft must be a plain object (or null-prototype). Class instances,
39
+ * arrays and functions are not drafts, even though they can carry the fields.
40
+ */
41
+ const isPlainRecord = (value) => {
15
42
  if (!isRecord(value)) {
43
+ return false;
44
+ }
45
+ const prototype = Object.getPrototypeOf(value);
46
+ return prototype === null || prototype === Object.prototype;
47
+ };
48
+ const isRefTable = (value) => typeof (value) === "object" && value !== null && typeof (value.check) === "function";
49
+ const reportUnknownProperties = (value, allowed, at, problems) => {
50
+ const keys = Object.keys(value);
51
+ for (let index = 0; index < keys.length; index += 1) {
52
+ const key = keys[index];
53
+ if (!allowed.includes(key)) {
54
+ problems.push(at.length === 0 ? `unknown property "${key}"` : `${at}: unknown property "${key}"`);
55
+ }
56
+ }
57
+ };
58
+ /**
59
+ * Validate a budget-like object and return a fresh copy that only holds the
60
+ * five declared dimensions. `money` alone may be fractional.
61
+ */
62
+ const readBudget = (value, at, problems) => {
63
+ if (!isPlainRecord(value)) {
16
64
  problems.push(`${at} must be an object`);
17
- return;
65
+ return (void 0);
18
66
  }
19
- const budgetKeys = Object.keys(value);
20
- for (let keyIndex = 0; keyIndex < budgetKeys.length; keyIndex += 1) {
21
- const key = budgetKeys[keyIndex];
67
+ const keys = Object.keys(value);
68
+ const budget = {};
69
+ let valid = true;
70
+ for (let index = 0; index < keys.length; index += 1) {
71
+ const key = keys[index];
22
72
  const amount = value[key];
23
73
  if (!BudgetDimensions.includes(key)) {
24
74
  problems.push(`${at}.${key} is not a budget dimension`);
75
+ valid = false;
25
76
  continue;
26
77
  }
27
78
  if (typeof (amount) !== "number" || !Number.isFinite(amount) || amount < 0) {
28
79
  problems.push(`${at}.${key} must be a non-negative finite number`);
80
+ valid = false;
29
81
  continue;
30
82
  }
31
83
  if (key !== "money" && !Number.isInteger(amount)) {
32
84
  problems.push(`${at}.${key} must be an integer`);
85
+ valid = false;
86
+ continue;
33
87
  }
88
+ budget[key] = amount;
34
89
  }
90
+ return valid ? budget : (void 0);
35
91
  };
36
- const checkRef = (value, refs, at, problems) => {
37
- if (!isRecord(value)) {
92
+ /**
93
+ * Validate a reference and return a fresh copy. Opaque kinds pass on shape
94
+ * alone; every other kind must resolve in the supplied scope.
95
+ */
96
+ const readRef = (value, refs, at, problems) => {
97
+ if (!isPlainRecord(value)) {
38
98
  problems.push(`${at} must be a Ref object`);
39
- return;
99
+ return (void 0);
40
100
  }
41
- if (typeof (value.kind) !== "string" || !isId(value.id)) {
42
- problems.push(`${at} must have a string kind and a valid id`);
43
- return;
101
+ reportUnknownProperties(value, RefProperties, at, problems);
102
+ const kind = value.kind;
103
+ const id = value.id;
104
+ const label = value.label;
105
+ let shapeValid = true;
106
+ if (!isRefKind(kind)) {
107
+ problems.push(`${at}.kind is not a ref kind`);
108
+ shapeValid = false;
44
109
  }
45
- if (!refs.has(value)) {
46
- const problem = refs.check(value);
47
- if (problem !== (void 0)) {
48
- problems.push(`${at} ${problem}`);
49
- }
110
+ if (!isId(id)) {
111
+ problems.push(`${at}.id is not a valid AMP id`);
112
+ shapeValid = false;
113
+ }
114
+ if (label !== (void 0) && typeof (label) !== "string") {
115
+ problems.push(`${at}.label must be a string`);
116
+ shapeValid = false;
50
117
  }
118
+ if (!shapeValid) {
119
+ return (void 0);
120
+ }
121
+ const ref = { kind: kind, id: id };
122
+ if (label !== (void 0)) {
123
+ ref.label = label;
124
+ }
125
+ const problem = refs.check(ref);
126
+ if (problem !== (void 0)) {
127
+ problems.push(`${at} ${problem}`);
128
+ }
129
+ return ref;
51
130
  };
52
- const checkSlot = (value, refs, at, problems) => {
53
- if (!isRecord(value)) {
131
+ /**
132
+ * Validate a slot and return a fresh copy with only the schema fields.
133
+ */
134
+ const readSlot = (value, refs, at, problems) => {
135
+ if (!isPlainRecord(value)) {
54
136
  problems.push(`${at} must be an object`);
55
- return;
137
+ return (void 0);
56
138
  }
57
- checkRef(value.target, refs, `${at}.target`, problems);
58
- if (typeof (value.role) !== "string" || !SlotRoles.includes(value.role)) {
139
+ const problemCount = problems.length;
140
+ reportUnknownProperties(value, SlotProperties, at, problems);
141
+ const target = readRef(value.target, refs, `${at}.target`, problems);
142
+ const role = value.role;
143
+ if (typeof (role) !== "string" || !SlotRoles.includes(role)) {
59
144
  problems.push(`${at}.role is not a slot role`);
60
145
  }
146
+ const tier = value.tier;
147
+ if (tier !== (void 0) && (typeof (tier) !== "string" || !Tiers.includes(tier))) {
148
+ problems.push(`${at}.tier is not a tier`);
149
+ }
61
150
  const salience = value.salience;
62
- if (typeof (salience) !== "number" || salience < 0 || salience > 1) {
151
+ if (typeof (salience) !== "number" || !Number.isFinite(salience) || salience < 0 || salience > 1) {
63
152
  problems.push(`${at}.salience must be in [0,1]`);
64
153
  }
65
- if (typeof (value.why) !== "string" || value.why.trim().length === 0) {
154
+ const voi = value.voi;
155
+ if (voi !== (void 0) && (typeof (voi) !== "number" || !Number.isFinite(voi) || voi < 0 || voi > 1)) {
156
+ problems.push(`${at}.voi must be in [0,1]`);
157
+ }
158
+ const cost = readBudget(value.cost, `${at}.cost`, problems);
159
+ const budget = value.budget === (void 0) ? (void 0) : readBudget(value.budget, `${at}.budget`, problems);
160
+ const why = value.why;
161
+ if (typeof (why) !== "string" || why.trim().length === 0) {
66
162
  problems.push(`${at}.why is empty`);
67
163
  }
68
- checkBudget(value.cost, `${at}.cost`, problems);
69
- if (typeof (value.state) !== "string" || !SlotStates.includes(value.state)) {
164
+ const ttlTurns = value.ttl_turns;
165
+ if (ttlTurns !== (void 0) && (typeof (ttlTurns) !== "number" || !Number.isSafeInteger(ttlTurns) || ttlTurns < 0)) {
166
+ problems.push(`${at}.ttl_turns must be a non-negative integer`);
167
+ }
168
+ const state = value.state;
169
+ if (typeof (state) !== "string" || !SlotStates.includes(state)) {
70
170
  problems.push(`${at}.state is not a slot state`);
71
171
  }
72
- if (value.tier !== (void 0) && (typeof (value.tier) !== "string" || !Tiers.includes(value.tier))) {
73
- problems.push(`${at}.tier is not a tier`);
172
+ if (problems.length !== problemCount || target === (void 0) || cost === (void 0)) {
173
+ return (void 0);
74
174
  }
75
- const voi = value.voi;
76
- if (voi !== (void 0) && (typeof (voi) !== "number" || voi < 0 || voi > 1)) {
77
- problems.push(`${at}.voi must be in [0,1]`);
175
+ const slot = {
176
+ target,
177
+ role: role,
178
+ salience: salience,
179
+ cost,
180
+ why: why,
181
+ state: state,
182
+ };
183
+ if (tier !== (void 0)) {
184
+ slot.tier = tier;
78
185
  }
79
- if (value.budget !== (void 0)) {
80
- checkBudget(value.budget, `${at}.budget`, problems);
186
+ if (voi !== (void 0)) {
187
+ slot.voi = voi;
81
188
  }
82
- const ttlTurns = value.ttl_turns;
83
- if (ttlTurns !== (void 0) && (typeof (ttlTurns) !== "number" || !Number.isInteger(ttlTurns) || ttlTurns < 0)) {
84
- problems.push(`${at}.ttl_turns must be a non-negative integer`);
189
+ if (budget !== (void 0)) {
190
+ slot.budget = budget;
191
+ }
192
+ if (ttlTurns !== (void 0)) {
193
+ slot.ttl_turns = ttlTurns;
85
194
  }
195
+ return slot;
86
196
  };
87
- const checkIgnored = (value, refs, at, problems) => {
88
- if (!isRecord(value)) {
197
+ /**
198
+ * Validate a deliberate exclusion and return a fresh copy.
199
+ */
200
+ const readIgnored = (value, refs, at, problems) => {
201
+ if (!isPlainRecord(value)) {
89
202
  problems.push(`${at} must be an object`);
90
- return;
203
+ return (void 0);
91
204
  }
92
- checkRef(value.target, refs, `${at}.target`, problems);
93
- if (typeof (value.reason) !== "string" || !IgnoredReasons.includes(value.reason)) {
205
+ const problemCount = problems.length;
206
+ reportUnknownProperties(value, IgnoredProperties, at, problems);
207
+ const target = readRef(value.target, refs, `${at}.target`, problems);
208
+ const reason = value.reason;
209
+ if (typeof (reason) !== "string" || !IgnoredReasons.includes(reason)) {
94
210
  problems.push(`${at}.reason is not an ignored reason`);
95
211
  }
96
- if (typeof (value.revisit_if) !== "string" || value.revisit_if.trim().length === 0) {
212
+ const revisitIf = value.revisit_if;
213
+ if (typeof (revisitIf) !== "string" || revisitIf.trim().length === 0) {
97
214
  problems.push(`${at}.revisit_if is empty`);
98
215
  }
216
+ if (problems.length !== problemCount || target === (void 0)) {
217
+ return (void 0);
218
+ }
219
+ return { target, reason: reason, revisit_if: revisitIf };
99
220
  };
100
- const checkImpasse = (value, at, problems) => {
101
- if (!isRecord(value)) {
221
+ /**
222
+ * Validate an impasse marker and return a fresh copy.
223
+ */
224
+ const readImpasse = (value, at, problems) => {
225
+ if (!isPlainRecord(value)) {
102
226
  problems.push(`${at} must be an object`);
103
- return;
227
+ return (void 0);
104
228
  }
105
- if (typeof (value.state) !== "string" || !ImpasseStates.includes(value.state)) {
229
+ const problemCount = problems.length;
230
+ reportUnknownProperties(value, ImpasseProperties, at, problems);
231
+ const state = value.state;
232
+ if (typeof (state) !== "string" || !ImpasseStates.includes(state)) {
106
233
  problems.push(`${at}.state is not an impasse state`);
107
234
  }
108
- if (value.detail !== (void 0) && typeof (value.detail) !== "string") {
235
+ const detail = value.detail;
236
+ if (detail !== (void 0) && typeof (detail) !== "string") {
109
237
  problems.push(`${at}.detail must be a string`);
110
238
  }
239
+ if (problems.length !== problemCount) {
240
+ return (void 0);
241
+ }
242
+ const impasse = { state: state };
243
+ if (detail !== (void 0)) {
244
+ impasse.detail = detail;
245
+ }
246
+ return impasse;
111
247
  };
112
248
  /**
113
249
  * Validate a draft and return the only frame it permits.
114
250
  *
115
251
  * @throws BoundaryRejection `invalid_frame` with every problem found.
116
252
  */
117
- export const frameFrom = (draft, refs, options = {}) => {
253
+ const buildFrame = (draft, refs, options = {}) => {
254
+ if (!isPlainRecord(draft)) {
255
+ throw new BoundaryRejection("invalid_frame", ["draft must be an object"]);
256
+ }
257
+ if (!isRefTable(refs)) {
258
+ throw new BoundaryRejection("invalid_frame", ["refs must be a RefTable"]);
259
+ }
260
+ if (!isRecord(options)) {
261
+ throw new BoundaryRejection("invalid_frame", ["options must be an object"]);
262
+ }
118
263
  const problems = [];
119
- if (!isId(draft.id)) {
264
+ const source = draft;
265
+ const optionRecord = options;
266
+ reportUnknownProperties(source, FrameProperties, "", problems);
267
+ const id = source.id;
268
+ if (!isId(id)) {
120
269
  problems.push("id is not a valid AMP id");
121
270
  }
122
- if (!isId(draft.agent)) {
271
+ const agent = source.agent;
272
+ if (!isId(agent)) {
123
273
  problems.push("agent is not a valid AMP id");
124
274
  }
125
- if (!Number.isSafeInteger(draft.cycle) || draft.cycle < 0) {
275
+ const cycle = source.cycle;
276
+ if (typeof (cycle) !== "number" || !Number.isSafeInteger(cycle) || cycle < 0) {
126
277
  problems.push("cycle must be a non-negative integer");
127
278
  }
128
- if (!FrameModes.includes(draft.mode)) {
279
+ const mode = source.mode;
280
+ if (typeof (mode) !== "string" || !FrameModes.includes(mode)) {
129
281
  problems.push("mode is not a frame mode");
130
282
  }
131
- const ts = draft.ts ?? (options.now ? options.now() : new Date().toISOString());
132
- if (typeof (ts) !== "string" || Number.isNaN(Date.parse(ts))) {
133
- problems.push("ts is not a date-time");
283
+ const clock = optionRecord.now;
284
+ let ts;
285
+ if (Object.hasOwn(source, "ts")) {
286
+ ts = source.ts;
287
+ if (typeof (ts) !== "string" || !isDateTime(ts)) {
288
+ problems.push("ts is not a date-time");
289
+ }
134
290
  }
135
- const requestedMaxSlots = options.maxSlots ?? SchemaMaxSlots;
136
- if (!Number.isInteger(requestedMaxSlots) || requestedMaxSlots < 0 || requestedMaxSlots > SchemaMaxSlots) {
137
- problems.push(`maxSlots must be an integer in [0,${SchemaMaxSlots}]`);
291
+ else if (clock === (void 0)) {
292
+ ts = new Date().toISOString();
293
+ if (typeof (ts) !== "string" || !isDateTime(ts)) {
294
+ problems.push("ts is not a date-time");
295
+ }
296
+ }
297
+ else if (typeof (clock) !== "function") {
298
+ ts = (void 0);
299
+ problems.push("now must be a function");
300
+ }
301
+ else {
302
+ try {
303
+ ts = clock();
304
+ }
305
+ catch {
306
+ ts = (void 0);
307
+ }
308
+ if (typeof (ts) !== "string" || !isDateTime(ts)) {
309
+ problems.push("ts is not a date-time");
310
+ }
138
311
  }
139
- const maxSlots = Math.min(Math.max(0, requestedMaxSlots), SchemaMaxSlots);
140
- const requestedMaxIgnored = options.maxIgnored ?? DefaultMaxIgnored;
141
- if (!Number.isInteger(requestedMaxIgnored) || requestedMaxIgnored < 0) {
142
- problems.push("maxIgnored must be a non-negative integer");
312
+ const requestedMaxSlots = optionRecord.maxSlots === (void 0) ? SchemaMaxSlots : optionRecord.maxSlots;
313
+ const maxSlotsValid = typeof (requestedMaxSlots) === "number" && Number.isInteger(requestedMaxSlots) && requestedMaxSlots >= 0 && requestedMaxSlots <= SchemaMaxSlots;
314
+ if (!maxSlotsValid) {
315
+ problems.push(`maxSlots must be an integer in [0,${SchemaMaxSlots}]`);
143
316
  }
144
- const maxIgnored = Math.max(0, requestedMaxIgnored);
145
- if (!Array.isArray(draft.slots)) {
317
+ const maxSlots = maxSlotsValid ? requestedMaxSlots : SchemaMaxSlots;
318
+ const requestedMaxIgnored = optionRecord.maxIgnored === (void 0) ? DefaultMaxIgnored : optionRecord.maxIgnored;
319
+ const maxIgnoredValid = typeof (requestedMaxIgnored) === "number" &&
320
+ Number.isInteger(requestedMaxIgnored) &&
321
+ requestedMaxIgnored >= 0 &&
322
+ requestedMaxIgnored <= DefaultMaxIgnored;
323
+ if (!maxIgnoredValid) {
324
+ problems.push(`maxIgnored must be an integer in [0,${DefaultMaxIgnored}]`);
325
+ }
326
+ const maxIgnored = maxIgnoredValid ? requestedMaxIgnored : DefaultMaxIgnored;
327
+ const rebuiltSlots = [];
328
+ const declaredSlots = source.slots;
329
+ if (!Array.isArray(declaredSlots)) {
146
330
  problems.push("slots must be an array");
147
331
  }
148
332
  else {
149
- if (draft.slots.length > maxSlots) {
150
- problems.push(`slots has ${draft.slots.length} entries, max is ${maxSlots}`);
333
+ if (declaredSlots.length > maxSlots) {
334
+ problems.push(`slots has ${declaredSlots.length} entries, max is ${maxSlots}`);
335
+ }
336
+ for (let index = 0; index < declaredSlots.length; index += 1) {
337
+ const rebuilt = readSlot(declaredSlots[index], refs, `slots[${index}]`, problems);
338
+ if (rebuilt !== (void 0)) {
339
+ rebuiltSlots.push(rebuilt);
340
+ }
151
341
  }
152
- draft.slots.forEach((slot, index) => checkSlot(slot, refs, `slots[${index}]`, problems));
153
342
  }
154
- const declaredIgnored = draft.ignored;
155
- const ignored = Array.isArray(declaredIgnored) ? declaredIgnored : [];
156
- if (declaredIgnored !== (void 0) && !Array.isArray(declaredIgnored)) {
157
- problems.push("ignored must be an array");
343
+ const rebuiltIgnored = [];
344
+ const declaredIgnored = source.ignored;
345
+ if (declaredIgnored !== (void 0)) {
346
+ if (!Array.isArray(declaredIgnored)) {
347
+ problems.push("ignored must be an array");
348
+ }
349
+ else {
350
+ for (let index = 0; index < declaredIgnored.length; index += 1) {
351
+ const rebuilt = readIgnored(declaredIgnored[index], refs, `ignored[${index}]`, problems);
352
+ if (rebuilt !== (void 0)) {
353
+ rebuiltIgnored.push(rebuilt);
354
+ }
355
+ }
356
+ }
158
357
  }
159
- ignored.forEach((item, index) => checkIgnored(item, refs, `ignored[${index}]`, problems));
160
- const budgetValue = draft.budget;
161
- if (!isRecord(budgetValue)) {
358
+ let frameBudget;
359
+ const declaredBudget = source.budget;
360
+ if (!isPlainRecord(declaredBudget)) {
162
361
  problems.push("budget must be an object");
163
362
  }
164
363
  else {
165
- const allocated = budgetValue.allocated;
166
- const spent = budgetValue.spent;
167
- checkBudget(allocated, "budget.allocated", problems);
168
- checkBudget(spent, "budget.spent", problems);
169
- if (isRecord(allocated) && isRecord(spent)) {
364
+ reportUnknownProperties(declaredBudget, FrameBudgetProperties, "budget", problems);
365
+ const allocated = readBudget(declaredBudget.allocated, "budget.allocated", problems);
366
+ const spent = readBudget(declaredBudget.spent, "budget.spent", problems);
367
+ if (allocated !== (void 0) && spent !== (void 0)) {
170
368
  if (Object.keys(allocated).length === 0) {
171
369
  problems.push("budget.allocated must set at least one dimension");
172
370
  }
173
- for (let dimensionIndex = 0; dimensionIndex < BudgetDimensions.length; dimensionIndex += 1) {
174
- const key = BudgetDimensions[dimensionIndex];
371
+ const spentKeys = Object.keys(spent);
372
+ for (let index = 0; index < spentKeys.length; index += 1) {
373
+ const key = spentKeys[index];
374
+ if (!Object.hasOwn(allocated, key)) {
375
+ problems.push(`budget.spent.${key} is not declared in budget.allocated`);
376
+ continue;
377
+ }
175
378
  const limit = allocated[key];
176
379
  const used = spent[key];
177
380
  if (typeof (limit) === "number" && typeof (used) === "number" && used > limit) {
178
381
  problems.push(`budget.spent.${key} exceeds budget.allocated.${key}`);
179
382
  }
180
383
  }
384
+ frameBudget = { allocated, spent };
181
385
  }
182
386
  }
183
- if (draft.parent !== (void 0)) {
184
- checkRef(draft.parent, refs, "parent", problems);
387
+ let parent;
388
+ const declaredParent = source.parent;
389
+ if (declaredParent !== (void 0)) {
390
+ parent = readRef(declaredParent, refs, "parent", problems);
185
391
  }
186
- if (draft.goal !== (void 0)) {
187
- checkRef(draft.goal, refs, "goal", problems);
392
+ let goal;
393
+ const declaredGoal = source.goal;
394
+ if (declaredGoal !== (void 0)) {
395
+ goal = readRef(declaredGoal, refs, "goal", problems);
188
396
  }
189
- if (draft.open_questions !== (void 0)) {
190
- if (!Array.isArray(draft.open_questions)) {
397
+ const rebuiltQuestions = [];
398
+ const declaredQuestions = source.open_questions;
399
+ if (declaredQuestions !== (void 0)) {
400
+ if (!Array.isArray(declaredQuestions)) {
191
401
  problems.push("open_questions must be an array");
192
402
  }
193
403
  else {
194
- draft.open_questions.forEach((ref, index) => checkRef(ref, refs, `open_questions[${index}]`, problems));
404
+ for (let index = 0; index < declaredQuestions.length; index += 1) {
405
+ const rebuilt = readRef(declaredQuestions[index], refs, `open_questions[${index}]`, problems);
406
+ if (rebuilt !== (void 0)) {
407
+ rebuiltQuestions.push(rebuilt);
408
+ }
409
+ }
195
410
  }
196
411
  }
197
- if (draft.impasse !== (void 0)) {
198
- checkImpasse(draft.impasse, "impasse", problems);
412
+ let impasse;
413
+ const declaredImpasse = source.impasse;
414
+ if (declaredImpasse !== (void 0)) {
415
+ impasse = readImpasse(declaredImpasse, "impasse", problems);
199
416
  }
200
- if (draft.note !== (void 0) && typeof (draft.note) !== "string") {
417
+ const declaredNote = source.note;
418
+ if (declaredNote !== (void 0) && typeof (declaredNote) !== "string") {
201
419
  problems.push("note must be a string");
202
420
  }
203
421
  if (problems.length > 0) {
204
422
  throw new BoundaryRejection("invalid_frame", problems);
205
423
  }
206
- const visible = ignored.slice(0, maxIgnored);
207
- const deferred = ignored.slice(maxIgnored);
424
+ const visible = rebuiltIgnored.slice(0, maxIgnored);
425
+ const deferred = rebuiltIgnored.slice(maxIgnored);
208
426
  const body = {
209
427
  amp: "0.1",
210
428
  kind: "frame",
211
- id: draft.id,
212
- agent: draft.agent,
213
- cycle: draft.cycle,
214
- ts,
215
- mode: draft.mode,
216
- slots: [...draft.slots],
217
- budget: { allocated: { ...draft.budget.allocated }, spent: { ...draft.budget.spent } },
429
+ id: id,
430
+ agent: agent,
431
+ cycle: cycle,
432
+ ts: ts,
433
+ mode: mode,
434
+ slots: rebuiltSlots,
435
+ budget: frameBudget,
218
436
  };
219
- if (draft.parent !== (void 0)) {
220
- body.parent = draft.parent;
437
+ if (parent !== (void 0)) {
438
+ body.parent = parent;
221
439
  }
222
- if (draft.goal !== (void 0)) {
223
- body.goal = draft.goal;
440
+ if (goal !== (void 0)) {
441
+ body.goal = goal;
224
442
  }
225
443
  if (visible.length > 0) {
226
444
  body.ignored = visible;
227
445
  }
228
- if (draft.open_questions !== (void 0)) {
229
- body.open_questions = [...draft.open_questions];
446
+ if (declaredQuestions !== (void 0)) {
447
+ body.open_questions = rebuiltQuestions;
230
448
  }
231
- if (draft.impasse !== (void 0)) {
232
- body.impasse = draft.impasse;
449
+ if (impasse !== (void 0)) {
450
+ body.impasse = impasse;
233
451
  }
234
- if (draft.note !== (void 0)) {
235
- body.note = draft.note;
452
+ if (declaredNote !== (void 0)) {
453
+ body.note = declaredNote;
236
454
  }
237
455
  const frame = { ...body, digest: digestOf(body) };
456
+ deepFreezeJson(frame);
457
+ deepFreezeJson(deferred);
238
458
  return { frame, deferred };
239
459
  };
460
+ /**
461
+ * Public entry point. A revoked `Proxy`, a throwing getter or an exotic
462
+ * `refs` object can still throw while the draft is inspected; the boundary
463
+ * contract is that callers only ever see `BoundaryRejection`.
464
+ */
465
+ export const frameFrom = (draft, refs, options = {}) => {
466
+ try {
467
+ return buildFrame(draft, refs, options);
468
+ }
469
+ catch (error) {
470
+ if (error instanceof BoundaryRejection) {
471
+ throw error;
472
+ }
473
+ const reason = error instanceof Error ? error.message : typeof (error);
474
+ throw new BoundaryRejection("invalid_frame", [`draft could not be inspected: ${reason}`]);
475
+ }
476
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Runtime mirror of `RefKind` (`src/types/common.ts` / `common.schema.json`).
3
+ *
4
+ * TypeScript unions disappear at runtime, so a boundary that accepts JSON or
5
+ * JavaScript callers cannot rely on the compiler to keep `kind` inside the
6
+ * closed set. This module is the single runtime list both `RefTable` and
7
+ * `frameFrom` consult.
8
+ */
9
+ import type { RefKind } from "../types/common.js";
10
+ export declare const RefKinds: ReadonlySet<RefKind>;
11
+ export declare const isRefKind: (value: unknown) => value is RefKind;
@@ -0,0 +1,33 @@
1
+ export const RefKinds = new Set([
2
+ "entity",
3
+ "concept",
4
+ "process",
5
+ "thread",
6
+ "question",
7
+ "hypothesis",
8
+ "claim",
9
+ "evidence",
10
+ "goal",
11
+ "plan",
12
+ "task",
13
+ "tool",
14
+ "memory",
15
+ "other",
16
+ "human",
17
+ "agent",
18
+ "event",
19
+ "handle",
20
+ "frame",
21
+ "self",
22
+ "unknown",
23
+ "common-ground",
24
+ "capability",
25
+ "receipt",
26
+ "org",
27
+ "role",
28
+ "duty",
29
+ "assignment",
30
+ "interaction",
31
+ "result-contract",
32
+ ]);
33
+ export const isRefKind = (value) => typeof (value) === "string" && RefKinds.has(value);