@prestack/thread 0.1.3 → 0.1.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 (265) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/dist/core/actor.d.ts +1 -1
  3. package/dist/core/actor.js +5 -4
  4. package/dist/core/actor.ts +5 -4
  5. package/dist/core/attach.d.ts +0 -7
  6. package/dist/core/attach.js +37 -65
  7. package/dist/core/attach.ts +32 -76
  8. package/dist/core/chain.js +13 -17
  9. package/dist/core/chain.ts +11 -15
  10. package/dist/core/condition.d.ts +4 -4
  11. package/dist/core/condition.js +2 -2
  12. package/dist/core/descend.d.ts +4 -2
  13. package/dist/core/descend.js +89 -21
  14. package/dist/core/descend.ts +86 -17
  15. package/dist/core/errors/catalogue.d.ts +52 -0
  16. package/dist/{operations/errors/errors.js → core/errors/catalogue.js} +1 -1
  17. package/dist/{operations/errors/errors.ts → core/errors/catalogue.ts} +1 -1
  18. package/dist/{operations/errors/catalog.d.ts → core/errors/error.d.ts} +2 -3
  19. package/dist/{operations/errors/catalog.js → core/errors/error.js} +1 -16
  20. package/dist/{operations/errors/catalog.ts → core/errors/error.ts} +3 -19
  21. package/dist/core/errors/namespaces.d.ts +3 -0
  22. package/dist/core/errors/namespaces.js +15 -0
  23. package/dist/core/errors/namespaces.ts +19 -0
  24. package/dist/core/finding.js +2 -2
  25. package/dist/core/finding.ts +1 -2
  26. package/dist/core/init.d.ts +0 -1
  27. package/dist/core/init.js +48 -4
  28. package/dist/core/init.ts +54 -4
  29. package/dist/core/invoked.d.ts +1 -1
  30. package/dist/core/invoked.js +3 -1
  31. package/dist/core/invoked.ts +5 -2
  32. package/dist/core/round.js +36 -22
  33. package/dist/core/round.ts +26 -9
  34. package/dist/core/rows.d.ts +4 -0
  35. package/dist/core/rows.js +31 -2
  36. package/dist/core/rows.ts +33 -1
  37. package/dist/core/thread.d.ts +3 -3
  38. package/dist/core/tree.d.ts +4 -1
  39. package/dist/core/tree.js +26 -6
  40. package/dist/core/tree.ts +29 -6
  41. package/dist/core/types.d.ts +3 -3
  42. package/dist/core/types.js +3 -1
  43. package/dist/core/types.ts +2 -1
  44. package/dist/derivation/attach.js +1 -1
  45. package/dist/derivation/generators/build.js +6 -6
  46. package/dist/derivation/generators/build.ts +1 -1
  47. package/dist/derivation/generators/check.js +1 -1
  48. package/dist/derivation/generators/determinism.js +1 -1
  49. package/dist/derivation/generators/release.js +60 -47
  50. package/dist/derivation/generators/release.ts +66 -43
  51. package/dist/derivation/release.d.ts +7 -3
  52. package/dist/derivation/release.js +14 -1
  53. package/dist/derivation/release.ts +22 -2
  54. package/dist/integrations/attach.d.ts +4 -0
  55. package/dist/integrations/attach.js +33 -54
  56. package/dist/integrations/attach.ts +50 -57
  57. package/dist/integrations/cli.d.ts +37 -0
  58. package/dist/integrations/cli.js +440 -0
  59. package/dist/integrations/cli.ts +543 -0
  60. package/dist/{core/files.d.ts → integrations/disk.d.ts} +16 -24
  61. package/dist/integrations/disk.js +435 -0
  62. package/dist/integrations/disk.ts +465 -0
  63. package/dist/integrations/generators/read.js +6 -6
  64. package/dist/integrations/generators/read.ts +4 -4
  65. package/dist/integrations/generators/vault.js +10 -11
  66. package/dist/integrations/generators/vault.ts +4 -5
  67. package/dist/{operations/http.d.ts → integrations/https.d.ts} +10 -6
  68. package/dist/integrations/https.js +170 -0
  69. package/dist/integrations/https.ts +216 -0
  70. package/dist/integrations/pglite.d.ts +26 -0
  71. package/dist/integrations/pglite.js +143 -0
  72. package/dist/integrations/pglite.ts +206 -0
  73. package/dist/integrations/secret.d.ts +8 -2
  74. package/dist/integrations/secret.js +3 -5
  75. package/dist/integrations/secret.ts +10 -6
  76. package/dist/integrations/target.d.ts +155 -14
  77. package/dist/integrations/target.js +171 -50
  78. package/dist/integrations/target.ts +377 -61
  79. package/dist/integrations/vault.d.ts +1 -0
  80. package/dist/integrations/vault.js +20 -5
  81. package/dist/integrations/vault.ts +17 -5
  82. package/dist/integrity/attach.js +3 -73
  83. package/dist/integrity/attach.ts +1 -71
  84. package/dist/integrity/check-threads.js +5 -5
  85. package/dist/integrity/check-threads.ts +2 -2
  86. package/dist/integrity/constraint.d.ts +0 -1
  87. package/dist/integrity/constraint.js +267 -366
  88. package/dist/integrity/constraint.ts +267 -375
  89. package/dist/integrity/generators/compiler.js +14 -17
  90. package/dist/integrity/generators/compiler.ts +10 -15
  91. package/dist/integrity/generators/gate.js +15 -15
  92. package/dist/integrity/generators/gate.ts +10 -10
  93. package/dist/integrity/generators/issues.js +7 -7
  94. package/dist/integrity/generators/publish.js +39 -57
  95. package/dist/integrity/generators/publish.ts +44 -55
  96. package/dist/integrity/generators/trial.d.ts +3 -3
  97. package/dist/integrity/generators/trial.js +133 -165
  98. package/dist/integrity/generators/trial.ts +145 -169
  99. package/dist/integrity/lint.js +9 -13
  100. package/dist/integrity/lint.ts +7 -10
  101. package/dist/integrity/lsp/bin.js +5 -4
  102. package/dist/integrity/lsp/bin.ts +3 -1
  103. package/dist/integrity/lsp/diagnostics.js +3 -3
  104. package/dist/integrity/lsp/diagnostics.ts +1 -1
  105. package/dist/integrity/lsp/lint.js +19 -30
  106. package/dist/integrity/lsp/lint.ts +16 -32
  107. package/dist/integrity/lsp/server.js +3 -3
  108. package/dist/integrity/slopnator.d.ts +3 -13
  109. package/dist/integrity/slopnator.js +58 -37
  110. package/dist/integrity/slopnator.ts +53 -37
  111. package/dist/integrity/slopnators/sl_broken_lineage.js +2 -2
  112. package/dist/integrity/slopnators/sl_declared_elsewhere.js +1 -1
  113. package/dist/integrity/slopnators/sl_derived_drift.js +4 -4
  114. package/dist/integrity/slopnators/sl_derived_drift.ts +1 -1
  115. package/dist/integrity/slopnators/sl_door_in_a_node.js +220 -0
  116. package/dist/integrity/slopnators/sl_door_in_a_node.ts +250 -0
  117. package/dist/integrity/slopnators/sl_inert_island.js +10 -8
  118. package/dist/integrity/slopnators/sl_inert_island.ts +8 -6
  119. package/dist/integrity/slopnators/sl_missing_row.js +6 -51
  120. package/dist/integrity/slopnators/sl_missing_row.ts +4 -50
  121. package/dist/integrity/slopnators/sl_no_barrel.js +1 -1
  122. package/dist/integrity/slopnators/sl_no_child_process.js +36 -18
  123. package/dist/integrity/slopnators/sl_no_child_process.ts +44 -18
  124. package/dist/integrity/slopnators/sl_no_dispatch_bypass.js +80 -149
  125. package/dist/integrity/slopnators/sl_no_dispatch_bypass.ts +95 -147
  126. package/dist/integrity/slopnators/sl_no_import_cycle.js +15 -4
  127. package/dist/integrity/slopnators/sl_no_import_cycle.ts +20 -4
  128. package/dist/integrity/slopnators/sl_no_such_command.js +2 -2
  129. package/dist/integrity/slopnators/sl_no_such_command.ts +1 -1
  130. package/dist/integrity/slopnators/sl_outside_an_operation.js +20 -0
  131. package/dist/integrity/slopnators/sl_outside_an_operation.ts +25 -0
  132. package/dist/integrity/slopnators/sl_screen_holds_only_declared.d.ts +2 -0
  133. package/dist/integrity/slopnators/sl_screen_holds_only_declared.js +61 -0
  134. package/dist/integrity/slopnators/sl_screen_holds_only_declared.ts +70 -0
  135. package/dist/integrity/slopnators/sl_secret_literal.js +1 -33
  136. package/dist/integrity/slopnators/sl_secret_literal.ts +1 -33
  137. package/dist/integrity/slopnators/sl_stale_path.js +5 -22
  138. package/dist/integrity/slopnators/sl_stale_path.ts +4 -20
  139. package/dist/integrity/slopnators/sl_twice_meant.js +1 -1
  140. package/dist/integrity/slopnators/sl_twice_parented.js +29 -5
  141. package/dist/integrity/slopnators/sl_twice_parented.ts +28 -4
  142. package/dist/integrity/slopnators/sl_undeclared_crossing.d.ts +4 -1
  143. package/dist/integrity/slopnators/sl_undeclared_crossing.js +426 -62
  144. package/dist/integrity/slopnators/sl_undeclared_crossing.ts +454 -70
  145. package/dist/integrity/slopnators/sl_undeclared_destination.js +59 -25
  146. package/dist/integrity/slopnators/sl_undeclared_destination.ts +69 -21
  147. package/dist/integrity/slopnators/sl_undeclared_list.d.ts +2 -0
  148. package/dist/integrity/slopnators/sl_undeclared_list.js +363 -0
  149. package/dist/integrity/slopnators/sl_undeclared_list.ts +358 -0
  150. package/dist/integrity/slopnators/sl_undeclared_node.js +1 -11
  151. package/dist/integrity/slopnators/sl_undeclared_node.ts +0 -10
  152. package/dist/integrity/slopnators/sl_undeclared_operation.js +111 -29
  153. package/dist/integrity/slopnators/sl_undeclared_operation.ts +134 -26
  154. package/dist/integrity/slopnators/sl_undeclared_variant.js +2 -2
  155. package/dist/integrity/slopnators/sl_undeclared_webhook.d.ts +2 -0
  156. package/dist/integrity/slopnators/sl_undeclared_webhook.js +90 -0
  157. package/dist/integrity/slopnators/sl_undeclared_webhook.ts +108 -0
  158. package/dist/integrity/slopnators/sl_underived_route.d.ts +2 -0
  159. package/dist/integrity/slopnators/sl_underived_route.js +61 -0
  160. package/dist/integrity/slopnators/sl_underived_route.ts +72 -0
  161. package/dist/integrity/slopnators/sl_ungoverned_island.js +3 -3
  162. package/dist/integrity/slopnators/sl_ungoverned_island.ts +1 -1
  163. package/dist/integrity/slopnators/sl_unlisted_program.d.ts +2 -0
  164. package/dist/integrity/slopnators/sl_unlisted_program.js +39 -0
  165. package/dist/integrity/slopnators/sl_unlisted_program.ts +40 -0
  166. package/dist/integrity/slopnators/sl_unnamed_island.js +1 -1
  167. package/dist/integrity/slopnators/sl_unpaired_member.js +3 -3
  168. package/dist/integrity/slopnators/sl_unpaired_member.ts +1 -1
  169. package/dist/integrity/slopnators/sl_unpaired_slopnator.js +4 -4
  170. package/dist/integrity/slopnators/sl_unpaired_slopnator.ts +1 -1
  171. package/dist/integrity/slopnators/sl_unprefixed_member.js +5 -31
  172. package/dist/integrity/slopnators/sl_unprefixed_member.ts +2 -28
  173. package/dist/integrity/slopnators/sl_unthreaded.js +11 -7
  174. package/dist/integrity/slopnators/sl_unthreaded.ts +6 -7
  175. package/dist/integrity/slopnators/sl_untranslated_key.js +2 -25
  176. package/dist/integrity/slopnators/sl_untranslated_key.ts +1 -25
  177. package/dist/integrity/slopnators/sl_unvaulted_secret.d.ts +2 -0
  178. package/dist/integrity/slopnators/sl_unvaulted_secret.js +107 -0
  179. package/dist/integrity/slopnators/sl_unvaulted_secret.ts +132 -0
  180. package/dist/integrity/slopnators/sl_unversioned.js +6 -4
  181. package/dist/integrity/slopnators/sl_unversioned.ts +5 -3
  182. package/dist/integrity/sweep.d.ts +1 -0
  183. package/dist/integrity/sweep.js +105 -42
  184. package/dist/integrity/sweep.ts +115 -42
  185. package/dist/knowledge/attach.js +1 -1
  186. package/dist/knowledge/generators/docsgen.js +8 -6
  187. package/dist/knowledge/generators/docsgen.ts +4 -2
  188. package/dist/knowledge/generators/glossary.js +4 -4
  189. package/dist/knowledge/generators/glossary.ts +1 -1
  190. package/dist/operations/access.d.ts +23 -0
  191. package/dist/operations/access.js +28 -1
  192. package/dist/operations/access.ts +43 -0
  193. package/dist/operations/attach.js +28 -109
  194. package/dist/operations/attach.ts +46 -113
  195. package/dist/operations/capabilities.d.ts +14 -5
  196. package/dist/operations/capabilities.js +13 -4
  197. package/dist/operations/capabilities.ts +27 -8
  198. package/dist/operations/dispatch.d.ts +8 -2
  199. package/dist/operations/dispatch.js +128 -185
  200. package/dist/operations/dispatch.ts +138 -191
  201. package/dist/operations/error-results.d.ts +1 -1
  202. package/dist/operations/error-results.js +2 -2
  203. package/dist/operations/error-results.ts +2 -2
  204. package/dist/operations/generators/capability.d.ts +11 -1
  205. package/dist/operations/generators/capability.js +481 -224
  206. package/dist/operations/generators/capability.ts +562 -233
  207. package/dist/operations/generators/compile.js +66 -39
  208. package/dist/operations/generators/compile.ts +78 -39
  209. package/dist/operations/generators/permits.js +11 -12
  210. package/dist/operations/generators/permits.ts +3 -4
  211. package/dist/operations/generators/seed.d.ts +1 -0
  212. package/dist/operations/generators/seed.js +19 -17
  213. package/dist/operations/generators/seed.ts +22 -14
  214. package/dist/operations/generators/trial.d.ts +6 -8
  215. package/dist/operations/generators/trial.js +200 -70
  216. package/dist/operations/generators/trial.ts +230 -93
  217. package/dist/operations/nodes.d.ts +15 -16
  218. package/dist/operations/nodes.ts +16 -17
  219. package/dist/operations/operations.d.ts +40 -4
  220. package/dist/operations/operations.js +1 -0
  221. package/dist/operations/operations.ts +61 -4
  222. package/dist/operations/result.d.ts +2 -2
  223. package/dist/operations/result.ts +2 -2
  224. package/package.json +1 -4
  225. package/dist/core/answers.d.ts +0 -171
  226. package/dist/core/answers.js +0 -789
  227. package/dist/core/answers.ts +0 -999
  228. package/dist/core/client.d.ts +0 -63
  229. package/dist/core/client.js +0 -249
  230. package/dist/core/client.ts +0 -289
  231. package/dist/core/files.js +0 -171
  232. package/dist/core/files.ts +0 -222
  233. package/dist/integrations/module.d.ts +0 -6
  234. package/dist/integrations/module.js +0 -153
  235. package/dist/integrations/module.ts +0 -191
  236. package/dist/integrity/slopnators/sl_unkept_rows.js +0 -104
  237. package/dist/integrity/slopnators/sl_unkept_rows.ts +0 -111
  238. package/dist/integrity/slopnators/sl_unseamed_reach.js +0 -73
  239. package/dist/integrity/slopnators/sl_unseamed_reach.ts +0 -79
  240. package/dist/operations/cost.d.ts +0 -14
  241. package/dist/operations/cost.js +0 -37
  242. package/dist/operations/cost.ts +0 -58
  243. package/dist/operations/errors/errors.d.ts +0 -52
  244. package/dist/operations/http.js +0 -124
  245. package/dist/operations/http.ts +0 -169
  246. package/dist/operations/memory.d.ts +0 -104
  247. package/dist/operations/memory.js +0 -365
  248. package/dist/operations/memory.ts +0 -470
  249. package/dist/operations/metering.d.ts +0 -55
  250. package/dist/operations/metering.js +0 -247
  251. package/dist/operations/metering.ts +0 -328
  252. package/dist/operations/queue-policy.d.ts +0 -3
  253. package/dist/operations/queue-policy.js +0 -8
  254. package/dist/operations/queue-policy.ts +0 -10
  255. package/dist/operations/seams.d.ts +0 -239
  256. package/dist/operations/seams.js +0 -45
  257. package/dist/operations/seams.ts +0 -364
  258. package/dist/operations/store.d.ts +0 -14
  259. package/dist/operations/store.js +0 -1
  260. package/dist/operations/store.ts +0 -29
  261. /package/dist/{operations → core}/errors/classes.d.ts +0 -0
  262. /package/dist/{operations → core}/errors/classes.js +0 -0
  263. /package/dist/{operations → core}/errors/classes.ts +0 -0
  264. /package/dist/integrity/slopnators/{sl_unkept_rows.d.ts → sl_door_in_a_node.d.ts} +0 -0
  265. /package/dist/integrity/slopnators/{sl_unseamed_reach.d.ts → sl_outside_an_operation.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,110 @@
1
1
  # @prestack/thread
2
2
 
3
+ ## 0.1.3
4
+
5
+ something it shipped is gone or is not the shape it was, so taking this one can stop your code compiling.
6
+
7
+ ### Renamed
8
+
9
+ - `core/init#manager` is now `core/files#manager` — it exports exactly what it exported before. `thread upgrade --fix` rewrites every import of it for you.
10
+
11
+ ### Changed
12
+
13
+ - `chat` — `core/client#Order` is not the shape it was. Code holding it to the old one stops compiling.
14
+ - `chat` — `core/client#Answered` is not the shape it was. Code holding it to the old one stops compiling.
15
+ - `files` — `core/files#Answering` is not the shape it was. Code holding it to the old one stops compiling.
16
+
17
+ ### Added
18
+
19
+ - `files` now exports `core/files#installing`.
20
+ - `files` now exports `core/files#fetching`.
21
+
22
+ ### Fixed
23
+
24
+ - `attach` — its code moved and what it exports did not.
25
+ - `core-attach` — its code moved and what it exports did not.
26
+ - `trial-writer` — its code moved and what it exports did not.
27
+
28
+ <!-- release 0.1.3 -->
29
+ <!-- holds
30
+ actor 1158f4aff155 core/actor#Env:e97761857593 core/actor#ENVIRONMENT:775159e22117 core/actor#Environment:0e63440f7ed9 core/actor#Actor:da6a0a4f6d1a core/actor#PUBLIC_ROLE:0708d38af082 core/actor#ANONYMOUS:7aac93520d5f
31
+ answers 1505a96bd136 core/answers#RECEIPT:ad72fbad0fea core/answers#ENDS:5bfccdcd5f7b core/answers#FROM:3c837e3dc08c core/answers#CHAINED:7b13c9b1e786 core/answers#BODY:70a4b97be2fd core/answers#WRITES:9d735ee4d4d2 core/answers#asFlag:25c52264bada core/answers#refuse:7ee262649b02 core/answers#slug:492099384a1e core/answers#within:fbafe944704a core/answers#parsed:58c428b43692 core/answers#scoped:64ce8910f514 core/answers#Asked:c6b95d4b0313 core/answers#Said:1cd114f6023d core/answers#named:a6168ca8e40e core/answers#prompted:303760ba8ed7 core/answers#Given:822297d6d75d core/answers#Child:90dc57be460c core/answers#Stated:0cac88b17ea4 core/answers#mapped:c8ed361b963a core/answers#CARRIES:4de2138e3a11 core/answers#ownAnswers:5c97ca968c6a core/answers#stating:b2ce474816f4 core/answers#arrayValue:9f39f3dd60e0 core/answers#asMap:6bdf1b65f804 core/answers#gathered:6a67d2ba59f9 core/answers#asBoolean:6bdf1b65f804 core/answers#rowLines:10e03b28721b core/answers#withChildren:0ce71de61a5d core/answers#childrenIn:19bb201f22a9 core/answers#BODIED:4de2138e3a11 core/answers#WRITTEN:4de2138e3a11 core/answers#seeding:0ddd814882ea core/answers#children:dcb6ef22379a core/answers#bodied:8f27f5a33d0b core/answers#only:76c6877b3914 core/answers#unasked:76c6877b3914 core/answers#answer:530c0e6a2fb3 core/answers#accepted:6c42249c541b core/answers#needed:76e936a60d64 core/answers#wrapped:0e03558213e5 core/answers#marked:ca0a5bc98816 core/answers#Told:34b9cab8ecec core/answers#Declared:14a1629c6c7c core/answers#declared:ed8c4d1f12f8 core/answers#nouns:b82da6d91e26 core/answers#asking:03631e356039 core/answers#answered:f8c2780ce4f6 core/answers#given:538c4f41ef3f core/answers#handed:65fda728778f core/answers#TYPED:2514d79dbd06 core/answers#CARRIED:5484dfc0086a core/answers#wordsIn:b2bbc3c780aa core/answers#credentialIn:4aa89e8da0ca
32
+ attach 778b9cf5b282 core/attach#packageOf:95b5fff25591 core/attach#Appending:a9e0459b54b9 core/attach#Writing:be521774d91f core/attach#Attaching:ddd89d438b94 core/attach#UnattachableError:c0915e9e2ee4 core/attach#StillADependencyError:92c932b34a0a core/attach#StillDeclaredError:055509e3ed65 core/attach#DependencyRingError:2efe6ca0a2a5 core/attach#TakenFileError:58b4ac596857 core/attach#UnthreadedError:cb4f87163654 core/attach#attaches:253b1b546924 core/attach#behind:35e21849c546 core/attach#attach:dbf8043d1045 core/attach#detach:90e9cd60ecd5 core/attach#ATTACH:8b0b999ca5c9
33
+ build-writer 2b75de749c75 derivation/generators/build#declared:f833228cb868 derivation/generators/build#wanted:ca9066873bf3
34
+ capability-writer 4b05ab6f2a71 operations/generators/capability#derive:0c14fda3eab7
35
+ chain 5874fb98cedf core/chain#generators:714b6bd5de71 core/chain#offers:6dadb72b44b4 core/chain#RAN:8720636fbac7 core/chain#REFUSED_BY:3eae304480a7 core/chain#batched:97a8754eeaf1 core/chain#settling:ca839ad0fbd3
36
+ chat 41a457986b08 core/client#Order:7fd26e1c767b core/client#Answered:f968b3f72654 core/client#carry:195e0b500972 core/client#Turn:9511ce9881bf core/client#talking:2e5cc219170b core/client#run:4e6b10dd11a7
37
+ compile-writer 940eb3474def operations/generators/compile#parts:a2c39cf9feb9 operations/generators/compile#compile:2fb552595d35
38
+ compiler-scope c8250988a4ab
39
+ condition 8b98d66b28cf core/condition#COMPARE_OPS:060d4cd76a07 core/condition#CompareOp:97849b9d273e core/condition#AGGREGATIONS:f473b52068e2 core/condition#ACTOR_FACTS:eb34541ae96c core/condition#AGO:09aa52ab5287 core/condition#Operand:451f00cec049 core/condition#Condition:29dadf7cfd50 core/condition#walkOperands:9aa17730b2ab core/condition#mentionsActor:793e52b424e1 core/condition#agoSeconds:5d4cb8909c84 core/condition#satisfies:32daa43a97f3 core/condition#CONDITION_ANSWERS:82b841e712b2 core/condition#conditioned:3b65b55a7c83 core/condition#said:d7feb19d07d8
40
+ constraint-shape 3e9cbe40d847 integrity/constraint#Sourced:7a4a750b4216 integrity/constraint#Proof:ed7d660baa12 integrity/constraint#shown:6522e6fa1dbf integrity/constraint#Constraint:fc25230385f4 integrity/constraint#CONSTRAINTS:a99a22a9f325
41
+ core-attach 778b9cf5b282 core/attach#packageOf:95b5fff25591 core/attach#Appending:a9e0459b54b9 core/attach#Writing:be521774d91f core/attach#Attaching:ddd89d438b94 core/attach#UnattachableError:c0915e9e2ee4 core/attach#StillADependencyError:92c932b34a0a core/attach#StillDeclaredError:055509e3ed65 core/attach#DependencyRingError:2efe6ca0a2a5 core/attach#TakenFileError:58b4ac596857 core/attach#UnthreadedError:cb4f87163654 core/attach#attaches:253b1b546924 core/attach#behind:35e21849c546 core/attach#attach:dbf8043d1045 core/attach#detach:90e9cd60ecd5 core/attach#ATTACH:8b0b999ca5c9
42
+ core-capabilities bff70eb471ce operations/capabilities#SURFACES:0ba37ce5c567 operations/capabilities#Surface:f6edd9874bdb operations/capabilities#isSurface:b576dba589f2 operations/capabilities#CAPABILITIES_AT:b837276e2b3f operations/capabilities#CLIENT_AT:69106f1a9d39 operations/capabilities#DISPATCHING_AT:79217c5a5a98 operations/capabilities#routeAt:b80bb4b90b70 operations/capabilities#ROUTE:c96616878285 operations/capabilities#SEAMS_AT:b4084bbddbf6 operations/capabilities#DECLARED_SEAMS_AT:3b21ab4c0bec operations/capabilities#OPENAPI_AT:d6b86d9cb07d operations/capabilities#MCP_AT:5b46a2eec16c operations/capabilities#Capability:6c442d0f9e02 operations/capabilities#reachable:40d77d9b3ba7 operations/capabilities#switched:a654a4b88939
43
+ core-dispatch 64a13a05c44a operations/dispatch#DISPATCH_AT:4e8f2c0639bf operations/dispatch#dispatched:f2f582240655
44
+ core-seams b55bc36cec98 operations/seams#FieldList:79618cc918ab operations/seams#ReadField:6c71c3b0a8a2 operations/seams#Row:95110d74c4c0 operations/seams#Store:ee7da936b5cb operations/seams#Span:d05875ec2d38 operations/seams#Telemetry:8e399e3e32a8 operations/seams#PropertyValue:4885bb975ac1 operations/seams#LogLevel:d774edbc0c9d operations/seams#Log:3f011b7815e2 operations/seams#AuditRecord:2cc1f3856bc6 operations/seams#Audit:99bdcff4cecb operations/seams#ErrorRecord:5e0632ae2b01 operations/seams#Errors:d2b92756323e operations/seams#Search:8cdfae2bb77c operations/seams#Views:9abc82661c09 operations/seams#Cost:5945c7bf7996 operations/seams#Idempotency:a65d14aecfe8 operations/seams#PlatformEvent:acef749a5750 operations/seams#EventBus:67a20231bed5 operations/seams#RateLimiter:c7ae85ae381b operations/seams#FeatureGate:ced4c1631ced operations/seams#QuotaHold:06d12b02b59f operations/seams#Quotas:0d4e6476a330 operations/seams#Outbox:3d0c2c1b0e6c operations/seams#Transactional:c8d08d0622c4 operations/seams#isTransactional:1170f66cd9b8 operations/seams#Job:fa585efcd85d operations/seams#EnqueueOpts:36f99ec0ff29 operations/seams#SchedulerSeam:6beee88125a9 operations/seams#Queue:5a439c3efb9d operations/seams#Files:92f283c3a7ed operations/seams#Clock:ec46770f7fa1 operations/seams#Random:8d2b2b13490b operations/seams#HttpMethod:52ada6a3365a operations/seams#HttpRequest:316f3a88a0fa operations/seams#HttpResponse:eb30d7e88cd7 operations/seams#Http:bc39e49d79a7 operations/seams#Vault:8dc7e8d666b8 operations/seams#Seams:6cde63c94c7b operations/seams#AuditOutcome:6e2de5ccf312 operations/seams#isRow:539dcd1c4a4b operations/seams#SUPPLY:aff5fe72a644 operations/seams#Supplied:b7223025057f operations/seams#SUPPLIES:848c71497c27 operations/seams#supplies:41f6b29fc1d7 operations/seams#Handed:3804007c9616 operations/seams#Reads:d75d51b7a366 operations/seams#SAID:371cb1a21c0b
45
+ cost 87ed92ed773f operations/cost#CostAmount:7468370fb473 operations/cost#InvalidCostError:ed1ead132642 operations/cost#assertValidCost:1741b6745c98 operations/cost#MICRO_CENTS_PER_CENT:9cdec51a2064 operations/cost#MICRO_CENTS_PER_UNIT:e9e877a0315d operations/cost#toMicroCents:1abcf41a972e operations/cost#fromMicroCents:685e3195301a
46
+ derivation-attach 53d5712deff4 derivation/attach#ATTACH:8b0b999ca5c9
47
+ derived-check fb51b1b9949e derivation/generators/check#CheckStatus:3d5184654de8 derivation/generators/check#FileCheck:5fc2fc17d9dc derivation/generators/check#CheckReport:0a85b0b7a552 derivation/generators/check#ReadFile:bfe47da3146a derivation/generators/check#CheckOptions:12047b27ac13 derivation/generators/check#checkGenerated:303b484f0191 derivation/generators/check#formatCheckReport:f1ffd8d71128 derivation/generators/check#detectHandEdits:4cb9374c9dec
48
+ descend 443ba2821aa7 core/descend#ROOT:16475c413846 core/descend#TREE:16475c413846 core/descend#THREAD_AT:16475c413846 core/descend#unkept:c4b11ba631c2 core/descend#LISTS:2fdc0678a755 core/descend#ROW_LISTS:c9d0aa651f7b core/descend#Row:b97aa507e223 core/descend#Pass:6d224c4baa3b core/descend#Finding:59d032ea6dfc core/descend#under:9d2961e6c891 core/descend#sources:3ccbfc44dc32 core/descend#configured:08dd6fe94449 core/descend#hosting:03773213bb0d core/descend#uncompiled:e6cc5d02da1f core/descend#read:5b91d50130a7 core/descend#shapesNamed:b7e8c501d5a3 core/descend#threading:4203b54a8ba4 core/descend#shapeFields:0c9cc3794ffb core/descend#Field:c0aa1cfe8f06 core/descend#listShape:de887cd9f0d5 core/descend#listFields:64024e47360b core/descend#rowShape:de887cd9f0d5 core/descend#nodesIn:0e1ab44ef9ff core/descend#reached:3ccbfc44dc32 core/descend#forget:a3965c1dfabe core/descend#descend:cb2c0f44b0be
49
+ descent-check 832428fb4257 integrity/check-threads#ROOT:fed419935721 integrity/check-threads#THREAD_AT:ad73a49b2e42 integrity/check-threads#TREE:b1b38c62f173 integrity/check-threads#descend:e424ec88ff49 integrity/check-threads#Finding:59d032ea6dfc integrity/check-threads#Pass:ebdf8cc00bc4 integrity/check-threads#trackedFiles:3ccbfc44dc32 integrity/check-threads#unthreaded:461b6e326ac7 integrity/check-threads#twiceParented:e96bea943ec4 integrity/check-threads#refusals:f9f72d575f28
50
+ determinism 8ecb9f16de37 derivation/generators/determinism#GeneratedFile:1f5dc83a87cd derivation/generators/determinism#sortedBy:f08908497eb1 derivation/generators/determinism#compare:8ad383dc8043 derivation/generators/determinism#sortedEntries:61aff6982b60 derivation/generators/determinism#bodyHash:155def245510 derivation/generators/determinism#withHeader:1561e9fea045 derivation/generators/determinism#ParsedFile:078b3aa626c3 derivation/generators/determinism#parseGenerated:e4beb7be1f99 derivation/generators/determinism#lines:c0f235ccf1c6 derivation/generators/determinism#tsString:8a273616993f derivation/generators/determinism#stableJson:5d314875cc3d derivation/generators/determinism#pascal:ff8fa0760be2 derivation/generators/determinism#camel:ff8fa0760be2
51
+ docs-writer 570e6780eda4
52
+ error-catalogue 323b27012113 operations/errors/errors#AuthUnauthenticated:efe1c4495acd operations/errors/errors#AuthInvalidCredentials:78c8ac04edfa operations/errors/errors#AuthTokenExpired:09f338e4fa9c operations/errors/errors#AuthTokenReused:a6ee5d2590ae operations/errors/errors#AuthSessionRevoked:31ae42fb304b operations/errors/errors#AuthDenied:8bd7f35c2192 operations/errors/errors#QuotaExceeded:2ee1b4da66bb operations/errors/errors#QuotaReservationExpired:195ca4d39488 operations/errors/errors#RateLimitExceeded:e3c5bae10db0 operations/errors/errors#FeatureNotInPlan:02d960158154 operations/errors/errors#DbNotFound:c80df414abde operations/errors/errors#DbConstraintViolation:f20bfe23677d operations/errors/errors#DbAlreadyExists:1659ca78ef51 operations/errors/errors#DbConflict:5e3c0084ac87 operations/errors/errors#DbMigrationChecksumMismatch:7b9113d9eafe operations/errors/errors#DbDestructiveWithoutDryRun:a1ce04f34fb3 operations/errors/errors#DbRoundTripBudgetExceeded:cc4bcf352de8 operations/errors/errors#DbCursorInvalid:ae1ad9dacc04 operations/errors/errors#DbCursorExpired:f734ef6c97e2 operations/errors/errors#WorkflowNodeFailed:9b71b0d7df6a operations/errors/errors#WorkflowInvalidTransition:c2935cfd62ac operations/errors/errors#WorkflowCompensationFailed:8c46fd5021a7 operations/errors/errors#WorkflowAlreadyRunning:803771837def operations/errors/errors#QueueJobFailed:9e75ac4a95dc operations/errors/errors#QueueDlqExhausted:653b172661e0 operations/errors/errors#AiProviderUnavailable:9fa5029e7c23 operations/errors/errors#AiSchemaValidationFailed:bac21b21dd5f operations/errors/errors#AiToolNotInMask:f1094ae55f3a operations/errors/errors#AiNodeCapExceeded:bfda86c86c1e operations/errors/errors#SearchIndexFailed:5072fdb59687 operations/errors/errors#SearchQueryInvalid:8a4dba37426b operations/errors/errors#CommsChannelKindUndeclared:83f32dfa817c operations/errors/errors#CommsChannelKindUndescribed:6c8ef4986048 operations/errors/errors#CommsChannelKindUnlabelled:0aecc153fdb5 operations/errors/errors#CommsChannelKindUndocumented:2ab2e6e474de operations/errors/errors#CommsChannelKindDuplicate:eab3af8aa962 operations/errors/errors#ConfigInvalid:57ee9146b818 operations/errors/errors#ConfigMissingEnv:96be147c6d60 operations/errors/errors#ConfigSecretInPublicVar:4e2bfd6f0bc7 operations/errors/errors#ConfigCredentialInvalid:2ab584c6c640 operations/errors/errors#ConfigScopeMissing:4cf53afc238f operations/errors/errors#ConfigResourceNotFound:4da2eb95eab7 operations/errors/errors#ConfigDestinationIncompatible:47ea1edf0a90 operations/errors/errors#ConfigBlocksExit:85dc23c3211d operations/errors/errors#NetTimeout:eb4a1bf6384b operations/errors/errors#NetUpstreamUnavailable:1083c6f7c7a4 operations/errors/errors#NetDestinationRefused:ea64fa761003 operations/errors/errors#InternalUnexpected:d23fea6e526a operations/errors/errors#InternalNotImplemented:d30dbed4f6eb operations/errors/errors#InternalInvalidArgument:08e137b263a3 operations/errors/errors#PLATFORM_ERRORS:9700124c67a7 operations/errors/errors#PlatformErrorCode:8f4f69419324
53
+ error-classes 9e5a171ecfc9 operations/errors/classes#ErrorClassDef:f86478155103 operations/errors/classes#ERROR_CLASSES:edfbdd775e5f operations/errors/classes#ErrorClass:76fd5e188a3d operations/errors/classes#ERROR_CLASS_NAMES:74c194ba25bd operations/errors/classes#classDef:7d0a82d47941
54
+ error-namespaces b1c1cde59fe2 operations/errors/catalog#NAMESPACES:b5a6079ad39a operations/errors/catalog#Namespace:605585a58c10 operations/errors/catalog#ErrorCode:9c332e778de1 operations/errors/catalog#ErrorDef:7cbf5075cdfe operations/errors/catalog#DefineErrorInput:26ba65e1ba53 operations/errors/catalog#PlatformErrorInit:46fb5f54ad40 operations/errors/catalog#PlatformError:cb9f313b940e operations/errors/catalog#isPlatformError:54c7e704b130 operations/errors/catalog#ErrorFactory:ac8e16652a4c operations/errors/catalog#DuplicateErrorCodeError:c2e0d4b9a453 operations/errors/catalog#ErrorCatalog:2d6513801aad operations/errors/catalog#catalog:6f8193fbf011 operations/errors/catalog#defineError:b63127ff92f5
55
+ error-results 964e86677bba operations/error-results#errorDefForResult:d20408abb638 operations/error-results#platformErrorForResult:cfa19576d3d2
56
+ files e13609cab7d4 core/files#Kind:8f9d1230cc55 core/files#Listed:60ef88b9766a core/files#Measured:ba8fd66caf68 core/files#Answering:2927061902d1 core/files#answeredBy:048634b28e56 core/files#attached:f8c2780ce4f6 core/files#kind:485fa3d1c1c6 core/files#existsSync:219e8de5f523 core/files#readFileSync:84627dee3e2a core/files#writeFileSync:16acc950adf3 core/files#Named:a490c22afabe core/files#readdirSync:2fab39d45004 core/files#Held:488919ee8a4c core/files#statSync:658893a15fb6 core/files#rmSync:92d8fa578550 core/files#renameSync:9c9fbadb45e6 core/files#appendFileSync:ecfd24b4e865 core/files#realpathSync:626005f54fe3 core/files#manager:8121415e87a8 core/files#installing:38eeb450b217 core/files#fetching:38eeb450b217
57
+ finding da4a559b20fe core/finding#Finding:180d780f4cd9 core/finding#forbids:019885a2a7da core/finding#runChecker:bea68acae26f
58
+ gate-writer 413731290448
59
+ glossary-shape 8e609bb71c20 knowledge/glossary#Glossary:e30f4c6fe581
60
+ glossary-writer eed49268c05d
61
+ grant-shape c1126bdba365 operations/access#PERMITS_AT:747bdea9514c operations/access#declaredWords:5a76b6349900 operations/access#undeclared:f8a1498208ca operations/access#Grant:e7cec0376200 operations/access#opensToEverybody:10368b21fa22 operations/access#grantedTwice:563aa26b055e operations/access#unanswerable:563aa26b055e
62
+ http 4d02453ead9c operations/http#HTTP_CALL_ACTION:b90d08fc2104 operations/http#HttpNotConfiguredError:cb4f87163654 operations/http#OutwardTransportError:b169a7a9de9a operations/http#outwardUrl:ab5ee055ae1c operations/http#HttpSeamOptions:2b40e572dfe0 operations/http#httpSeam:326f43bc4293 operations/http#RecordedCall:318c0983fea1 operations/http#ScriptedAnswer:9f4273f0ade9 operations/http#recordingHttp:fd20bbaaa194
63
+ init 281e75ff5492 core/init#TREE:0b34eb8c6947 core/init#ROOT:23a226909662 core/init#AlreadyThreadedError:6b783660d574 core/init#COMPILER:09b3efa678f5 core/init#LOCKFILES:a1d5650d1995 core/init#MANIFEST:495fdf585250 core/init#REGISTRY:16475c413846 core/init#IGNORED:16475c413846 core/init#ignored:15de269b224c core/init#compiler:15de269b224c core/init#root:383996e16a82 core/init#init:8121415e87a8
64
+ integrations-attach 46f59682fb79 integrations/attach#CONCEPTS:0e6daa92601c integrations/attach#ATTACH:8b0b999ca5c9
65
+ integrity-attach 068a087cb99a integrity/attach#ATTACH:8b0b999ca5c9
66
+ invoked acc9518b7dd3 core/invoked#invoked:9133dcc091f3 core/invoked#SOURCE:e43353c41f9b core/invoked#BESIDE:95b5fff25591 core/invoked#LOADER:4de2138e3a11 core/invoked#CLI:4de2138e3a11 core/invoked#REFUSED:5cbef15de1fd core/invoked#shared:8c2d4d3f7d5b core/invoked#exit:a631d3ee5cd5 core/invoked#refusal:51d097295f50
67
+ issues-writer 21cd7349d337
68
+ knowledge-attach 3b761e8e2ede knowledge/attach#ATTACH:8b0b999ca5c9
69
+ lint 5f1b545753b1 integrity/lint#ruleMessage:cbd1b8bbcf00 integrity/lint#agentInstructions:3ccbfc44dc32 integrity/lint#defineRule:d391a4a1f3aa integrity/lint#defineRules:8bfd1bf6cfa5 integrity/lint#ruleRule:466d7d9ccaa3 integrity/lint#ruleRules:b7cc8a626183 integrity/lint#ruleSeverities:4506861e89ae integrity/lint#plugin:948c4ffe9079 integrity/lint#default:af79bdaf6dee integrity/lint#rules:f3a0aef9ed97 integrity/lint#ruleDeclarations:30516a9f1aa2 integrity/lint#RuleViolation:31a1a1e48e80 integrity/lint#RuleRunner:bbf72f90b110 integrity/lint#theRules:89139ffca783
70
+ lsp-bin b71d5da40c13
71
+ lsp-diagnostics 3ebe001dc037 integrity/lsp/diagnostics#DiagnosticSource:d08c813cf00a integrity/lsp/diagnostics#repoSource:dff5c2ce8d38 integrity/lsp/diagnostics#ERROR:d674d8e65aca integrity/lsp/diagnostics#WARNING:00a4f8869ab3 integrity/lsp/diagnostics#Position:46e0a3561d8b integrity/lsp/diagnostics#Diagnostic:ae6f64604dbe integrity/lsp/diagnostics#SOURCE_NAME:2514d79dbd06 integrity/lsp/diagnostics#toDiagnostic:fcae9032abb1 integrity/lsp/diagnostics#report:0dbedc0cd91b
72
+ lsp-findings 72f7d80645c0 integrity/lsp/findings#At:f235cb016ba3 integrity/lsp/findings#Finding:7d5c3a039f29 integrity/lsp/findings#detailOf:c2c587190fb0 integrity/lsp/findings#anchorIn:a250e5899ebf integrity/lsp/findings#locate:3793c6d451b7 integrity/lsp/findings#headOf:1a535cdf8f10 integrity/lsp/findings#rangeOf:f398dcb2f343
73
+ lsp-lint 878c49092e19 integrity/lsp/lint#isLintable:fd3e0e886f7d integrity/lsp/lint#LINT_CONFIG:82d55ccf289a integrity/lsp/lint#LintUnavailableError:f8f16a4068e3 integrity/lsp/lint#lintFindings:8fa9b43d2fa3
74
+ lsp-protocol d0ad8650307b integrity/lsp/protocol#RpcMessage:50bff985f883 integrity/lsp/protocol#METHOD_NOT_FOUND:ada3d6776590 integrity/lsp/protocol#encode:f00f8f2ab7bb integrity/lsp/protocol#MalformedMessageError:f8f16a4068e3 integrity/lsp/protocol#MessageBuffer:b1e528cf49fb
75
+ lsp-server a9f76280e395 integrity/lsp/server#ServerOptions:b2f4aaebe993 integrity/lsp/server#LspServer:5fa4c9448c6f
76
+ memory-seams 81354a470e2a operations/memory#UnknownColumnError:8b199b2bd819 operations/memory#VersionConflictError:4dc97c0f0896 operations/memory#MemoryStore:03b0fda2730d operations/memory#MemoryQueue:bbba236f590f operations/memory#Sink:4022c6709cbe operations/memory#MemoryIdempotency:75c2203e95f1 operations/memory#MemorySeamOptions:de2c0a77234f operations/memory#memoryVault:195dfbde5938 operations/memory#arrived:48096ac6d41e operations/memory#fresh:fe77a4ba7172 operations/memory#inMemorySeams:2ce1a7e07792
77
+ metering 3f4101335989 operations/metering#ActionBudget:f1d9d077152c operations/metering#WriteAmplification:fc8c12c4c74c operations/metering#DatabaseUsage:dec3f4c15d28 operations/metering#RoundTripBudgetExceededError:fd70c48cce7a operations/metering#BUDGET_EXCEEDED_BECAUSE:62517f9e87d5 operations/metering#DB_USAGE_PROPERTY:6bf9119631cc operations/metering#DB_USAGE_ATTRIBUTES:4cc5856f8e54 operations/metering#DB_AMPLIFICATION_PROPERTY:3d4a5e213f60 operations/metering#DB_AMPLIFICATION_ATTRIBUTES:2bcc6710ab6c operations/metering#databaseUsageValues:2badbd9d5274 operations/metering#writeAmplificationValues:4cb9d02b2a71 operations/metering#payloadBytes:2498eae4eed1 operations/metering#MeterableSeams:cf485c0bb5b5 operations/metering#Metered:b9962ff3e83a operations/metering#MeteredSeams:11200a6fdd73 operations/metering#meterDatabase:073587bf0d14
78
+ module 4fce7dd46b7b integrations/module#ran:4857758ecfcd integrations/module#run:c5a3bf40b8e1
79
+ operation-nodes 20b2da81c3ba operations/nodes#Node:2112c57d9bb8 operations/nodes#Held:0ec1b9f302e4 operations/nodes#STOPPED:5cbef15de1fd operations/nodes#stopped:2f6d794b907c operations/nodes#nd_read:ebe50f919c03 operations/nodes#nd_action:c76708228b06 operations/nodes#nd_branch:4386baffad1e operations/nodes#nd_each:ade7b07e6aec operations/nodes#nd_parallel:659ced4866c5 operations/nodes#nd_repeat:54d15c9c2875 operations/nodes#nd_stop:6244f240267e
80
+ operation-shape bc93f428de67 operations/operations#OPERATIONS_FILE:e46dfbcf462b operations/operations#TRIALS_AT:aaf352faa5b3 operations/operations#NODES_FILE:210e774203a3 operations/operations#MEMBERS_LIST:23961436d339 operations/operations#Operation:010f9dfefb3e operations/operations#OPERATIONS:7e34107beaa8
81
+ operations-attach 689c6957cd6c operations/attach#TAKES:6cddee9943a2 operations/attach#WOVEN:a99aa29866b3 operations/attach#said:c89bb33d7607 operations/attach#ATTACH:8b0b999ca5c9
82
+ permits-writer f9e142ce0ae7
83
+ publish-writer 141020971235
84
+ queue-policy 4f5417036cfd operations/queue-policy#MAX_ATTEMPTS:14dd7305c0fa operations/queue-policy#backoffMs:406c2222ff5e operations/queue-policy#isExhausted:402c2f1c9f9a
85
+ read-command afd47d858c95
86
+ release-shape 2de92c9f7b9d derivation/release#PREFIXES:6da43a4f714c derivation/release#KINDS:277a6ea035cd derivation/release#WRITES:fc2d72a3ac58 derivation/release#LISTENS:58f03905ca9e derivation/release#SAID:5bd0783b90d3 derivation/release#kindOf:4176df8c51b9 derivation/release#WRITTEN_BY:9173a6988956 derivation/release#CHECKED_BY:da31b0e1d991
87
+ release-writer 43a026a3c702 derivation/generators/release#CHECKED_BY:50e734bb9f42 derivation/generators/release#WRITES:b89e55dbc69c derivation/generators/release#made:ea0890697a77
88
+ result 9f5e98a1c646 operations/result#ResultCode:2c9cb831da2e operations/result#FailureIdentity:8af44679ea20 operations/result#Result:51fa3d37b70f operations/result#ok:012b7060c34a operations/result#fail:5787814702d4 operations/result#ValidationError:8056c1ea409e
89
+ round 56eb278418e4
90
+ rows 4bf9d5d12657 core/rows#Bounds:9f96256b89fa core/rows#inCode:3aa8ca939e44 core/rows#matched:efe81f54e0c4 core/rows#listBounds:3adc84a88226 core/rows#holdsRow:745a20ac8a94 core/rows#seededAt:483fd49afaa5 core/rows#rowsIn:98b8583dd419 core/rows#withRow:dcc57512f05d core/rows#withSeed:dd37a3bf5b3b core/rows#withRequires:d11efd3851ea core/rows#seedsIn:2de54e168233 core/rows#afterRow:6c07ac3f763a core/rows#quoted:7cb4ec66102d core/rows#valuesIn:84f1cf0a2b48 core/rows#unread:a2c39cf9feb9 core/rows#STATED:3c39f854eb6a core/rows#reconciled:36df6a2bfcce core/rows#fieldIn:13b49f086cce core/rows#withField:7c52e0fd3d24 core/rows#withoutRow:ecc4a8d269f9 core/rows#showing:2d45570925a8
91
+ scope aa2466654fc7 core/scope#ORGANISATION:8510114ffd9e core/scope#THING:2514d79dbd06 core/scope#NAMED:c33cb60b8e33 core/scope#named:72b4c80878b8 core/scope#idOf:3ab7154bd91a core/scope#ours:ab9daad14f31
92
+ sealed-store f613c714a165 integrations/vault#VAULT_DIR:5dd2b28d7cef integrations/vault#SEALED_NAME:4eaaac010b8c integrations/vault#KEY_NAME:065de823d162 integrations/vault#SEALED_AT:548d924665e3 integrations/vault#KEY_AT:2bcb12622e0d integrations/vault#ALGORITHM:84a84e44a5a1 integrations/vault#KEY_BYTES:95940045d335 integrations/vault#keyOf:71ea2ee0c552 integrations/vault#keyed:878e72b78d7b integrations/vault#seal:48aead05fdcd integrations/vault#sealedIn:d0d2e1cc0461 integrations/vault#opened:fea1d83b295a integrations/vault#IGNORES:4de2138e3a11
93
+ secret 4491d6438198 integrations/secret#SECRECY:6814f1bcc247 integrations/secret#SAID:7b6a22f69118 integrations/secret#Secret:3bd4b704fdfb integrations/secret#secrecyOf:53c866c6d50d integrations/secret#isServerOnly:14af671c09c3 integrations/secret#unclassified:3f18056f2160 integrations/secret#valued:3f18056f2160
94
+ seed-writer 2c728fd6d429 operations/generators/seed#quoted:b3a2bd470cb2 operations/generators/seed#beside:6c0fa306492b operations/generators/seed#runtime:b909738618a0 operations/generators/seed#types:2aee6c512ee7 operations/generators/seed#builtFrom:3b21d7bfce78 operations/generators/seed#operations:69e0b4d6cf2d operations/generators/seed#problem:44d3a33067da operations/generators/seed#blockIn:4aa89e8da0ca operations/generators/seed#scaffold:d58c01b2574a operations/generators/seed#nodeText:f7813131ffee operations/generators/seed#seed:9a4c29314682
95
+ shape 079cfa1542bf core/thread#Quote:34b9cab8ecec core/thread#Threaded:aa8a41b1903e core/thread#Member:2112c57d9bb8 core/thread#PREFIXES:e0184df3148d
96
+ slopnator 990671e454de integrity/slopnators/sl_broken_lineage#slopnator:42fb769c73ec integrity/slopnators/sl_declared_elsewhere#slopnator:42fb769c73ec integrity/slopnators/sl_derived_drift#Derivation:a7cc81c002ff integrity/slopnators/sl_derived_drift#derivations:f46b8572fa7c integrity/slopnators/sl_derived_drift#slopnator:42fb769c73ec integrity/slopnators/sl_hardcoded_style#slopnator:42fb769c73ec integrity/slopnators/sl_inert_island#slopnator:42fb769c73ec integrity/slopnators/sl_inert_slopnator#slopnator:42fb769c73ec integrity/slopnators/sl_missing_row#slopnator:42fb769c73ec integrity/slopnators/sl_no_barrel#slopnator:42fb769c73ec integrity/slopnators/sl_no_child_process#slopnator:42fb769c73ec integrity/slopnators/sl_no_comment#slopnator:42fb769c73ec integrity/slopnators/sl_no_dispatch_bypass#slopnator:42fb769c73ec integrity/slopnators/sl_no_import_cycle#slopnator:42fb769c73ec integrity/slopnators/sl_no_such_command#slopnator:42fb769c73ec integrity/slopnators/sl_only_takes_a_literal#slopnator:42fb769c73ec integrity/slopnators/sl_secret_literal#slopnator:42fb769c73ec integrity/slopnators/sl_stale_path#slopnator:42fb769c73ec integrity/slopnators/sl_twice_meant#slopnator:42fb769c73ec integrity/slopnators/sl_twice_parented#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_crossing#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_destination#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_element#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_node#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_operation#slopnator:42fb769c73ec integrity/slopnators/sl_undeclared_variant#slopnator:42fb769c73ec integrity/slopnators/sl_undescribed#slopnator:42fb769c73ec integrity/slopnators/sl_ungoverned_island#slopnator:42fb769c73ec integrity/slopnators/sl_unkept_rows#slopnator:42fb769c73ec integrity/slopnators/sl_unnamed_island#slopnator:42fb769c73ec integrity/slopnators/sl_unpaired_member#slopnator:42fb769c73ec integrity/slopnators/sl_unpaired_slopnator#slopnator:42fb769c73ec integrity/slopnators/sl_unprefixed_member#slopnator:42fb769c73ec integrity/slopnators/sl_unseamed_reach#slopnator:42fb769c73ec integrity/slopnators/sl_unthreaded#Reach:ee1c5ae840ce integrity/slopnators/sl_unthreaded#Meaning:eb5d28d0d101 integrity/slopnators/sl_unthreaded#here:7186c669fd80 integrity/slopnators/sl_unthreaded#atsIn:2a22e0fd79d4 integrity/slopnators/sl_unthreaded#rowsIn:e0b6bdfd102e integrity/slopnators/sl_unthreaded#Governed:26751a8a4a1c integrity/slopnators/sl_unthreaded#governedBy:7fd12eca7c1b integrity/slopnators/sl_unthreaded#filesGoverned:65cdfbe444d1 integrity/slopnators/sl_unthreaded#foldersGoverned:65cdfbe444d1 integrity/slopnators/sl_unthreaded#governs:a4fad74ada50 integrity/slopnators/sl_unthreaded#Declared:28a6c94b90c6 integrity/slopnators/sl_unthreaded#canonical:74c647d3ad5c integrity/slopnators/sl_unthreaded#islandsDeclared:16048ec0c690 integrity/slopnators/sl_unthreaded#declaresIsland:f3daaa415aee integrity/slopnators/sl_unthreaded#meaningsIn:53683e6a54b6 integrity/slopnators/sl_unthreaded#Index:1768b6501864 integrity/slopnators/sl_unthreaded#index:b914d00e9d0f integrity/slopnators/sl_unthreaded#forget:a3965c1dfabe integrity/slopnators/sl_unthreaded#threaded:2b0e40c55bac integrity/slopnators/sl_unthreaded#parses:df7c6aede8b6 integrity/slopnators/sl_unthreaded#unreadable:cb6cf51129a6 integrity/slopnators/sl_unthreaded#names:0096812bd8bb integrity/slopnators/sl_unthreaded#slopnator:42fb769c73ec integrity/slopnators/sl_untranslated_key#slopnator:42fb769c73ec integrity/slopnators/sl_unversioned#slopnator:42fb769c73ec
97
+ slopnator-shape 8e3b442eeb60 integrity/slopnator#NOT_WRITTEN:5cbef15de1fd integrity/slopnator#SHIPPED:16475c413846 integrity/slopnator#SEEDED:16475c413846 integrity/slopnator#ROOT:16475c413846 integrity/slopnator#DEPTH:776dd91e8911 integrity/slopnator#CEILING:d674d8e65aca integrity/slopnator#SPAWN_TIMEOUT:56358e853eb5 integrity/slopnator#SPAWN_BUFFER:341610e5ed60 integrity/slopnator#nested:f8c2780ce4f6 integrity/slopnator#ran:f51441c5336b integrity/slopnator#SlopnatorContext:d2a635854c3c integrity/slopnator#Spoken:e2c874045414 integrity/slopnator#Proves:0369cb81daa2 integrity/slopnator#Reads:b81a76c9cc9a integrity/slopnator#Reading:76ea63cd70a7 integrity/slopnator#Running:25cbab8e340a integrity/slopnator#Slopnator:ad0ae14e5f13 integrity/slopnator#Visiting:9af67a68f078 integrity/slopnator#reads:e851af39272f integrity/slopnator#visits:6e4f7f5deee8 integrity/slopnator#sweeps:e851af39272f integrity/slopnator#Byproduct:1b8a6fb06159 integrity/slopnator#slopnatorName:c452dd2bdbbc integrity/slopnator#names:637499d76201 integrity/slopnator#governs:91c49fcb7fdf integrity/slopnator#UnloadableSlopnatorError:9028dcb4c5ec integrity/slopnator#UnreadableRulesError:b60942b119f0 integrity/slopnator#load:5eaf126b2fda integrity/slopnator#proofsOf:763e7a5e9da3 integrity/slopnator#scaffold:15de269b224c integrity/slopnator#write:5c9de9c9d484 integrity/slopnator#onDisk:d463041c43a5 integrity/slopnator#named:c6a6a92894dc integrity/slopnator#rules:13ef34c2acc6 integrity/slopnator#seeds:a6a029998d40 integrity/slopnator#GENERALLY:baedbff8be54 integrity/slopnator#declaring:7229d8fb559f integrity/slopnator#declareSeeded:e732adf1e1e2
98
+ store-shape 8e609bb71c20 operations/store#Row:6f5edf17a61c operations/store#ReadField:99e67343fe70 operations/store#FieldList:83120b2166e7 operations/store#Store:3e01b6e1529c
99
+ sweep-walk 83bcc5789ddf integrity/sweep#visit:9b8811eccd92 integrity/sweep#Caught:5b4dba207f58 integrity/sweep#tracked:d463041c43a5 integrity/sweep#sweep:203bb756c522
100
+ target-shape b84279e9c124 integrations/target#REACH:d67ce859bd20 integrations/target#Reach:28718a29ebbb integrations/target#Holds:3f089a7d097d integrations/target#HOLDS:191fd51c8c5e integrations/target#SAID:cbb49ee60a17 integrations/target#Target:cd7add90c09a integrations/target#Call:e73d9c0eea06 integrations/target#CALL_PREFIX:471df1e09d10 integrations/target#fills:ebc8be09b0a4 integrations/target#reachOf:20d02de80d4c integrations/target#holdsOf:901a78c9a0d2 integrations/target#driverOf:6e977f406f5c integrations/target#addressOf:586d8e0c699d integrations/target#credentialsOf:cba586002fb2 integrations/target#servesBrowser:88b5a2eb80b0 integrations/target#unreachable:3fd2b82d0e99 integrations/target#misnamed:b92bbf30de70 integrations/target#misaccepted:4bb2e3fb0b7d integrations/target#unaddressed:2dff7cf19161 integrations/target#unheld:2dff7cf19161 integrations/target#unanswered:a6d304c26fd3 integrations/target#misused:a862396be9da integrations/target#refusals:1ef6b385d6a5 integrations/target#targetOf:822f8d420b17
101
+ tree 8ba28742dd62 core/tree#Tree:8f338d863404 core/tree#UnthreadedRepositoryError:4b99a1568c11 core/tree#findTree:49ec72a1c670 core/tree#strayFiles:495876581332 core/tree#inTree:9763add68f9f
102
+ trial-runner 35efe3b60730 operations/generators/trial#TRIALS_AT:48cf5b1696fb operations/generators/trial#Scenario:3fb86a665229 operations/generators/trial#Trial:a74a67ac5861 operations/generators/trial#Outcome:0b6ac6861c30 operations/generators/trial#Run:4064695a5df2 operations/generators/trial#runScenario:87292e8d5ec7 operations/generators/trial#scenariosFor:807a80dc6acb operations/generators/trial#compared:c81d29fd44b2 operations/generators/trial#unproven:27bd1e31789b operations/generators/trial#record:2ba585ade9fe
103
+ trial-writer e2ff0ae0fa89 integrity/generators/trial#TRIALS_PATH:16475c413846 integrity/generators/trial#Scenario:cec489475009 integrity/generators/trial#Trial:0ed5a9870dc8 integrity/generators/trial#Derivation:5542c019485a integrity/generators/trial#Outcome:4a336cfdb388 integrity/generators/trial#Run:4064695a5df2 integrity/generators/trial#probeAt:cbd1b8bbcf00 integrity/generators/trial#deriveTrials:801b86fffdcc integrity/generators/trial#trialsByproduct:a161332a7bcc integrity/generators/trial#runTrial:9d8f24783d10 integrity/generators/trial#runTrials:0b4ce7fbb41d
104
+ types 5279aefa98bb core/types#VALUE_TYPES:5805701a32cd core/types#ValueType:de0a55f12333 core/types#KEYBOARDS:30577ae2564c core/types#Keyboard:0f9fcadff185 core/types#ENTRY_MODES:0933f2a0cad7 core/types#EntryMode:619a8cf61463 core/types#Checked:3be2f12a6aae core/types#held:ecda2d49d546 core/types#refused:6c4e70ea8940 core/types#Facts:f94c9b180191 core/types#Format:f0fc652558a7 core/types#stripControl:ffc10711842d core/types#BOUNDED:ae1a8dd96249 core/types#FORMATS:a879ae389a3c core/types#formatsOf:1dda69cdbc5b core/types#formatNamed:2007301c8e1b core/types#plainFormat:f683a8a755a5 core/types#formatFor:36746cc1a7ad core/types#checkValue:c4d6bf4e05e4 core/types#showValue:68bfeaa86be4
105
+ vault-writer 68110e118832
106
+ -->
107
+
3
108
  ## 0.1.2
4
109
 
5
110
  what it exports is untouched and its code moved.
@@ -1,5 +1,5 @@
1
1
  export type Env = 'sandbox' | 'production';
2
- export declare const ENVIRONMENT: readonly [readonly ["run", "x-request-id"], readonly ["address", "x-forwarded-for"], readonly ["device", "user-agent"], readonly ["replay", "idempotency-key"]];
2
+ export declare const ENVIRONMENT: readonly [readonly ['run', 'x-request-id', 'crypto.randomUUID()'], readonly ['address', 'x-forwarded-for', null], readonly ['device', 'user-agent', null], readonly ['replay', 'idempotency-key', null], readonly ['moment', null, 'new Date().toISOString()']];
3
3
  export type Environment = {
4
4
  readonly [K in (typeof ENVIRONMENT)[number][0]]?: string;
5
5
  };
@@ -1,8 +1,9 @@
1
1
  export const ENVIRONMENT = [
2
- ['run', 'x-request-id'],
3
- ['address', 'x-forwarded-for'],
4
- ['device', 'user-agent'],
5
- ['replay', 'idempotency-key'],
2
+ ['run', 'x-request-id', 'crypto.randomUUID()'],
3
+ ['address', 'x-forwarded-for', null],
4
+ ['device', 'user-agent', null],
5
+ ['replay', 'idempotency-key', null],
6
+ ['moment', null, 'new Date().toISOString()'],
6
7
  ];
7
8
  export const PUBLIC_ROLE = 'role_public';
8
9
  export const ANONYMOUS = { id: null, roles: [PUBLIC_ROLE], entitlements: [] };
@@ -1,10 +1,11 @@
1
1
  export type Env = 'sandbox' | 'production'
2
2
 
3
3
  export const ENVIRONMENT = [
4
- ['run', 'x-request-id'],
5
- ['address', 'x-forwarded-for'],
6
- ['device', 'user-agent'],
7
- ['replay', 'idempotency-key'],
4
+ ['run', 'x-request-id', 'crypto.randomUUID()'],
5
+ ['address', 'x-forwarded-for', null],
6
+ ['device', 'user-agent', null],
7
+ ['replay', 'idempotency-key', null],
8
+ ['moment', null, 'new Date().toISOString()'],
8
9
  ] as const
9
10
 
10
11
  export type Environment = { readonly [K in (typeof ENVIRONMENT)[number][0]]?: string }
@@ -14,13 +14,6 @@ export interface Attaching {
14
14
  readonly writes: readonly Writing[];
15
15
  readonly declares: string;
16
16
  readonly rows?: readonly Appending[];
17
- readonly retires?: readonly {
18
- readonly into: string;
19
- readonly list: string;
20
- readonly id: string;
21
- readonly made?: string;
22
- readonly why: string;
23
- }[];
24
17
  readonly attaches?: readonly string[];
25
18
  readonly scripts?: Readonly<Record<string, string>>;
26
19
  readonly needs?: Readonly<Record<string, string>>;
@@ -6,14 +6,16 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, fetching, readFileSync, rmSync, writeFileSync } from "./files.js";
9
+ import { installing, needing } from '../integrations/cli.js';
10
+ import { attached, existsSync, readFileSync, rmSync, writeFileSync } from '../integrations/disk.js';
10
11
  import { createRequire } from 'node:module';
11
12
  import { join, relative, resolve } from 'node:path';
12
13
  import { stdout } from 'node:process';
13
- import { LISTS } from "./descend.js";
14
- import { ROOT, TREE, root as rooted } from "./init.js";
15
- import { STATED, holdsRow, listBounds, quoted, reconciled, rowsIn, withRow, withoutRow } from "./rows.js";
16
- import { ours as isOurs } from "./scope.js";
14
+ import { LISTS } from './descend.js';
15
+ import { ROOT, TREE, root as rooted } from './init.js';
16
+ import { BESIDE } from './invoked.js';
17
+ import { STATED, holdsRow, listBounds, quoted, reconciled, rowsIn, withRow, withoutRow } from './rows.js';
18
+ import { idOf, ours as isOurs } from './scope.js';
17
19
  const SHAPE = /export interface [A-Za-z0-9_]+ extends Threaded \{[\s\S]*?\n\}\n/;
18
20
  const MEMBERS = 'MEMBERS';
19
21
  const DOOR = '/attach';
@@ -64,12 +66,21 @@ export async function attaches(into, name) {
64
66
  return false;
65
67
  }
66
68
  }
