zelari-code 1.15.0 → 1.17.1
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 +3 -1
- package/dist/cli/app.js +8 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/components/StatusBar.js +5 -1
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/councilDispatcher.js +3 -0
- package/dist/cli/councilDispatcher.js.map +1 -1
- package/dist/cli/hooks/chatStats.js +36 -11
- package/dist/cli/hooks/chatStats.js.map +1 -1
- package/dist/cli/hooks/conversationContext.js +5 -2
- package/dist/cli/hooks/conversationContext.js.map +1 -1
- package/dist/cli/hooks/historyCompaction.js +8 -1
- package/dist/cli/hooks/historyCompaction.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +254 -60
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useSlashDispatch.js +42 -0
- package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
- package/dist/cli/main.bundled.js +2509 -845
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +47 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/mcp/mcpManager.js +11 -1
- package/dist/cli/mcp/mcpManager.js.map +1 -1
- package/dist/cli/mcp/mcpPresets.js +77 -0
- package/dist/cli/mcp/mcpPresets.js.map +1 -0
- package/dist/cli/memory/fileBackend.js +11 -2
- package/dist/cli/memory/fileBackend.js.map +1 -1
- package/dist/cli/runHeadless.js +79 -4
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/slashCommands.js +54 -1
- package/dist/cli/slashCommands.js.map +1 -1
- package/dist/cli/slashHandlers/cache.js +35 -0
- package/dist/cli/slashHandlers/cache.js.map +1 -0
- package/dist/cli/slashHandlers/state.js +97 -0
- package/dist/cli/slashHandlers/state.js.map +1 -0
- package/dist/cli/state/commitHelpers.js +73 -0
- package/dist/cli/state/commitHelpers.js.map +1 -0
- package/dist/cli/state/fileStateStore.js +262 -0
- package/dist/cli/state/fileStateStore.js.map +1 -0
- package/dist/cli/state/loadDurableContext.js +42 -0
- package/dist/cli/state/loadDurableContext.js.map +1 -0
- package/dist/cli/state/promptCacheStats.js +56 -0
- package/dist/cli/state/promptCacheStats.js.map +1 -0
- package/dist/cli/state/restoreState.js +70 -0
- package/dist/cli/state/restoreState.js.map +1 -0
- package/dist/cli/toolRegistry.js +8 -0
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/askUser.js +71 -0
- package/dist/cli/tools/askUser.js.map +1 -0
- package/dist/cli/utils/doctor.js +19 -0
- package/dist/cli/utils/doctor.js.map +1 -1
- package/dist/cli/workspace/composeContext.js +216 -0
- package/dist/cli/workspace/composeContext.js.map +1 -0
- package/dist/cli/workspace/workspaceSummary.js +58 -31
- package/dist/cli/workspace/workspaceSummary.js.map +1 -1
- package/dist/cli/zelariMission.js +127 -17
- package/dist/cli/zelariMission.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* composeProjectContext — single pipeline for agent / council / zelari / headless.
|
|
3
|
+
*
|
|
4
|
+
* Separates product truth (tree, package.json) from design vault ops (plan task
|
|
5
|
+
* list) and never mislabels plan text as "RAG". Caps each section so council
|
|
6
|
+
* design dumps cannot saturate the system prompt.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
9
|
+
import { join } from "node:path";
|
|
10
|
+
import { envNumber } from "../utils/envNumber.js";
|
|
11
|
+
import { loadProjectInstructions } from "./projectInstructions.js";
|
|
12
|
+
import { resolveWorkspaceRoot } from "./paths.js";
|
|
13
|
+
import { buildPlanSummary, buildWorkspaceSummary, buildZelariReadHint, EPISTEMIC_BANNER, } from "./workspaceSummary.js";
|
|
14
|
+
import { buildLessonsSummary } from "./buildLessonsSummary.js";
|
|
15
|
+
function cap(text, max, label) {
|
|
16
|
+
if (!text || text.length <= max)
|
|
17
|
+
return { text: text || "", truncated: false };
|
|
18
|
+
return {
|
|
19
|
+
text: text.slice(0, max) +
|
|
20
|
+
`\n\n… [truncated ${label}; ${text.length} chars → use tools to read full files]`,
|
|
21
|
+
truncated: true,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function buildDesignIndex(projectRoot, maxChars) {
|
|
25
|
+
const root = resolveWorkspaceRoot(projectRoot);
|
|
26
|
+
if (!existsSync(root))
|
|
27
|
+
return "";
|
|
28
|
+
const lines = [
|
|
29
|
+
"# Design vault index (.zelari/) — HYPOTHESES only",
|
|
30
|
+
"Full design docs are NOT product source of truth. Open with list_files / read_file / searchDocuments if needed.",
|
|
31
|
+
];
|
|
32
|
+
const docsDir = join(root, "docs");
|
|
33
|
+
if (existsSync(docsDir)) {
|
|
34
|
+
try {
|
|
35
|
+
const docs = readdirSync(docsDir)
|
|
36
|
+
.filter((n) => n.endsWith(".md"))
|
|
37
|
+
.slice(0, 12);
|
|
38
|
+
if (docs.length > 0) {
|
|
39
|
+
lines.push("", "## docs/ (titles only)");
|
|
40
|
+
for (const d of docs)
|
|
41
|
+
lines.push(`- .zelari/docs/${d}`);
|
|
42
|
+
if (readdirSync(docsDir).filter((n) => n.endsWith(".md")).length > 12) {
|
|
43
|
+
lines.push("- … (more under .zelari/docs/)");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
/* ignore */
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (const name of ["risks.md", "plan.json", "nfr-spec.json"]) {
|
|
52
|
+
if (existsSync(join(root, name))) {
|
|
53
|
+
lines.push(`- .zelari/${name} present`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const decisionsDir = join(root, "decisions");
|
|
57
|
+
if (existsSync(decisionsDir)) {
|
|
58
|
+
try {
|
|
59
|
+
const n = readdirSync(decisionsDir).filter((f) => f.endsWith(".md")).length;
|
|
60
|
+
if (n > 0)
|
|
61
|
+
lines.push(`- .zelari/decisions/ (${n} ADR file(s) — treat proposed as non-binding)`);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
/* ignore */
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const raw = lines.join("\n");
|
|
68
|
+
return cap(raw, maxChars, "design-index").text;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Compose project context for any dispatch path.
|
|
72
|
+
* Note: durable state auto-load is sync-best-effort via a cached file read;
|
|
73
|
+
* callers that already materialize async should pass `durableState` explicitly.
|
|
74
|
+
*/
|
|
75
|
+
export function composeProjectContext(input) {
|
|
76
|
+
const cwd = input.cwd ?? process.cwd();
|
|
77
|
+
const warnings = [];
|
|
78
|
+
const workspaceMax = envNumber(process.env.ZELARI_CTX_WORKSPACE_CHARS, {
|
|
79
|
+
default: 3500,
|
|
80
|
+
min: 500,
|
|
81
|
+
});
|
|
82
|
+
const planMax = envNumber(process.env.ZELARI_CTX_PLAN_CHARS, {
|
|
83
|
+
default: 2800,
|
|
84
|
+
min: 400,
|
|
85
|
+
});
|
|
86
|
+
const designIndexMax = envNumber(process.env.ZELARI_CTX_DESIGN_INDEX_CHARS, {
|
|
87
|
+
default: 800,
|
|
88
|
+
min: 200,
|
|
89
|
+
});
|
|
90
|
+
const memoryMax = envNumber(process.env.ZELARI_CTX_MEMORY_CHARS, {
|
|
91
|
+
default: 2000,
|
|
92
|
+
min: 200,
|
|
93
|
+
});
|
|
94
|
+
const agentsMax = envNumber(process.env.ZELARI_CTX_AGENTS_CHARS, {
|
|
95
|
+
default: 6000,
|
|
96
|
+
min: 500,
|
|
97
|
+
});
|
|
98
|
+
const wsRaw = buildWorkspaceSummary(cwd, { maxEntries: 24, maxChars: workspaceMax });
|
|
99
|
+
const planRaw = buildPlanSummary(cwd, {
|
|
100
|
+
userMessage: input.userMessage,
|
|
101
|
+
maxChars: planMax,
|
|
102
|
+
});
|
|
103
|
+
const hint = buildZelariReadHint(cwd);
|
|
104
|
+
const designIndex = input.mode === "agent"
|
|
105
|
+
? buildDesignIndex(cwd, designIndexMax)
|
|
106
|
+
: // Council already writes design; still give a short index, not full docs.
|
|
107
|
+
buildDesignIndex(cwd, designIndexMax);
|
|
108
|
+
const includeLessons = input.includeLessons ??
|
|
109
|
+
(input.mode === "council" || input.mode === "zelari");
|
|
110
|
+
const lessons = includeLessons
|
|
111
|
+
? buildLessonsSummary(cwd, input.userMessage ?? "")
|
|
112
|
+
: null;
|
|
113
|
+
const instr = loadProjectInstructions(cwd, agentsMax);
|
|
114
|
+
if (instr.truncated) {
|
|
115
|
+
warnings.push(`[context] AGENTS/project instructions truncated to ${agentsMax} chars.`);
|
|
116
|
+
}
|
|
117
|
+
const parts = [EPISTEMIC_BANNER, wsRaw];
|
|
118
|
+
if (hint)
|
|
119
|
+
parts.push(hint);
|
|
120
|
+
if (planRaw) {
|
|
121
|
+
parts.push(planRaw);
|
|
122
|
+
}
|
|
123
|
+
if (designIndex)
|
|
124
|
+
parts.push(designIndex);
|
|
125
|
+
if (lessons)
|
|
126
|
+
parts.push(lessons);
|
|
127
|
+
if (input.historySnippet?.trim())
|
|
128
|
+
parts.push(input.historySnippet.trim());
|
|
129
|
+
let workspaceContext = parts.filter(Boolean).join("\n\n");
|
|
130
|
+
const totalCap = envNumber(process.env.ZELARI_CTX_TOTAL_CHARS, {
|
|
131
|
+
default: 12_000,
|
|
132
|
+
min: 2000,
|
|
133
|
+
});
|
|
134
|
+
const totalCapped = cap(workspaceContext, totalCap, "workspaceContext");
|
|
135
|
+
workspaceContext = totalCapped.text;
|
|
136
|
+
if (totalCapped.truncated) {
|
|
137
|
+
warnings.push(`[context] workspaceContext truncated to ${totalCap} chars (design vault demoted; use tools for detail).`);
|
|
138
|
+
}
|
|
139
|
+
const durableMax = envNumber(process.env.ZELARI_CTX_DURABLE_CHARS, {
|
|
140
|
+
default: 3000,
|
|
141
|
+
min: 200,
|
|
142
|
+
});
|
|
143
|
+
// Default: inject durable HEAD for all modes when state is enabled, unless
|
|
144
|
+
// caller passes includeDurableState: false (e.g. already merged elsewhere).
|
|
145
|
+
const wantDurable = input.includeDurableState ??
|
|
146
|
+
(process.env.ZELARI_STATE !== "0" &&
|
|
147
|
+
(input.mode === "council" ||
|
|
148
|
+
input.mode === "zelari" ||
|
|
149
|
+
input.mode === "agent"));
|
|
150
|
+
let durableRaw = input.durableState?.trim() ?? "";
|
|
151
|
+
// Sync fallback only when async loadDurableContext was not used upstream.
|
|
152
|
+
if (!durableRaw && wantDurable) {
|
|
153
|
+
durableRaw = readDurableHeadSync(cwd);
|
|
154
|
+
}
|
|
155
|
+
const ragParts = [];
|
|
156
|
+
if (durableRaw) {
|
|
157
|
+
const d = cap(durableRaw, durableMax, "durable-state");
|
|
158
|
+
ragParts.push(d.text);
|
|
159
|
+
if (d.truncated) {
|
|
160
|
+
warnings.push(`[context] durable state truncated to ${durableMax} chars.`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (input.memoryHits?.trim()) {
|
|
164
|
+
const m = cap(input.memoryHits.trim(), memoryMax, "memory");
|
|
165
|
+
ragParts.push(m.text);
|
|
166
|
+
if (m.truncated)
|
|
167
|
+
warnings.push(`[context] memory RAG truncated to ${memoryMax} chars.`);
|
|
168
|
+
}
|
|
169
|
+
const ragContext = ragParts.join("\n\n");
|
|
170
|
+
return {
|
|
171
|
+
projectInstructions: instr.content,
|
|
172
|
+
workspaceContext,
|
|
173
|
+
ragContext,
|
|
174
|
+
warnings,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Sync best-effort read of durable HEAD materialization.
|
|
179
|
+
* Avoids making composeProjectContext async (many call sites).
|
|
180
|
+
*/
|
|
181
|
+
function readDurableHeadSync(projectRoot) {
|
|
182
|
+
try {
|
|
183
|
+
const headPath = join(projectRoot, ".zelari", "state", "HEAD.json");
|
|
184
|
+
if (!existsSync(headPath))
|
|
185
|
+
return "";
|
|
186
|
+
const head = JSON.parse(readFileSync(headPath, "utf8"));
|
|
187
|
+
if (!head?.id)
|
|
188
|
+
return "";
|
|
189
|
+
const metaPath = join(projectRoot, ".zelari", "state", "commits", `${head.id}.json`);
|
|
190
|
+
if (!existsSync(metaPath))
|
|
191
|
+
return "";
|
|
192
|
+
const meta = JSON.parse(readFileSync(metaPath, "utf8"));
|
|
193
|
+
const discPath = meta.artifactDir
|
|
194
|
+
? join(projectRoot, ".zelari", "state", meta.artifactDir, "discoveries.json")
|
|
195
|
+
: join(projectRoot, ".zelari", "state", "artifacts", head.id, "discoveries.json");
|
|
196
|
+
let discoveries = [];
|
|
197
|
+
if (existsSync(discPath)) {
|
|
198
|
+
discoveries = JSON.parse(readFileSync(discPath, "utf8"));
|
|
199
|
+
}
|
|
200
|
+
const reusable = discoveries.filter((d) => d.reusable !== false);
|
|
201
|
+
const lines = [
|
|
202
|
+
`# Durable State (commit ${meta.id ?? head.id}${meta.layer ? `, layer ${meta.layer}` : ""})`,
|
|
203
|
+
`label: ${meta.label ?? ""}`,
|
|
204
|
+
`verification: ran=${meta.verification?.ran ?? "?"} ok=${meta.verification?.ok ?? "?"}`,
|
|
205
|
+
];
|
|
206
|
+
for (const d of reusable.slice(0, 24)) {
|
|
207
|
+
const pathHint = d.paths?.length ? ` — ${d.paths.join(", ")}` : "";
|
|
208
|
+
lines.push(`- [${d.kind ?? "note"}] ${d.summary ?? ""}${pathHint}`);
|
|
209
|
+
}
|
|
210
|
+
return lines.join("\n");
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return "";
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=composeContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeContext.js","sourceRoot":"","sources":["../../../src/cli/workspace/composeContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,20 +17,28 @@ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
|
17
17
|
import { join, relative } from "node:path";
|
|
18
18
|
import { classifyTaskScope, extractTaskScope, loadNfrSpec, } from "@zelari/core/council";
|
|
19
19
|
import { projectName, resolveWorkspaceRoot } from "./paths.js";
|
|
20
|
+
/** Injected whenever plan/design vault context is present. */
|
|
21
|
+
export const EPISTEMIC_BANNER = [
|
|
22
|
+
"# EPISTEMIC RULES (harness)",
|
|
23
|
+
"- **Product source of truth** = real project files (source tree, package.json, README), not `.zelari/docs`.",
|
|
24
|
+
"- Artifacts under `.zelari/` (plan, docs, risks, ADR) are **UNVERIFIED DESIGN HYPOTHESES** until implemented and verified on disk.",
|
|
25
|
+
"- Prefer read_file / list_files on the product tree over treating council docs as law.",
|
|
26
|
+
"- Do not invent paths, stack, or features that package.json / the tree contradict.",
|
|
27
|
+
].join("\n");
|
|
20
28
|
/**
|
|
21
29
|
* Build a markdown workspace summary for the council system prompt.
|
|
22
30
|
*
|
|
23
31
|
* @param projectRoot defaults to process.cwd()
|
|
24
32
|
*/
|
|
25
33
|
export function buildWorkspaceSummary(projectRoot = process.cwd(), options = {}) {
|
|
26
|
-
const { maxEntries = 30 } = options;
|
|
34
|
+
const { maxEntries = 30, maxChars = 3500, maxDeps = 24, maxScripts = 16 } = options;
|
|
27
35
|
const name = safeProjectName(projectRoot);
|
|
28
36
|
const parts = [
|
|
29
37
|
`# Project: ${name}`,
|
|
30
38
|
`Working directory: ${projectRoot}`,
|
|
31
39
|
];
|
|
32
40
|
// Tech stack from package.json (if present).
|
|
33
|
-
const stack = readTechStack(projectRoot);
|
|
41
|
+
const stack = readTechStack(projectRoot, maxDeps);
|
|
34
42
|
if (stack) {
|
|
35
43
|
parts.push("", "## Tech stack (from package.json)", stack);
|
|
36
44
|
}
|
|
@@ -40,11 +48,17 @@ export function buildWorkspaceSummary(projectRoot = process.cwd(), options = {})
|
|
|
40
48
|
parts.push("", "## Top-level files & directories", tree.join("\n"));
|
|
41
49
|
}
|
|
42
50
|
// Build scripts (if present) — tells the council how to run/test/build.
|
|
43
|
-
const scripts = readBuildScripts(projectRoot);
|
|
51
|
+
const scripts = readBuildScripts(projectRoot, maxScripts);
|
|
44
52
|
if (scripts) {
|
|
45
53
|
parts.push("", "## npm scripts", scripts);
|
|
46
54
|
}
|
|
47
|
-
|
|
55
|
+
let out = parts.join("\n");
|
|
56
|
+
if (out.length > maxChars) {
|
|
57
|
+
out =
|
|
58
|
+
out.slice(0, maxChars) +
|
|
59
|
+
`\n\n… [workspace summary truncated at ${maxChars} chars]`;
|
|
60
|
+
}
|
|
61
|
+
return out;
|
|
48
62
|
}
|
|
49
63
|
/** Max tasks listed individually in the plan summary (rest is counted). */
|
|
50
64
|
const PLAN_SUMMARY_MAX_TASKS = 15;
|
|
@@ -81,8 +95,10 @@ export function buildPlanSummary(projectRoot = process.cwd(), options) {
|
|
|
81
95
|
const milestones = Array.isArray(plan.milestones) ? plan.milestones : [];
|
|
82
96
|
if (phases.length === 0 && tasks.length === 0 && milestones.length === 0)
|
|
83
97
|
return null;
|
|
98
|
+
const maxChars = options?.maxChars ?? 2800;
|
|
84
99
|
const parts = [
|
|
85
|
-
"#
|
|
100
|
+
"# Plan ops (DRAFT — .zelari/plan.json)",
|
|
101
|
+
"_This is operational task list from design, not product law. Ground every change in the real source tree._",
|
|
86
102
|
];
|
|
87
103
|
// Open (pending/in_progress/blocked) tasks first; done tasks are counted only.
|
|
88
104
|
const open = tasks.filter((t) => t.status !== "done");
|
|
@@ -141,9 +157,9 @@ export function buildPlanSummary(projectRoot = process.cwd(), options) {
|
|
|
141
157
|
}
|
|
142
158
|
for (const phase of [...phases].sort((a, b) => (a.order ?? 0) - (b.order ?? 0))) {
|
|
143
159
|
const phaseTasks = scopedOpen.filter((t) => t.phaseId === phase.id);
|
|
160
|
+
// Ops only: phase name — do NOT inject free-text phase descriptions
|
|
161
|
+
// (they re-saturate context with design prose).
|
|
144
162
|
parts.push("", `## ${phase.order ?? "?"}. ${phase.name ?? phase.id}`);
|
|
145
|
-
if (phase.description)
|
|
146
|
-
parts.push(phase.description);
|
|
147
163
|
for (const t of phaseTasks.slice(0, PLAN_SUMMARY_MAX_TASKS)) {
|
|
148
164
|
parts.push(formatTaskLine(t));
|
|
149
165
|
}
|
|
@@ -167,15 +183,19 @@ export function buildPlanSummary(projectRoot = process.cwd(), options) {
|
|
|
167
183
|
parts.push(`- ${m.name ?? m.id}${m.targetVersion ? ` (target: ${m.targetVersion})` : ""}`);
|
|
168
184
|
}
|
|
169
185
|
}
|
|
170
|
-
//
|
|
171
|
-
// starts immediately instead of asking the user which task to pick.
|
|
172
|
-
// First in_progress wins (finish what's started); else highest priority.
|
|
186
|
+
// Suggested next task (hypothesis) — not a hard mandate.
|
|
173
187
|
const next = pickNextTask(scopedOpen.length > 0 ? scopedOpen : open);
|
|
174
188
|
if (next) {
|
|
175
|
-
parts.push("", "**
|
|
189
|
+
parts.push("", "**Suggested next task (hypothesis — verify against product tree):**", `- ${next.name ?? next.id} (${next.status ?? "pending"}/${next.priority ?? "medium"}) → .zelari/plan-tasks/${next.id}.md`);
|
|
190
|
+
}
|
|
191
|
+
parts.push("", `${tasks.length} task(s) total — ${open.length} open, ${done} done.`, "If implementing: ground fileRefs in the real tree first; work one task; do not treat design docs as shipped features.");
|
|
192
|
+
let out = parts.join("\n");
|
|
193
|
+
if (out.length > maxChars) {
|
|
194
|
+
out =
|
|
195
|
+
out.slice(0, maxChars) +
|
|
196
|
+
`\n\n… [plan ops truncated at ${maxChars} chars — read .zelari/plan.json for full list]`;
|
|
176
197
|
}
|
|
177
|
-
|
|
178
|
-
return parts.join("\n");
|
|
198
|
+
return out;
|
|
179
199
|
}
|
|
180
200
|
/** Priority rank for next-task selection (higher = more urgent). */
|
|
181
201
|
const PRIORITY_RANK = {
|
|
@@ -205,9 +225,9 @@ export function buildZelariReadHint(projectRoot = process.cwd()) {
|
|
|
205
225
|
if (!existsSync(planPath))
|
|
206
226
|
return "";
|
|
207
227
|
return [
|
|
208
|
-
"# Council workspace detected (.zelari/)",
|
|
209
|
-
"
|
|
210
|
-
"
|
|
228
|
+
"# Council workspace detected (.zelari/) — DRAFT vault",
|
|
229
|
+
"`.zelari/plan.json` and `.zelari/docs/` hold **design hypotheses**, not verified product state.",
|
|
230
|
+
"Product truth is the source tree + package.json. Use list_files/read_file on product paths first; open `.zelari/` only when you need plan task details.",
|
|
211
231
|
].join("\n");
|
|
212
232
|
}
|
|
213
233
|
function safeProjectName(root) {
|
|
@@ -229,31 +249,38 @@ function readPackageJson(projectRoot) {
|
|
|
229
249
|
return null;
|
|
230
250
|
}
|
|
231
251
|
}
|
|
232
|
-
/** Markdown bullet list of runtime + dev deps. */
|
|
233
|
-
function readTechStack(projectRoot) {
|
|
252
|
+
/** Markdown bullet list of runtime + dev deps (capped). */
|
|
253
|
+
function readTechStack(projectRoot, maxDeps = 24) {
|
|
234
254
|
const pkg = readPackageJson(projectRoot);
|
|
235
255
|
if (!pkg)
|
|
236
256
|
return null;
|
|
237
|
-
const fmt = (entries) =>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
257
|
+
const fmt = (entries) => {
|
|
258
|
+
if (!entries || Object.keys(entries).length === 0)
|
|
259
|
+
return "_none_";
|
|
260
|
+
const all = Object.entries(entries).sort(([a], [b]) => a.localeCompare(b));
|
|
261
|
+
const slice = all.slice(0, maxDeps);
|
|
262
|
+
const lines = slice.map(([k, v]) => `- ${k} \`${v}\``);
|
|
263
|
+
if (all.length > maxDeps) {
|
|
264
|
+
lines.push(`- … (+${all.length - maxDeps} more deps omitted)`);
|
|
265
|
+
}
|
|
266
|
+
return lines.join("\n");
|
|
267
|
+
};
|
|
243
268
|
return `**Runtime:**\n${fmt(pkg.dependencies)}\n\n**Dev:**\n${fmt(pkg.devDependencies)}`;
|
|
244
269
|
}
|
|
245
|
-
/** Markdown bullet list of npm scripts (name: command). */
|
|
246
|
-
function readBuildScripts(projectRoot) {
|
|
270
|
+
/** Markdown bullet list of npm scripts (name: command), capped. */
|
|
271
|
+
function readBuildScripts(projectRoot, maxScripts = 16) {
|
|
247
272
|
const pkg = readPackageJson(projectRoot);
|
|
248
273
|
if (!pkg?.scripts)
|
|
249
274
|
return null;
|
|
250
|
-
const entries = Object.entries(pkg.scripts);
|
|
275
|
+
const entries = Object.entries(pkg.scripts).sort(([a], [b]) => a.localeCompare(b));
|
|
251
276
|
if (entries.length === 0)
|
|
252
277
|
return null;
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
.
|
|
278
|
+
const slice = entries.slice(0, maxScripts);
|
|
279
|
+
const lines = slice.map(([k, v]) => `- \`${k}\`: ${v}`);
|
|
280
|
+
if (entries.length > maxScripts) {
|
|
281
|
+
lines.push(`- … (+${entries.length - maxScripts} more scripts omitted)`);
|
|
282
|
+
}
|
|
283
|
+
return lines.join("\n");
|
|
257
284
|
}
|
|
258
285
|
/** Shallow listing of top-level entries + one level of subdirectories. */
|
|
259
286
|
function listShallow(projectRoot, maxEntries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaceSummary.js","sourceRoot":"","sources":["../../../src/cli/workspace/workspaceSummary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaceSummary.js","sourceRoot":"","sources":["../../../src/cli/workspace/workspaceSummary.ts"],"names":[],"mappings":"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"}
|