@prestack/thread 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/core/{asking.d.ts → answers.d.ts} +6 -14
  3. package/dist/core/{asking.js → answers.js} +13 -332
  4. package/dist/core/{asking.ts → answers.ts} +14 -357
  5. package/dist/core/attach.js +2 -2
  6. package/dist/core/attach.ts +2 -3
  7. package/dist/core/chain.js +4 -11
  8. package/dist/core/chain.ts +4 -3
  9. package/dist/core/client.d.ts +57 -0
  10. package/dist/core/client.js +186 -0
  11. package/dist/core/client.ts +227 -0
  12. package/dist/core/descend.d.ts +2 -0
  13. package/dist/core/descend.js +109 -16
  14. package/dist/core/descend.ts +120 -16
  15. package/dist/core/files.d.ts +45 -0
  16. package/dist/core/files.js +95 -0
  17. package/dist/core/files.ts +137 -0
  18. package/dist/core/init.d.ts +1 -0
  19. package/dist/core/init.js +10 -2
  20. package/dist/core/init.ts +8 -2
  21. package/dist/core/invoked.js +1 -1
  22. package/dist/core/invoked.ts +1 -1
  23. package/dist/core/rows.d.ts +2 -0
  24. package/dist/core/rows.js +65 -0
  25. package/dist/core/rows.ts +58 -0
  26. package/dist/core/tree.js +1 -1
  27. package/dist/core/tree.ts +1 -1
  28. package/dist/derivation/attach.js +0 -12
  29. package/dist/derivation/attach.ts +0 -12
  30. package/dist/derivation/generators/build.js +8 -7
  31. package/dist/derivation/generators/build.ts +8 -7
  32. package/dist/derivation/generators/release.d.ts +1 -1
  33. package/dist/derivation/generators/release.js +15 -23
  34. package/dist/derivation/generators/release.ts +15 -15
  35. package/dist/integrations/attach.js +1 -19
  36. package/dist/integrations/attach.ts +1 -19
  37. package/dist/integrations/generators/read.js +2 -2
  38. package/dist/integrations/generators/read.ts +4 -4
  39. package/dist/integrations/generators/vault.js +4 -12
  40. package/dist/integrations/generators/vault.ts +4 -4
  41. package/dist/integrations/module.js +5 -3
  42. package/dist/integrations/module.ts +5 -3
  43. package/dist/integrations/vault.js +5 -5
  44. package/dist/integrations/vault.ts +5 -5
  45. package/dist/integrity/attach.js +0 -12
  46. package/dist/integrity/attach.ts +0 -12
  47. package/dist/integrity/check-threads.js +1 -1
  48. package/dist/integrity/check-threads.ts +1 -1
  49. package/dist/integrity/constraint.d.ts +11 -2
  50. package/dist/integrity/constraint.js +163 -20
  51. package/dist/integrity/constraint.ts +174 -22
  52. package/dist/integrity/generators/compiler.js +1 -1
  53. package/dist/integrity/generators/compiler.ts +1 -1
  54. package/dist/integrity/generators/gate.js +8 -16
  55. package/dist/integrity/generators/gate.ts +8 -7
  56. package/dist/integrity/generators/publish.js +14 -26
  57. package/dist/integrity/generators/publish.ts +14 -17
  58. package/dist/integrity/generators/trial.d.ts +2 -2
  59. package/dist/integrity/generators/trial.js +108 -50
  60. package/dist/integrity/generators/trial.ts +107 -48
  61. package/dist/integrity/lint.js +3 -3
  62. package/dist/integrity/lint.ts +3 -3
  63. package/dist/integrity/lsp/diagnostics.js +1 -1
  64. package/dist/integrity/lsp/diagnostics.ts +1 -1
  65. package/dist/integrity/lsp/lint.js +1 -1
  66. package/dist/integrity/lsp/lint.ts +1 -1
  67. package/dist/integrity/slopnator.d.ts +1 -14
  68. package/dist/integrity/slopnator.js +8 -40
  69. package/dist/integrity/slopnator.ts +9 -51
  70. package/dist/integrity/slopnators/sl_broken_lineage.js +4 -2
  71. package/dist/integrity/slopnators/sl_broken_lineage.ts +4 -2
  72. package/dist/integrity/slopnators/sl_declared_elsewhere.js +24 -3
  73. package/dist/integrity/slopnators/sl_declared_elsewhere.ts +24 -3
  74. package/dist/integrity/slopnators/sl_derived_drift.js +10 -4
  75. package/dist/integrity/slopnators/sl_derived_drift.ts +10 -4
  76. package/dist/integrity/slopnators/sl_inert_island.js +7 -13
  77. package/dist/integrity/slopnators/sl_inert_island.ts +7 -16
  78. package/dist/integrity/slopnators/sl_inert_slopnator.js +8 -8
  79. package/dist/integrity/slopnators/sl_inert_slopnator.ts +8 -8
  80. package/dist/integrity/slopnators/sl_missing_row.js +14 -9
  81. package/dist/integrity/slopnators/sl_missing_row.ts +14 -10
  82. package/dist/integrity/slopnators/sl_no_child_process.js +8 -8
  83. package/dist/integrity/slopnators/sl_no_child_process.ts +8 -8
  84. package/dist/integrity/slopnators/sl_no_import_cycle.js +1 -1
  85. package/dist/integrity/slopnators/sl_no_import_cycle.ts +1 -1
  86. package/dist/integrity/slopnators/sl_no_such_command.js +20 -5
  87. package/dist/integrity/slopnators/sl_no_such_command.ts +22 -5
  88. package/dist/integrity/slopnators/sl_only_takes_a_literal.js +8 -8
  89. package/dist/integrity/slopnators/sl_only_takes_a_literal.ts +8 -8
  90. package/dist/integrity/slopnators/sl_stale_path.js +91 -18
  91. package/dist/integrity/slopnators/sl_stale_path.ts +97 -18
  92. package/dist/integrity/slopnators/sl_twice_meant.js +25 -2
  93. package/dist/integrity/slopnators/sl_twice_meant.ts +28 -2
  94. package/dist/integrity/slopnators/sl_twice_parented.js +26 -5
  95. package/dist/integrity/slopnators/sl_twice_parented.ts +26 -5
  96. package/dist/integrity/slopnators/sl_undeclared_node.js +18 -2
  97. package/dist/integrity/slopnators/sl_undeclared_node.ts +18 -2
  98. package/dist/integrity/slopnators/sl_undeclared_operation.js +3 -1
  99. package/dist/integrity/slopnators/sl_undeclared_operation.ts +3 -1
  100. package/dist/integrity/slopnators/sl_undeclared_variant.js +6 -2
  101. package/dist/integrity/slopnators/sl_undeclared_variant.ts +6 -2
  102. package/dist/integrity/slopnators/sl_ungoverned_island.js +3 -4
  103. package/dist/integrity/slopnators/sl_ungoverned_island.ts +3 -4
  104. package/dist/integrity/slopnators/sl_unkept_rows.js +1 -1
  105. package/dist/integrity/slopnators/sl_unkept_rows.ts +1 -1
  106. package/dist/integrity/slopnators/sl_unpaired_member.js +13 -8
  107. package/dist/integrity/slopnators/sl_unpaired_member.ts +16 -8
  108. package/dist/integrity/slopnators/sl_unpaired_slopnator.js +16 -3
  109. package/dist/integrity/slopnators/sl_unpaired_slopnator.ts +16 -3
  110. package/dist/integrity/slopnators/sl_unthreaded.d.ts +1 -0
  111. package/dist/integrity/slopnators/sl_unthreaded.js +18 -10
  112. package/dist/integrity/slopnators/sl_unthreaded.ts +19 -11
  113. package/dist/integrity/slopnators/sl_untranslated_key.js +1 -1
  114. package/dist/integrity/slopnators/sl_untranslated_key.ts +1 -1
  115. package/dist/integrity/slopnators/sl_unversioned.js +16 -2
  116. package/dist/integrity/slopnators/sl_unversioned.ts +16 -2
  117. package/dist/integrity/sweep.js +17 -3
  118. package/dist/integrity/sweep.ts +20 -3
  119. package/dist/knowledge/attach.js +0 -6
  120. package/dist/knowledge/attach.ts +0 -6
  121. package/dist/knowledge/generators/docsgen.js +12 -3
  122. package/dist/knowledge/generators/docsgen.ts +12 -2
  123. package/dist/knowledge/generators/glossary.js +1 -1
  124. package/dist/knowledge/generators/glossary.ts +1 -1
  125. package/dist/operations/attach.js +2 -26
  126. package/dist/operations/attach.ts +2 -27
  127. package/dist/operations/dispatch.js +2 -3
  128. package/dist/operations/dispatch.ts +2 -3
  129. package/dist/operations/generators/capability.js +4 -7
  130. package/dist/operations/generators/capability.ts +3 -6
  131. package/dist/operations/generators/compile.js +8 -13
  132. package/dist/operations/generators/compile.ts +8 -4
  133. package/dist/operations/generators/permits.js +4 -13
  134. package/dist/operations/generators/permits.ts +3 -3
  135. package/dist/operations/generators/seed.js +5 -2
  136. package/dist/operations/generators/seed.ts +6 -2
  137. package/dist/operations/generators/trial.js +10 -10
  138. package/dist/operations/generators/trial.ts +10 -10
  139. package/dist/operations/http.js +4 -1
  140. package/dist/operations/http.ts +6 -1
  141. package/package.json +2 -2
  142. package/dist/core/cli.d.ts +0 -2
  143. package/dist/core/cli.js +0 -1761
  144. package/dist/core/cli.ts +0 -2004
  145. package/dist/core/generators/meta.d.ts +0 -2
  146. package/dist/core/generators/meta.js +0 -829
  147. package/dist/core/generators/meta.ts +0 -1006
  148. package/dist/derivation/generators/derivation.d.ts +0 -3
  149. package/dist/derivation/generators/derivation.js +0 -273
  150. package/dist/derivation/generators/derivation.ts +0 -347
  151. package/dist/derivation/makers/release.d.ts +0 -1
  152. package/dist/derivation/makers/release.js +0 -107
  153. package/dist/derivation/makers/release.ts +0 -135
  154. package/dist/integrations/generators/secret.d.ts +0 -1
  155. package/dist/integrations/generators/secret.js +0 -233
  156. package/dist/integrations/generators/secret.ts +0 -289
  157. package/dist/integrations/generators/target.d.ts +0 -1
  158. package/dist/integrations/generators/target.js +0 -775
  159. package/dist/integrations/generators/target.ts +0 -944
  160. package/dist/integrity/generators/rule.d.ts +0 -2
  161. package/dist/integrity/generators/rule.js +0 -213
  162. package/dist/integrity/generators/rule.ts +0 -271
  163. package/dist/integrity/generators/seal.d.ts +0 -4
  164. package/dist/integrity/generators/seal.js +0 -101
  165. package/dist/integrity/generators/seal.ts +0 -117
  166. package/dist/integrity/sealed.d.ts +0 -1
  167. package/dist/integrity/sealed.js +0 -56
  168. package/dist/integrity/sealed.ts +0 -56
  169. package/dist/knowledge/generators/skills.d.ts +0 -1
  170. package/dist/knowledge/generators/skills.js +0 -222
  171. package/dist/knowledge/generators/skills.ts +0 -263
  172. package/dist/operations/generators/grant.d.ts +0 -1
  173. package/dist/operations/generators/grant.js +0 -267
  174. package/dist/operations/generators/grant.ts +0 -336
  175. package/dist/operations/generators/operation.d.ts +0 -1
  176. package/dist/operations/generators/operation.js +0 -811
  177. package/dist/operations/generators/operation.ts +0 -972
  178. package/dist/operations/makers/capability.d.ts +0 -1
  179. package/dist/operations/makers/capability.js +0 -117
  180. package/dist/operations/makers/capability.ts +0 -166
  181. package/dist/operations/makers/trial.d.ts +0 -1
  182. package/dist/operations/makers/trial.js +0 -413
  183. package/dist/operations/makers/trial.ts +0 -520
