aienvmp 0.1.62 → 0.1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +3 -1
- package/package.json +1 -1
- package/src/cli.js +2 -2
- package/src/commands/status.js +35 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.63
|
|
4
|
+
|
|
5
|
+
- Compressed plain `aienvmp status` output into a 5-line AI/human decision view.
|
|
6
|
+
- Added `aienvmp status --verbose` for detailed command hints without cluttering the default path.
|
|
7
|
+
- Added a reusable `renderStatusText` helper for stable status text formatting.
|
|
8
|
+
- Kept JSON/status artifacts unchanged so AI consumers retain the full preflight contract.
|
|
9
|
+
- Updated CLI help to explain the compact default and verbose detail mode.
|
|
10
|
+
- Updated README command guidance for default, artifact, and verbose status usage.
|
|
11
|
+
- Added regression tests for compact default output, verbose output, and exact status text shape.
|
|
12
|
+
|
|
3
13
|
## 0.1.62
|
|
4
14
|
|
|
5
15
|
- Added a compact `collaboration` block to the shared preflight/status contract for multi-agent environment coordination.
|
package/README.md
CHANGED
|
@@ -82,7 +82,9 @@ Snippets point each AI to `status`, `summary.md`, `context --json`, intent, and
|
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
84
|
aienvmp sync # update env map, status, summary, SBOM, dashboard
|
|
85
|
-
aienvmp status
|
|
85
|
+
aienvmp status # 5-line env decision
|
|
86
|
+
aienvmp status --write # refresh compact AI status artifact
|
|
87
|
+
aienvmp status --verbose # show command details
|
|
86
88
|
aienvmp summary --write # refresh compact Markdown summary
|
|
87
89
|
aienvmp context --json # AI decision contract
|
|
88
90
|
aienvmp sbom --json # standalone light SBOM
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -112,7 +112,7 @@ function printUsage() {
|
|
|
112
112
|
Usage:
|
|
113
113
|
aienvmp sync [--dir .] [--json] [--quiet] [--deep] [--security]
|
|
114
114
|
aienvmp context [--dir .] [--json]
|
|
115
|
-
aienvmp status [--dir .] [--json] [--write] [--quiet]
|
|
115
|
+
aienvmp status [--dir .] [--json] [--write] [--quiet] [--verbose]
|
|
116
116
|
aienvmp handoff [--dir .] [--json] [--record --actor agent:id]
|
|
117
117
|
aienvmp checkpoint [--dir .] --actor agent:id --summary "what changed" [--target dependency] [--json]
|
|
118
118
|
aienvmp plan [--dir .] [--json] [--write]
|
|
@@ -122,7 +122,7 @@ Usage:
|
|
|
122
122
|
|
|
123
123
|
Common:
|
|
124
124
|
aienvmp sync update AIENV.md, manifest, status, summary, SBOM, ledger, intents, and dashboard
|
|
125
|
-
aienvmp status print
|
|
125
|
+
aienvmp status print a 5-line AI/human environment decision; --verbose shows command details
|
|
126
126
|
aienvmp context print the AI preflight brief
|
|
127
127
|
aienvmp handoff print the next-agent handoff summary
|
|
128
128
|
aienvmp checkpoint record, sync, status, and handoff after an env change
|
package/src/commands/status.js
CHANGED
|
@@ -21,16 +21,7 @@ export async function statusWorkspace(args) {
|
|
|
21
21
|
if (args.json) {
|
|
22
22
|
console.log(JSON.stringify(output, null, 2));
|
|
23
23
|
} else if (!args.quiet) {
|
|
24
|
-
console.log(
|
|
25
|
-
console.log(`ai-readiness: ${output.aiReadiness?.level || "unknown"} - ${output.aiReadiness?.next || "Run aienvmp context --json for details."}`);
|
|
26
|
-
console.log(`collaboration: ${output.collaboration?.status || "unknown"} - ${output.collaboration?.nextCommand || "aienvmp status --json"}`);
|
|
27
|
-
console.log(`next: ${output.nextCommand}`);
|
|
28
|
-
console.log(`ai: ${output.quickstart.readFirst} -> ${output.quickstart.detailCommand}`);
|
|
29
|
-
console.log(`intent: ${output.intentTargets[0]?.command || output.commands.recordIntent}`);
|
|
30
|
-
console.log(`checkpoint: ${output.commands.checkpoint}`);
|
|
31
|
-
console.log(`handoff: ${output.nextAgent.handoffCommand}`);
|
|
32
|
-
console.log(`strict: ${output.enforcement.recommendedCommand}`);
|
|
33
|
-
if (artifact) console.log(`status: ${artifact}`);
|
|
24
|
+
console.log(renderStatusText(output, { verbose: args.verbose === true, artifact }));
|
|
34
25
|
}
|
|
35
26
|
return output;
|
|
36
27
|
}
|
|
@@ -45,3 +36,37 @@ export async function writeStatusArtifact(dir, status) {
|
|
|
45
36
|
export function buildStatus(manifest = {}, warnings = [], intents = [], timeline = []) {
|
|
46
37
|
return buildPreflight(manifest, warnings, intents, timeline);
|
|
47
38
|
}
|
|
39
|
+
|
|
40
|
+
export function renderStatusText(output = {}, options = {}) {
|
|
41
|
+
const counts = output.counts || {};
|
|
42
|
+
const readiness = output.aiReadiness?.level || "unknown";
|
|
43
|
+
const collaboration = output.collaboration?.status || "unknown";
|
|
44
|
+
const sbomRisk = output.sbomRisk?.level || "unknown";
|
|
45
|
+
const sbomScore = valueOrZero(output.sbomRisk?.score);
|
|
46
|
+
const detail = output.quickstart?.detailCommand || "aienvmp context --json";
|
|
47
|
+
const summary = output.artifacts?.summary || ".aienvmp/summary.md";
|
|
48
|
+
const lines = [
|
|
49
|
+
`${output.state || "unknown"}: ${output.summary || "Run aienvmp context --json for details."}`,
|
|
50
|
+
`ready: ${readiness} | collaboration: ${collaboration}`,
|
|
51
|
+
`sbom: ${sbomRisk} (${sbomScore}) | warnings: ${valueOrZero(counts.warnings)} | intents: ${valueOrZero(counts.openIntents)}`,
|
|
52
|
+
`next: ${output.nextCommand || "aienvmp status --json"}`,
|
|
53
|
+
`details: ${detail} | summary: ${summary}`
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
if (options.verbose) {
|
|
57
|
+
lines.push(
|
|
58
|
+
`ai: ${output.quickstart?.readFirst || "aienvmp status --write"} -> ${detail}`,
|
|
59
|
+
`intent: ${output.intentTargets?.[0]?.command || output.commands?.recordIntent || "aienvmp intent --actor agent:id --action planned-change"}`,
|
|
60
|
+
`checkpoint: ${output.commands?.checkpoint || "aienvmp checkpoint --actor agent:id --summary what-changed --target environment"}`,
|
|
61
|
+
`handoff: ${output.nextAgent?.handoffCommand || "aienvmp handoff --record --actor agent:id"}`,
|
|
62
|
+
`strict: ${output.enforcement?.recommendedCommand || "aienvmp doctor --strict all"}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (options.artifact || output.artifact) lines.push(`status: ${options.artifact || output.artifact}`);
|
|
67
|
+
return lines.join("\n");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function valueOrZero(value) {
|
|
71
|
+
return Number.isFinite(Number(value)) ? Number(value) : 0;
|
|
72
|
+
}
|