zelari-code 1.24.0 → 1.26.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 (63) hide show
  1. package/README.md +6 -3
  2. package/bin/zelari-code.js +44 -12
  3. package/dist/cli/app.js +4 -3
  4. package/dist/cli/app.js.map +1 -1
  5. package/dist/cli/atMentions.js +179 -0
  6. package/dist/cli/atMentions.js.map +1 -0
  7. package/dist/cli/buildPolicy.js +1 -1
  8. package/dist/cli/buildPolicy.js.map +1 -1
  9. package/dist/cli/companion/config.js +172 -0
  10. package/dist/cli/companion/config.js.map +1 -0
  11. package/dist/cli/companion/runManager.js +250 -0
  12. package/dist/cli/companion/runManager.js.map +1 -0
  13. package/dist/cli/companion/serve.js +376 -0
  14. package/dist/cli/companion/serve.js.map +1 -0
  15. package/dist/cli/components/InputBar.js +1 -1
  16. package/dist/cli/components/InputBar.js.map +1 -1
  17. package/dist/cli/components/StatusBar.js +7 -2
  18. package/dist/cli/components/StatusBar.js.map +1 -1
  19. package/dist/cli/generateSkillFromUrl.js +236 -0
  20. package/dist/cli/generateSkillFromUrl.js.map +1 -0
  21. package/dist/cli/headless.js +3 -3
  22. package/dist/cli/headless.js.map +1 -1
  23. package/dist/cli/hooks/useChatTurn.js +16 -12
  24. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  25. package/dist/cli/hooks/useSlashDispatch.js +27 -7
  26. package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
  27. package/dist/cli/main.bundled.js +3347 -1038
  28. package/dist/cli/main.bundled.js.map +4 -4
  29. package/dist/cli/main.js +156 -1
  30. package/dist/cli/main.js.map +1 -1
  31. package/dist/cli/missionSlice.js +7 -6
  32. package/dist/cli/missionSlice.js.map +1 -1
  33. package/dist/cli/mode.js +21 -7
  34. package/dist/cli/mode.js.map +1 -1
  35. package/dist/cli/phase.js +1 -1
  36. package/dist/cli/provider/openai-compatible.js +164 -41
  37. package/dist/cli/provider/openai-compatible.js.map +1 -1
  38. package/dist/cli/runHeadless.js +24 -6
  39. package/dist/cli/runHeadless.js.map +1 -1
  40. package/dist/cli/skillCategories.js +15 -0
  41. package/dist/cli/skillCategories.js.map +1 -0
  42. package/dist/cli/skillConfigIo.js +285 -0
  43. package/dist/cli/skillConfigIo.js.map +1 -0
  44. package/dist/cli/slashCommands.js +31 -11
  45. package/dist/cli/slashCommands.js.map +1 -1
  46. package/dist/cli/slashHandlers/skills.js +30 -0
  47. package/dist/cli/slashHandlers/skills.js.map +1 -1
  48. package/dist/cli/toolRegistry.js +9 -4
  49. package/dist/cli/toolRegistry.js.map +1 -1
  50. package/dist/cli/tools/krakenLive.js +107 -0
  51. package/dist/cli/tools/krakenLive.js.map +1 -0
  52. package/dist/cli/tools/krakenModel.js +115 -0
  53. package/dist/cli/tools/krakenModel.js.map +1 -0
  54. package/dist/cli/tools/krakenRadio.js +95 -0
  55. package/dist/cli/tools/krakenRadio.js.map +1 -0
  56. package/dist/cli/tools/krakenWorktree.js +245 -0
  57. package/dist/cli/tools/krakenWorktree.js.map +1 -0
  58. package/dist/cli/tools/taskTool.js +206 -14
  59. package/dist/cli/tools/taskTool.js.map +1 -1
  60. package/dist/cli/workspace/composeContext.js +2 -2
  61. package/dist/cli/workspace/composeContext.js.map +1 -1
  62. package/package.json +4 -3
  63. package/scripts/start-companion-serve.ps1 +43 -0
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/cli/components/InputBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAiB;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElF,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC;QACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,oBAAU;QACjC,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gCAAgC,GAChE,CACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC9D,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QACzB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;IAC/B,2EAA2E;IAC3E,0EAA0E;IAC1E,wBAAwB;KACzB,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../../src/cli/components/InputBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AASvC;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAiB;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,oEAAoE;IACpE,sEAAsE;IACtE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElF,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC;QACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,oBAAU;QACjC,oBAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,GAC3D,CACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC9D,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QACzB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;IAC/B,2EAA2E;IAC3E,0EAA0E;IAC1E,wBAAwB;KACzB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -16,12 +16,14 @@ import { Spinner } from './Spinner.js';
16
16
  * region as short as possible. A single status line + the input bar + the
