@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.
- package/CHANGELOG.md +98 -0
- package/dist/core/{asking.d.ts → answers.d.ts} +6 -14
- package/dist/core/{asking.js → answers.js} +13 -332
- package/dist/core/{asking.ts → answers.ts} +14 -357
- package/dist/core/attach.js +2 -2
- package/dist/core/attach.ts +2 -3
- package/dist/core/chain.js +4 -11
- package/dist/core/chain.ts +4 -3
- package/dist/core/client.d.ts +57 -0
- package/dist/core/client.js +186 -0
- package/dist/core/client.ts +227 -0
- package/dist/core/descend.d.ts +2 -0
- package/dist/core/descend.js +109 -16
- package/dist/core/descend.ts +120 -16
- package/dist/core/files.d.ts +45 -0
- package/dist/core/files.js +95 -0
- package/dist/core/files.ts +137 -0
- package/dist/core/init.d.ts +1 -0
- package/dist/core/init.js +10 -2
- package/dist/core/init.ts +8 -2
- package/dist/core/invoked.js +1 -1
- package/dist/core/invoked.ts +1 -1
- package/dist/core/rows.d.ts +2 -0
- package/dist/core/rows.js +65 -0
- package/dist/core/rows.ts +58 -0
- package/dist/core/tree.js +1 -1
- package/dist/core/tree.ts +1 -1
- package/dist/derivation/attach.js +0 -12
- package/dist/derivation/attach.ts +0 -12
- package/dist/derivation/generators/build.js +8 -7
- package/dist/derivation/generators/build.ts +8 -7
- package/dist/derivation/generators/release.d.ts +1 -1
- package/dist/derivation/generators/release.js +15 -23
- package/dist/derivation/generators/release.ts +15 -15
- package/dist/integrations/attach.js +1 -19
- package/dist/integrations/attach.ts +1 -19
- package/dist/integrations/generators/read.js +2 -2
- package/dist/integrations/generators/read.ts +4 -4
- package/dist/integrations/generators/vault.js +4 -12
- package/dist/integrations/generators/vault.ts +4 -4
- package/dist/integrations/module.js +5 -3
- package/dist/integrations/module.ts +5 -3
- package/dist/integrations/vault.js +5 -5
- package/dist/integrations/vault.ts +5 -5
- package/dist/integrity/attach.js +0 -12
- package/dist/integrity/attach.ts +0 -12
- package/dist/integrity/check-threads.js +1 -1
- package/dist/integrity/check-threads.ts +1 -1
- package/dist/integrity/constraint.d.ts +11 -2
- package/dist/integrity/constraint.js +163 -20
- package/dist/integrity/constraint.ts +174 -22
- package/dist/integrity/generators/compiler.js +1 -1
- package/dist/integrity/generators/compiler.ts +1 -1
- package/dist/integrity/generators/gate.js +8 -16
- package/dist/integrity/generators/gate.ts +8 -7
- package/dist/integrity/generators/publish.js +14 -26
- package/dist/integrity/generators/publish.ts +14 -17
- package/dist/integrity/generators/trial.d.ts +2 -2
- package/dist/integrity/generators/trial.js +108 -50
- package/dist/integrity/generators/trial.ts +107 -48
- package/dist/integrity/lint.js +3 -3
- package/dist/integrity/lint.ts +3 -3
- package/dist/integrity/lsp/diagnostics.js +1 -1
- package/dist/integrity/lsp/diagnostics.ts +1 -1
- package/dist/integrity/lsp/lint.js +1 -1
- package/dist/integrity/lsp/lint.ts +1 -1
- package/dist/integrity/slopnator.d.ts +1 -14
- package/dist/integrity/slopnator.js +8 -40
- package/dist/integrity/slopnator.ts +9 -51
- package/dist/integrity/slopnators/sl_broken_lineage.js +4 -2
- package/dist/integrity/slopnators/sl_broken_lineage.ts +4 -2
- package/dist/integrity/slopnators/sl_declared_elsewhere.js +24 -3
- package/dist/integrity/slopnators/sl_declared_elsewhere.ts +24 -3
- package/dist/integrity/slopnators/sl_derived_drift.js +10 -4
- package/dist/integrity/slopnators/sl_derived_drift.ts +10 -4
- package/dist/integrity/slopnators/sl_inert_island.js +7 -13
- package/dist/integrity/slopnators/sl_inert_island.ts +7 -16
- package/dist/integrity/slopnators/sl_inert_slopnator.js +8 -8
- package/dist/integrity/slopnators/sl_inert_slopnator.ts +8 -8
- package/dist/integrity/slopnators/sl_missing_row.js +14 -9
- package/dist/integrity/slopnators/sl_missing_row.ts +14 -10
- package/dist/integrity/slopnators/sl_no_child_process.js +8 -8
- package/dist/integrity/slopnators/sl_no_child_process.ts +8 -8
- package/dist/integrity/slopnators/sl_no_import_cycle.js +1 -1
- package/dist/integrity/slopnators/sl_no_import_cycle.ts +1 -1
- package/dist/integrity/slopnators/sl_no_such_command.js +20 -5
- package/dist/integrity/slopnators/sl_no_such_command.ts +22 -5
- package/dist/integrity/slopnators/sl_only_takes_a_literal.js +8 -8
- package/dist/integrity/slopnators/sl_only_takes_a_literal.ts +8 -8
- package/dist/integrity/slopnators/sl_stale_path.js +91 -18
- package/dist/integrity/slopnators/sl_stale_path.ts +97 -18
- package/dist/integrity/slopnators/sl_twice_meant.js +25 -2
- package/dist/integrity/slopnators/sl_twice_meant.ts +28 -2
- package/dist/integrity/slopnators/sl_twice_parented.js +26 -5
- package/dist/integrity/slopnators/sl_twice_parented.ts +26 -5
- package/dist/integrity/slopnators/sl_undeclared_node.js +18 -2
- package/dist/integrity/slopnators/sl_undeclared_node.ts +18 -2
- package/dist/integrity/slopnators/sl_undeclared_operation.js +3 -1
- package/dist/integrity/slopnators/sl_undeclared_operation.ts +3 -1
- package/dist/integrity/slopnators/sl_undeclared_variant.js +6 -2
- package/dist/integrity/slopnators/sl_undeclared_variant.ts +6 -2
- package/dist/integrity/slopnators/sl_ungoverned_island.js +3 -4
- package/dist/integrity/slopnators/sl_ungoverned_island.ts +3 -4
- package/dist/integrity/slopnators/sl_unkept_rows.js +1 -1
- package/dist/integrity/slopnators/sl_unkept_rows.ts +1 -1
- package/dist/integrity/slopnators/sl_unpaired_member.js +13 -8
- package/dist/integrity/slopnators/sl_unpaired_member.ts +16 -8
- package/dist/integrity/slopnators/sl_unpaired_slopnator.js +16 -3
- package/dist/integrity/slopnators/sl_unpaired_slopnator.ts +16 -3
- package/dist/integrity/slopnators/sl_unthreaded.d.ts +1 -0
- package/dist/integrity/slopnators/sl_unthreaded.js +18 -10
- package/dist/integrity/slopnators/sl_unthreaded.ts +19 -11
- package/dist/integrity/slopnators/sl_untranslated_key.js +1 -1
- package/dist/integrity/slopnators/sl_untranslated_key.ts +1 -1
- package/dist/integrity/slopnators/sl_unversioned.js +16 -2
- package/dist/integrity/slopnators/sl_unversioned.ts +16 -2
- package/dist/integrity/sweep.js +17 -3
- package/dist/integrity/sweep.ts +20 -3
- package/dist/knowledge/attach.js +0 -6
- package/dist/knowledge/attach.ts +0 -6
- package/dist/knowledge/generators/docsgen.js +12 -3
- package/dist/knowledge/generators/docsgen.ts +12 -2
- package/dist/knowledge/generators/glossary.js +1 -1
- package/dist/knowledge/generators/glossary.ts +1 -1
- package/dist/operations/attach.js +2 -26
- package/dist/operations/attach.ts +2 -27
- package/dist/operations/dispatch.js +2 -3
- package/dist/operations/dispatch.ts +2 -3
- package/dist/operations/generators/capability.js +4 -7
- package/dist/operations/generators/capability.ts +3 -6
- package/dist/operations/generators/compile.js +8 -13
- package/dist/operations/generators/compile.ts +8 -4
- package/dist/operations/generators/permits.js +4 -13
- package/dist/operations/generators/permits.ts +3 -3
- package/dist/operations/generators/seed.js +5 -2
- package/dist/operations/generators/seed.ts +6 -2
- package/dist/operations/generators/trial.js +10 -10
- package/dist/operations/generators/trial.ts +10 -10
- package/dist/operations/http.js +4 -1
- package/dist/operations/http.ts +6 -1
- package/package.json +2 -2
- package/dist/core/cli.d.ts +0 -2
- package/dist/core/cli.js +0 -1761
- package/dist/core/cli.ts +0 -2004
- package/dist/core/generators/meta.d.ts +0 -2
- package/dist/core/generators/meta.js +0 -829
- package/dist/core/generators/meta.ts +0 -1006
- package/dist/derivation/generators/derivation.d.ts +0 -3
- package/dist/derivation/generators/derivation.js +0 -273
- package/dist/derivation/generators/derivation.ts +0 -347
- package/dist/derivation/makers/release.d.ts +0 -1
- package/dist/derivation/makers/release.js +0 -107
- package/dist/derivation/makers/release.ts +0 -135
- package/dist/integrations/generators/secret.d.ts +0 -1
- package/dist/integrations/generators/secret.js +0 -233
- package/dist/integrations/generators/secret.ts +0 -289
- package/dist/integrations/generators/target.d.ts +0 -1
- package/dist/integrations/generators/target.js +0 -775
- package/dist/integrations/generators/target.ts +0 -944
- package/dist/integrity/generators/rule.d.ts +0 -2
- package/dist/integrity/generators/rule.js +0 -213
- package/dist/integrity/generators/rule.ts +0 -271
- package/dist/integrity/generators/seal.d.ts +0 -4
- package/dist/integrity/generators/seal.js +0 -101
- package/dist/integrity/generators/seal.ts +0 -117
- package/dist/integrity/sealed.d.ts +0 -1
- package/dist/integrity/sealed.js +0 -56
- package/dist/integrity/sealed.ts +0 -56
- package/dist/knowledge/generators/skills.d.ts +0 -1
- package/dist/knowledge/generators/skills.js +0 -222
- package/dist/knowledge/generators/skills.ts +0 -263
- package/dist/operations/generators/grant.d.ts +0 -1
- package/dist/operations/generators/grant.js +0 -267
- package/dist/operations/generators/grant.ts +0 -336
- package/dist/operations/generators/operation.d.ts +0 -1
- package/dist/operations/generators/operation.js +0 -811
- package/dist/operations/generators/operation.ts +0 -972
- package/dist/operations/makers/capability.d.ts +0 -1
- package/dist/operations/makers/capability.js +0 -117
- package/dist/operations/makers/capability.ts +0 -166
- package/dist/operations/makers/trial.d.ts +0 -1
- package/dist/operations/makers/trial.js +0 -413
- 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 = "
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 {
|
|
16
|
-
import {
|
|
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
|
-
|
|
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 = (
|
|
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
|
-
:
|
|
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 = '
|
|
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));
|