69
+ function shipped(spec, owner) {
70
+ const rest = spec.slice(owner.length + 1);
71
+ const named = idOf(owner) ?? owner;
72
+ const part = rest === DOOR.slice(1) ? named : String(rest.split('/')[0]);
73
+ return new URL('../' + part + '/' + BESIDE('attach'), import.meta.url).href;
74
+ }
67
75
  async function attaching(into, name) {
68
76
  const spec = name.endsWith(DOOR) ? name : `${name}${DOOR}`;
69
77
  const owner = packageOf(name);
70
78
  let held;
71
79
  try {
72
- held = (await import(__rewriteRelativeImportExtension(createRequire(join(into, 'package.json')).resolve(spec))));
80
+ if (attached() && isOurs(owner))
81
+ held = (await import(__rewriteRelativeImportExtension(shipped(spec, owner))));
82
+ else
83
+ held = (await import(__rewriteRelativeImportExtension(createRequire(join(into, 'package.json')).resolve(spec))));
73
84
  }
74
85
  catch {
75
86
  if (!existsSync(join(into, 'node_modules', owner, 'package.json'))) {
@@ -123,7 +134,7 @@ function acquire(into, owner) {
123
134
  stdout.write(`thread: ${owner} is not here yet, so this is fetching it. Nothing has to be typed for that.\n`);
124
135
  writeFileSync(manifest, `${JSON.stringify({ ...parsed, dependencies: { ...parsed.dependencies, [owner]: 'latest' } }, null, 2)}\n`, 'utf8');
125
136
  try {
126
- fetching(into);
137
+ installing(into);
127
138
  }
128
139
  catch (thrown) {
129
140
  writeFileSync(manifest, was, 'utf8');
@@ -160,7 +171,6 @@ export async function attach(into, name, touched = new Set(), under = []) {
160
171
  await attach(into, on, touched, [...under, name]);
161
172
  }
162
173
  const plan = new Map();
163
- const retired = [];
164
174
  const reshaped = [];
165
175
  const noticed = [];
166
176
  const held = readFileSync(root, 'utf8');
@@ -305,14 +315,6 @@ export async function attach(into, name, touched = new Set(), under = []) {
305
315
  return false;
306
316
  return !text.slice(where.open, where.close).includes(each.source.trim().replace(/,$/, ''));
307
317
  }).length;
308
- const withdrawing = (one.retires ?? []).filter((gone) => {
309
- const at = join(dir, gone.into);
310
- if (!existsSync(at))
311
- return false;
312
- const text = plan.get(at) ?? readFileSync(at, 'utf8');
313
- const where = listBounds(text, gone.list);
314
- return where !== undefined && holdsRow(text, where, gone.id);
315
- }).length;
316
318
  throw new Error(`${name} brings a noun called \`${coined}\`, and this tree already declares something by that name. One ` +
317
319
  `word, one meaning: if this attached, \`thread create ${coined}\` would run the package's command and the ` +
318
320
  `thing you declared would be reachable only by its mark.\n\n` +
@@ -321,11 +323,10 @@ export async function attach(into, name, touched = new Set(), under = []) {
321
323
  `Nothing was written.\n\n` +
322
324
  `A refusal here names a command you can actually run. If the one above does not fit what you are trying ` +
323
325
  `to do, that is a gap in this framework rather than something to work around — say so.` +
324
- (waiting + withdrawing === 0
326
+ (waiting === 0
325
327
  ? ''
326
328
  : `\n\nAn attach is all or nothing, so this is also holding back everything else ${name} would have ` +
327
- `delivered: ${String(waiting)} row(s) this tree does not hold at the version installed` +
328
- `${withdrawing === 0 ? '' : ` and ${String(withdrawing)} it has withdrawn`}. None of that arrives until the ` +
329
+ `delivered: ${String(waiting)} row(s) this tree does not hold at the version installed. None of that arrives until the ` +
329
330
  `collision above is cleared, and nothing else will tell you — \`npm install\` will go on reporting this ` +
330
331
  `tree current.`));
331
332
  }
@@ -347,28 +348,6 @@ export async function attach(into, name, touched = new Set(), under = []) {
347
348
  throw new UnattachableError(name, `wants a row in \`${row.list}\`, which ${row.into} does not export`);
348
349
  plan.set(target, withRow(held, bounds, row.source));
349
350
  }
350
- for (const gone of one.retires ?? []) {
351
- const shipped = (one.rows ?? []).find((row) => row.into === gone.into && row.list === gone.list && row.id === gone.id);
352
- if (shipped !== undefined) {
353
- throw new UnattachableError(name, `both ships and retires \`${gone.id}\` in ${gone.into}, so attaching it would add and remove one row`);
354
- }
355
- if (gone.made !== undefined) {
356
- const byproduct = join(into, gone.made);
357
- if (existsSync(byproduct)) {
358
- rmSync(byproduct);
359
- retired.push(`${gone.made} — the file \`${gone.id}\` derived, which nothing writes now`);
360
- }
361
- }
362
- const target = join(dir, gone.into);
363
- if (!existsSync(target) && !plan.has(target))
364
- continue;
365
- const text = plan.get(target) ?? readFileSync(target, 'utf8');
366
- const where = listBounds(text, gone.list);
367
- if (where === undefined || !holdsRow(text, where, gone.id))
368
- continue;
369
- plan.set(target, withoutRow(text, where, gone.id));
370
- retired.push(`${gone.into}: ${gone.id} — ${gone.why}`);
371
- }
372
351
  if (one.scripts !== undefined) {
373
352
  const manifest = join(into, 'package.json');
374
353
  const held = readFileSync(manifest, 'utf8');
@@ -386,29 +365,24 @@ export async function attach(into, name, touched = new Set(), under = []) {
386
365
  }
387
366
  if (one.needs !== undefined) {
388
367
  const manifest = join(into, 'package.json');
389
- const held = plan.get(manifest) ?? readFileSync(manifest, 'utf8');
390
- const parsed = JSON.parse(held);
391
- const needs = { ...parsed.dependencies };
392
- const added = [];
393
- for (const [name, at] of Object.entries(one.needs)) {
394
- if (needs[name] !== undefined)
395
- continue;
396
- needs[name] = at;
397
- added.push(name);
368
+ const was = readFileSync(manifest, 'utf8');
369
+ const scripted = plan.get(manifest);
370
+ if (scripted !== undefined) {
371
+ writeFileSync(manifest, scripted, 'utf8');
372
+ plan.delete(manifest);
373
+ touched.add(relative(into, manifest));
374
+ }
375
+ let added;
376
+ try {
377
+ added = needing(into, one.needs);
378
+ }
379
+ catch (thrown) {
380
+ writeFileSync(manifest, was, 'utf8');
381
+ throw new Error(`${thrown instanceof Error ? thrown.message : String(thrown)} Nothing was attached.`);
398
382
  }
399
383
  if (added.length > 0) {
400
- const next = `${JSON.stringify({ ...parsed, dependencies: needs }, null, 2)}\n`;
401
- const was = readFileSync(manifest, 'utf8');
402
- writeFileSync(manifest, next, 'utf8');
403
384
  touched.add(relative(into, manifest));
404
- stdout.write(`thread: ${name} needs ${added.join(', ')}, so this is fetching ${added.length === 1 ? 'it' : 'them'}. Nothing has to be typed for that.\n`);
405
- try {
406
- fetching(into);
407
- }
408
- catch (thrown) {
409
- writeFileSync(manifest, was, 'utf8');
410
- throw new Error(`${added.join(', ')} could not be fetched — ${thrown instanceof Error ? thrown.message : String(thrown)} Nothing was attached and package.json is as it was.`);
411
- }
385
+ stdout.write(`thread: ${name} needs ${added.join(', ')}, so ${added.length === 1 ? 'it is' : 'they are'} in package.json now and fetched. Nothing has to be typed for that.\n`);
412
386
  }
413
387
  }
414
388
  if (one.ignores !== undefined && one.ignores.length > 0) {
@@ -425,8 +399,6 @@ export async function attach(into, name, touched = new Set(), under = []) {
425
399
  writeFileSync(path, text, 'utf8');
426
400
  touched.add(relative(into, path));
427
401
  }
428
- for (const line of retired)
429
- stdout.write(`thread: retired ${line}\n`);
430
402
  for (const file of reshaped)
431
403
  stdout.write(`thread: reshaped ${file} — what a row may state has changed\n`);
432
404
  for (const id of noticed)
@@ -512,7 +484,7 @@ export async function detach(into, name) {
512
484
  }
513
485
  return [...touched].sort();
514
486
  }
515
- const DESCRIBES = 'The package every tree installs first: the descent, the CLI, and the makers and generators that used to be separate packages.';
487
+ const DESCRIBES = 'The package every tree installs first: the descent that reads a tree, the gate that checks it, and the generators every tree runs.';
516
488
  const CORE_SOURCE = `import type { Threaded } from '../core/thread.ts'
517
489
 
518
490
  export const CORE: Threaded = {
@@ -532,7 +504,7 @@ const SEEDED = {
532
504
  ' {',
533
505
  ' id: \'core\',',
534
506
  ' at: \'_threads/core.ts\',',
535
- ' describes: \'The package every tree installs first: the descent, the CLI, and the makers and generators that used to be separate packages.\',',
507
+ ' describes: \'The package every tree installs first: the descent that reads a tree, the gate that checks it, and the generators every tree runs.\',',
536
508
  ' version: 1,',
537
509
  ' },',
538
510
  ].join('\n'),
@@ -1,12 +1,14 @@
1
- import { existsSync, fetching, readFileSync, rmSync, writeFileSync } from './files.ts'
1
+ import { installing, needing } from '../integrations/cli.ts'
2
+ import { attached, existsSync, readFileSync, rmSync, writeFileSync } from '../integrations/disk.ts'
2
3
  import { createRequire } from 'node:module'
3
4
  import { join, relative, resolve } from 'node:path'
4
5
  import { stdout } from 'node:process'
5
6
 
6
7
  import { LISTS } from './descend.ts'
7
8
  import { ROOT, TREE, root as rooted } from './init.ts'
9
+ import { BESIDE } from './invoked.ts'
8
10
  import { STATED, holdsRow, listBounds, quoted, reconciled, rowsIn, withRow, withoutRow } from './rows.ts'
9
- import { ours as isOurs } from './scope.ts'
11
+ import { idOf, ours as isOurs } from './scope.ts'
10
12
 
11
13
  const SHAPE = /export interface [A-Za-z0-9_]+ extends Threaded \{[\s\S]*?\n\}\n/
12
14
 
@@ -35,16 +37,6 @@ export interface Attaching {
35
37
  readonly declares: string
36
38
  readonly rows?: readonly Appending[]
37
39
 
38
- readonly retires?: readonly {
39
- readonly into: string
40
- readonly list: string
41
- readonly id: string
42
-
43
- readonly made?: string
44
-
45
- readonly why: string
46
- }[]
47
-
48
40
  readonly attaches?: readonly string[]
49
41
 
50
42
  readonly scripts?: Readonly<Record<string, string>>
@@ -108,11 +100,20 @@ export async function attaches(into: string, name: string): Promise<boolean> {
108
100
  }
109
101
  }
110
102
 
103
+ function shipped(spec: string, owner: string): string {
104
+ const rest = spec.slice(owner.length + 1)
105
+ const named = idOf(owner) ?? owner
106
+ const part = rest === DOOR.slice(1) ? named : String(rest.split('/')[0])
107
+ return new URL('../' + part + '/' + BESIDE('attach'), import.meta.url).href
108
+ }
109
+
111
110
  async function attaching(into: string, name: string): Promise<Attaching> {
112
111
  const spec = name.endsWith(DOOR) ? name : `${name}${DOOR}`
113
112
  const owner = packageOf(name)
114
113
  let held: { ATTACH?: Attaching }
115
114
  try {
115
+ if (attached() && isOurs(owner)) held = (await import(shipped(spec, owner))) as { ATTACH?: Attaching }
116
+ else
116
117
  held = (await import(createRequire(join(into, 'package.json')).resolve(spec))) as { ATTACH?: Attaching }
117
118
  } catch {
118
119
  if (!existsSync(join(into, 'node_modules', owner, 'package.json'))) {
@@ -170,7 +171,7 @@ function acquire(into: string, owner: string): void {
170
171
  stdout.write(`thread: ${owner} is not here yet, so this is fetching it. Nothing has to be typed for that.\n`)
171
172
  writeFileSync(manifest, `${JSON.stringify({ ...parsed, dependencies: { ...parsed.dependencies, [owner]: 'latest' } }, null, 2)}\n`, 'utf8')
172
173
  try {
173
- fetching(into)
174
+ installing(into)
174
175
  } catch (thrown) {
175
176
  writeFileSync(manifest, was, 'utf8')
176
177
  throw new Error(
@@ -216,7 +217,6 @@ export async function attach(
216
217
 
217
218
  const plan = new Map<string, string>()
218
219
 
219
- const retired: string[] = []
220
220
 
221
221
  const reshaped: string[] = []
222
222
 
@@ -362,13 +362,6 @@ export async function attach(
362
362
  if (where === undefined) return false
363
363
  return !text.slice(where.open, where.close).includes(each.source.trim().replace(/,$/, ''))
364
364
  }).length
365
- const withdrawing = (one.retires ?? []).filter((gone) => {
366
- const at = join(dir, gone.into)
367
- if (!existsSync(at)) return false
368
- const text = plan.get(at) ?? readFileSync(at, 'utf8')
369
- const where = listBounds(text, gone.list)
370
- return where !== undefined && holdsRow(text, where, gone.id)
371
- }).length
372
365
 
373
366
  throw new Error(
374
367
  `${name} brings a noun called \`${coined}\`, and this tree already declares something by that name. One ` +
@@ -380,11 +373,10 @@ export async function attach(
380
373
 
381
374
  `A refusal here names a command you can actually run. If the one above does not fit what you are trying ` +
382
375
  `to do, that is a gap in this framework rather than something to work around — say so.` +
383
- (waiting + withdrawing === 0
376
+ (waiting === 0
384
377
  ? ''
385
378
  : `\n\nAn attach is all or nothing, so this is also holding back everything else ${name} would have ` +
386
- `delivered: ${String(waiting)} row(s) this tree does not hold at the version installed` +
387
- `${withdrawing === 0 ? '' : ` and ${String(withdrawing)} it has withdrawn`}. None of that arrives until the ` +
379
+ `delivered: ${String(waiting)} row(s) this tree does not hold at the version installed. None of that arrives until the ` +
388
380
  `collision above is cleared, and nothing else will tell you — \`npm install\` will go on reporting this ` +
389
381
  `tree current.`),
390
382
  )
@@ -409,34 +401,6 @@ export async function attach(
409
401
  plan.set(target, withRow(held, bounds, row.source))
410
402
  }
411
403
 
412
- for (const gone of one.retires ?? []) {
413
- const shipped = (one.rows ?? []).find(
414
- (row) => row.into === gone.into && row.list === gone.list && row.id === gone.id,
415
- )
416
- if (shipped !== undefined) {
417
- throw new UnattachableError(
418
- name,
419
- `both ships and retires \`${gone.id}\` in ${gone.into}, so attaching it would add and remove one row`,
420
- )
421
- }
422
-
423
- if (gone.made !== undefined) {
424
- const byproduct = join(into, gone.made)
425
- if (existsSync(byproduct)) {
426
- rmSync(byproduct)
427
- retired.push(`${gone.made} — the file \`${gone.id}\` derived, which nothing writes now`)
428
- }
429
- }
430
-
431
- const target = join(dir, gone.into)
432
- if (!existsSync(target) && !plan.has(target)) continue
433
- const text = plan.get(target) ?? readFileSync(target, 'utf8')
434
- const where = listBounds(text, gone.list)
435
- if (where === undefined || !holdsRow(text, where, gone.id)) continue
436
- plan.set(target, withoutRow(text, where, gone.id))
437
- retired.push(`${gone.into}: ${gone.id} — ${gone.why}`)
438
- }
439
-
440
404
  if (one.scripts !== undefined) {
441
405
  const manifest = join(into, 'package.json')
442
406
  const held = readFileSync(manifest, 'utf8')
@@ -453,30 +417,23 @@ export async function attach(
453
417
 
454
418
  if (one.needs !== undefined) {
455
419
  const manifest = join(into, 'package.json')
456
-
457
- const held = plan.get(manifest) ?? readFileSync(manifest, 'utf8')
458
- const parsed = JSON.parse(held) as Record<string, unknown> & { dependencies?: Record<string, string> }
459
- const needs = { ...parsed.dependencies }
460
- const added: string[] = []
461
- for (const [name, at] of Object.entries(one.needs)) {
462
- if (needs[name] !== undefined) continue
463
- needs[name] = at
464
- added.push(name)
420
+ const was = readFileSync(manifest, 'utf8')
421
+ const scripted = plan.get(manifest)
422
+ if (scripted !== undefined) {
423
+ writeFileSync(manifest, scripted, 'utf8')
424
+ plan.delete(manifest)
425
+ touched.add(relative(into, manifest))
426
+ }
427
+ let added: readonly string[]
428
+ try {
429
+ added = needing(into, one.needs)
430
+ } catch (thrown) {
431
+ writeFileSync(manifest, was, 'utf8')
432
+ throw new Error(`${thrown instanceof Error ? thrown.message : String(thrown)} Nothing was attached.`)
465
433
  }
466
434
  if (added.length > 0) {
467
- const next = `${JSON.stringify({ ...parsed, dependencies: needs }, null, 2)}\n`
468
- const was = readFileSync(manifest, 'utf8')
469
- writeFileSync(manifest, next, 'utf8')
470
435
  touched.add(relative(into, manifest))
471
- stdout.write(`thread: ${name} needs ${added.join(', ')}, so this is fetching ${added.length === 1 ? 'it' : 'them'}. Nothing has to be typed for that.\n`)
472
- try {
473
- fetching(into)
474
- } catch (thrown) {
475
- writeFileSync(manifest, was, 'utf8')
476
- throw new Error(
477
- `${added.join(', ')} could not be fetched — ${thrown instanceof Error ? thrown.message : String(thrown)} Nothing was attached and package.json is as it was.`,
478
- )
479
- }
436
+ stdout.write(`thread: ${name} needs ${added.join(', ')}, so ${added.length === 1 ? 'it is' : 'they are'} in package.json now and fetched. Nothing has to be typed for that.\n`)
480
437
  }
481
438
  }
482
439
 
@@ -496,7 +453,6 @@ export async function attach(
496
453
  touched.add(relative(into, path))
497
454
  }
498
455
 
499
- for (const line of retired) stdout.write(`thread: retired ${line}\n`)
500
456
  for (const file of reshaped) stdout.write(`thread: reshaped ${file} — what a row may state has changed\n`)
501
457
  for (const id of noticed) stdout.write(`thread: declared ${id} — a file this app grew after \`thread init\` ran\n`)
502
458
 
@@ -582,7 +538,7 @@ export async function detach(into: string, name: string): Promise<readonly strin
582
538
  }
583
539
 
584
540
  const DESCRIBES =
585
- 'The package every tree installs first: the descent, the CLI, and the makers and generators that used to be separate packages.'
541
+ 'The package every tree installs first: the descent that reads a tree, the gate that checks it, and the generators every tree runs.'
586
542
 
587
543
  const CORE_SOURCE = `import type { Threaded } from '../core/thread.ts'
588
544
 
@@ -604,7 +560,7 @@ const SEEDED = {
604
560
  ' {',
605
561
  ' id: \'core\',',
606
562
  ' at: \'_threads/core.ts\',',
607
- ' describes: \'The package every tree installs first: the descent, the CLI, and the makers and generators that used to be separate packages.\',',
563
+ ' describes: \'The package every tree installs first: the descent that reads a tree, the gate that checks it, and the generators every tree runs.\',',
608
564
  ' version: 1,',
609
565
  ' },',
610
566
  ].join('\n'),