@plurnk/plurnk-meta 2.0.2 → 2.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/SPEC.md CHANGED
@@ -103,7 +103,8 @@ composition ({§module-lifecycle}).
103
103
  supplied assembled environment: `text`, `list`, `flag` (exactly `0` or `1`), `choice` (one of a
104
104
  vocabulary), `percent` (`80%` is 0.8) and `integer(name, floor)` (a safe
105
105
  integer of at least the floor, which bounds what the operator may say and is
106
- never a value used in the operator's place). An unset key is a broken floor
106
+ never a value used in the operator's place). `family(prefix)` reads every `<prefix><alias>`
107
+ key with a non-empty value, in alias order; an empty value is a member turned off. An unset key is a broken floor
107
108
  and remains an internal error. Invalid operator values raise a
108
109
  `ConfigurationError` naming the key; the owning capability contains that
109
110
  diagnostic without inventing a value ({§configuration-repair-path}).
package/dist/Knob.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  type Environment = Readonly<Record<string, string | undefined>>;
2
2
  export default class Knob {
3
3
  static text(name: string, environment?: Environment): string;
4
+ static family(prefix: string, environment?: Environment): Array<{
5
+ readonly alias: string;
6
+ readonly value: string;
7
+ }>;
4
8
  static list(name: string, environment?: Environment): string[];
5
9
  static flag(name: string, environment?: Environment): boolean;
6
10
  static choice<T extends string>(name: string, options: readonly T[], environment?: Environment): T;
@@ -1 +1 @@
1
- {"version":3,"file":"Knob.d.ts","sourceRoot":"","sources":["../src/Knob.ts"],"names":[],"mappings":"AAMA,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAIxE;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,EAAE,CAE1E;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,OAAO,CAIzE;IAGD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,GAAE,WAAyB,GAAG,CAAC,CAM9G;IAGD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAO3E;IAKD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,GAAG,IAAI,CAIzG;IAGD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAO1F;CACJ"}
1
+ {"version":3,"file":"Knob.d.ts","sourceRoot":"","sources":["../src/Knob.ts"],"names":[],"mappings":"AAMA,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAIxE;IAID,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,KAAK,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAM/H;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,EAAE,CAE1E;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,OAAO,CAIzE;IAGD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,GAAE,WAAyB,GAAG,CAAC,CAM9G;IAGD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAO3E;IAKD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,GAAG,IAAI,CAIzG;IAGD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,WAAyB,GAAG,MAAM,CAO1F;CACJ"}
package/dist/Knob.js CHANGED
@@ -11,6 +11,15 @@ export default class Knob {
11
11
  throw new Error(`${name} is missing from the assembled environment floor.`);
12
12
  return raw;
13
13
  }
14
+ // A family of keys sharing one prefix, `<prefix><alias>`: every non-empty member in alias order. An empty
15
+ // value is a member the operator turned off; a family with no members is the empty list.
16
+ static family(prefix, environment = process.env) {
17
+ return Object.keys(environment)
18
+ .filter((key) => key.startsWith(prefix) && key.length > prefix.length)
19
+ .toSorted()
20
+ .map((key) => ({ alias: key.slice(prefix.length), value: (environment[key] ?? "").trim() }))
21
+ .filter(({ value }) => value.length > 0);
22
+ }
14
23
  // A comma list; empty is the empty list.
15
24
  static list(name, environment = process.env) {
16
25
  return Knob.text(name, environment).split(",").map((item) => item.trim()).filter((item) => item.length > 0);
package/dist/Knob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Knob.js","sourceRoot":"","sources":["../src/Knob.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,oGAAoG;AACpG,8FAA8F;AAC9F,4FAA4F;AAC5F,sGAAsG;AACtG,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mDAAmD,CAAC,CAAC;QACnG,OAAO,GAAG,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,oCAAoC;IACpC,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG;YAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1H,OAAO,GAAG,KAAK,GAAG,CAAC;IACvB,CAAC;IAED,uFAAuF;IACvF,MAAM,CAAC,MAAM,CAAmB,IAAY,EAAE,OAAqB,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QACvG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,CAAE,OAA6B,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpH,CAAC;QACD,OAAO,GAAQ,CAAC;IACpB,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,0CAA0C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC;QACD,OAAO,OAAO,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,gHAAgH;IAChH,wGAAwG;IACxG,qDAAqD;IACrD,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAa,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QACtF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,+FAA+F;IAC/F,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,WAAW,GAAgB,OAAO,CAAC,GAAG;QAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;YAC3E,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAI,uCAAuC,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3H,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"Knob.js","sourceRoot":"","sources":["../src/Knob.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ delivery and wake behavior.
42
42
  Ordinary operations keep the loop working while children run; WAIT joins their
43
43
  activity. With live work (a child or an open stream) the loop parks and wakes
44
44
  when that work settles, when a message arrives, or when the wait duration expires;
45
- without live work it continues at once. `WAIT <600>` waits at most ten minutes;
45
+ without live work it does not park. `WAIT [600]` waits at most ten minutes;
46
46
  bare WAIT uses the configured default. Expiry resumes inspection without
47
47
  cancelling work. Zero continues immediately. Invalid durations are ignored with
48
48
  a warning. Several WAITs are one park with the earliest bound. An optional
@@ -53,10 +53,11 @@ path is a label, not a selected wake source.
53
53
 
54
54
  A wake ends the suspension, not its held work; a further WAIT waits again.
55
55
  Waking retains the loop's messages, turn allowance, and remaining execution
56
- time; parked time does not consume execution time. A turn containing only a
57
- parameterless KILL requests completion: its body answers the Open Messages, or
58
- is empty when an already-delivered answer stands. While live work remains, that
59
- KILL joins it without cancelling it and delivers no final answer.
56
+ time; parked time does not consume execution time. Once all Open Messages have
57
+ completion replies, the loop settles after results are observed and held work
58
+ finishes. Replies are delivered immediately. NOTE and successful curation do
59
+ not require another observation turn; other results may warrant more work or a
60
+ corrected reply. No additional operation is needed just to conclude.
60
61
 
61
62
  Each child task's conclusion wakes its waiting parent and arrives once, as an
62
63
  `_plurnk` READ of `ops://exampleWorkerName/1` carrying what the child said: the
@@ -76,19 +77,27 @@ start new work.
76
77
 
77
78
  ## Messages
78
79
 
79
- Open Messages names unanswered messages; an arrival receipt's `resource` links
80
- to the same source. SEND to that address answers that message. A targetless
81
- SEND answers your observed Open Messages, or your loop's original message when
82
- none remain open; a concluding parameterless KILL uses the same reply routing
83
- for its body. An empty targetless SEND delivers nothing. SEND to a worker
80
+ Open Messages names unresolved requests; an arrival receipt's `resource` links
81
+ to the same source. SEND to that address replies to that message. Without a path,
82
+ SEND selects the oldest Open Message; progress leaves it open, completion advances
83
+ to the next. With none open, name a recipient explicitly, including for corrections.
84
+ `[200]` marks a completed request; `[499]` marks a cancelled
85
+ request, without cancelling its worker or running work. A SEND without either
86
+ code is progress, leaving the request open. An empty completion still resolves
87
+ its message while retaining earlier speech. SEND to a worker
84
88
  control address gives it new work instead. Curation of a message's log
85
89
  occurrences never deletes the source or changes whether it was answered.
86
90
  Another worker may answer it; the assigned worker and original sender receive
87
91
  that reply without a new request.
88
92
 
93
+ ```SEND (message://exampleWorkerName/ab3d5678) [200]
94
+ The completed answer to this request goes here.
95
+ ```
96
+
89
97
  SEND accepts `[{"attachments":["report.pdf","worker:///example.md"]}]`:
90
98
  send-time copies delivered through ordinary resource links, not native media
91
99
  injection; the recipient READs what it needs, and a missing source fails before
92
- delivery. The same option works on a targetless reply. A SEND takes no scope;
100
+ delivery. The same option works on a targetless reply and composes with completion as
101
+ `[200,{"attachments":["report.pdf"]}]`. A SEND takes no scope;
93
102
  delivery later or on a cadence is the `schedule` family's, arriving as an
94
103
  ordinary message from `schedule://<alias>`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-meta",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "Extension discovery and trust primitives shared by every plurnk kind, and the teaching material the plurnk service gives models: policy, Recap, the plurnk skill and scheme references.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -68,5 +68,5 @@
68
68
  "url": "git+https://github.com/plurnk/plurnk-service.git",
69
69
  "directory": "plurnk-meta"
70
70
  },
71
- "gitHead": "9a63339d5a4db00f767a55407e0117190fa55f39"
71
+ "gitHead": "70dd06512f02f66f94a1dae7702085f4980f1686"
72
72
  }