@intentset/cli 0.10.0 → 0.12.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 (55) hide show
  1. package/dist/agents.d.ts.map +1 -1
  2. package/dist/agents.js +43 -2
  3. package/dist/agents.js.map +1 -1
  4. package/dist/commands/context.d.ts.map +1 -1
  5. package/dist/commands/context.js +18 -3
  6. package/dist/commands/context.js.map +1 -1
  7. package/dist/commands/graph.js +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +10 -8
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/list.d.ts +49 -0
  12. package/dist/commands/list.d.ts.map +1 -0
  13. package/dist/commands/list.js +295 -0
  14. package/dist/commands/list.js.map +1 -0
  15. package/dist/commands/shared.d.ts +8 -0
  16. package/dist/commands/shared.d.ts.map +1 -1
  17. package/dist/commands/shared.js +15 -5
  18. package/dist/commands/shared.js.map +1 -1
  19. package/dist/glob.d.ts +4 -13
  20. package/dist/glob.d.ts.map +1 -1
  21. package/dist/glob.js +4 -57
  22. package/dist/glob.js.map +1 -1
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/main.d.ts +1 -1
  28. package/dist/main.d.ts.map +1 -1
  29. package/dist/main.js +78 -5
  30. package/dist/main.js.map +1 -1
  31. package/dist/session.d.ts +1 -2
  32. package/dist/session.d.ts.map +1 -1
  33. package/dist/session.js +2 -3
  34. package/dist/session.js.map +1 -1
  35. package/dist/slices.d.ts +3 -21
  36. package/dist/slices.d.ts.map +1 -1
  37. package/dist/slices.js +3 -45
  38. package/dist/slices.js.map +1 -1
  39. package/dist/subject.d.ts +2 -0
  40. package/dist/subject.d.ts.map +1 -1
  41. package/dist/subject.js +11 -1
  42. package/dist/subject.js.map +1 -1
  43. package/package.json +9 -9
  44. package/src/agents.ts +43 -2
  45. package/src/commands/context.ts +22 -2
  46. package/src/commands/graph.ts +1 -1
  47. package/src/commands/init.ts +10 -8
  48. package/src/commands/list.ts +346 -0
  49. package/src/commands/shared.ts +20 -0
  50. package/src/glob.ts +4 -56
  51. package/src/index.ts +2 -0
  52. package/src/main.ts +85 -6
  53. package/src/session.ts +2 -3
  54. package/src/slices.ts +3 -52
  55. package/src/subject.ts +13 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,6FAA6F;AAC7F,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlD,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C,8GAA8G;AAC9G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,cAAc,CASjB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,cAAsB,GAAG,MAAM,CA6K5F"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,6FAA6F;AAC7F,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlD,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C,8GAA8G;AAC9G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,cAAc,CASjB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,cAAsB,GAAG,MAAM,CAsN5F"}
package/dist/agents.js CHANGED
@@ -75,6 +75,10 @@ Update the records in the same change as the code.
75
75
  slice is a draft, the paths it plans may not exist yet.
76
76
  - A changed check: a verification record names the test that checks a claim. Change the test and its record
77
77
  together, and add one for a behavior or rule that has none.
