@zelari/core 1.25.0 → 1.27.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.
@@ -1,7 +1,9 @@
1
1
  import type { SystemPromptModule } from '../types/systemTypes.js';
2
2
  export { PROPRIETARY_SECRECY_MODULE, PROPRIETARY_SECRECY_MARKER, PROPRIETARY_REFUSAL_TEXT, scrubProprietaryLeak, } from './secrecyPolicy.js';
3
3
  /** Prompt assembly path: lean coding agent vs multi-member council. */
4
- export type PromptPackMode = 'agent' | 'council';
4
+ export type PromptPackMode = 'kraken' | 'council';
5
+ /** @deprecated Use 'kraken'. Accepted by getBasePromptModules. */
6
+ export type LegacyPromptPackMode = 'agent';
5
7
  /**
6
8
  * Native tool-call protocol (OpenAI-compatible). Replaces the legacy
7
9
  * ---TOOLS--- text-block instructions that competed with harness tool_calls.
@@ -25,13 +27,21 @@ export declare const CLARIFICATION_PROTOCOL_MODULE: SystemPromptModule;
25
27
  * \`mode: 'agent'\` — lean coding CLI path (no council collab / vault noise).
26
28
  * \`mode: 'council'\` — multi-agent path with collaboration + clarification.
27
29
  */
28
- export declare function getBasePromptModules(mode?: PromptPackMode): SystemPromptModule[];
30
+ export declare function getBasePromptModules(mode?: PromptPackMode | LegacyPromptPackMode): SystemPromptModule[];
29
31
  /** @deprecated Prefer getBasePromptModules(mode). Kept for callers that import PROMPT_MODULES. */
30
32
  export declare const PROMPT_MODULES: SystemPromptModule[];
31
33
  /** Get a module by type from the council pack. */
32
34
  export declare function getPromptModule(type: SystemPromptModule['type']): SystemPromptModule | undefined;
33
35
  /**
34
- * Single-agent identity overrides base-identity on the agent path.
36
+ * Kraken identity - overrides base-identity on the single-harness path.
37
+ * Senior lead / super-agent that spawns tentacles via the task tool.
35
38
  */
39
+ export declare const KRAKEN_IDENTITY_MODULE: SystemPromptModule;
40
+ /**
41
+ * Kraken lead playbook - orchestrate tentacles (task explore/general/verify).
42
+ * Injected on the kraken path with KRAKEN_IDENTITY_MODULE.
43
+ */
44
+ export declare const KRAKEN_LEAD_PLAYBOOK_MODULE: SystemPromptModule;
45
+ /** @deprecated Use KRAKEN_IDENTITY_MODULE */
36
46
  export declare const SINGLE_AGENT_IDENTITY_MODULE: SystemPromptModule;
37
47
  //# sourceMappingURL=promptModules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"promptModules.d.ts","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AASlE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;AA8FjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAczC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,EAAE,kBAgBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBA4BpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAkC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,GAAE,cAA0B,GAC/B,kBAAkB,EAAE,CAiCtB;AAED,kGAAkG;AAClG,eAAO,MAAM,cAAc,EAAE,kBAAkB,EAAoC,CAAC;AAEpF,kDAAkD;AAClD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAC/B,kBAAkB,GAAG,SAAS,CAEhC;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAW1C,CAAC"}