package/CHANGELOG.md CHANGED
@@ -1,5 +1,103 @@
1
1
  # @prestack/thread
2
2
 
3
+ ## 0.0.3
4
+
5
+ it only added, so everything built against the last one still works.
6
+
7
+ What this package ships is read off the files it built from here on — every name it exports, and the shape of each one. Nothing on a sheet states a number. This is the first entry measured that way, so it names no changes: there is no earlier measurement to hold it against. It ships 88 word(s).
8
+
9
+ <!-- release 0.0.3 -->
10
+ <!-- holds
11
+ 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
12
+ asking f07e8f73753e core/asking#RECEIPT:ad72fbad0fea core/asking#ENDS:5bfccdcd5f7b core/asking#FROM:3c837e3dc08c core/asking#CHAINED:7b13c9b1e786 core/asking#BODY:70a4b97be2fd core/asking#WRITES:9d735ee4d4d2 core/asking#asFlag:25c52264bada core/asking#refuse:7ee262649b02 core/asking#slug:492099384a1e core/asking#within:fbafe944704a core/asking#parsed:58c428b43692 core/asking#scoped:64ce8910f514 core/asking#Asked:c6b95d4b0313 core/asking#Said:1cd114f6023d core/asking#asksOf:83be247ac96d core/asking#named:a6168ca8e40e core/asking#prompted:303760ba8ed7 core/asking#Given:822297d6d75d core/asking#Child:90dc57be460c core/asking#Stated:0cac88b17ea4 core/asking#mapped:c8ed361b963a core/asking#CARRIES:4de2138e3a11 core/asking#ownAnswers:5c97ca968c6a core/asking#stating:b2ce474816f4 core/asking#arrayValue:9f39f3dd60e0 core/asking#asMap:6bdf1b65f804 core/asking#gathered:6a67d2ba59f9 core/asking#asBoolean:6bdf1b65f804 core/asking#rowLines:10e03b28721b core/asking#withChildren:0ce71de61a5d core/asking#childrenIn:19bb201f22a9 core/asking#BODIED:4de2138e3a11 core/asking#WRITTEN:4de2138e3a11 core/asking#seeding:0ddd814882ea core/asking#children:dcb6ef22379a core/asking#bodied:8f27f5a33d0b core/asking#guidance:64cf3c8bcac2 core/asking#only:76c6877b3914 core/asking#answer:530c0e6a2fb3 core/asking#accepted:6c42249c541b core/asking#needed:76e936a60d64 core/asking#wrapped:0e03558213e5 core/asking#marked:ca0a5bc98816 core/asking#Told:34b9cab8ecec core/asking#Declared:14a1629c6c7c core/asking#declared:ed8c4d1f12f8 core/asking#nouns:b82da6d91e26 core/asking#SKILLS_AT:15e5c72a7506 core/asking#skillOf:17eae30825c7 core/asking#issue:8619a9261e0b core/asking#spend:1c0f548a9968 core/asking#asking:03631e356039 core/asking#answered:f8c2780ce4f6 core/asking#given:538c4f41ef3f core/asking#handed:65fda728778f core/asking#TYPED:418839a03d7e core/asking#VERBS:4de2138e3a11 core/asking#grows:d5ac51e6df16 core/asking#VALUED:f486afa87a83 core/asking#answering:b426057daccd core/asking#CARRIED:5484dfc0086a core/asking#ELSEWHERE:4de2138e3a11 core/asking#taught:936ec52be3ab core/asking#reminded:95dd71d7792a core/asking#wordsIn:b2bbc3c780aa core/asking#credentialIn:4aa89e8da0ca
13
+ attach ba4b5d17d94d 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
14
+ build-writer ec629542b4f2 derivation/generators/build#declared:f833228cb868 derivation/generators/build#wanted:ca9066873bf3
15
+ capability-maker c69f23a29053
16
+ capability-writer 886144e4fd32 operations/generators/capability#derive:0c14fda3eab7
17
+ chain a31c9502b0f0 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
18
+ cli 61537265aed9
19
+ compile-writer d5fb0b0c7eb1 operations/generators/compile#parts:a2c39cf9feb9 operations/generators/compile#compile:2fb552595d35
20
+ compiler-scope c6db73bfd315
21
+ 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
22
+ constraint-shape c6eebad19fc1 integrity/constraint#Constraint:9e1058f6f8f9 integrity/constraint#CONSTRAINTS:a99a22a9f325
23
+ core-attach ba4b5d17d94d 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
24
+ 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
25
+ core-dispatch b5776d201bf8 operations/dispatch#DISPATCH_AT:4e8f2c0639bf operations/dispatch#dispatched:f2f582240655
26
+ 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
27
+ 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
28
+ derivation-attach 1f03341c5a8c derivation/attach#ATTACH:8b0b999ca5c9
29
+ 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
30
+ descend 40c0bb98f9f5 core/descend#ROOT:16475c413846 core/descend#TREE:16475c413846 core/descend#THREAD_AT:16475c413846 core/descend#unkept:c4b11ba631c2 core/descend#LISTS:2fdc0678a755 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#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
31
+ descent-check 3c943a890af5 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
32
+ 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
33
+ docs-writer 4e05082634a5
34
+ 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
35
+ 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
36
+ 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
37
+ error-results 964e86677bba operations/error-results#errorDefForResult:d20408abb638 operations/error-results#platformErrorForResult:cfa19576d3d2
38
+ finding da4a559b20fe core/finding#Finding:180d780f4cd9 core/finding#forbids:019885a2a7da core/finding#runChecker:bea68acae26f
39
+ gate-writer f865f469f13b
40
+ generator-writer 2006ba20f0d5 derivation/generators/derivation#ASKS:4a215f8b8854 derivation/generators/derivation#ADDS:4a215f8b8854
41
+ glossary-shape 8e609bb71c20 knowledge/glossary#Glossary:e30f4c6fe581
42
+ glossary-writer a80fba01fc53
43
+ grant-maker fd0199de7168
44
+ 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
45
+ http 2d12c1a9f32a 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
46
+ init e4457f287b0d 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
47
+ integrations-attach 1b90a3b8aa4a integrations/attach#CONCEPTS:0e6daa92601c integrations/attach#ATTACH:8b0b999ca5c9
48
+ integrity-attach e879e49449a3 integrity/attach#ATTACH:8b0b999ca5c9
49
+ invoked ce2a11a15274 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
50
+ issues-writer 21cd7349d337
51
+ knowledge-attach 800b55702609 knowledge/attach#ATTACH:8b0b999ca5c9
52
+ lint 63f9957725a9 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
53
+ lsp-bin b71d5da40c13
54
+ lsp-diagnostics 0fd15477b4df 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
55
+ 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
56
+ lsp-lint 159b07ffa100 integrity/lsp/lint#isLintable:fd3e0e886f7d integrity/lsp/lint#LINT_CONFIG:82d55ccf289a integrity/lsp/lint#LintUnavailableError:f8f16a4068e3 integrity/lsp/lint#lintFindings:8fa9b43d2fa3
57
+ 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
58
+ lsp-server a9f76280e395 integrity/lsp/server#ServerOptions:b2f4aaebe993 integrity/lsp/server#LspServer:5fa4c9448c6f
59
+ 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
60
+ meta-maker c24f7634bac6 core/generators/meta#ASKS:4a215f8b8854
61
+ 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
62
+ module a09b41d70746 integrations/module#ran:4857758ecfcd integrations/module#run:c5a3bf40b8e1
63
+ operation-maker 2fae672bc70a
64
+ 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
65
+ 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
66
+ operations-attach 80776e56cb69 operations/attach#TAKES:6cddee9943a2 operations/attach#WOVEN:a99aa29866b3 operations/attach#said:c89bb33d7607 operations/attach#ATTACH:8b0b999ca5c9
67
+ permits-writer a6b4364935c3
68
+ publish-writer f19114019854
69
+ queue-policy 4f5417036cfd operations/queue-policy#MAX_ATTEMPTS:14dd7305c0fa operations/queue-policy#backoffMs:406c2222ff5e operations/queue-policy#isExhausted:402c2f1c9f9a
70
+ read-command dc589a06043c
71
+ release-maker f54de099b33e
72
+ 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
73
+ release-writer 60dfc5147d4b derivation/generators/release#CHECKED_BY:50e734bb9f42 derivation/generators/release#WRITES:b89e55dbc69c derivation/generators/release#made:ea0890697a77
74
+ 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
75
+ round 56eb278418e4
76
+ rows 5be8f96bb103 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#STATED:3c39f854eb6a core/rows#reconciled:36df6a2bfcce core/rows#fieldIn:13b49f086cce core/rows#withField:7c52e0fd3d24 core/rows#withoutRow:ecc4a8d269f9 core/rows#showing:2d45570925a8
77
+ rule-writer 82bdfefbf394 integrity/generators/rule#ASKS:4a215f8b8854
78
+ 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
79
+ seal 99ddfdc6ba1b integrity/sealed#SEALED:f79c78e2421b
80
+ seal-writer 39fb8ab5c95b integrity/generators/seal#SEALED_AT:f693ad0bcc17 integrity/generators/seal#sealable:5696e4db85db integrity/generators/seal#sealOf:645b85905aa1 integrity/generators/seal#content:c867aaab81fb
81
+ sealed-store 30f780e26d05 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
82
+ 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
83
+ secret-maker 55b371377b25
84
+ seed-writer c8db2184ea03 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
85
+ shape 079cfa1542bf core/thread#Quote:34b9cab8ecec core/thread#Threaded:aa8a41b1903e core/thread#Member:2112c57d9bb8 core/thread#PREFIXES:e0184df3148d
86
+ skills-writer 9149784ace5c
87
+ slopnator 3568e145cd0e 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#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
88
+ slopnator-shape 804adba20c26 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#Sourced:7a4a750b4216 integrity/slopnator#Proof:ed7d660baa12 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#BrokenSealError:6930aa63122c integrity/slopnator#unsealed:5696e4db85db integrity/slopnator#verify:a3965c1dfabe 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
89
+ store-shape 8e609bb71c20 operations/store#Row:6f5edf17a61c operations/store#ReadField:99e67343fe70 operations/store#FieldList:83120b2166e7 operations/store#Store:3e01b6e1529c
90
+ sweep-walk 2402ba042f87 integrity/sweep#visit:9b8811eccd92 integrity/sweep#Caught:5b4dba207f58 integrity/sweep#tracked:d463041c43a5 integrity/sweep#sweep:203bb756c522
91
+ target-maker f6ee739d5fab
92
+ 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
93
+ tree 2f544d79b773 core/tree#Tree:8f338d863404 core/tree#UnthreadedRepositoryError:4b99a1568c11 core/tree#findTree:49ec72a1c670 core/tree#strayFiles:495876581332 core/tree#inTree:9763add68f9f
94
+ trial-maker e176eb417e7c
95
+ trial-runner f9baf84c1c34 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
96
+ trial-writer a2ef8fda83bb 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
97
+ 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
98
+ vault-writer 92de7d04cd92
99
+ -->
100
+
3
101
  ## 0.0.1