78
+ - Whether the work is built: a capability, behavior, rule, scenario, slice or contract says so in \`delivery\`.
79
+ Write \`delivery: built\` on a record you wrote from code that exists, \`delivery: planned\` on one that proposes
80
+ work, and change \`planned\` to \`built\` in the change that builds it. It states a fact about the code, not an
81
+ approval, so you may set it; a draft that says \`built\` is still a draft until a person approves it.
78
82
 
79
83
  Write each link once, on the record that points: a behavior is \`governedBy\` its rules, a scenario \`illustrates\`
80
84
  a behavior, a slice \`implements\` behaviors, a verification \`verifies\` what it checks. Never write the reverse.
@@ -124,8 +128,10 @@ level-one heading repeats its title. Plain Markdown is valid Markset. For the re
124
128
  callouts, tables and other constructs a record may use and the codes \`validate\` reports for them, read Markset's
125
129
  guide at ${MARKSET_GUIDE_URL}, or print it with \`${markset}\`.
126
130
 
127
- An existing record of the same type in this repository is the best template; a new behavior looks like this, one
128
- recognizable promise including how it fails:
131
+ An existing record of the same type in this repository is the best template; in a repository with none yet,
132
+ \`${run} init --example --root <an empty directory>\` writes one record of each type there to read. A capability sits
133
+ under an outcome, an outcome under an intent, and an intent under the product, so the first capability brings those
134
+ three with it. A new behavior looks like this, one recognizable promise including how it fails:
129
135
 
130
136
  \`\`\`markdown
131
137
  ---
@@ -137,6 +143,7 @@ intentset:
137
143
  type: behavior
138
144
  title: The promise in a few words, such as Schedule a student assessment
139
145
  status: draft
146
+ delivery: planned
140
147
  owner: <an owner from the registry>
141
148
  visibility: internal
142
149
  audiences: [engineering, product]
@@ -163,6 +170,40 @@ What must be true first.
163
170
  Success: what happens. Failure: what is rejected, and what is left unchanged.
164
171
  \`\`\`
165
172
 
173
+ A verification record binds a check to what it verifies. An automated one names the test file and a selector the
174
+ test's title holds as whole words (a \`describe\`'s name binds all of its tests), which is how \`evidence import\`
175
+ matches a run to it:
176
+
177
+ \`\`\`markdown
178
+ ---
179
+ markset: 0
180
+ intentset:
181
+ spec: '0.2'
182
+ profile: intentset/verification/0.2
183
+ id: TEST-AREA-NAME
184
+ type: verification
185
+ title: What the check proves, such as Unit test of scheduling an assessment
186
+ status: draft
187
+ owner: <an owner from the registry>
188
+ visibility: internal
189
+ audiences: [engineering]
190
+ links:
191
+ verifies: [BEH-AREA-NAME, RULE-AREA-LIMIT]
192
+ verification:
193
+ method: automated
194
+ locator: src/area/name.test.ts
195
+ selector: the test's title, or the describe's name
196
+ ---
197
+
198
+ # What the check proves, such as Unit test of scheduling an assessment
199
+
200
+ ## Procedure
201
+ The runner and the file, and the cases it covers, the failure cases included.
202
+
203
+ ## Expected result
204
+ What a pass shows.
205
+ \`\`\`
206
+
166
207
  A knowledge record explains behaviors, rules or capabilities to one audience, in that audience's words rather than
167
208
  the behavior's. It may carry \`tips\`: one plain sentence per explained ID, at most 160 characters, which the
168
209
  product shows beside the control that delivers that behavior once the knowledge is reviewed and published.
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;IACrC,CAAC,WAAW,EAAE,8BAA8B,gBAAgB,iBAAiB,CAAC;CAC/E,CAAC;AAKF,8GAA8G;AAC9G,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACC,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAAE,OAAO,MAAM,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAkC,CAAC,cAAc,CAAC;QACvG,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,OAAO,GAAmB,KAAK;IAClF,MAAM,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACxG,MAAM,QAAQ,GACZ,OAAO,KAAK,MAAM;QAChB,CAAC,CAAC,wEAAwE;QAC1E,CAAC,CAAC,qDAAqD,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CACjC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAClG,CAAC;IACF,OAAO;;;iGAGwF,KAAK;;;;;iCAKrE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;IACtD,GAAG,uBAAuB,GAAG;;;;;;;EAO/B,GAAG;EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BH,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,GAAG;EACH,GAAG;EACH,GAAG;;;;;IAKD,QAAQ;;;;;;;WAOD,iBAAiB,wBAAwB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EzD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGpB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,CAAC,WAAW,EAAE,IAAI,gBAAgB,EAAE,CAAC;IACrC,CAAC,WAAW,EAAE,8BAA8B,gBAAgB,iBAAiB,CAAC;CAC/E,CAAC;AAKF,8GAA8G;AAC9G,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACC,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAAE,OAAO,MAAM,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAkC,CAAC,cAAc,CAAC;QACvG,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,OAAO,GAAmB,KAAK;IAClF,MAAM,GAAG,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACxG,MAAM,QAAQ,GACZ,OAAO,KAAK,MAAM;QAChB,CAAC,CAAC,wEAAwE;QAC1E,CAAC,CAAC,qDAAqD,CAAC;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CACjC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAClG,CAAC;IACF,OAAO;;;iGAGwF,KAAK;;;;;iCAKrE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;IACtD,GAAG,uBAAuB,GAAG;;;;;;;EAO/B,GAAG;EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BH,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,GAAG;EACH,GAAG;EACH,GAAG;;;;;IAKD,QAAQ;;;;;;;WAOD,iBAAiB,wBAAwB,OAAO;;;IAGvD,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8GL,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGpB,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AA0BA,OAAO,EAA2B,KAAK,EAAE,EAA4B,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAQ1E;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,OAAO,EAC1B,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,EAAE,GACL,MAAM,CAuFR"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AA4BA,OAAO,EAA2B,KAAK,EAAE,EAA4B,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAmB7C;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAQ1E;AAgBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,OAAO,EAC1B,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,EAAE,GACL,MAAM,CA0FR"}
@@ -15,10 +15,23 @@
15
15
  * and not the ID of what it promises.
16
16
  */
17
17
  import { isAbsolute, relative, resolve, sep } from "node:path";
18
- import { compareStrings, contextFor, } from "@intentset/core";
18
+ import { compareStrings, contextFor, ID_PATTERN, } from "@intentset/core";
19
19
  import { count, formatDiagnostic, json, snapshotLine, TOOL } from "../output.js";
20
20
  import { claimingSlices } from "../slices.js";
21
21
  import { unresolved, validationLine, validationSummary } from "./shared.js";
22
+ /** A file no slice claims has no context to load; VSA009 is the claims rule the architecture check reports it under. */
23
+ function unclaimed(path, session) {
24
+ const slices = [...session.result.graph.artifacts.values()].filter((a) => a.meta.type === "slice").length;
25
+ return {
26
+ code: "VSA009",
27
+ severity: "error",
28
+ origin: "architecture",
29
+ artifact: null,
30
+ path,
31
+ message: `No slice claims ${path}, so there is no context to load for it (${count(slices, "slice")} in this graph).`,
32
+ remediation: "Give the ID of the record whose context to load, or add the file to the claims of the slice that owns it (VSA §2).",
33
+ };
34
+ }
22
35
  /**
23
36
  * The artifact a `context` argument names: itself when it is an ID, else the
24
37
  * one slice whose claims include it as a file path, relative to the working
@@ -59,9 +72,11 @@ export function contextCommand(session, argument, includeRestricted, asJson, io)
59
72
  }
60
73
  const via = "id" in target ? target.path : null;
61
74
  const id = "id" in target ? target.id : argument;
62
- const bundle = contextFor(graph, id, { includeRestricted });
75
+ const bundle = "slices" in target && !ID_PATTERN.test(argument) ? null : contextFor(graph, id, { includeRestricted });
63
76
  if (bundle === null) {
64
- const diagnostic = unresolved(id, session);
77
+ // An argument that is not an ID was a file path, and no slice claims it: say that, rather than reading the
78
+ // path as a malformed ID, since the agent gave the file it is about to edit and wants to know what owns it.
79
+ const diagnostic = "slices" in target && !ID_PATTERN.test(argument) ? unclaimed(target.path, session) : unresolved(id, session);
65
80
  if (asJson) {
66
81
  io.stdout(json({
67
82
  tool: TOOL,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `intentset graph --format json` (spec/export.md, Core §12): the
3
- * `intentset/export/0.4` envelope over the validated repository, with the
3
+ * `intentset/export/0.5` envelope over the validated repository, with the
4
4
  * report sections `--report` asks for. Printed to stdout, or written to the
5
5
  * one file `--out` names, which may not be any file the repository reads.
6
6
  * A failing validation still exports, with `validation.status: "fail"`, and
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGvC,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAGpD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAOD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAarD;AAED,eAAO,MAAM,qBAAqB,QAatB,CAAC;AAEb;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASzD;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C/E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ7C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGvC,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAGpD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAOD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAarD;AAED,eAAO,MAAM,qBAAqB,QAetB,CAAC;AAEb;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASzD;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C/E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ7C"}
@@ -41,14 +41,16 @@ export const EMPTY_REGISTRIES_TEXT = [
41
41
  "# Intentset registries (Core §4, §6, §7; VSA §3): the owners, audiences, release dimensions,",
42
42
  "# evidence sources and shared resources records may name. An empty registry reads as not",
43
43
  "# declared, and validate warns (CORE005) when a record names a value it could not check.",
44
- "owners: []",
45
- "audiences: []",
46
- "releases: []",
47
- "roles: []",
48
- "editions: []",
49
- "flags: []",
50
- "evidenceSources: []",
51
- "resources: []",
44
+ "# Every record names an owner and audiences from these lists, and a behavior names at least",
45
+ "# one release, one role and one edition, so fill each of those before the first record.",
46
+ "owners: [] # who owns records, a team or a person, such as team-shop",
47
+ "audiences: [] # who records are written for, such as engineering and product",
48
+ "releases: [] # labels of the releases behaviors are available in, such as v1",
49
+ "roles: [] # roles of the product's users, such as shopper; a product with none still names one",
50
+ "editions: [] # editions the product ships in, such as standard; likewise",
51
+ "flags: [] # feature flags a behavior may require; usually none",
52
+ "evidenceSources: [] # where a measure's reading comes from, such as product-analytics",
53
+ "resources: [] # resources slices share, such as a data layer, each with its owner and consumers",
52
54
  "",
53
55
  ].join("\n");
54
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type CountField, type Selector } from "@intentset/core";
2
+ import { type Io } from "../output.ts";
3
+ import type { Session } from "../session.ts";
4
+ export declare const LIST_FORMATS: readonly ["table", "json", "ids"];
5
+ export type ListFormat = (typeof LIST_FORMATS)[number];
6
+ /** Every option that adds to the selector, `--has` included. */
7
+ export declare const SELECTOR_OPTIONS: string[];
8
+ export interface ListOptions {
9
+ /** The selector options as given, in order, each repetition kept. */
10
+ given: Array<{
11
+ name: string;
12
+ value: string;
13
+ }>;
14
+ where?: string;
15
+ from?: string;
16
+ countBy?: string;
17
+ format?: string;
18
+ json: boolean;
19
+ check: boolean;
20
+ includeRestricted: boolean;
21
+ }
22
+ /**
23
+ * The checks that need no repository, so a typo costs nothing: the format, the count field, and the selector,
24
+ * compiled from the options or read from --where. Returns the selector and format, or a message.
25
+ */
26
+ export declare function listUsageProblem(options: ListOptions, io: Io): {
27
+ problem: string;
28
+ } | {
29
+ selector: Selector;
30
+ format: ListFormat;
31
+ countBy: CountField | null;
32
+ };
33
+ /** The list from the repository's tree, over the session's validation. */
34
+ export declare function listCommand(session: Session, checked: {
35
+ selector: Selector;
36
+ format: ListFormat;
37
+ countBy: CountField | null;
38
+ }, options: ListOptions, io: Io): number;
39
+ /** The list from an export, read as a consumer reads one (spec/export.md §5), with no repository I/O. */
40
+ export declare function listFromExportCommand(checked: {
41
+ selector: Selector;
42
+ format: ListFormat;
43
+ countBy: CountField | null;
44
+ }, options: ListOptions & {
45
+ from: string;
46
+ }, io: Io): number;
47
+ /** The normalized selector in a line: fields joined with "and", values with "or". */
48
+ export declare function describeSelector(selector: Selector): string;
49
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,UAAU,EAMf,KAAK,QAAQ,EAGd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAS,KAAK,EAAE,EAAsB,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,YAAY,YAAI,OAAO,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AA2BvD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,UAA+E,CAAC;AAE7G,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,EAAE,GACL;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,CA0C9F;AAuDD,0EAA0E;AAC1E,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,EAC/E,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,EAAE,GACL,MAAM,CAuBR;AAED,yGAAyG;AACzG,wBAAgB,qBAAqB,CACnC,OAAO,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,EAC/E,OAAO,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACvC,EAAE,EAAE,EAAE,GACL,MAAM,CAsBR;AAoFD,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA4B3D"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * `intentset list` (spec/list.md, ADR 0016): the records that match a selector, from the repository's tree or from
3
+ * an export, as a table, as the `intentset/list/0.1` result, or as IDs. The options compile to the selector `select`
4
+ * in core reads, or `--where` gives it whole. Never writes. Exit 0 whenever it answered, a failed validation included
5
+ * (the result says so); 1 with --check when a record matched or is undetermined; 2 for an invocation error.
6
+ */
7
+ import { readFileSync } from "node:fs";
8
+ import { resolve } from "node:path";
9
+ import { COUNT_FIELDS, exportListMeta, listOutput, readExport, readSelector, select, } from "@intentset/core";
10
+ import { count, json, snapshotLine } from "../output.js";
11
+ import { validationSummary } from "./shared.js";
12
+ export const LIST_FORMATS = ["table", "json", "ids"];
13
+ /** Each field option and the selector field it fills. */
14
+ const FIELD_OPTIONS = {
15
+ id: "ids",
16
+ type: "types",
17
+ status: "statuses",
18
+ delivery: "deliveries",
19
+ owner: "owners",
20
+ audience: "audiences",
21
+ visibility: "visibilities",
22
+ under: "under",
23
+ "has-extension": "hasExtension",
24
+ describing: "describing",
25
+ claims: "claims",
26
+ };
27
+ /** Each availability option and the dimension it fills. */
28
+ const AVAILABILITY_OPTIONS = {
29
+ product: "products",
30
+ release: "releases",
31
+ "not-release": "notReleases",
32
+ role: "roles",
33
+ edition: "editions",
34
+ flag: "flags",
35
+ };
36
+ /** Every option that adds to the selector, `--has` included. */
37
+ export const SELECTOR_OPTIONS = [...Object.keys(FIELD_OPTIONS), ...Object.keys(AVAILABILITY_OPTIONS), "has"];
38
+ const HAS_SHAPE = "write it as [some:|none:|all:]<out|in>:<kind>[=<status>,...], such as out:governedBy=draft or none:in:verifies";
39
+ /**
40
+ * The checks that need no repository, so a typo costs nothing: the format, the count field, and the selector,
41
+ * compiled from the options or read from --where. Returns the selector and format, or a message.
42
+ */
43
+ export function listUsageProblem(options, io) {
44
+ const format = options.format ?? (options.json ? "json" : "table");
45
+ if (!LIST_FORMATS.includes(format)) {
46
+ return { problem: `--format ${format}: the formats are ${LIST_FORMATS.join(", ")}` };
47
+ }
48
+ if (options.json && format !== "json") {
49
+ return { problem: `--json is --format json; it does not combine with --format ${format}` };
50
+ }
51
+ if (options.countBy !== undefined && !COUNT_FIELDS.includes(options.countBy)) {
52
+ return { problem: `--count-by ${options.countBy}: the fields are ${COUNT_FIELDS.join(", ")}` };
53
+ }
54
+ if (options.from !== undefined && options.includeRestricted) {
55
+ return { problem: "--include-restricted reads the tree; an export withheld what it withheld when it was written" };
56
+ }
57
+ let value;
58
+ let where;
59
+ if (options.where !== undefined) {
60
+ if (options.given.length > 0) {
61
+ const first = options.given[0].name;
62
+ return { problem: `--where gives the whole selector; it does not combine with --${first}` };
63
+ }
64
+ const file = options.where;
65
+ try {
66
+ value = JSON.parse(readFileSync(resolve(io.cwd, file), "utf8"));
67
+ }
68
+ catch (error) {
69
+ return { problem: `--where ${file}: ${error.message}` };
70
+ }
71
+ where = (p) => `--where ${file}: ${p.pointer === "" ? "the selector" : p.pointer}: ${p.message}`;
72
+ }
73
+ else {
74
+ const compiled = compile(options.given);
75
+ if ("problem" in compiled)
76
+ return compiled;
77
+ value = compiled.selector;
78
+ where = (p) => `${optionFor(p.pointer)}: ${p.message}`;
79
+ }
80
+ const read = readSelector(value);
81
+ if (!read.ok)
82
+ return { problem: read.problems.map(where).join("\n ") };
83
+ return {
84
+ selector: read.selector,
85
+ format: format,
86
+ countBy: (options.countBy ?? null),
87
+ };
88
+ }
89
+ /** The options as a selector: a value may be a comma-separated list (one path for --claims), and repeats add values. */
90
+ function compile(given) {
91
+ const selector = {};
92
+ const availability = {};
93
+ const links = [];
94
+ const add = (target, key, values) => {
95
+ target[key] = [...(target[key] ?? []), ...values];
96
+ };
97
+ for (const { name, value } of given) {
98
+ const values = name === "claims" ? [value] : value.split(",").map((part) => part.trim());
99
+ if (name === "has") {
100
+ const link = parseHas(value);
101
+ if (link === null)
102
+ return { problem: `--has ${value}: ${HAS_SHAPE}` };
103
+ links.push(link);
104
+ }
105
+ else if (Object.hasOwn(AVAILABILITY_OPTIONS, name)) {
106
+ add(availability, AVAILABILITY_OPTIONS[name], values);
107
+ }
108
+ else {
109
+ add(selector, FIELD_OPTIONS[name], values);
110
+ }
111
+ }
112
+ if (Object.keys(availability).length > 0)
113
+ selector.availability = availability;
114
+ if (links.length > 0)
115
+ selector.links = links;
116
+ return { selector };
117
+ }
118
+ /** `[quantifier:]direction:kind[=status,...]`; the parts are checked by readSelector, the shape here. */
119
+ function parseHas(value) {
120
+ const equals = value.indexOf("=");
121
+ const head = equals === -1 ? value : value.slice(0, equals);
122
+ const parts = head.split(":");
123
+ if (parts.length < 2 || parts.length > 3 || parts.some((part) => part === ""))
124
+ return null;
125
+ const [quantifier, direction, kind] = parts.length === 3 ? parts : ["some", ...parts];
126
+ const link = { direction, kind, quantifier };
127
+ if (equals !== -1)
128
+ link.match = {
129
+ statuses: value
130
+ .slice(equals + 1)
131
+ .split(",")
132
+ .map((part) => part.trim()),
133
+ };
134
+ return link;
135
+ }
136
+ /** The option a compiled selector's pointer came from, for a message in the command line's words. */
137
+ function optionFor(pointer) {
138
+ const [, field, second] = pointer.split("/");
139
+ if (field === "links")
140
+ return "--has";
141
+ if (field === "availability") {
142
+ return `--${Object.keys(AVAILABILITY_OPTIONS).find((name) => AVAILABILITY_OPTIONS[name] === second) ?? "availability"}`;
143
+ }
144
+ return `--${Object.keys(FIELD_OPTIONS).find((name) => FIELD_OPTIONS[name] === field) ?? field}`;
145
+ }
146
+ /** The list from the repository's tree, over the session's validation. */
147
+ export function listCommand(session, checked, options, io) {
148
+ const { repo, result, snapshot } = session;
149
+ const selection = select(result.graph, checked.selector, {
150
+ includeRestricted: options.includeRestricted,
151
+ registries: repo.registries,
152
+ });
153
+ const v = validationSummary(session, session.level);
154
+ const output = listOutput(selection, {
155
+ source: "tree",
156
+ snapshot: {
157
+ repository: repo.config.repository,
158
+ commit: snapshot.commit,
159
+ ...(snapshot.commitUnavailable === undefined ? {} : { commitUnavailable: snapshot.commitUnavailable }),
160
+ uncommitted: snapshot.uncommitted === true,
161
+ graphHash: snapshot.graphHash,
162
+ },
163
+ validation: { level: session.level, status: v.status, errors: v.errors, warnings: v.warnings },
164
+ }, checked.countBy);
165
+ return print(output, checked.format, options, io, "the repository's tree");
166
+ }
167
+ /** The list from an export, read as a consumer reads one (spec/export.md §5), with no repository I/O. */
168
+ export function listFromExportCommand(checked, options, io) {
169
+ let bytes;
170
+ try {
171
+ bytes = readFileSync(resolve(io.cwd, options.from));
172
+ }
173
+ catch (error) {
174
+ io.stderr(`intentset list: --from ${options.from}: ${error.message}\n`);
175
+ return 2;
176
+ }
177
+ // The file is one the caller named, so its size is not a reason to refuse it.
178
+ const read = readExport(bytes, { maxBytes: Math.max(bytes.length, 1) });
179
+ if (!read.ok) {
180
+ const problems = read.problems.slice(0, 5).map((p) => ` ${p.pointer || "/"} ${p.message}`);
181
+ io.stderr(`intentset list: --from ${options.from} is not an export this reader accepts (${read.category}):\n`);
182
+ io.stderr(`${problems.join("\n")}\n`);
183
+ return 2;
184
+ }
185
+ const output = listOutput(select(read.envelope, checked.selector), { source: "export", ...exportListMeta(read.envelope) }, checked.countBy);
186
+ return print(output, checked.format, options, io, `the export ${options.from}`);
187
+ }
188
+ function print(output, format, options, io, source) {
189
+ if (format === "json")
190
+ io.stdout(json(output));
191
+ else if (format === "ids") {
192
+ io.stdout(output.rows.map((row) => `${row.id}\n`).join(""));
193
+ for (const line of cautions(output))
194
+ io.stderr(`intentset list: ${line}\n`);
195
+ }
196
+ else
197
+ io.stdout(renderTable(output, source));
198
+ const flagged = output.counts.matched + output.counts.undetermined;
199
+ return options.check && flagged > 0 ? 1 : 0;
200
+ }
201
+ /** What a reader of bare IDs should know, said on stderr so it never lands in a captured list. */
202
+ function cautions(output) {
203
+ const lines = [];
204
+ const { counts, validation } = output;
205
+ if (counts.undetermined > 0) {
206
+ lines.push(`${count(counts.undetermined, "record")} undetermined, because the answer depends on a link to a withheld artifact: ${output.undetermined.join(", ")}`);
207
+ }
208
+ if (validation.status === "fail") {
209
+ lines.push(`validation failed at ${validation.level} with ${count(validation.errors, "error")}, so the graph may be incomplete; run \`intentset validate\`.`);
210
+ }
211
+ return [...lines, ...output.notes];
212
+ }
213
+ function renderTable(output, source) {
214
+ const { counts, validation, snapshot } = output;
215
+ const lines = [
216
+ snapshotLine({
217
+ commit: snapshot.commit,
218
+ ...(snapshot.commitUnavailable === undefined ? {} : { commitUnavailable: snapshot.commitUnavailable }),
219
+ uncommitted: snapshot.uncommitted,
220
+ graphHash: snapshot.graphHash,
221
+ }),
222
+ `Source: ${source}${snapshot.generatedAt === undefined ? "" : `, generated ${snapshot.generatedAt}`}`,
223
+ `Validation: ${validation.status} at ${validation.level}, ${count(validation.errors, "error")}, ${count(validation.warnings, "warning")}` +
224
+ (validation.status === "fail" ? ". The graph may be incomplete; run `intentset validate`." : ""),
225
+ `Selector: ${describeSelector(output.selector)}`,
226
+ `Considered ${counts.considered} (${counts.withheld} withheld), matched ${counts.matched}, undetermined ${counts.undetermined}`,
227
+ "",
228
+ ];
229
+ if (output.countBy !== null) {
230
+ const groups = output.countBy.groups.map((group) => [group.value ?? "(none)", String(group.count)]);
231
+ lines.push(...columns([[output.countBy.field, "count"], ...groups], [false, true]));
232
+ if (output.countBy.multiValued) {
233
+ lines.push("", `A record counts once under each ${output.countBy.field} it names, so the counts can sum to more than ${counts.matched}.`);
234
+ }
235
+ }
236
+ else if (output.rows.length === 0) {
237
+ lines.push("No record matches.");
238
+ }
239
+ else {
240
+ const rows = output.rows.map((row) => [row.id, row.type, row.status, row.owner, row.title]);
241
+ lines.push(...columns([["ID", "type", "status", "owner", "title"], ...rows], []));
242
+ }
243
+ if (output.undetermined.length > 0) {
244
+ lines.push("", `Undetermined, because the answer depends on a link to a withheld artifact (${output.undetermined.length}):`, ...output.undetermined.map((id) => ` ${id}`));
245
+ }
246
+ if (output.notes.length > 0)
247
+ lines.push("", ...output.notes.map((note) => `Note: ${note}`));
248
+ return `${lines.join("\n")}\n`;
249
+ }
250
+ /** Columns padded to their widest cell, the last left ragged; `right` aligns a column to the right. */
251
+ function columns(table, right) {
252
+ const widths = table[0].map((_, i) => Math.max(...table.map((row) => row[i].length)));
253
+ return table.map((row) => row
254
+ .map((cell, i) => {
255
+ if (i === row.length - 1 && !right[i])
256
+ return cell;
257
+ return right[i] ? cell.padStart(widths[i]) : cell.padEnd(widths[i]);
258
+ })
259
+ .join(" "));
260
+ }
261
+ /** The normalized selector in a line: fields joined with "and", values with "or". */
262
+ export function describeSelector(selector) {
263
+ const parts = [];
264
+ const values = (list) => list.join(" or ");
265
+ for (const [field, label] of [
266
+ ["ids", "id"],
267
+ ["types", "type"],
268
+ ["statuses", "status"],
269
+ ["deliveries", "delivery"],
270
+ ["owners", "owner"],
271
+ ["audiences", "audience"],
272
+ ["visibilities", "visibility"],
273
+ ["under", "under"],
274
+ ["hasExtension", "extension"],
275
+ ]) {
276
+ const list = selector[field];
277
+ if (list !== undefined)
278
+ parts.push(`${label} ${values(list)}`);
279
+ }
280
+ for (const [name, dimension] of Object.entries(AVAILABILITY_OPTIONS)) {
281
+ const list = selector.availability?.[dimension];
282
+ if (list !== undefined)
283
+ parts.push(`${name.replace("-", " ")} ${values(list)}`);
284
+ }
285
+ for (const link of selector.links ?? []) {
286
+ const match = link.match === undefined ? "" : ` matching ${describeSelector(link.match)}`;
287
+ parts.push(`${link.quantifier} ${link.direction} ${link.kind}${match}`);
288
+ }
289
+ if (selector.describing !== undefined)
290
+ parts.push(`describing ${values(selector.describing)}`);
291
+ if (selector.claims !== undefined)
292
+ parts.push(`claiming ${values(selector.claims)}`);
293
+ return parts.length === 0 ? "every record" : parts.join(", and ");
294
+ }
295
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}