@intentset/cli 0.6.1 → 0.7.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/README.md +35 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +18 -10
- package/dist/agents.js.map +1 -1
- package/dist/commands/evidence-stale.d.ts +19 -0
- package/dist/commands/evidence-stale.d.ts.map +1 -0
- package/dist/commands/evidence-stale.js +118 -0
- package/dist/commands/evidence-stale.js.map +1 -0
- package/dist/commands/evidence.d.ts +7 -0
- package/dist/commands/evidence.d.ts.map +1 -1
- package/dist/commands/evidence.js +19 -2
- package/dist/commands/evidence.js.map +1 -1
- package/dist/commands/graph.js +1 -1
- package/dist/commands/guide.d.ts +5 -0
- package/dist/commands/guide.d.ts.map +1 -0
- package/dist/commands/guide.js +16 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +11 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +23 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +125 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/git.d.ts +13 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +26 -0
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +146 -44
- package/dist/main.js.map +1 -1
- package/dist/reports.d.ts.map +1 -1
- package/dist/reports.js +26 -3
- package/dist/reports.js.map +1 -1
- package/dist/session.d.ts +8 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +18 -1
- package/dist/session.js.map +1 -1
- package/dist/subject.d.ts +16 -0
- package/dist/subject.d.ts.map +1 -0
- package/dist/subject.js +44 -0
- package/dist/subject.js.map +1 -0
- package/package.json +18 -10
- package/src/agents.ts +18 -10
- package/src/commands/evidence-stale.ts +151 -0
- package/src/commands/evidence.ts +30 -3
- package/src/commands/graph.ts +1 -1
- package/src/commands/guide.ts +17 -0
- package/src/commands/init.ts +12 -3
- package/src/commands/migrate.ts +136 -0
- package/src/git.ts +25 -0
- package/src/index.ts +3 -1
- package/src/main.ts +150 -44
- package/src/reports.ts +27 -3
- package/src/session.ts +26 -1
- package/src/subject.ts +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# @intentset/cli
|
|
2
|
+
|
|
3
|
+
The `intentset` command: `init`, `validate` (levels L1 to L4), `graph` (the export), `migrate` (records to the next specification version), `impact`, `context`,
|
|
4
|
+
`architecture check`, `evidence import`, `evidence stale` (what needs a run), `review`, `publish`, `serve` (the Atlas), `mcp` and `guide`. Exit codes are 0
|
|
5
|
+
no errors, 1 validation errors, 2 invocation or tool failure.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm install --save-dev @intentset/cli
|
|
11
|
+
pnpm add --save-dev @intentset/cli
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npx intentset init --repository you/repo --example
|
|
18
|
+
npx intentset validate
|
|
19
|
+
npx intentset impact BEH-ASMT-SCHEDULE
|
|
20
|
+
npx intentset guide # the agent guide for this repository, printed
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
With pnpm, `pnpm exec intentset` wherever `npx intentset` appears. `init` writes `.intentset/agents.md`, the guide
|
|
24
|
+
coding agents follow to keep the model current; point them at it from CLAUDE.md or AGENTS.md. The records are Markset
|
|
25
|
+
documents, and Markset's guide to its syntax is https://markset.org/guide.md.
|
|
26
|
+
|
|
27
|
+
## Learn more
|
|
28
|
+
|
|
29
|
+
Part of [Intentset](https://intentset.org/), which keeps product intent connected to the code that delivers it and the
|
|
30
|
+
checks that verify it, as readable Markdown files in a repository. The specifications are at
|
|
31
|
+
https://intentset.org/specifications/ and the source at https://github.com/intentset/intentset.
|
|
32
|
+
|
|
33
|
+
## Licence
|
|
34
|
+
|
|
35
|
+
MIT
|
package/dist/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/agents.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* the trailer can never disagree with the toolchain that wrote it.
|
|
10
10
|
*/
|
|
11
11
|
import { ARTIFACT_TYPES, REQUIRED_SECTIONS } from "@intentset/core";
|
|
12
|
+
import { MARKSET_GUIDE_URL } from "@intentset/markset-adapter";
|
|
12
13
|
import { UNCHANGED_TRAILER } from "./git.js";
|
|
13
14
|
import { TOOL } from "./output.js";
|
|
14
15
|
export const AGENT_GUIDE_PATH = ".intentset/agents.md";
|
|
@@ -33,6 +34,7 @@ export function detectPackageManager(files) {
|
|
|
33
34
|
}
|
|
34
35
|
export function agentGuide(scope, manager = "npm") {
|
|
35
36
|
const run = manager === "pnpm" ? "pnpm exec intentset" : "npx intentset";
|
|
37
|
+
const markset = manager === "pnpm" ? "pnpm dlx @markset-lang/cli guide" : "npx @markset-lang/cli guide";
|
|
36
38
|
const isolated = manager === "pnpm"
|
|
37
39
|
? "pnpm dlx --package=@intentset/cli --package=typescript@7 intentset ..."
|
|
38
40
|
: "npx -p @intentset/cli -p typescript@7 intentset ...";
|
|
@@ -47,7 +49,7 @@ promises, which code delivers it and how it is checked. You keep them true as pa
|
|
|
47
49
|
code, so that people can review what the product does without reading every line of what changed.
|
|
48
50
|
|
|
49
51
|
Written by \`intentset init\` (${TOOL.name} ${TOOL.version}). To refresh it, delete it and run
|
|
50
|
-
\`${run} init --agents
|
|
52
|
+
\`${run} init --agents\`; \`${run} guide\` prints it without writing a file.
|
|
51
53
|
|
|
52
54
|
## Before you change code
|
|
53
55
|
|
|
@@ -86,7 +88,9 @@ ${UNCHANGED_TRAILER}: SLICE-...
|
|
|
86
88
|
\`\`\`
|
|
87
89
|
|
|
88
90
|
\`intentset review\` lists every slice whose code changed while its records did not, and this trailer is how a
|
|
89
|
-
commit answers it. Use it only when no behavior changed: a reviewer reads it as your claim.
|
|
91
|
+
commit answers it. Use it only when no behavior changed: a reviewer reads it as your claim. Git reads trailers only
|
|
92
|
+
from a message's last paragraph, so put it there, beside any other trailer such as \`Co-Authored-By\`; in a paragraph
|
|
93
|
+
of its own above them, it is not read.
|
|
90
94
|
|
|
91
95
|
## Never
|
|
92
96
|
|
|
@@ -98,7 +102,7 @@ commit answers it. Use it only when no behavior changed: a reviewer reads it as
|
|
|
98
102
|
\`.intentset/registries.yaml\`. Ask instead.
|
|
99
103
|
- Treat a passing check as the outcome achieved. Verification says the behavior was built as described; a measure
|
|
100
104
|
says whether building it produced the outcome, and only evidence read in its window answers that.
|
|
101
|
-
- Commit run evidence (\`.intentset/evidence/\`) or an export. They describe one
|
|
105
|
+
- Commit run evidence (\`.intentset/evidence/\`) or an export. They describe one run and go stale as the code it checks changes.
|
|
102
106
|
- Edit generated output: an export, the Atlas, published pages.
|
|
103
107
|
|
|
104
108
|
## Before you finish
|
|
@@ -115,19 +119,23 @@ or with the trailer. The architecture check needs TypeScript 7; on an earlier Ty
|
|
|
115
119
|
|
|
116
120
|
## Record format
|
|
117
121
|
|
|
118
|
-
A record is Markdown with YAML frontmatter under \`intentset
|
|
119
|
-
|
|
122
|
+
A record is a Markset document: Markdown with YAML frontmatter under \`intentset:\` beside \`markset: 0\`, and its
|
|
123
|
+
level-one heading repeats its title. Plain Markdown is valid Markset. For the rest of Markset's syntax, the cards,
|
|
124
|
+
callouts, tables and other constructs a record may use and the codes \`validate\` reports for them, read Markset's
|
|
125
|
+
guide at ${MARKSET_GUIDE_URL}, or print it with \`${markset}\`.
|
|
126
|
+
|
|
127
|
+
An existing record of the same type in this repository is the best template; a new behavior looks like this, one
|
|
120
128
|
recognizable promise including how it fails:
|
|
121
129
|
|
|
122
130
|
\`\`\`markdown
|
|
123
131
|
---
|
|
124
132
|
markset: 0
|
|
125
133
|
intentset:
|
|
126
|
-
spec: '0.
|
|
127
|
-
profile: intentset/behavior/0.
|
|
134
|
+
spec: '0.2'
|
|
135
|
+
profile: intentset/behavior/0.2
|
|
128
136
|
id: BEH-AREA-NAME
|
|
129
137
|
type: behavior
|
|
130
|
-
title: The promise in a few words, such as Schedule
|
|
138
|
+
title: The promise in a few words, such as Schedule a student assessment
|
|
131
139
|
status: draft
|
|
132
140
|
owner: <an owner from the registry>
|
|
133
141
|
visibility: internal
|
|
@@ -143,7 +151,7 @@ intentset:
|
|
|
143
151
|
flags: []
|
|
144
152
|
---
|
|
145
153
|
|
|
146
|
-
# The promise in a few words, such as Schedule
|
|
154
|
+
# The promise in a few words, such as Schedule a student assessment
|
|
147
155
|
|
|
148
156
|
## Behavior
|
|
149
157
|
Who acts, and what the system does.
|
|
@@ -192,7 +200,7 @@ Each type requires these level-two sections:
|
|
|
192
200
|
|---|---|
|
|
193
201
|
${sections.join("\n")}
|
|
194
202
|
|
|
195
|
-
The specifications are at https://intentset.org/specifications
|
|
203
|
+
The specifications are at [intentset.org/specifications](https://intentset.org/specifications/).
|
|
196
204
|
`;
|
|
197
205
|
}
|
|
198
206
|
//# sourceMappingURL=agents.js.map
|
package/dist/agents.js.map
CHANGED
|
@@ -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,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,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;;;;;;;
|
|
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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Io } from "../output.ts";
|
|
2
|
+
import type { Session } from "../session.ts";
|
|
3
|
+
export declare const STALE_FORMATS: readonly ["list", "json", "playwright", "vitest", "node-test"];
|
|
4
|
+
export type StaleFormat = (typeof STALE_FORMATS)[number];
|
|
5
|
+
export interface EvidenceStaleOptions {
|
|
6
|
+
/** `<product>:<label>`, the scope evidence is assessed for. */
|
|
7
|
+
release?: string;
|
|
8
|
+
format?: string;
|
|
9
|
+
check: boolean;
|
|
10
|
+
json: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Problems that need no repository, so a typo costs nothing. Returns the format on success. */
|
|
13
|
+
export declare function evidenceStaleUsageProblem(options: EvidenceStaleOptions): {
|
|
14
|
+
problem: string;
|
|
15
|
+
} | {
|
|
16
|
+
format: StaleFormat;
|
|
17
|
+
};
|
|
18
|
+
export declare function evidenceStaleCommand(session: Session, format: StaleFormat, options: EvidenceStaleOptions, io: Io): number;
|
|
19
|
+
//# sourceMappingURL=evidence-stale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-stale.d.ts","sourceRoot":"","sources":["../../src/commands/evidence-stale.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAS,KAAK,EAAE,EAAsB,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,aAAa,gEAA+C,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,gGAAgG;AAChG,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,oBAAoB,GAC5B;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAc/C;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,oBAAoB,EAC7B,EAAE,EAAE,EAAE,GACL,MAAM,CAkCR"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `intentset evidence stale` (ADR 0013, "Slow suites"): the automated
|
|
3
|
+
* verifications whose evidence at this snapshot is not a current pass, as a
|
|
4
|
+
* table, as JSON, or as the arguments a test runner takes to run just those
|
|
5
|
+
* tests. Subject binding says exactly which records went stale, so a slow suite
|
|
6
|
+
* runs what a change could have moved and not everything. A person's review is
|
|
7
|
+
* not something a runner re-runs, so manual verifications are listed apart.
|
|
8
|
+
* Never writes. Exit 0 whatever it finds, 1 with --check when an automated
|
|
9
|
+
* verification needs a run, 2 for an invocation or tool failure.
|
|
10
|
+
*/
|
|
11
|
+
import { compareStrings } from "@intentset/core";
|
|
12
|
+
import { RUNNER_FORMATS, runnerArguments, staleReport, staleSummary, } from "@intentset/verification";
|
|
13
|
+
import { count, json, snapshotLine } from "../output.js";
|
|
14
|
+
import { parseRelease } from "./graph.js";
|
|
15
|
+
export const STALE_FORMATS = ["list", "json", ...RUNNER_FORMATS];
|
|
16
|
+
/** Problems that need no repository, so a typo costs nothing. Returns the format on success. */
|
|
17
|
+
export function evidenceStaleUsageProblem(options) {
|
|
18
|
+
const format = options.format ?? (options.json ? "json" : "list");
|
|
19
|
+
if (!STALE_FORMATS.includes(format)) {
|
|
20
|
+
return { problem: `--format ${format}: the formats are ${STALE_FORMATS.join(", ")}` };
|
|
21
|
+
}
|
|
22
|
+
if (options.json && format !== "json") {
|
|
23
|
+
return { problem: `--json is --format json; it does not combine with --format ${format}` };
|
|
24
|
+
}
|
|
25
|
+
if (options.release !== undefined && parseRelease(options.release) === null) {
|
|
26
|
+
return {
|
|
27
|
+
problem: `--release ${options.release}: give a product and a release label as <product>:<label>, such as PRD-LANTERN:pilot-1`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return { format: format };
|
|
31
|
+
}
|
|
32
|
+
export function evidenceStaleCommand(session, format, options, io) {
|
|
33
|
+
const evidence = session.evidence;
|
|
34
|
+
if (evidence === undefined) {
|
|
35
|
+
io.stderr("intentset evidence stale: run records were not read; evidence is judged at L3 and above.\n");
|
|
36
|
+
return 2;
|
|
37
|
+
}
|
|
38
|
+
const release = options.release === undefined ? null : parseRelease(options.release);
|
|
39
|
+
if (release !== null && session.result.graph.artifacts.get(release.product)?.meta.type !== "product") {
|
|
40
|
+
io.stderr(`intentset evidence stale: --release names ${release.product}, which is not a product in this graph.\n`);
|
|
41
|
+
return 2;
|
|
42
|
+
}
|
|
43
|
+
const report = staleReport(session.result.graph, evidence.check.classification);
|
|
44
|
+
const summary = staleSummary(report.counts);
|
|
45
|
+
if (format === "json") {
|
|
46
|
+
io.stdout(json({
|
|
47
|
+
snapshot: session.snapshot,
|
|
48
|
+
binding: evidence.binding.binding,
|
|
49
|
+
needRun: report.needRun,
|
|
50
|
+
manual: report.manual,
|
|
51
|
+
counts: report.counts,
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
else if (format === "list") {
|
|
55
|
+
io.stdout(renderList(session, report, summary));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// One line to paste or capture; the reading goes to stderr so `$(...)` holds only the arguments.
|
|
59
|
+
io.stdout(`${runnerArguments(format, report.needRun)}\n`);
|
|
60
|
+
io.stderr(`${summary}\n`);
|
|
61
|
+
}
|
|
62
|
+
for (const line of cautions(session))
|
|
63
|
+
io.stderr(`${line}\n`);
|
|
64
|
+
return options.check && report.counts.needRun > 0 ? 1 : 0;
|
|
65
|
+
}
|
|
66
|
+
/** What a reader should know before trusting a short list, said on stderr so it never lands in a captured line. */
|
|
67
|
+
function cautions(session) {
|
|
68
|
+
const lines = [];
|
|
69
|
+
if (session.evidence !== undefined && session.evidence.records === 0) {
|
|
70
|
+
lines.push("intentset evidence stale: no run records were read, so every automated verification reads as missing; give --evidence <file>, or import a run into .intentset/evidence/.");
|
|
71
|
+
}
|
|
72
|
+
const other = session.diagnostics.filter((d) => d.severity === "error" && d.origin !== "evidence").length;
|
|
73
|
+
if (other > 0) {
|
|
74
|
+
lines.push(`intentset evidence stale: the graph has ${count(other, "validation error")}, so it may be incomplete; run \`intentset validate\`.`);
|
|
75
|
+
}
|
|
76
|
+
return lines;
|
|
77
|
+
}
|
|
78
|
+
function renderList(session, report, summary) {
|
|
79
|
+
const evidence = session.evidence;
|
|
80
|
+
const lines = [snapshotLine(session.snapshot)];
|
|
81
|
+
if (evidence !== undefined) {
|
|
82
|
+
const why = evidence.binding.reason === "default"
|
|
83
|
+
? " (the default, since slices claim files)"
|
|
84
|
+
: evidence.binding.reason === "no-slices"
|
|
85
|
+
? ", because no slice claims files"
|
|
86
|
+
: ", as configured";
|
|
87
|
+
lines.push(`Binding: ${evidence.binding.binding}${why}`);
|
|
88
|
+
}
|
|
89
|
+
lines.push("");
|
|
90
|
+
const byFile = new Map();
|
|
91
|
+
for (const entry of report.needRun)
|
|
92
|
+
byFile.set(entry.locator, [...(byFile.get(entry.locator) ?? []), entry]);
|
|
93
|
+
if (byFile.size === 0)
|
|
94
|
+
lines.push("Nothing automated needs a run.", "");
|
|
95
|
+
for (const file of [...byFile.keys()].sort(compareStrings)) {
|
|
96
|
+
lines.push(file);
|
|
97
|
+
const entries = byFile.get(file);
|
|
98
|
+
const width = Math.max(...entries.map((entry) => entry.status.length));
|
|
99
|
+
for (const entry of entries) {
|
|
100
|
+
lines.push(` ${entry.status.padEnd(width)} ${entry.selector} ${entry.verification}`);
|
|
101
|
+
if (entry.note !== undefined)
|
|
102
|
+
lines.push(` ${entry.note}`);
|
|
103
|
+
}
|
|
104
|
+
lines.push("");
|
|
105
|
+
}
|
|
106
|
+
if (report.manual.length > 0) {
|
|
107
|
+
lines.push(`Manual, not re-run by a runner (${report.manual.length}):`);
|
|
108
|
+
for (const entry of report.manual) {
|
|
109
|
+
lines.push(` ${entry.verification} ${entry.status} ${entry.locator}`);
|
|
110
|
+
if (entry.note !== undefined)
|
|
111
|
+
lines.push(` ${entry.note}`);
|
|
112
|
+
}
|
|
113
|
+
lines.push("");
|
|
114
|
+
}
|
|
115
|
+
lines.push(summary);
|
|
116
|
+
return `${lines.join("\n")}\n`;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=evidence-stale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-stale.js","sourceRoot":"","sources":["../../src/commands/evidence-stale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type EvidenceBinding } from "@intentset/core";
|
|
1
2
|
import { type ParsedRun } from "@intentset/verification";
|
|
2
3
|
import { type Io } from "../output.ts";
|
|
3
4
|
import type { Session } from "../session.ts";
|
|
@@ -6,6 +7,10 @@ export declare const REPORTERS: {
|
|
|
6
7
|
readonly tool: "vitest";
|
|
7
8
|
readonly parse: (text: string) => ParsedRun;
|
|
8
9
|
};
|
|
10
|
+
readonly playwright: {
|
|
11
|
+
readonly tool: "playwright";
|
|
12
|
+
readonly parse: (text: string) => ParsedRun;
|
|
13
|
+
};
|
|
9
14
|
readonly "node-tap": {
|
|
10
15
|
readonly tool: "node:test";
|
|
11
16
|
readonly parse: (text: string) => ParsedRun;
|
|
@@ -22,6 +27,8 @@ export interface EvidenceImportOptions {
|
|
|
22
27
|
finishedAt?: string;
|
|
23
28
|
uriBase?: string;
|
|
24
29
|
toolVersion?: string;
|
|
30
|
+
/** Overrides evidence.binding of the configuration (Core §8). */
|
|
31
|
+
binding?: EvidenceBinding;
|
|
25
32
|
}
|
|
26
33
|
/** Problems that need no repository, so a typo costs nothing. */
|
|
27
34
|
export declare function evidenceUsageProblem(options: EvidenceImportOptions): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAS,KAAK,EAAE,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAI7C,eAAO,MAAM,SAAS;aACpB,MAAM;iBAAI,IAAI,EAAE,QAAQ;iBAAE,KAAK,SAAS,MAAM;;aAC9C,UAAU;iBAAI,IAAI,EAAE,YAAY;iBAAE,KAAK,SAAS,MAAM;;aACtD,UAAU;iBAAI,IAAI,EAAE,WAAW;iBAAE,KAAK,SAAS,MAAM;;CAC7C,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAID,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAyBlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAgItG"}
|
|
@@ -11,18 +11,21 @@ import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "no
|
|
|
11
11
|
import { dirname, resolve } from "node:path";
|
|
12
12
|
import { pathToFileURL } from "node:url";
|
|
13
13
|
import { compareStrings } from "@intentset/core";
|
|
14
|
-
import { isUtcTimestamp, parseNodeTap, parseVitestJson, toRunRecords } from "@intentset/verification";
|
|
14
|
+
import { isUtcTimestamp, parseNodeTap, parsePlaywrightJson, parseVitestJson, toRunRecords, } from "@intentset/verification";
|
|
15
15
|
import { count } from "../output.js";
|
|
16
16
|
import { outputProblem } from "../outputs.js";
|
|
17
|
+
import { bindingFor, subjectsOf } from "../subject.js";
|
|
18
|
+
import { readTree } from "../tree.js";
|
|
17
19
|
export const REPORTERS = {
|
|
18
20
|
vitest: { tool: "vitest", parse: (text) => parseVitestJson(JSON.parse(text)) },
|
|
21
|
+
playwright: { tool: "playwright", parse: (text) => parsePlaywrightJson(JSON.parse(text)) },
|
|
19
22
|
"node-tap": { tool: "node:test", parse: (text) => parseNodeTap(text) },
|
|
20
23
|
};
|
|
21
24
|
const URI = /^[A-Za-z][A-Za-z0-9+.-]*:\S+$/;
|
|
22
25
|
/** Problems that need no repository, so a typo costs nothing. */
|
|
23
26
|
export function evidenceUsageProblem(options) {
|
|
24
27
|
if (options.from === undefined || !Object.hasOwn(REPORTERS, options.from)) {
|
|
25
|
-
return `--from ${options.from ?? "(missing)"}: the reporters are ${Object.keys(REPORTERS).join("
|
|
28
|
+
return `--from ${options.from ?? "(missing)"}: the reporters are ${Object.keys(REPORTERS).join(", ")}`;
|
|
26
29
|
}
|
|
27
30
|
if (options.report === undefined)
|
|
28
31
|
return "a report file is required: evidence import --from <reporter> <report>";
|
|
@@ -101,6 +104,14 @@ export function evidenceImportCommand(session, options, io) {
|
|
|
101
104
|
else
|
|
102
105
|
verifications.set(selector, id);
|
|
103
106
|
}
|
|
107
|
+
// Core §8: where subject binding is in force each record carries its verification's subject hash; otherwise the
|
|
108
|
+
// records are what they always were. The commit and graph hash go in either way, as provenance.
|
|
109
|
+
const decision = bindingFor(repo, graph, options.binding);
|
|
110
|
+
let subjectHashes;
|
|
111
|
+
if (decision.binding === "subject") {
|
|
112
|
+
const { subjects } = subjectsOf(repo, graph, readTree(repo.root, repo.config));
|
|
113
|
+
subjectHashes = new Map([...subjects].map(([id, subject]) => [id, subject.hash]));
|
|
114
|
+
}
|
|
104
115
|
const startedAt = options.startedAt ?? modified;
|
|
105
116
|
const finishedAt = options.finishedAt ?? modified;
|
|
106
117
|
let converted;
|
|
@@ -115,6 +126,7 @@ export function evidenceImportCommand(session, options, io) {
|
|
|
115
126
|
startedAt,
|
|
116
127
|
finishedAt,
|
|
117
128
|
uriBase: options.uriBase ?? pathToFileURL(reportFile).href,
|
|
129
|
+
...(subjectHashes === undefined ? {} : { subjects: subjectHashes }),
|
|
118
130
|
});
|
|
119
131
|
}
|
|
120
132
|
catch (error) {
|
|
@@ -130,6 +142,11 @@ export function evidenceImportCommand(session, options, io) {
|
|
|
130
142
|
const lines = [
|
|
131
143
|
`Imported ${count(converted.records.length, "run record")} from ${options.report} (${options.from}, ${count(parsed.tests.length, "test")}) into ${options.out}`,
|
|
132
144
|
` bound to commit ${snapshot.commit}, graph ${snapshot.graphHash}, for ${product} ${release}, environment ${options.environment ?? "local"}`,
|
|
145
|
+
decision.binding === "subject"
|
|
146
|
+
? ` binding: subject (${decision.reason === "default" ? "the default, since slices claim files" : "as configured"}); each record carries the hash of its verification's subject, and stays current while that is unchanged. The commit above is provenance.`
|
|
147
|
+
: decision.reason === "no-slices"
|
|
148
|
+
? " binding: commit; no slice claims files, so there is no subject to bind to (EVID004). Each record is current only at that commit and graph hash."
|
|
149
|
+
: " binding: commit, as configured. Each record is current only at that commit and graph hash.",
|
|
133
150
|
];
|
|
134
151
|
if (options.startedAt === undefined || options.finishedAt === undefined) {
|
|
135
152
|
lines.push(` timestamps: the report file's modification time, ${modified}, stands in for the run's ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/graph.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `intentset graph --format json` (spec/export.md, Core §12): the
|
|
3
|
-
* `intentset/export/0.
|
|
3
|
+
* `intentset/export/0.4` 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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/commands/guide.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAIvC,wBAAgB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAIvE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `intentset guide`: print the agent guide for the repository, the text
|
|
3
|
+
* `init` writes to `.intentset/agents.md`, without writing anything. An agent
|
|
4
|
+
* loads the guide this way when the repository has none yet, or to read the
|
|
5
|
+
* one the installed toolchain would write now. The scope is the one the
|
|
6
|
+
* repository's config names, or init's default where there is no config.
|
|
7
|
+
*/
|
|
8
|
+
import { resolve } from "node:path";
|
|
9
|
+
import { findRoot } from "../repository.js";
|
|
10
|
+
import { guideFor } from "./init.js";
|
|
11
|
+
export function guideCommand(options, io) {
|
|
12
|
+
const root = findRoot(io.cwd, options.root) ?? resolve(io.cwd, options.root ?? ".");
|
|
13
|
+
io.stdout(guideFor(root));
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/commands/guide.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,UAAU,YAAY,CAAC,OAA0B,EAAE,EAAM;IAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACpF,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC;AACX,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -17,4 +17,10 @@ export declare const EMPTY_REGISTRIES_TEXT: string;
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function exampleDir(): Promise<string | null>;
|
|
19
19
|
export declare function initCommand(options: InitOptions, io: Io): Promise<number>;
|
|
20
|
+
/**
|
|
21
|
+
* The agent guide for the repository at root: for the scope its config names,
|
|
22
|
+
* or the default with no readable config, and run through its package manager.
|
|
23
|
+
* What `init --agents` writes and `intentset guide` prints.
|
|
24
|
+
*/
|
|
25
|
+
export declare function guideFor(root: string): string;
|
|
20
26
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -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"}
|
|
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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -111,8 +111,12 @@ export async function initCommand(options, io) {
|
|
|
111
111
|
pointers(io);
|
|
112
112
|
return 0;
|
|
113
113
|
}
|
|
114
|
-
/**
|
|
115
|
-
|
|
114
|
+
/**
|
|
115
|
+
* The agent guide for the repository at root: for the scope its config names,
|
|
116
|
+
* or the default with no readable config, and run through its package manager.
|
|
117
|
+
* What `init --agents` writes and `intentset guide` prints.
|
|
118
|
+
*/
|
|
119
|
+
export function guideFor(root) {
|
|
116
120
|
let scope = [DEFAULT_INIT_SCOPE];
|
|
117
121
|
const configFile = join(root, CONFIG_PATH);
|
|
118
122
|
if (existsSync(configFile)) {
|
|
@@ -120,7 +124,11 @@ function writeGuideOnly(root, io) {
|
|
|
120
124
|
if (diagnostics.length === 0 && config.scope.length > 0)
|
|
121
125
|
scope = config.scope;
|
|
122
126
|
}
|
|
123
|
-
|
|
127
|
+
return agentGuide(scope, managerAt(root));
|
|
128
|
+
}
|
|
129
|
+
/** `init --agents`: the guide alone. */
|
|
130
|
+
function writeGuideOnly(root, io) {
|
|
131
|
+
if (!create(root, new Map([[AGENT_GUIDE_PATH, guideFor(root)]]), io))
|
|
124
132
|
return 2;
|
|
125
133
|
pointers(io);
|
|
126
134
|
return 0;
|
|
@@ -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":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAElG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAU5C,yEAAyE;AACzE,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,OAAO;QACL,0FAA0F;QAC1F,6FAA6F;QAC7F,oCAAoC;QACpC,eAAe,KAAK,CAAC,UAAU,CAAC,EAAE;QAClC,QAAQ;QACR,OAAO,KAAK,CAAC,kBAAkB,CAAC,EAAE;QAClC,eAAe,KAAK,CAAC,eAAe,CAAC,EAAE;QACvC,SAAS;QACT,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,8FAA8F;IAC9F,0FAA0F;IAC1F,0FAA0F;IAC1F,YAAY;IACZ,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,WAAW;IACX,qBAAqB;IACrB,eAAe;IACf,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,kCAAkC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAA8B,CAAC;QAC1F,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IACtG,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB,EAAE,EAAM;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,EAAE,CAAC,MAAM,CAAC,wFAAwF,CAAC,CAAC;QACpG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjE,2DAA2D;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAiB,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,UAAU,GAAG,qBAAqB,CAAC;IACvC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;QAC/B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,EAAE,CAAC,MAAM,CACP,mGAAmG;gBACjG,mGAAmG;gBACnG,sFAAsF,CACzF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,GAAG,cAAc,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACvC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/E,wFAAwF;IACxF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAW,EAAE,WAAW,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,EAAE,CAAC,MAAM,CAAC,yFAAyF,CAAC,CAAC;QACrG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAChG,EAAE,CAAC,MAAM,CAAC,eAAe,KAAK,CAAC,UAAU,CAAC,SAAS,KAAK,8BAA8B,CAAC,CAAC;IACxF,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,KAAK,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAChF,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,wCAAwC;AACxC,SAAS,cAAc,CAAC,IAAY,EAAE,EAAM;IAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/E,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,OAAO,CAAC,CAAC;AACX,CAAC;AAED,oGAAoG;AACpG,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,OAAO,oBAAoB,CAAC;QAC1B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;KAChF,CAAC,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,SAAS,MAAM,CAAC,IAAY,EAAE,KAA0B,EAAE,EAAM;IAC9D,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,MAAM,CACP,yCAAyC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B;YACxF,wDAAwD,CAC3D,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,oCAAoC,IAAI,KAAM,KAAe,CAAC,OAAO,IAAI,CAAC,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+HAA+H;AAC/H,SAAS,QAAQ,CAAC,EAAM;IACtB,EAAE,CAAC,MAAM,CAAC,iCAAiC,gBAAgB,yCAAyC,CAAC,CAAC;IACtG,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,cAAc;QAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Io } from "../output.ts";
|
|
2
|
+
import { type CarrierName } from "../repository.ts";
|
|
3
|
+
/** The specification versions this command moves between. */
|
|
4
|
+
export declare const MIGRATE_FROM = "0.1";
|
|
5
|
+
export declare const MIGRATE_TO = "0.2";
|
|
6
|
+
export interface MigrateOptions {
|
|
7
|
+
root?: string;
|
|
8
|
+
to?: string;
|
|
9
|
+
allowDirty?: boolean;
|
|
10
|
+
carrier: CarrierName;
|
|
11
|
+
}
|
|
12
|
+
/** A message when the options cannot be run, before anything is read; null when they can. */
|
|
13
|
+
export declare function migrateUsageProblem(options: Pick<MigrateOptions, "to">): string | null;
|
|
14
|
+
/**
|
|
15
|
+
* The record's text moved from `from` to `to`, or null when it declares another value. Only lines inside the
|
|
16
|
+
* `intentset:` mapping of the frontmatter, and only `spec` and `profile`, are rewritten; line endings are kept.
|
|
17
|
+
*/
|
|
18
|
+
export declare function migrateText(source: string, frontmatter: {
|
|
19
|
+
line: number;
|
|
20
|
+
text: string;
|
|
21
|
+
}, from: string, to: string): string | null;
|
|
22
|
+
export declare function migrateCommand(options: MigrateOptions, io: Io): number;
|
|
23
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,EAAE,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAyC,MAAM,kBAAkB,CAAC;AAE3F,6DAA6D;AAC7D,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,UAAU,QAAQ,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAMtF;AAKD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,MAAM,GAAG,IAAI,CAoCf;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAiDtE"}
|