1
+ {"version":3,"file":"promptModules.d.ts","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AASlE,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClD,kEAAkE;AAClE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;AA8F3C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAczC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,EAAE,kBAgBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBA4BpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,kBAkC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,GAAE,cAAc,GAAG,oBAAgC,GACtD,kBAAkB,EAAE,CAiCtB;AAED,kGAAkG;AAClG,eAAO,MAAM,cAAc,EAAE,kBAAkB,EAAoC,CAAC;AAEpF,kDAAkD;AAClD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAC/B,kBAAkB,GAAG,SAAS,CAEhC;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAMzC,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,4BAA4B,oBAAyB,CAAC"}
@@ -202,7 +202,7 @@ Rules:
202
202
  * \`mode: 'council'\` — multi-agent path with collaboration + clarification.
203
203
  */
204
204
  export function getBasePromptModules(mode = 'council') {
205
- if (mode === 'agent') {
205
+ if (mode === 'kraken' || mode === 'agent') {
206
206
  return [
207
207
  CODING_CAPABLE_IDENTITY,
208
208
  PROPRIETARY_SECRECY_MODULE,
@@ -241,18 +241,26 @@ export function getPromptModule(type) {
241
241
  return getBasePromptModules('council').find((m) => m.type === type);
242
242
  }
243
243
  /**
244
- * Single-agent identity overrides base-identity on the agent path.
244
+ * Kraken identity - overrides base-identity on the single-harness path.
245
+ * Senior lead / super-agent that spawns tentacles via the task tool.
245
246
  */
246
- export const SINGLE_AGENT_IDENTITY_MODULE = {
247
+ export const KRAKEN_IDENTITY_MODULE = {
247
248
  type: 'base-identity',
248
249
  title: 'Identity',
249
250
  priority: 10,
250
- content: `# Identity
251
-
252
- You are Zelari Code, an interactive AI coding agent in the user's terminal (or desktop shell).
253
-
254
- You ARE connected to this machine and have real tools to read, modify, and explore the codebase. Never claim you lack filesystem or shell access — you have it. Use tools instead of asking the user to paste file contents.
255
-
256
- Be proactive: list and read key files before changing code. When you finish a slice, briefly summarize what you did and how to verify it. If more work remains, stop with a short resoconto and ask whether to continue — do not monologue forever.`,
251
+ content: "# Identity\n\nYou are **Kraken**, the Zelari Code super-agent - a senior software engineer and tech lead in the user's terminal (or desktop shell).\n\nYou ARE connected to this machine and have real tools to read, modify, and explore the codebase. Never claim you lack filesystem or shell access - you have it. Use tools instead of asking the user to paste file contents.\n\nYou work like a real senior engineer: understand the system, cut scope, implement thin vertical slices, verify on disk, and stop cleanly when more remains.",
252
+ };
253
+ /**
254
+ * Kraken lead playbook - orchestrate tentacles (task explore/general/verify).
255
+ * Injected on the kraken path with KRAKEN_IDENTITY_MODULE.
256
+ */
257
+ export const KRAKEN_LEAD_PLAYBOOK_MODULE = {
258
+ type: 'behavior-rules',
259
+ title: 'Kraken Lead Playbook',
260
+ // priority 25 = after BEHAVIOR_AGENT (20). Via aiConfig custom modules get +1000.
261
+ priority: 25,
262
+ content: "# Kraken Lead Playbook (super-agent)\n\nYou are the **parent brain**. Sub-agents spawned with task are tentacles: they cannot see this chat and cannot nest further task calls.\n\n## Default workflow (non-trivial work)\n1. **Orient** - list/read key files; optionally task explore (parallel OK for disjoint questions).\n2. **Decompose** - todo_write with concrete slices and acceptance criteria.\n3. **Implement** - one slice at a time via tools or task agent=general for a bounded unit.\n4. **Verify** - after meaningful writes, run checks yourself (bash / typecheck / tests) or task agent=verify. Do not claim done without on-disk evidence.\n5. **Integrate** - summarize files touched + how to verify; if more remains, checkpoint and ask.\n\n## When to spawn task\n- **explore**: unfamiliar area, multi-file search, map call sites (prefer parallel explores).\n- **general**: isolated implement slice with clear path scope (serial writers unless worktree isolation is on).\n- **verify**: post-implement gate (tests/typecheck/smoke).\n\n## Task contracts (required quality)\nEvery task prompt must be self-contained and include:\n- **Goal** (one sentence)\n- **Scope** (paths / symbols allowed; what is out of scope)\n- **Acceptance** (how the parent will know it succeeded)\n- **Constraints** (no drive-by refactors; match existing style)\n\nOptional tool fields: scope (path allowlist hint), acceptance (checklist). Prefer them when available.\n\n## Caps and discipline\n- Prefer at most 4 explore and 2 general spawns per user turn unless the user asks for more.\n- Do not expand scope beyond the user request.\n- Parallel: many explore OK; general writers stay serial unless ZELARI_KRAKEN_WORKTREE=1.\n- Nested task from children is disabled - you are the only orchestrator.\n- Cheap thoroughness defaults: explore=quick|medium; deep only when stuck.\n- Model routing: explore/verify may use ZELARI_KRAKEN_SUB_MODEL (cheaper); general stays on parent model unless ZELARI_KRAKEN_GENERAL_MODEL is set.\n- After every successful task general, spawn task verify (or run tests yourself) before claiming done - the tool appends a verify-hint footer.\n- Opt-in isolation: ZELARI_KRAKEN_WORKTREE=1 runs general tentacles in a git worktree under .zelari/worktrees/ (KEEP=1 to retain branch for manual merge).\n- Progress bus: tentacle spawns log to .zelari/radio/<session>.jsonl - slash command /kraken shows status.\n\n## Done means verified\nNever end with status theater. Either tools ran and files changed, or you stop with a short report and ask whether to continue.",
257
263
  };
264
+ /** @deprecated Use KRAKEN_IDENTITY_MODULE */
265
+ export const SINGLE_AGENT_IDENTITY_MODULE = KRAKEN_IDENTITY_MODULE;
258
266
  //# sourceMappingURL=promptModules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promptModules.js","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptModules.js","sourceRoot":"","sources":["../../src/agents/promptModules.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,7 @@ export declare function buildSystemPromptSplit(agent: CoreAgentRole & {
69
69
  * Prefers {@link buildSystemPromptSplit} and concatenates stable + volatile
70
70
  * for backward compatibility with callers that expect a single string.
71
71
  *
72
- * @param options.mode - \`agent\` (default for CLI single-agent) uses the lean
72
+ * @param options.mode - \`kraken\` (alias \`agent\`; default single-harness) uses the lean
73
73
  * coding pack; \`council\` keeps collaboration + clarification modules.
74
74
  * @param options.projectInstructions - optional AGENTS.md / CLAUDE.md body.
75
75
  * @param options.includeWorkspaceInPrompt - when false, skip embedding
@@ -117,7 +117,8 @@ export function getToolDescriptions(toolNames, registry) {
117
117
  * or concatenated stable+volatile). Never put volatile before stable.
118
118
  */
119
119
  export function buildSystemPromptSplit(agent, options) {
120
- const { tools, toolNames, aiConfig, workspaceContext, ragContext, mode = 'council', projectInstructions, includeWorkspaceInPrompt = true, durableStateContext, } = options;
120
+ const { tools, toolNames, aiConfig, workspaceContext, ragContext, mode = 'council', // 'kraken' | 'council' (| legacy 'agent')
121
+ projectInstructions, includeWorkspaceInPrompt = true, durableStateContext, } = options;
121
122
  const registry = new Map(tools.map((t) => [t.name, t]));
122
123
  // 1. Base modules (filtered by conditional predicates against the agent's skills)
123
124
  const skills = computeAgentSkills(agent, aiConfig);
@@ -189,7 +190,7 @@ export function buildSystemPromptSplit(agent, options) {
189
190
  * Prefers {@link buildSystemPromptSplit} and concatenates stable + volatile
190
191
  * for backward compatibility with callers that expect a single string.
191
192
  *
192
- * @param options.mode - \`agent\` (default for CLI single-agent) uses the lean
193
+ * @param options.mode - \`kraken\` (alias \`agent\`; default single-harness) uses the lean
193
194
  * coding pack; \`council\` keeps collaboration + clarification modules.
194
195
  * @param options.projectInstructions - optional AGENTS.md / CLAUDE.md body.
195
196
  * @param options.includeWorkspaceInPrompt - when false, skip embedding
@@ -1 +1 @@
1
- {"version":3,"file":"systemPromptBuilder.js","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemPromptBuilder.js","sourceRoot":"","sources":["../../src/agents/systemPromptBuilder.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './council/index.js';
12
12
  export * from './skills/index.js';
13
13
  export * from './memory/types.js';
14
14
  export * from './state/index.js';
15
+ export * from './kraken/index.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -19,4 +19,6 @@ export * from './skills/index.js';
19
19
  export * from './memory/types.js';
20
20
  // Durable state contract (file-backed store lives in the CLI)
21
21
  export * from './state/index.js';
22
+ // Kraken graph engine (pure DAG primitives; orchestration lives in the CLI)
23
+ export * from './kraken/index.js';
22
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qCAAqC;AACrC,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,oBAAoB;AACpB,cAAc,mBAAmB,CAAC;AAElC,4DAA4D;AAC5D,cAAc,mBAAmB,CAAC;AAElC,8DAA8D;AAC9D,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qCAAqC;AACrC,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,oBAAoB,CAAC;AAEnC,sCAAsC;AACtC,cAAc,oBAAoB,CAAC;AAEnC,oBAAoB;AACpB,cAAc,mBAAmB,CAAC;AAElC,4DAA4D;AAC5D,cAAc,mBAAmB,CAAC;AAElC,8DAA8D;AAC9D,cAAc,kBAAkB,CAAC;AAEjC,4EAA4E;AAC5E,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Kraken graph engine — scope-overlap detection & parallelism policy (pure).
3
+ *
4
+ * Decides whether two graph nodes may run concurrently. Read-only kinds
5
+ * (explore/verify) are always parallel-safe; writers (general/fix) may run in
6
+ * parallel only when their path scopes are provably disjoint. Conservative by
7
+ * design: any ambiguity resolves to "not parallel". No CLI dependencies.
8
+ *
9
+ * @since v0.10.x — Kraken graph engine (F1)
10
+ */
11
+ import type { TaskNode } from './graph.js';
12
+ /** Normalize a path/glob for comparison: forward slashes, no `./` or trailing `/`. */
13
+ export declare function normalizeScopePath(p: string): string;
14
+ /**
15
+ * Decide whether two scope paths could match a common file (i.e. their allowed
16
+ * sets are NOT provably disjoint). Comparison is segment-wise so that
17
+ * `src/auth` and `src/authz` do NOT overlap, while `src/auth` and
18
+ * `src/auth/jwt.ts` DO (ancestor/descendant). A `**` segment overlaps anything
19
+ * at or below its position.
20
+ *
21
+ * Conservative: returns true (overlap) on any ambiguity.
22
+ */
23
+ export declare function pathsOverlap(a: string, b: string): boolean;
24
+ /**
25
+ * True when two scope allowlists are provably disjoint (no pair overlaps).
26
+ * Empty/absent scopes are treated as "whole tree" → NOT disjoint.
27
+ */
28
+ export declare function disjointScopeSets(scopeA: string[] | undefined, scopeB: string[] | undefined): boolean;
29
+ /**
30
+ * May two nodes execute concurrently?
31
+ * - read-only kinds (explore/verify) are always parallel-safe;
32
+ * - a `merge` node is never parallel (it must serialize on its branch);
33
+ * - two writers (general/fix) run in parallel only if both declare scopes and
34
+ * those scopes are provably disjoint;
35
+ * - any missing scope on a writer → conservative "not parallel".
36
+ */
37
+ export declare function canRunParallel(a: TaskNode, b: TaskNode): boolean;
38
+ /**
39
+ * From a set of candidate nodes, pick the largest prefix (in input order) that
40
+ * can ALL run concurrently with each other. Used by the executor to form a
41
+ * parallel wave. The first node is always included.
42
+ */
43
+ export declare function selectParallelWave(candidates: TaskNode[]): TaskNode[];
44
+ //# sourceMappingURL=conflict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict.d.ts","sourceRoot":"","sources":["../../src/kraken/conflict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAQzD,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAWpD;AA+CD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAkB1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAC3B,OAAO,CAST;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAWhE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAMrE"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Kraken graph engine — scope-overlap detection & parallelism policy (pure).
3
+ *
4
+ * Decides whether two graph nodes may run concurrently. Read-only kinds
5
+ * (explore/verify) are always parallel-safe; writers (general/fix) may run in
6
+ * parallel only when their path scopes are provably disjoint. Conservative by
7
+ * design: any ambiguity resolves to "not parallel". No CLI dependencies.
8
+ *
9
+ * @since v0.10.x — Kraken graph engine (F1)
10
+ */
11
+ /** Kinds that never mutate the workspace (read-only / read+bash). */
12
+ const READ_ONLY_KINDS = ['explore', 'verify'];
13
+ /** Kinds that mutate the workspace and therefore need disjoint scopes. */
14
+ const WRITER_KINDS = ['general', 'fix'];
15
+ /** Normalize a path/glob for comparison: forward slashes, no `./` or trailing `/`. */
16
+ export function normalizeScopePath(p) {
17
+ let s = p.trim().replace(/\\/g, '/');
18
+ // Strip a leading `./`.
19
+ if (s.startsWith('./'))
20
+ s = s.slice(2);
21
+ // Collapse duplicate slashes.
22
+ s = s.replace(/\/{2,}/g, '/');
23
+ // Strip trailing slash (but keep a bare `/` as-is → becomes '').
24
+ if (s.length > 1 && s.endsWith('/'))
25
+ s = s.slice(0, -1);
26
+ // A lone `.` means "the current dir / whole tree" → normalize to root.
27
+ if (s === '.')
28
+ s = '';
29
+ return s;
30
+ }
31
+ /** Split a normalized path into segments (drops empty segments). */
32
+ function segments(p) {
33
+ return normalizeScopePath(p)
34
+ .split('/')
35
+ .filter((s) => s.length > 0);
36
+ }
37
+ /** Does a segment contain a glob wildcard? */
38
+ function isGlobSegment(seg) {
39
+ return seg.includes('*') || seg.includes('?') || seg.includes('[');
40
+ }
41
+ /** Escape regex-special chars in a literal string. */
42
+ function escapeRegex(s) {
43
+ return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
44
+ }
45
+ /**
46
+ * Match a single path segment against another, honoring glob wildcards.
47
+ * `*` matches any run within the segment, `?` matches one char, `[...]` is a
48
+ * char class. If both segments are globs we conservatively assume they CAN
49
+ * match the same name (→ potential overlap).
50
+ */
51
+ function segmentMatches(a, b) {
52
+ if (a === b)
53
+ return true;
54
+ if (a === '**' || b === '**')
55
+ return true;
56
+ const aGlob = isGlobSegment(a);
57
+ const bGlob = isGlobSegment(b);
58
+ if (aGlob && bGlob)
59
+ return true; // ambiguous → assume overlap (conservative)
60
+ if (aGlob)
61
+ return globSegmentToRegex(a).test(b);
62
+ if (bGlob)
63
+ return globSegmentToRegex(b).test(a);
64
+ return false; // two distinct literals
65
+ }
66
+ /** Compile a single glob segment to an anchored RegExp (`*`→`.*`, `?`→`.`). */
67
+ function globSegmentToRegex(seg) {
68
+ let re = '';
69
+ for (const ch of seg) {
70
+ if (ch === '*')
71
+ re += '.*';
72
+ else if (ch === '?')
73
+ re += '.';
74
+ else
75
+ re += escapeRegex(ch);
76
+ }
77
+ return new RegExp(`^${re}$`);
78
+ }
79
+ /**
80
+ * Decide whether two scope paths could match a common file (i.e. their allowed
81
+ * sets are NOT provably disjoint). Comparison is segment-wise so that
82
+ * `src/auth` and `src/authz` do NOT overlap, while `src/auth` and
83
+ * `src/auth/jwt.ts` DO (ancestor/descendant). A `**` segment overlaps anything
84
+ * at or below its position.
85
+ *
86
+ * Conservative: returns true (overlap) on any ambiguity.
87
+ */
88
+ export function pathsOverlap(a, b) {
89
+ const segA = segments(a);
90
+ const segB = segments(b);
91
+ // Two empty/root scopes both mean "the whole tree" → overlap.
92
+ if (segA.length === 0 && segB.length === 0)
93
+ return true;
94
+ const len = Math.min(segA.length, segB.length);
95
+ for (let i = 0; i < len; i++) {
96
+ const sa = segA[i];
97
+ const sb = segB[i];
98
+ if (sa === '**' || sb === '**')
99
+ return true; // globstar swallows the rest
100
+ if (!segmentMatches(sa, sb))
101
+ return false; // diverged → disjoint
102
+ }
103
+ // All compared segments matched. If one path is an ancestor of the other
104
+ // (or they are equal), their sets overlap.
105
+ return true;
106
+ }
107
+ /**
108
+ * True when two scope allowlists are provably disjoint (no pair overlaps).
109
+ * Empty/absent scopes are treated as "whole tree" → NOT disjoint.
110
+ */
111
+ export function disjointScopeSets(scopeA, scopeB) {
112
+ if (!scopeA || scopeA.length === 0)
113
+ return false;
114
+ if (!scopeB || scopeB.length === 0)
115
+ return false;
116
+ for (const a of scopeA) {
117
+ for (const b of scopeB) {
118
+ if (pathsOverlap(a, b))
119
+ return false;
120
+ }
121
+ }
122
+ return true;
123
+ }
124
+ /**
125
+ * May two nodes execute concurrently?
126
+ * - read-only kinds (explore/verify) are always parallel-safe;
127
+ * - a `merge` node is never parallel (it must serialize on its branch);
128
+ * - two writers (general/fix) run in parallel only if both declare scopes and
129
+ * those scopes are provably disjoint;
130
+ * - any missing scope on a writer → conservative "not parallel".
131
+ */
132
+ export function canRunParallel(a, b) {
133
+ if (a.kind === 'merge' || b.kind === 'merge')
134
+ return false;
135
+ if (READ_ONLY_KINDS.includes(a.kind) || READ_ONLY_KINDS.includes(b.kind)) {
136
+ return true;
137
+ }
138
+ // Both are writers (general/fix): require provably disjoint scopes.
139
+ if (WRITER_KINDS.includes(a.kind) && WRITER_KINDS.includes(b.kind)) {
140
+ return disjointScopeSets(a.scope, b.scope);
141
+ }
142
+ // Unknown kind combination → conservative.
143
+ return false;
144
+ }
145
+ /**
146
+ * From a set of candidate nodes, pick the largest prefix (in input order) that
147
+ * can ALL run concurrently with each other. Used by the executor to form a
148
+ * parallel wave. The first node is always included.
149
+ */
150
+ export function selectParallelWave(candidates) {
151
+ const wave = [];
152
+ for (const node of candidates) {
153
+ if (wave.every((w) => canRunParallel(w, node)))
154
+ wave.push(node);
155
+ }
156
+ return wave;
157
+ }
158
+ //# sourceMappingURL=conflict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict.js","sourceRoot":"","sources":["../../src/kraken/conflict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Kraken graph engine — pure DAG model & validation (no CLI dependencies).
3
+ *
4
+ * This module is intentionally dependency-free so it lives in @zelari/core
5
+ * and is unit-testable without the CLI. Orchestration (LLM planner, executor,
6
+ * worktree/world-model wiring) lives in the CLI (`src/cli/kraken/`) and imports
7
+ * these primitives. See `.zelari/docs/kraken-graph-engine-plan.md` (CORREZIONE-1).
8
+ *
9
+ * @since v0.10.x — Kraken graph engine (F1)
10
+ */
11
+ /** What a graph node does. Mirrors taskTool kinds plus graph-only kinds. */
12
+ export type TaskNodeKind = 'explore' | 'general' | 'verify' | 'fix' | 'merge';
13
+ /** Lifecycle state of a node within an executing graph. */
14
+ export type TaskNodeStatus = 'pending' | 'running' | 'done' | 'error' | 'skipped';
15
+ /** States that mean "this node will not run (again)". */
16
+ export declare const TERMINAL_STATUSES: readonly TaskNodeStatus[];
17
+ /** A single unit of work in a Kraken task graph. */
18
+ export interface TaskNode {
19
+ /** Unique id within the graph (e.g. `e1`, `g2`, `fix-g1-1`). */
20
+ id: string;
21
+ kind: TaskNodeKind;
22
+ /** Short human label (for radio / status UI). */
23
+ label: string;
24
+ /** Full self-contained prompt handed to the sub-agent. */
25
+ prompt: string;
26
+ /** Optional path/glob allowlist (contract). Required for parallel general/fix. */
27
+ scope?: string[];
28
+ /** Optional acceptance checklist (contract). */
29
+ acceptance?: string[];
30
+ /** Ids of predecessor nodes that must be `done` before this one may start. */
31
+ deps: string[];
32
+ status: TaskNodeStatus;
33
+ /** How many times this node has been retried after a failure. */
34
+ retryCount: number;
35
+ /** Max retries before a fix-node is spawned (or permanent failure). */
36
+ maxRetries: number;
37
+ /** Final sub-agent conclusion (set when `done`). */
38
+ result?: string;
39
+ /** Last error message (set when `error`). */
40
+ error?: string;
41
+ }
42
+ /** A directed acyclic graph of task nodes, keyed by node id. */
43
+ export interface TaskGraph {
44
+ id: string;
45
+ nodes: Map<string, TaskNode>;
46
+ }
47
+ /** Result of {@link validateGraph}. */
48
+ export type GraphValidation = {
49
+ ok: true;
50
+ } | {
51
+ ok: false;
52
+ errors: string[];
53
+ };
54
+ export interface ValidateGraphOptions {
55
+ /** Anti-explosion bound on node count. Default 24 (ZELARI_KRAKEN_MAX_NODES). */
56
+ maxNodes?: number;
57
+ }
58
+ /** Default anti-explosion bound for graph size. */
59
+ export declare const DEFAULT_MAX_NODES = 24;
60
+ /** Build a graph from a flat list of nodes (indexing by id). */
61
+ export declare function createGraph(id: string, nodes: TaskNode[]): TaskGraph;
62
+ /**
63
+ * Validate structural integrity of a graph:
64
+ * - node ids are unique and non-empty
65
+ * - every dep references an existing node
66
+ * - no dependency cycles (the graph is a DAG)
67
+ * - node count within `maxNodes`
68
+ *
69
+ * Pure and side-effect free. Returns all detected errors (not just the first).
70
+ */
71
+ export declare function validateGraph(graph: TaskGraph, opts?: ValidateGraphOptions): GraphValidation;
72
+ /**
73
+ * Nodes that may start now: status `pending` with every dep already `done`.
74
+ * (Deps in `error`/`skipped` do NOT satisfy readiness — the executor decides
75
+ * whether to skip downstream nodes.)
76
+ */
77
+ export declare function getReadyNodes(graph: TaskGraph): TaskNode[];
78
+ /**
79
+ * Group node ids into topological levels (Kahn's algorithm). Level 0 has no
80
+ * deps; level N depends only on levels < N. Useful for ASCII rendering and
81
+ * coarse scheduling. Nodes in a cycle are omitted (validateGraph rejects them).
82
+ */
83
+ export declare function topoLevels(graph: TaskGraph): string[][];
84
+ /** True when no node is `pending` or `running` (execution has settled). */
85
+ export declare function isSettled(graph: TaskGraph): boolean;
86
+ /** True when every node finished successfully (`done` or `skipped`). */
87
+ export declare function isConverged(graph: TaskGraph): boolean;
88
+ /** Ids of nodes in a terminal failure state. */
89
+ export declare function failedNodeIds(graph: TaskGraph): string[];
90
+ /** Count nodes by status (for status UI: "graph 3/8 · 2↑"). */
91
+ export declare function countByStatus(graph: TaskGraph): Record<TaskNodeStatus, number>;
92
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/kraken/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAE9E,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,MAAM,GACN,OAAO,GACP,SAAS,CAAC;AAEd,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAItD,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC9B;AAED,uCAAuC;AACvC,MAAM,MAAM,eAAe,GACvB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpC,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAIpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,IAAI,GAAE,oBAAyB,GAC9B,eAAe,CAoCjB;AAoDD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,EAAE,CAQ1D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE,CAgCvD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAKnD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAMrD;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAMxD;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAU9E"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Kraken graph engine — pure DAG model & validation (no CLI dependencies).
3
+ *
4
+ * This module is intentionally dependency-free so it lives in @zelari/core
5
+ * and is unit-testable without the CLI. Orchestration (LLM planner, executor,
6
+ * worktree/world-model wiring) lives in the CLI (`src/cli/kraken/`) and imports
7
+ * these primitives. See `.zelari/docs/kraken-graph-engine-plan.md` (CORREZIONE-1).
8
+ *
9
+ * @since v0.10.x — Kraken graph engine (F1)
10
+ */
11
+ /** States that mean "this node will not run (again)". */
12
+ export const TERMINAL_STATUSES = [
13
+ 'done',
14
+ 'error',
15
+ 'skipped',
16
+ ];
17
+ /** Default anti-explosion bound for graph size. */
18
+ export const DEFAULT_MAX_NODES = 24;
19
+ /** Build a graph from a flat list of nodes (indexing by id). */
20
+ export function createGraph(id, nodes) {
21
+ const map = new Map();
22
+ for (const n of nodes)
23
+ map.set(n.id, n);
24
+ return { id, nodes: map };
25
+ }
26
+ /**
27
+ * Validate structural integrity of a graph:
28
+ * - node ids are unique and non-empty
29
+ * - every dep references an existing node
30
+ * - no dependency cycles (the graph is a DAG)
31
+ * - node count within `maxNodes`
32
+ *
33
+ * Pure and side-effect free. Returns all detected errors (not just the first).
34
+ */
35
+ export function validateGraph(graph, opts = {}) {
36
+ const maxNodes = opts.maxNodes ?? DEFAULT_MAX_NODES;
37
+ const errors = [];
38
+ const nodes = graph.nodes;
39
+ if (nodes.size === 0) {
40
+ errors.push('graph is empty (no nodes)');
41
+ }
42
+ if (nodes.size > maxNodes) {
43
+ errors.push(`graph has ${nodes.size} nodes, exceeding maxNodes=${maxNodes}`);
44
+ }
45
+ for (const [id, node] of nodes) {
46
+ if (!id || id.trim() === '') {
47
+ errors.push('node with empty id');
48
+ continue;
49
+ }
50
+ if (node.id !== id) {
51
+ errors.push(`node keyed "${id}" has mismatching node.id "${node.id}"`);
52
+ }
53
+ for (const dep of node.deps) {
54
+ if (!nodes.has(dep)) {
55
+ errors.push(`node "${id}" depends on unknown node "${dep}"`);
56
+ }
57
+ if (dep === id) {
58
+ errors.push(`node "${id}" depends on itself`);
59
+ }
60
+ }
61
+ }
62
+ const cycle = findCycle(nodes);
63
+ if (cycle) {
64
+ errors.push(`dependency cycle detected: ${cycle.join(' -> ')}`);
65
+ }
66
+ return errors.length === 0 ? { ok: true } : { ok: false, errors };
67
+ }
68
+ /**
69
+ * Detect a dependency cycle via iterative DFS with white/gray/black coloring.
70
+ * Returns one cycle as an id path (e.g. ['a','b','a']) or null if acyclic.
71
+ */
72
+ function findCycle(nodes) {
73
+ const WHITE = 0;
74
+ const GRAY = 1;
75
+ const BLACK = 2;
76
+ const color = new Map();
77
+ for (const id of nodes.keys())
78
+ color.set(id, WHITE);
79
+ for (const start of nodes.keys()) {
80
+ if (color.get(start) !== WHITE)
81
+ continue;
82
+ // Stack of [nodeId, nextDepIndex]; path tracks the current DFS chain.
83
+ const stack = [[start, 0]];
84
+ const path = [];
85
+ color.set(start, GRAY);
86
+ path.push(start);
87
+ while (stack.length > 0) {
88
+ const top = stack[stack.length - 1];
89
+ const [id, idx] = top;
90
+ const node = nodes.get(id);
91
+ const deps = node ? node.deps : [];
92
+ if (idx < deps.length) {
93
+ top[1] = idx + 1;
94
+ const dep = deps[idx];
95
+ if (!nodes.has(dep))
96
+ continue; // unknown dep — reported by validateGraph
97
+ const c = color.get(dep);
98
+ if (c === GRAY) {
99
+ // Back edge → cycle. Slice the path from the first occurrence of dep.
100
+ const at = path.indexOf(dep);
101
+ return [...path.slice(at), dep];
102
+ }
103
+ if (c === WHITE) {
104
+ color.set(dep, GRAY);
105
+ path.push(dep);
106
+ stack.push([dep, 0]);
107
+ }
108
+ }
109
+ else {
110
+ color.set(id, BLACK);
111
+ path.pop();
112
+ stack.pop();
113
+ }
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ /**
119
+ * Nodes that may start now: status `pending` with every dep already `done`.
120
+ * (Deps in `error`/`skipped` do NOT satisfy readiness — the executor decides
121
+ * whether to skip downstream nodes.)
122
+ */
123
+ export function getReadyNodes(graph) {
124
+ const ready = [];
125
+ for (const node of graph.nodes.values()) {
126
+ if (node.status !== 'pending')
127
+ continue;
128
+ const depsReady = node.deps.every((d) => graph.nodes.get(d)?.status === 'done');
129
+ if (depsReady)
130
+ ready.push(node);
131
+ }
132
+ return ready;
133
+ }
134
+ /**
135
+ * Group node ids into topological levels (Kahn's algorithm). Level 0 has no
136
+ * deps; level N depends only on levels < N. Useful for ASCII rendering and
137
+ * coarse scheduling. Nodes in a cycle are omitted (validateGraph rejects them).
138
+ */
139
+ export function topoLevels(graph) {
140
+ const nodes = graph.nodes;
141
+ const indegree = new Map();
142
+ const dependents = new Map();
143
+ for (const [id, node] of nodes) {
144
+ indegree.set(id, node.deps.filter((d) => nodes.has(d)).length);
145
+ for (const dep of node.deps) {
146
+ if (!nodes.has(dep))
147
+ continue;
148
+ const arr = dependents.get(dep) ?? [];
149
+ arr.push(id);
150
+ dependents.set(dep, arr);
151
+ }
152
+ }
153
+ const levels = [];
154
+ let frontier = [...nodes.keys()].filter((id) => (indegree.get(id) ?? 0) === 0);
155
+ const visited = new Set();
156
+ while (frontier.length > 0) {
157
+ levels.push([...frontier].sort());
158
+ const next = [];
159
+ for (const id of frontier) {
160
+ visited.add(id);
161
+ for (const child of dependents.get(id) ?? []) {
162
+ const d = (indegree.get(child) ?? 0) - 1;
163
+ indegree.set(child, d);
164
+ if (d === 0)
165
+ next.push(child);
166
+ }
167
+ }
168
+ frontier = next;
169
+ }
170
+ return levels;
171
+ }
172
+ /** True when no node is `pending` or `running` (execution has settled). */
173
+ export function isSettled(graph) {
174
+ for (const node of graph.nodes.values()) {
175
+ if (node.status === 'pending' || node.status === 'running')
176
+ return false;
177
+ }
178
+ return true;
179
+ }
180
+ /** True when every node finished successfully (`done` or `skipped`). */
181
+ export function isConverged(graph) {
182
+ if (graph.nodes.size === 0)
183
+ return false;
184
+ for (const node of graph.nodes.values()) {
185
+ if (node.status !== 'done' && node.status !== 'skipped')
186
+ return false;
187
+ }
188
+ return true;
189
+ }
190
+ /** Ids of nodes in a terminal failure state. */
191
+ export function failedNodeIds(graph) {
192
+ const out = [];
193
+ for (const node of graph.nodes.values()) {
194
+ if (node.status === 'error')
195
+ out.push(node.id);
196
+ }
197
+ return out;
198
+ }
199
+ /** Count nodes by status (for status UI: "graph 3/8 · 2↑"). */
200
+ export function countByStatus(graph) {
201
+ const counts = {
202
+ pending: 0,
203
+ running: 0,
204
+ done: 0,
205
+ error: 0,
206
+ skipped: 0,
207
+ };
208
+ for (const node of graph.nodes.values())
209
+ counts[node.status] += 1;
210
+ return counts;
211
+ }
212
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/kraken/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Kraken graph engine — public surface (pure DAG primitives).
3
+ *
4
+ * Orchestration (planner/executor/worktree/world-model wiring) lives in the
5
+ * CLI and is NOT exported here. See `.zelari/docs/kraken-graph-engine-plan.md`.
6
+ */
7
+ export * from './graph.js';
8
+ export * from './conflict.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kraken/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Kraken graph engine — public surface (pure DAG primitives).
3
+ *
4
+ * Orchestration (planner/executor/worktree/world-model wiring) lives in the
5
+ * CLI and is NOT exported here. See `.zelari/docs/kraken-graph-engine-plan.md`.
6
+ */
7
+ export * from './graph.js';
8
+ export * from './conflict.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kraken/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
@@ -9,8 +9,8 @@ export * from '../agents/advancedTools.js';
9
9
  export * from '../agents/vaultTools.js';
10
10
  export { cliToolToEnhanced } from '../agents/harnessToolBridge.js';
11
11
  export type { EnhancedToolDefinition } from '../types/systemTypes.js';
12
- export { SINGLE_AGENT_IDENTITY_MODULE, getBasePromptModules, CODING_PRACTICES_MODULE, NATIVE_TOOL_PROTOCOL_MODULE, CLARIFICATION_PROTOCOL_MODULE, } from '../agents/promptModules.js';
13
- export type { PromptPackMode } from '../agents/promptModules.js';
12
+ export { KRAKEN_IDENTITY_MODULE, KRAKEN_LEAD_PLAYBOOK_MODULE, SINGLE_AGENT_IDENTITY_MODULE, getBasePromptModules, CODING_PRACTICES_MODULE, NATIVE_TOOL_PROTOCOL_MODULE, CLARIFICATION_PROTOCOL_MODULE, } from '../agents/promptModules.js';
13
+ export type { PromptPackMode, LegacyPromptPackMode } from '../agents/promptModules.js';
14
14
  export { buildSystemPrompt, buildSystemPromptSplit, systemMessagesFromSplit, } from '../agents/systemPromptBuilder.js';
15
15
  export type { BuildSystemPromptOptions } from '../agents/systemPromptBuilder.js';
16
16
  export { detectResponseLanguage, resolveResponseLanguage, buildLanguageDirective, buildLanguagePolicyModule, buildLanguagePolicyModuleFor, LANGUAGE_POLICY_MODULE_TYPE, } from '../agents/languagePolicy.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -8,7 +8,7 @@ export * from '../agents/toolSchemas.js';
8
8
  export * from '../agents/advancedTools.js';
9
9
  export * from '../agents/vaultTools.js';
10
10
  export { cliToolToEnhanced } from '../agents/harnessToolBridge.js';
11
- export { SINGLE_AGENT_IDENTITY_MODULE, getBasePromptModules, CODING_PRACTICES_MODULE, NATIVE_TOOL_PROTOCOL_MODULE, CLARIFICATION_PROTOCOL_MODULE, } from '../agents/promptModules.js';
11
+ export { KRAKEN_IDENTITY_MODULE, KRAKEN_LEAD_PLAYBOOK_MODULE, SINGLE_AGENT_IDENTITY_MODULE, getBasePromptModules, CODING_PRACTICES_MODULE, NATIVE_TOOL_PROTOCOL_MODULE, CLARIFICATION_PROTOCOL_MODULE, } from '../agents/promptModules.js';
12
12
  export { buildSystemPrompt, buildSystemPromptSplit, systemMessagesFromSplit, } from '../agents/systemPromptBuilder.js';
13
13
  export { detectResponseLanguage, resolveResponseLanguage, buildLanguageDirective, buildLanguagePolicyModule, buildLanguagePolicyModuleFor, LANGUAGE_POLICY_MODULE_TYPE, } from '../agents/languagePolicy.js';
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zelari/core",
3
- "version": "1.25.0",
3
+ "version": "1.27.0",
4
4
  "description": "Zelari Code core library — provider-neutral agent loop (AgentHarness), multi-agent council orchestration, and built-in skills. Used by the zelari-code CLI; consumable by other agent frontends.",
5
5
  "author": "Anathema Studio <https://anathema-studio.com/>",
6
6
  "license": "MIT",