17
17
  * streaming tail is always well under a screen, so no full repaint.
18
18
  */
19
- export function StatusBar({ model, provider, sessionId, sessionActive, queueCount = 0, busy = false, mode = 'agent', phase = 'build', cwd, elapsedMs = null, lastMs = null, costUsd = 0, cachedTokens = 0, cacheHitRate = 0, contextUsed = 0, contextLimit = 0, todoSummary = null, }) {
19
+ export function StatusBar({ model, provider, sessionId, sessionActive, queueCount = 0, busy = false, mode = 'kraken', phase = 'build', cwd, elapsedMs = null, lastMs = null, costUsd = 0, cachedTokens = 0, cacheHitRate = 0, contextUsed = 0, contextLimit = 0, todoSummary = null, krakenLive = null, }) {
20
20
  const ctxLabel = contextLimit > 0
21
21
  ? `${formatTokens(contextUsed)}/${formatTokens(contextLimit)}`
22
22
  : contextUsed > 0
23
23
  ? formatTokens(contextUsed)
24
24
  : null;
25
+ const modeLabel = mode === 'council' ? 'council' : mode === 'zelari' ? 'zelari' : 'kraken';
26
+ const modeColor = mode === 'council' ? 'magenta' : mode === 'zelari' ? 'green' : 'red';
25
27
  return (React.createElement(Box, { paddingX: 1, width: "100%", justifyContent: "space-between", gap: 2 },
26
28
  React.createElement(Box, { flexShrink: 2 },
27
29
  React.createElement(Text, { wrap: "truncate" },
@@ -29,7 +31,7 @@ export function StatusBar({ model, provider, sessionId, sessionActive, queueCoun
29
31
  React.createElement(Text, { dimColor: true }, " "),
30
32
  React.createElement(Text, { bold: true, color: phase === 'plan' ? 'yellow' : 'green' }, phase === 'plan' ? '◇ plan' : '◆ build'),
31
33
  React.createElement(Text, { dimColor: true }, " \u00B7 "),
32
- React.createElement(Text, { bold: true, color: mode === 'council' ? 'magenta' : mode === 'zelari' ? 'green' : 'cyan' }, mode === 'council' ? 'council' : mode === 'zelari' ? 'zelari' : 'agent'),
34
+ React.createElement(Text, { bold: true, color: modeColor }, modeLabel),
33
35
  React.createElement(Text, { dimColor: true }, " \u00B7 "),
34
36
  React.createElement(Text, { bold: true, color: "cyan" }, provider),
35
37
  React.createElement(Text, { dimColor: true }, " \u00B7 "),
@@ -57,6 +59,9 @@ export function StatusBar({ model, provider, sessionId, sessionActive, queueCoun
57
59
  todoSummary ? (React.createElement(React.Fragment, null,
58
60
  React.createElement(Text, { color: "yellow" }, todoSummary),
59
61
  React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
62
+ krakenLive ? (React.createElement(React.Fragment, null,
63
+ React.createElement(Text, { color: "magenta" }, krakenLive),
64
+ React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
60
65
  ctxLabel ? (React.createElement(React.Fragment, null,
61
66
  React.createElement(Text, { color: "cyan" }, ctxLabel),
62
67
  React.createElement(Text, { dimColor: true }, " \u00B7 "))) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/cli/components/StatusBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/cli/components/StatusBar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Fetch a URL and ask the active (or flagged) model to draft a SKILL.md skill.
3
+ * Used by Desktop skill-create form and CLI `--generate-skill-from-url`.
4
+ */
5
+ import { getModelForProvider, getProviderConfig } from './providerConfig.js';
6
+ import { resolveApiKeyWithMeta } from './keyStore.js';
7
+ import { resolveBaseUrl } from './provider/openai-compatible.js';
8
+ import { CODING_CATEGORIES_LIST } from './skillCategories.js';
9
+ const MAX_PAGE_CHARS = 24_000;
10
+ const FETCH_TIMEOUT_MS = 25_000;
11
+ const LLM_TIMEOUT_MS = 90_000;
12
+ const SYSTEM = `You convert web page content into a Zelari Code coding skill (SKILL.md style).
13
+
14
+ Return ONLY a single JSON object (no markdown fences) with keys:
15
+ - name: string, kebab-case id (a-z0-9-hyphens, max 64, start with letter/digit)
16
+ - description: string, one line, what the skill does
17
+ - body: string, markdown instructions the agent should follow (steps, rules, checks)
18
+ - category: one of ${CODING_CATEGORIES_LIST.join('|')} (optional)
19
+ - tools: string[] of tool names the skill needs (optional, e.g. bash, read_file, write_file)
20
+ - cost: "low" | "medium" | "high" (optional, default medium)
21
+
22
+ Rules:
23
+ - Prefer actionable coding-agent instructions over marketing copy.
24
+ - If the page is a skill/prompt already, adapt it cleanly to this schema.
25
+ - If the page is docs/blog, distill a reusable workflow skill.
26
+ - name must be unique-looking and descriptive (not "untitled" or "skill").
27
+ - body must be non-empty markdown with clear steps.`;
28
+ function stripHtml(html) {
29
+ let t = html
30
+ .replace(/<script[\s\S]*?<\/script>/gi, ' ')
31
+ .replace(/<style[\s\S]*?<\/style>/gi, ' ')
32
+ .replace(/<noscript[\s\S]*?<\/noscript>/gi, ' ');
33
+ t = t.replace(/<!--[\s\S]*?-->/g, ' ');
34
+ t = t.replace(/<[^>]+>/g, ' ');
35
+ t = t
36
+ .replace(/&nbsp;/g, ' ')
37
+ .replace(/&amp;/g, '&')
38
+ .replace(/&lt;/g, '<')
39
+ .replace(/&gt;/g, '>')
40
+ .replace(/&quot;/g, '"')
41
+ .replace(/&#39;/g, "'");
42
+ t = t.replace(/[ \t]+\n/g, '\n').replace(/\n{3,}/g, '\n\n');
43
+ t = t.replace(/[ \t]{2,}/g, ' ').trim();
44
+ return t;
45
+ }
46
+ export async function fetchUrlText(url) {
47
+ const u = url.trim();
48
+ if (!/^https?:\/\//i.test(u)) {
49
+ throw new Error('URL must start with http:// or https://');
50
+ }
51
+ const controller = new AbortController();
52
+ const t = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
53
+ try {
54
+ const res = await fetch(u, {
55
+ signal: controller.signal,
56
+ headers: {
57
+ 'user-agent': 'zelari-code-skill-import/1.0',
58
+ accept: 'text/html,text/plain,application/json;q=0.9,*/*;q=0.8',
59
+ },
60
+ redirect: 'follow',
61
+ });
62
+ if (!res.ok) {
63
+ throw new Error(`Fetch failed HTTP ${res.status}`);
64
+ }
65
+ const ct = (res.headers.get('content-type') || '').toLowerCase();
66
+ const raw = await res.text();
67
+ if (ct.includes('json') || raw.trimStart().startsWith('{') || raw.trimStart().startsWith('[')) {
68
+ return raw.slice(0, MAX_PAGE_CHARS);
69
+ }
70
+ if (ct.includes('html') || /<html[\s>]/i.test(raw) || /<body[\s>]/i.test(raw)) {
71
+ return stripHtml(raw).slice(0, MAX_PAGE_CHARS);
72
+ }
73
+ return raw.slice(0, MAX_PAGE_CHARS);
74
+ }
75
+ finally {
76
+ clearTimeout(t);
77
+ }
78
+ }
79
+ function extractJsonObject(text) {
80
+ const trimmed = text.trim();
81
+ // Strip ```json fences if the model ignored instructions
82
+ const fenced = /^```(?:json)?\s*([\s\S]*?)```$/i.exec(trimmed);
83
+ const body = fenced ? fenced[1].trim() : trimmed;
84
+ try {
85
+ return JSON.parse(body);
86
+ }
87
+ catch {
88
+ const start = body.indexOf('{');
89
+ const end = body.lastIndexOf('}');
90
+ if (start >= 0 && end > start) {
91
+ return JSON.parse(body.slice(start, end + 1));
92
+ }
93
+ throw new Error('Model did not return valid JSON');
94
+ }
95
+ }
96
+ function normalizeDraft(raw, sourceUrl, provider, model) {
97
+ if (!raw || typeof raw !== 'object') {
98
+ throw new Error('Invalid skill draft object');
99
+ }
100
+ const o = raw;
101
+ let name = String(o.name ?? '')
102
+ .trim()
103
+ .toLowerCase()
104
+ .replace(/[^a-z0-9-]+/g, '-')
105
+ .replace(/^-+|-+$/g, '')
106
+ .slice(0, 64);
107
+ if (!name || !/^[a-z0-9][a-z0-9-]{0,63}$/.test(name)) {
108
+ // Derive from URL path
109
+ try {
110
+ const path = new URL(sourceUrl).pathname
111
+ .split('/')
112
+ .filter(Boolean)
113
+ .pop()
114
+ ?.replace(/\.[a-z0-9]+$/i, '')
115
+ .toLowerCase()
116
+ .replace(/[^a-z0-9-]+/g, '-')
117
+ .replace(/^-+|-+$/g, '')
118
+ .slice(0, 48);
119
+ name = path && /^[a-z0-9]/.test(path) ? path : 'imported-skill';
120
+ }
121
+ catch {
122
+ name = 'imported-skill';
123
+ }
124
+ }
125
+ const description = String(o.description ?? '').trim();
126
+ const body = String(o.body ?? '').trim();
127
+ if (!description)
128
+ throw new Error('Model draft missing description');
129
+ if (!body)
130
+ throw new Error('Model draft missing body');
131
+ const catRaw = String(o.category ?? '')
132
+ .trim()
133
+ .toLowerCase();
134
+ const category = CODING_CATEGORIES_LIST.includes(catRaw)
135
+ ? catRaw
136
+ : undefined;
137
+ let tools;
138
+ if (Array.isArray(o.tools)) {
139
+ tools = o.tools.map((t) => String(t).trim()).filter(Boolean);
140
+ }
141
+ else if (typeof o.tools === 'string' && o.tools.trim()) {
142
+ tools = o.tools
143
+ .split(',')
144
+ .map((t) => t.trim())
145
+ .filter(Boolean);
146
+ }
147
+ const costRaw = String(o.cost ?? 'medium').trim().toLowerCase();
148
+ const cost = costRaw === 'low' || costRaw === 'high' || costRaw === 'medium'
149
+ ? costRaw
150
+ : 'medium';
151
+ return {
152
+ name,
153
+ description,
154
+ body,
155
+ category,
156
+ tools,
157
+ cost,
158
+ sourceUrl,
159
+ model,
160
+ provider,
161
+ };
162
+ }
163
+ async function resolveLlm(opts) {
164
+ const active = (opts.provider?.trim() ||
165
+ getProviderConfig().activeProviderId);
166
+ const meta = await resolveApiKeyWithMeta(active);
167
+ if (!meta?.apiKey) {
168
+ throw new Error(`No API key for provider '${active}'. Save a key in Settings → Provider.`);
169
+ }
170
+ const baseUrl = resolveBaseUrl(active);
171
+ if (!baseUrl) {
172
+ throw new Error(`No base URL for provider '${active}'. Set a custom endpoint in Settings.`);
173
+ }
174
+ const model = opts.model?.trim() ||
175
+ getModelForProvider(active) ||
176
+ process.env.ZELARI_MODEL ||
177
+ '';
178
+ if (!model) {
179
+ throw new Error(`No model selected for provider '${active}'`);
180
+ }
181
+ return { provider: active, model, apiKey: meta.apiKey, baseUrl };
182
+ }
183
+ /**
184
+ * Fetch URL page text and generate a skill draft via the selected model.
185
+ */
186
+ export async function generateSkillFromUrl(opts) {
187
+ const page = await fetchUrlText(opts.url);
188
+ if (!page.trim()) {
189
+ throw new Error('Page content is empty after fetch');
190
+ }
191
+ const llm = await resolveLlm({
192
+ provider: opts.provider,
193
+ model: opts.model,
194
+ });
195
+ const controller = new AbortController();
196
+ const t = setTimeout(() => controller.abort(), LLM_TIMEOUT_MS);
197
+ try {
198
+ const url = `${llm.baseUrl.replace(/\/$/, '')}/chat/completions`;
199
+ const res = await fetch(url, {
200
+ method: 'POST',
201
+ signal: controller.signal,
202
+ headers: {
203
+ 'content-type': 'application/json',
204
+ authorization: `Bearer ${llm.apiKey}`,
205
+ },
206
+ body: JSON.stringify({
207
+ model: llm.model,
208
+ temperature: 0.2,
209
+ max_tokens: 4096,
210
+ stream: false,
211
+ messages: [
212
+ { role: 'system', content: SYSTEM },
213
+ {
214
+ role: 'user',
215
+ content: `Source URL: ${opts.url.trim()}\n\n` +
216
+ `Page content (truncated):\n${page}`,
217
+ },
218
+ ],
219
+ }),
220
+ });
221
+ if (!res.ok) {
222
+ const errBody = await res.text().catch(() => '');
223
+ throw new Error(`LLM HTTP ${res.status}${errBody ? `: ${errBody.slice(0, 200)}` : ''}`);
224
+ }
225
+ const json = (await res.json());
226
+ const text = json.choices?.[0]?.message?.content?.trim();
227
+ if (!text)
228
+ throw new Error('Empty model response');
229
+ const parsed = extractJsonObject(text);
230
+ return normalizeDraft(parsed, opts.url.trim(), llm.provider, llm.model);
231
+ }
232
+ finally {
233
+ clearTimeout(t);
234
+ }
235
+ }
236
+ //# sourceMappingURL=generateSkillFromUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSkillFromUrl.js","sourceRoot":"","sources":["../../src/cli/generateSkillFromUrl.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ object per line) or as plain text (just the assistant message text).
28
28
  Options:
29
29
  --task <text> Task prompt (required)
30
30
  --output json|plain Output format (default: json)
31
- --mode agent|council|zelari Dispatch mode (default: agent)
31
+ --mode kraken|council|zelari Dispatch mode (default: kraken; agent=alias)
32
32
  --council Alias for --mode council
33
33
  --phase plan|build Work phase (default: build)
34
34
  --provider <id> Provider override (default: active)
@@ -53,7 +53,7 @@ export function parseHeadlessFlags(argv) {
53
53
  }
54
54
  let task;
55
55
  let output = 'json';
56
- let mode = 'agent';
56
+ let mode = 'kraken';
57
57
  let phase = 'build';
58
58
  let modeExplicit = false;
59
59
  let councilFlag = false;
@@ -91,7 +91,7 @@ export function parseHeadlessFlags(argv) {
91
91
  if (!parsed) {
92
92
  return {
93
93
  options: null,
94
- error: `--mode requires 'agent', 'council', or 'zelari', got '${next ?? '(missing)'}'`,
94
+ error: `--mode requires 'kraken', 'council', or 'zelari' (agent=alias), got '${next ?? '(missing)'}'`,
95
95
  };
96
96
  }
97
97
  mode = parsed;
@@ -1 +1 @@
1
- {"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,10 @@ import { resolveFailoverStream } from "../crossProviderFailover.js";
9
9
  import { resolveShell } from "@zelari/core/harness/tools/builtin/shellResolver";
10
10
  import { PROVIDERS } from "../keyStore.js";
11
11
  import { createBuiltinToolRegistry } from "../toolRegistry.js";
12
+ import { resetTaskSpawnCount } from "../tools/taskTool.js";
12
13
  import { createPermissionAskHandler } from "./permissionPicker.js";
13
14
  import { defaultPermissionPolicy } from "../safety/toolPermissions.js";
14
- import { buildSystemPromptSplit, systemMessagesFromSplit, getAllTools, SINGLE_AGENT_IDENTITY_MODULE, buildLanguagePolicyModuleFor, } from "@zelari/core/skills";
15
+ import { buildSystemPromptSplit, systemMessagesFromSplit, getAllTools, KRAKEN_IDENTITY_MODULE, KRAKEN_LEAD_PLAYBOOK_MODULE, buildLanguagePolicyModuleFor, } from "@zelari/core/skills";
15
16
  import { hashStablePrompt } from "../state/fileStateStore.js";
16
17
  import { parseClarificationRequest, cleanAgentContent, } from "@zelari/core";
17
18
  import { appendOrExtendStreamingAssistant, appendSystem, appendToolStart, finalizeStreamingAssistant, updateToolMessageEnd, } from "./messageHelpers.js";
@@ -38,6 +39,8 @@ export function useChatTurn(params) {
38
39
  clearHistory();
39
40
  }, []);
40
41
  const dispatchPrompt = useCallback(async (userText, opts) => {
42
+ // Kraken: fresh tentacle spawn budget each parent user turn.
43
+ resetTaskSpawnCount();
41
44
  // v0.4.3 audit fix: provider resolution + harness construction now
42
45
  // live INSIDE the try block. Previously, throws from providerFromEnv,
43
46
  // resolveFailoverStream, or createBuiltinToolRegistry happened
@@ -172,7 +175,7 @@ export function useChatTurn(params) {
172
175
  const { loadDurableContext } = await import("../state/loadDurableContext.js");
173
176
  const durableState = await loadDurableContext(cwd);
174
177
  const composed = composeProjectContext({
175
- mode: "agent",
178
+ mode: 'kraken',
176
179
  cwd,
177
180
  userMessage: userText,
178
181
  includeLessons: false,
@@ -279,7 +282,7 @@ export function useChatTurn(params) {
279
282
  // directives (anti-confabulation, act-don't-describe, output self-check,
280
283
  // clarification protocol, safety, formatting, tool-usage) to the 90%
281
284
  // path that previously got an inline array and missed them all. The
282
- // SINGLE_AGENT_IDENTITY_MODULE overrides the council-flavored
285
+ // KRAKEN_IDENTITY_MODULE overrides the council-flavored
283
286
  // 'base-identity' module so the persona is "Zelari Code in the terminal",
284
287
  // not "member of an AI Council".
285
288
  const planPhaseBlock = workPhase === "plan"
@@ -360,20 +363,21 @@ export function useChatTurn(params) {
360
363
  // v1.7.0: detect the user's language and inject the language-policy
361
364
  // module so the agent replies in the user's language. Honors
362
365
  // ZELARI_RESPONSE_LANG override (auto|it|en|fr|...). The module is
363
- // appended to customPromptModules alongside SINGLE_AGENT_IDENTITY_MODULE
366
+ // appended to customPromptModules alongside KRAKEN_IDENTITY_MODULE + playbook
364
367
  // — it lives in priority space (5) so it sorts BEFORE the base-identity
365
368
  // module (10): the model sets language scaffolding before reading role text.
366
369
  const languageModule = buildLanguagePolicyModuleFor(userText);
367
370
  const split = buildSystemPromptSplit(singleAgentRole, {
368
371
  tools: getAllTools(),
369
372
  toolNames: toolListNames,
370
- mode: "agent",
373
+ mode: 'kraken',
371
374
  projectInstructions: composedInstructions || undefined,
372
375
  aiConfig: {
373
376
  enabledSkills: [],
374
377
  enabledTools: toolListNames,
375
378
  customPromptModules: [
376
- SINGLE_AGENT_IDENTITY_MODULE,
379
+ KRAKEN_IDENTITY_MODULE,
380
+ KRAKEN_LEAD_PLAYBOOK_MODULE,
377
381
  languageModule,
378
382
  ],
379
383
  agentSkillConfigs: [],
@@ -391,7 +395,7 @@ export function useChatTurn(params) {
391
395
  // runnable even if the builder or catalog is unavailable.
392
396
  const languageModule = buildLanguagePolicyModuleFor(userText);
393
397
  const fallback = [
394
- SINGLE_AGENT_IDENTITY_MODULE.content,
398
+ KRAKEN_IDENTITY_MODULE.content,
395
399
  languageModule.content,
396
400
  shellContextBlock,
397
401
  "# Available Tools",
@@ -847,7 +851,7 @@ async function dispatchCouncilPromptImpl(text, deps, overrides = {}) {
847
851
  appendSystem(setMessages, "[council] build soft-gate: implementation disabled for free-form council " +
848
852
  "(experiment: multi-agent = plan). Forced design-phase + plan tools. " +
849
853
  "Set ZELARI_COUNCIL_CAN_BUILD=1 to let Lucifero implement, " +
850
- "or use mode agent/zelari for on-disk work.", Date.now());
854
+ "or use mode kraken/zelari for on-disk work.", Date.now());
851
855
  }
852
856
  }
853
857
  const onPermissionAskCouncil = setPicker
@@ -1404,7 +1408,7 @@ async function runZelariMissionInTui(userMessage, deps, emit) {
1404
1408
  const { shouldBuildViaAgent } = await import("../buildPolicy.js");
1405
1409
  const buildViaAgent = shouldBuildViaAgent();
1406
1410
  if (buildViaAgent) {
1407
- emit("[zelari] policy: design@council · build@agent (ZELARI_BUILD_VIA_AGENT; set=0 for legacy council impl)");
1411
+ emit("[zelari] policy: design@council · build@kraken (ZELARI_BUILD_VIA_AGENT; set=0 for legacy council impl)");
1408
1412
  }
1409
1413
  try {
1410
1414
  await runZelariMission(userMessage, brief, {
@@ -1431,7 +1435,7 @@ async function runZelariMissionInTui(userMessage, deps, emit) {
1431
1435
  degraded: r.degraded,
1432
1436
  };
1433
1437
  }
1434
- // build@agent implementation slice
1438
+ // build@kraken implementation slice
1435
1439
  const { runAgentMissionSlice } = await import("../missionSlice.js");
1436
1440
  // createBuiltinToolRegistry, openaiCompatibleProvider, providerFromEnv
1437
1441
  // already imported at module top.
@@ -1442,7 +1446,7 @@ async function runZelariMissionInTui(userMessage, deps, emit) {
1442
1446
  const { detectDegradedRun } = await import("@zelari/core/council");
1443
1447
  const envConfig = await providerFromEnv();
1444
1448
  if (!envConfig) {
1445
- emit("[zelari] build@agent aborted: missing API key for active provider");
1449
+ emit("[zelari] build@kraken aborted: missing API key for active provider");
1446
1450
  return { completionOk: false, ran: false };
1447
1451
  }
1448
1452
  const onPermissionAskZelari = setPicker
@@ -1496,7 +1500,7 @@ async function runZelariMissionInTui(userMessage, deps, emit) {
1496
1500
  await writerRef.current.append(event);
1497
1501
  if (event.type === "tool_execution_start") {
1498
1502
  const name = event.toolName ?? "tool";
1499
- appendSystem(setMessages, `[build@agent] → ${name}`, Date.now());
1503
+ appendSystem(setMessages, `[build@kraken] → ${name}`, Date.now());
1500
1504
  }
1501
1505
  },
1502
1506
  runCompletionHook: async ({ synthesisText, writeCount, errored }) => {