4
102
 
5
103
  Every package carries the same number. The first two parts are set on the packaging sheet and move only when somebody changes them there; the third moves with every publish.
@@ -47,7 +47,6 @@ export interface Said {
47
47
  readonly asks?: string;
48
48
  readonly optional?: boolean;
49
49
  }
50
- export declare function asksOf(noun: string, shape: string | readonly Field[], said: Readonly<Record<string, Said>>, computed: readonly string[]): readonly Asked[];
51
50
  export declare const named: (all: readonly Asked[]) => readonly string[];
52
51
  export declare const prompted: (one: Asked) => string;
53
52
  export type Given = {
@@ -94,12 +93,16 @@ export declare const WRITTEN: readonly string[];
94
93
  export declare function seeding(kids: ReadonlyMap<string, readonly Child[]>, root: string): readonly string[];
95
94
  export declare function children(list: string, all: readonly Given[], ask: (name: string, asks: string) => Promise<string>, line: () => Promise<string | undefined>): Promise<readonly Child[]>;
96
95
  export declare function bodied(what: string, shows: string, piped: boolean, all: readonly Given[], line: () => Promise<string | undefined>): Promise<string | undefined>;
97
- export declare function guidance(all: readonly Asked[]): readonly string[];
98
96
  export declare function only(given: readonly {
99
97
  readonly at: number;
100
98
  readonly key: string;
101
99
  readonly value: string;
102
100
  }[], allowed: readonly string[], where: string): void;
101
+ export declare function unasked(given: readonly {
102
+ readonly at: number;
103
+ readonly key: string;
104
+ readonly value: string;
105
+ }[], allowed: readonly string[], where: string): void;
103
106
  export declare function answer(given: readonly {
104
107
  readonly at: number;
105
108
  readonly key: string;
@@ -137,10 +140,6 @@ export interface Declared {
137
140
  }
138
141
  export declare function declared(tree: Tree): Promise<ReadonlyMap<string, Declared>>;
139
142
  export declare function nouns(all: readonly Row[], verb?: string): ReadonlyMap<string, string>;
140
- export declare const SKILLS_AT = "thread/knowledge";
141
- export declare function skillOf(noun: string): string;
142
- export declare function issue(root: string, listing: string): string;
143
- export declare function spend(root: string, listing: string, offered: string | undefined, sheet: string): void;
144
143
  export declare function asking(held: readonly {
145
144
  readonly at: number;
146
145
  readonly key: string;
@@ -162,18 +161,11 @@ export declare function given(): readonly {
162
161
  readonly value: string;
163
162
  }[];
164
163
  export declare function handed(): string | undefined;
165
- export declare const TYPED = "npx thread";
166
- export declare const VERBS: readonly string[];
167
- export declare const grows: (sheetAt: string, noun: string) => readonly string[];
168
- export declare const VALUED = "THREAD_VALUED";
169
- export declare function answering(noun: string): readonly string[];
164
+ export declare const TYPED = "thread";
170
165
  export declare const CARRIED: readonly {
171
166
  readonly verb: string;
172
167
  readonly typed: string;
173
168
  readonly does: string;
174
169
  }[];
175
- export declare const ELSEWHERE: readonly string[];
176
- export declare function taught(noun: string, told: ReadonlyMap<string, Declared>, commands: ReadonlySet<string>): readonly string[];
177
- export declare function reminded(noun: string | undefined): string;
178
170
  export declare function wordsIn(offered: readonly string[]): readonly string[];
179
171
  export declare function credentialIn(text: string): string | undefined;
@@ -1,22 +1,10 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import { createHash, randomBytes } from 'node:crypto';
10
- import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
11
- import { tmpdir } from 'node:os';
12
- import { dirname, join, relative } from 'node:path';
13
- import { argv, env, exit, stderr, stdin, stdout } from 'node:process';
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, readFileSync, writeFileSync } from "./files.js";
3
+ import { join, relative } from 'node:path';
4
+ import { argv, exit, stderr, stdin, stdout } from 'node:process';
14
5
  import { createInterface } from 'node:readline';
15
- import { pathToFileURL } from 'node:url';
16
- import { CONSTRAINTS } from "../integrity/constraint.js";
17
- import { LISTS, descend, listFields, listShape, shapeFields, shapesNamed } from "./descend.js";
18
- import { quoted } from "./rows.js";
19
- const RECEIPTS = join(tmpdir(), 'thread-create');
6
+ import { LISTS, listFields, listShape, shapesNamed } from "./descend.js";
7
+ import { quoted, valuesIn } from "./rows.js";
20
8
  export const RECEIPT = '--receipt';
21
9
  export const ENDS = '.';
22
10
  export const FROM = '--from';
@@ -100,66 +88,6 @@ export function scoped(given, opens) {
100
88
  return { own, each };
101
89
  }
102
90
  const locate = (one) => one.at > 0 ? `line ${String(one.at)}` : `\`--${one.key}\``;
103
- let meanings;
104
- function coined(word) {
105
- if (meanings === undefined) {
106
- const found = new Map();
107
- try {
108
- for (const [id, held] of descend().coined) {
109
- const first = held.said[0];
110
- if (first !== undefined && first !== '')
111
- found.set(id, first);
112
- }
113
- }
114
- catch {
115
- found.clear();
116
- }
117
- meanings = found;
118
- }
119
- return meanings.get(word);
120
- }
121
- export function asksOf(noun, shape, said, computed) {
122
- const fields = typeof shape === 'string' ? shapeFields(shape).map((one) => ({ ...one, boolean: false })) : shape;
123
- if (fields.length === 0) {
124
- refuse(`nothing installed here states what a ${noun} is made of, so \`thread create ${noun}\` has no questions to ` +
125
- `ask. It reads that from the shape a ${noun} is declared with rather than from a list kept beside it. ` +
126
- 'Run `npx thread attach` to see whether the package that states it is taken on.');
127
- }
128
- const spoken = { ...said };
129
- for (const one of fields) {
130
- if (spoken[one.name] !== undefined || computed.includes(one.name))
131
- continue;
132
- const meaning = coined(one.name) ?? (one.guide === '' ? undefined : one.guide);
133
- if (meaning === undefined)
134
- continue;
135
- spoken[one.name] = { guide: meaning };
136
- }
137
- const mute = fields
138
- .filter((one) => one.required && !computed.includes(one.name) && spoken[one.name] === undefined)
139
- .map((one) => one.name);
140
- if (mute.length > 0) {
141
- const one = mute.length === 1;
142
- refuse(`every ${noun} states ${mute.join(', ')}, and \`thread create ${noun}\` never asks for ${one ? 'it' : 'them'}. ` +
143
- `It would write a ${noun} with no ${mute.join(' and no ')}, and tell you it worked. ` +
144
- `Give ${one ? 'it' : 'each'} a sentence where this command lists what it asks, or name ${one ? 'it' : 'them'} ` +
145
- 'as something the command fills in.');
146
- }
147
- return Object.keys(spoken).map((one) => {
148
- const told = spoken[one];
149
- const known = fields.find((each) => each.name === one);
150
- const spare = told.optional ?? (known !== undefined && !known.required);
151
- return {
152
- at: one,
153
- guide: known?.boolean === true ? `${told.guide} — yes or no` : told.guide,
154
- ...(told.asks === undefined ? {} : { asks: told.asks }),
155
- ...(spare ? { optional: true } : {}),
156
- ...(known?.list === true ? { list: true } : {}),
157
- ...(known?.map === true ? { map: true } : {}),
158
- ...(known?.boolean === true ? { boolean: true } : {}),
159
- ...(known?.worded === true ? { worded: true } : {}),
160
- };
161
- });
162
- }
163
91
  export const named = (all) => all.map((one) => one.at);
164
92
  export const prompted = (one) => one.asks ?? `${one.at} — ${one.guide}${one.optional === true ? ', or blank' : ''}: `;
165
93
  export const mapped = (one, said) => one.map === true && !(one.worded === true && !said.includes('='));
@@ -364,7 +292,6 @@ export function seeding(kids, root) {
364
292
  `\`${TYPED} read ${one.at}\` prints what is there.`);
365
293
  continue;
366
294
  }
367
- mkdirSync(dirname(into), { recursive: true });
368
295
  writeFileSync(into, one.body.endsWith('\n') ? one.body : `${one.body}\n`, 'utf8');
369
296
  said.push(`wrote ${one.at} with the body you gave it.`);
370
297
  }
@@ -457,16 +384,11 @@ export async function bodied(what, shows, piped, all, line) {
457
384
  const written = held.join('\n').trim();
458
385
  return written === '' ? undefined : written;
459
386
  }
460
- export function guidance(all) {
461
- const width = Math.max(...all.map((one) => one.at.length)) + 3;
462
- const under = ' '.repeat(width + 2);
463
- return all.flatMap((one) => {
464
- const lines = wrapped(one.optional === true ? `${one.guide.replace(/\.$/, '')}. Leave it blank and it is not stated` : one.guide, '');
465
- return [` ${`${one.at}:`.padEnd(width)}${lines[0] ?? ''}`, ...lines.slice(1).map((each) => `${under}${each}`)];
466
- });
467
- }
468
387
  export function only(given, allowed, where) {
469
- for (const one of ownAnswers(given)) {
388
+ unasked(ownAnswers(given), allowed, where);
389
+ }
390
+ export function unasked(given, allowed, where) {
391
+ for (const one of given) {
470
392
  if (CARRIES.includes(one.key) || one.key === WRITES)
471
393
  continue;
472
394
  if (allowed.includes(one.key))
@@ -517,7 +439,6 @@ export function marked(parts) {
517
439
  const citesOf = (held) => Array.isArray(held)
518
440
  ? held.filter((one) => one !== null && typeof one === 'object' && typeof one.on === 'string' && typeof one.said === 'string')
519
441
  : [];
520
- const HELD = ['holds', 'declares'];
521
442
  const NAMED_SHAPE = /^[A-Za-z_][A-Za-z0-9_]*$/;
522
443
  const rowLike = (one) => one !== null && typeof one === 'object' && typeof one.id === 'string' && typeof one.describes === 'string';
523
444
  const kinded = (shape) => shape
@@ -567,7 +488,7 @@ export async function declared(tree) {
567
488
  walked.add(at);
568
489
  let read;
569
490
  try {
570
- read = (await import(__rewriteRelativeImportExtension(pathToFileURL(join(tree.at, at)).href)));
491
+ read = valuesIn(readFileSync(join(tree.at, at)));
571
492
  }
572
493
  catch {
573
494
  return;
@@ -576,7 +497,7 @@ export async function declared(tree) {
576
497
  const node = value;
577
498
  const lists = Array.isArray(value)
578
499
  ? [{ list: name, rows: value }]
579
- : HELD.flatMap((list) => {
500
+ : ['holds', 'declares'].flatMap((list) => {
580
501
  const rows = node?.[list];
581
502
  return Array.isArray(rows) ? [{ list, rows }] : [];
582
503
  });
@@ -673,68 +594,6 @@ export function nouns(all, verb = 'create') {
673
594
  }
674
595
  return found;
675
596
  }
676
- const spends = (root, nonce) => join(RECEIPTS, `${createHash('sha256').update(root).digest('hex').slice(0, 16)}-${nonce}.txt`);
677
- const stamp = (listing) => createHash('sha256').update(listing).digest('hex').slice(0, 12);
678
- function beingMade() {
679
- const words = argv.slice(2).filter((one) => !one.startsWith('-'));
680
- if (words[0] === 'create' && typeof words[1] === 'string' && words[1] !== '')
681
- return words[1];
682
- const file = (argv[1] ?? '').split('\\').join('/').split('/').at(-1) ?? '';
683
- return file.replace(/\.[^.]+$/, '');
684
- }
685
- export const SKILLS_AT = 'thread/knowledge';
686
- export function skillOf(noun) {
687
- return `${SKILLS_AT}/${noun}.md`;
688
- }
689
- function readTheSkill() {
690
- const noun = env.THREAD_NOUN ?? beingMade();
691
- if (noun === '')
692
- return [];
693
- return [
694
- '',
695
- `READ ${skillOf(noun)} BEFORE YOU WRITE ANYTHING. It is this command's own output, kept as a`,
696
- 'file, and it lists everything that already exists. Building a second copy of something the tree',
697
- 'already has is the most expensive mistake available here and it has already been made: thirteen',
698
- 'elements were declared in one app that every one of them already shipped.',
699
- '',
700
- 'If that file is not there, run `npx thread skills` and it will be.',
701
- ];
702
- }
703
- export function issue(root, listing) {
704
- const nonce = randomBytes(6).toString('hex');
705
- mkdirSync(RECEIPTS, { recursive: true });
706
- writeFileSync(spends(root, nonce), `${stamp(listing)}\n`, 'utf8');
707
- const said = readTheSkill();
708
- if (said.length > 0)
709
- stdout.write(`${said.join('\n')}\n`);
710
- return nonce;
711
- }
712
- export function spend(root, listing, offered, sheet) {
713
- if (offered === undefined || offered.startsWith('-')) {
714
- refuse(`\`${RECEIPT}\` was handed nothing to check. Run \`thread create\` with no arguments — it lists what is ` +
715
- 'here and issues a receipt to hand back.');
716
- }
717
- const path = spends(root, offered);
718
- if (!existsSync(path)) {
719
- refuse(`\`${offered}\` is not a receipt this tree issued, or it has been spent already — one run per receipt. ` +
720
- 'Run `thread create` again and use the one it prints.');
721
- }
722
- let when = '';
723
- try {
724
- when = readFileSync(path, 'utf8').trim();
725
- }
726
- catch {
727
- when = '';
728
- }
729
- process.on('exit', (code) => {
730
- if (code === 0)
731
- rmSync(path, { force: true });
732
- });
733
- if (when !== stamp(listing)) {
734
- refuse(`${sheet} has changed since that receipt was issued, so what you read is not what is here. ` +
735
- 'Run `thread create` again.');
736
- }
737
- }
738
597
  export function asking(held) {
739
598
  const piped = answered();
740
599
  const rl = piped ? undefined : createInterface({ input: stdin, output: stdout });
@@ -848,191 +707,13 @@ export function handed() {
848
707
  }
849
708
  return stood;
850
709
  }
851
- export const TYPED = 'npx thread';
852
- const folded = (said, pad, room = 92) => {
853
- const out = [];
854
- let line = '';
855
- for (const word of said.split(/\s+/)) {
856
- if (line === '')
857
- line = word;
858
- else if (`${line} ${word}`.length <= room)
859
- line = `${line} ${word}`;
860
- else {
861
- out.push(line);
862
- line = word;
863
- }
864
- }
865
- if (line !== '')
866
- out.push(line);
867
- return out.map((one) => `${pad}${one}`);
868
- };
869
- const parented = (() => {
870
- const one = CONSTRAINTS.find((each) => each.id === 'twice-parented');
871
- if (one === undefined) {
872
- return [
873
- '',
874
- 'THIS PAGE CANNOT STATE THE RULE. It reads what may declare a file out of the `twice-parented`',
875
- 'rule, and no rule by that name ships any more. Whatever governs this now, it is not said here —',
876
- `\`${TYPED} create rule\` lists every rule that does exist.`,
877
- ];
878
- }
879
- return [
880
- '',
881
- 'which one you pick is a rule rather than a preference, and a check refuses the tree over it:',
882
- '',
883
- ` ${one.id}`,
884
- ...folded(`bans ${one.bans}.`, ' '),
885
- ...folded(one.instead.replace(/^./, (each) => each.toUpperCase()), ' '),
886
- ];
887
- })();
888
- const NEXT = {
889
- declares: 'It writes the file from that, and nothing else runs. A file already on disk is left alone and the row simply names it.',
890
- derives: `It writes NO file at \`at:\`, because the command in \`by:\` writes that one — which is why there is no ${asFlag(BODY)} here to give. If this tree has no command answering \`by:\`, that generator is declared first and ${asFlag(WRITES)} is what goes in it.`,
891
- seeds: `TWO files come out of this and a different hand writes each, which is the whole reason there are two bodies. If this tree has no command answering \`by:\`, that generator is declared here too, so one run leaves the row, the generator and the file.`,
892
- };
893
- export const VERBS = [
894
- 'nothing is in this tree until a row names it, and which of three lists the row sits in says who',
895
- 'wrote the file. Pick the one that is true and the rest of this framework follows from it:',
896
- '',
897
- ' declares a person wrote it. Exactly one row may ever declare an address, and a second is',
898
- ' refused: a file with two owners has two answers for where it came from and the tree',
899
- ' can give neither.',
900
- ' derives a command wrote it. Delete the file, run the command again, and the same bytes come',
901
- ' back. Many rows may derive one address, because a derivation owns nothing — it states',
902
- ' `by:`, the command that writes it, and `runs:`, what catches it drifting.',
903
- ' seeds a command wrote the shape and a person fills in the part no machine can supply. Many',
904
- ' rows may seed one address as well, and it is proved by shape rather than by bytes,',
905
- ' because half of what is on disk is your own writing.',
906
- '',
907
- `a file in none of them is not in this app at all — \`${TYPED} descent\` names every one it reached`,
908
- 'and every one it did not, and nothing undeclared is compiled in or shipped.',
909
- '',
910
- 'and the list decides what this command does next, not just what the row says. What it does next is',
911
- 'ASK FOR BODIES, and there are two of them, which are never the same text and never the same file:',
912
- '',
913
- ` ${asFlag(BODY).padEnd(10)} the body of the file the row names. A person wrote it.`,
914
- ` ${asFlag(WRITES).padEnd(10)} the body of the GENERATOR — the code that writes a template into that file.`,
915
- '',
916
- 'give each as text on the command. Neither may be taken out of a file, because a file is not a',
917
- 'receipt: nothing here checked it and no descent reached it. Single-quote a body that holds quotes.',
918
- '',
919
- 'so each list takes a different set of them, and giving one where the other belongs is the mistake',
920
- 'this section exists to stop:',
921
- '',
922
- ...LISTS.flatMap((list) => {
923
- const takes = [
924
- ...(WRITTEN.includes(list) ? [asFlag(WRITES)] : []),
925
- ...(BODIED.includes(list) ? [asFlag(BODY)] : []),
926
- ];
927
- const said = folded(`takes ${takes.length === 0 ? 'no body at all' : takes.join(' and ')}. ${NEXT[list] ?? ''}`, ' ');
928
- return said.map((line, at) => (at === 0 ? ` ${list.padEnd(11)}${line.trim()}` : line));
929
- }),
930
- ...parented,
931
- ];
932
- export const grows = (sheetAt, noun) => {
933
- const shaped = noun.split('-').map((one) => `${one.slice(0, 1).toUpperCase()}${one.slice(1)}`).join('');
934
- return [
935
- `this is also how the CLI grows. A list of rows in ${sheetAt} becomes a command: declare`,
936
- `\`export const THINGS: readonly Thing[] = []\` beside what is already there and \`${TYPED} create thing\``,
937
- 'answers from that moment, asking for whatever a `Thing` states and writing the row into that list.',
938
- '',
939
- `The same is true of what you have now: \`${TYPED} create ${noun}\` exists because ${sheetAt} declares`,
940
- `\`${shaped}\`. Nothing was added to a list of commands anywhere — the CLI reads what your tree says.`,
941
- ];
942
- };
943
- export const VALUED = 'THREAD_VALUED';
944
- export function answering(noun) {
945
- return [
946
- ...(env[VALUED] === '1' ? [] : [...VERBS, '']),
947
- 'what `new` asks. Give each answer as a flag on one command and close with the receipt:',
948
- '',
949
- ` ${TYPED} create ${noun} new --<answer> <value> ... ${RECEIPT} <receipt>`,
950
- '',
951
- 'Flags need no terminal, no pipe and no file, so that form works everywhere. The two others',
952
- 'each need something you may not have: one answer to a line on stdin needs a shell that can',
953
- 'redirect, and `--answers <path>` needs a way to write the file first. Use them when you have',
954
- 'them; the line above is the one that never depends on it.',
955
- '',
956
- 'Where a question repeats — a list of things, each with answers of its own — there are no',
957
- 'separate flag names for the inner ones. Give the group\'s own flag again to begin the next,',
958
- 'then its answers after it, reusing the same words. They are read in the order you write them,',
959
- 'and everything before the first group flag belongs to the thing itself.',
960
- '',
961
- 'the answers, in order:',
962
- ];
963
- }
710
+ export const TYPED = 'thread';
964
711
  export const CARRIED = [
965
712
  { verb: 'read', typed: `${TYPED} read <row>`, does: 'prints every field a row states' },
966
713
  { verb: 'edit', typed: `${TYPED} edit <row> --<field> <value>`, does: 'changes any field it was declared with' },
967
714
  { verb: 'remove', typed: `${TYPED} edit <row> --remove`, does: 'takes the row out of the tree' },
968
715
  ];
969
716
  const elsewhere = CARRIED.map((one) => `\`${one.typed}\` ${one.does}`);
970
- export const ELSEWHERE = [
971
- 'reading a row, changing one of its answers and taking it out are done in one place, whatever',
972
- 'declared it \u2014 name the row by its id or by the mark printed beside it above:',
973
- '',
974
- ...CARRIED.map((one) => ` ${one.typed.padEnd(40)}${one.does}`),
975
- ];
976
- const opening = (said) => said.split(/(?<=\.)\s/)[0] ?? said;
977
- const article = (word) => (/^[aeiou]/.test(word) ? 'an' : 'a');
978
- export function taught(noun, told, commands) {
979
- const one = told.get(noun);
980
- const opens = [
981
- [`${TYPED} read <id>`, 'the row, and the file it names'],
982
- [`${TYPED} create ${noun}`, 'this list again, with a fresh receipt'],
983
- ...(commands.has('thread inspect')
984
- ? [[`${TYPED} inspect <word>`, 'every row whose name or sentence carries the word']]
985
- : []),
986
- ];
987
- const top = one?.top;
988
- const siblings = top === undefined
989
- ? []
990
- : [...told]
991
- .filter(([, each]) => each.top?.id === top.id && each.describes !== '')
992
- .sort(([left], [right]) => (left < right ? -1 : 1));
993
- const pad = Math.max(0, ...siblings.map(([word]) => word.length)) + 3;
994
- return [
995
- 'DO NOT CREATE WHAT ALREADY EXISTS. Everything listed below is declared and yours to use. A thing',
996
- 'you cannot find is usually one of these under a word you have not met \u2014 read the sentences, not',
997
- 'the names.',
998
- '',
999
- 'IF NOTHING FITS, SAY SO AND STOP. Do not coin a name: a name is a meaning, and a meaning is',
1000
- 'declared rather than invented. Being told the list is short a thing is a useful answer.',
1001
- '',
1002
- 'NOW GO AND OPEN ONE. A sentence is a summary, and every expensive mistake here was made from a',
1003
- 'summary. These print the real thing, and none of them writes anything:',
1004
- '',
1005
- ...opens.map(([said, does]) => ` ${said.padEnd(30)}${does}`),
1006
- '',
1007
- ...(one === undefined || one.describes === ''
1008
- ? []
1009
- : [
1010
- `what ${article(noun)} ${noun} is:`,
1011
- '',
1012
- ...wrapped(one.describes, ' '),
1013
- ...one.cites.flatMap((said) => ['', ...wrapped(`said on ${said.on}: "${said.said}"`, ' ')]),
1014
- '',
1015
- ]),
1016
- ...(top === undefined || siblings.length < 2
1017
- ? []
1018
- : [
1019
- `${top.id} \u2014 ${opening(top.describes)}`,
1020
- 'what it makes, and what each one is. Pick the one that is true before declaring anything:',
1021
- '',
1022
- ...siblings.flatMap(([word, each]) => {
1023
- const lines = wrapped(opening(each.describes), '');
1024
- return [` ${word.padEnd(pad)}${lines[0] ?? ''}`, ...lines.slice(1).map((line) => `${' '.repeat(pad + 2)}${line}`)];
1025
- }),
1026
- '',
1027
- ]),
1028
- ];
1029
- }
1030
- export function reminded(noun) {
1031
- const lists = noun === undefined || noun === 'meta'
1032
- ? `\`${TYPED} create\` lists what this tree makes, and any noun run bare lists what exists, each with its sentence`
1033
- : `\`${TYPED} create ${noun}\` lists what exists, each with its sentence`;
1034
- return `thread: before the next thing, ${lists}. Do not create what already exists, and if nothing fits, say so and stop.`;
1035
- }
1036
717
  export function wordsIn(offered) {
1037
718
  const values = new Set([argv[argv.indexOf(RECEIPT) + 1], argv[argv.indexOf(ANSWERS) + 1], ...flagged().map((one) => one.value)]);
1038
719
  const words = argv.slice(2).filter((one) => !one.startsWith('-') && !values.has(one));