@cleocode/cleo 2026.3.45 → 2026.3.46

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/dist/mcp/index.js CHANGED
@@ -34593,7 +34593,7 @@ async function ensureInjection(projectRoot) {
34593
34593
  }
34594
34594
  }
34595
34595
  const agentsMdPath = join36(projectRoot, "AGENTS.md");
34596
- const agentsMdLines = ["@~/.cleo/templates/CLEO-INJECTION.md"];
34596
+ const agentsMdLines = ["@~/.agents/AGENTS.md"];
34597
34597
  const projectContextPath = join36(projectRoot, ".cleo", "project-context.json");
34598
34598
  if (existsSync33(projectContextPath)) {
34599
34599
  agentsMdLines.push("@.cleo/project-context.json");
@@ -34606,7 +34606,8 @@ async function ensureInjection(projectRoot) {
34606
34606
  if (contributorBlock) {
34607
34607
  agentsMdLines.push(contributorBlock);
34608
34608
  }
34609
- const agentsAction = await inject2(agentsMdPath, agentsMdLines.join("\n"));
34609
+ const agentsMdContent = agentsMdLines.join("\n");
34610
+ const agentsAction = await inject2(agentsMdPath, agentsMdContent);
34610
34611
  actions.push(`AGENTS.md CLEO content (${agentsAction})`);
34611
34612
  const content = getInjectionTemplateContent();
34612
34613
  if (content) {
@@ -34621,8 +34622,9 @@ async function ensureInjection(projectRoot) {
34621
34622
  try {
34622
34623
  const globalAgentsDir = getAgentsHome();
34623
34624
  const globalAgentsMd = join36(globalAgentsDir, "AGENTS.md");
34625
+ const globalHubContent = "@~/.cleo/templates/CLEO-INJECTION.md";
34624
34626
  await mkdir4(globalAgentsDir, { recursive: true });
34625
- await inject2(globalAgentsMd, "@~/.cleo/templates/CLEO-INJECTION.md");
34627
+ await inject2(globalAgentsMd, globalHubContent);
34626
34628
  } catch {
34627
34629
  }
34628
34630
  return {
@@ -35130,7 +35132,7 @@ async function ensureProjectContext(projectRoot, opts) {
35130
35132
  try {
35131
35133
  const schemaPath = join37(
35132
35134
  dirname8(fileURLToPath4(import.meta.url)),
35133
- "../../schemas/project-context.schema.json"
35135
+ "../schemas/project-context.schema.json"
35134
35136
  );
35135
35137
  if (existsSync34(schemaPath)) {
35136
35138
  const AjvModule2 = await import("ajv");
@@ -35571,11 +35573,9 @@ async function ensureGlobalTemplates() {
35571
35573
  return { action: "created", path: injectionPath };
35572
35574
  }
35573
35575
  async function ensureGlobalScaffold() {
35574
- const { ensureGlobalSchemas: ensureGlobalSchemas2 } = await Promise.resolve().then(() => (init_schema_management(), schema_management_exports));
35575
35576
  const home = await ensureGlobalHome();
35576
- const schemas = ensureGlobalSchemas2();
35577
35577
  const templates2 = await ensureGlobalTemplates();
35578
- return { home, schemas, templates: templates2 };
35578
+ return { home, templates: templates2 };
35579
35579
  }
35580
35580
  function checkGlobalHome() {
35581
35581
  const cleoHome = getCleoHome();
@@ -35709,7 +35709,7 @@ metrics/
35709
35709
  .backups/
35710
35710
  backups/
35711
35711
  `;
35712
- REQUIRED_GLOBAL_SUBDIRS = ["schemas", "templates"];
35712
+ REQUIRED_GLOBAL_SUBDIRS = ["logs", "templates"];
35713
35713
  }
35714
35714
  });
35715
35715
 
@@ -46879,8 +46879,8 @@ var init_release_config = __esm({
46879
46879
  // packages/core/src/release/ci.ts
46880
46880
  import { existsSync as existsSync60, mkdirSync as mkdirSync12, readFileSync as readFileSync42, writeFileSync as writeFileSync6 } from "node:fs";
46881
46881
  import { dirname as dirname13, join as join63 } from "node:path";
46882
- function getPlatformPath(platform3) {
46883
- return PLATFORM_PATHS[platform3];
46882
+ function getPlatformPath(platform5) {
46883
+ return PLATFORM_PATHS[platform5];
46884
46884
  }
46885
46885
  function detectCIPlatform(projectDir) {
46886
46886
  const dir = projectDir ?? process.cwd();
@@ -46974,10 +46974,10 @@ workflows:
46974
46974
  only: /^v.*/
46975
46975
  `;
46976
46976
  }
46977
- function generateCIConfig(platform3, cwd) {
46977
+ function generateCIConfig(platform5, cwd) {
46978
46978
  const releaseConfig = loadReleaseConfig(cwd);
46979
46979
  const gates = releaseConfig.gates.map((g) => ({ name: g.name, command: g.command }));
46980
- switch (platform3) {
46980
+ switch (platform5) {
46981
46981
  case "github-actions":
46982
46982
  return generateGitHubActions({ gates });
46983
46983
  case "gitlab-ci":
@@ -46986,10 +46986,10 @@ function generateCIConfig(platform3, cwd) {
46986
46986
  return generateCircleCI({ gates });
46987
46987
  }
46988
46988
  }
46989
- function writeCIConfig(platform3, options = {}) {
46989
+ function writeCIConfig(platform5, options = {}) {
46990
46990
  const projectDir = options.projectDir ?? process.cwd();
46991
- const outputPath = join63(projectDir, getPlatformPath(platform3));
46992
- const content = generateCIConfig(platform3, projectDir);
46991
+ const outputPath = join63(projectDir, getPlatformPath(platform5));
46992
+ const content = generateCIConfig(platform5, projectDir);
46993
46993
  if (options.dryRun) {
46994
46994
  return { action: "would_write", path: outputPath, content };
46995
46995
  }
@@ -46997,9 +46997,9 @@ function writeCIConfig(platform3, options = {}) {
46997
46997
  writeFileSync6(outputPath, content, "utf-8");
46998
46998
  return { action: "wrote", path: outputPath, content };
46999
46999
  }
47000
- function validateCIConfig(platform3, projectDir) {
47000
+ function validateCIConfig(platform5, projectDir) {
47001
47001
  const dir = projectDir ?? process.cwd();
47002
- const configPath = join63(dir, getPlatformPath(platform3));
47002
+ const configPath = join63(dir, getPlatformPath(platform5));
47003
47003
  if (!existsSync60(configPath)) {
47004
47004
  return { valid: false, exists: false, errors: ["Config file not found"] };
47005
47005
  }
@@ -48702,239 +48702,1463 @@ var init_capability_matrix = __esm({
48702
48702
  CAPABILITY_MATRIX = [
48703
48703
  // === Tasks Domain ===
48704
48704
  // Query operations
48705
- { domain: "tasks", operation: "show", gateway: "query", mode: "native" },
48706
- { domain: "tasks", operation: "list", gateway: "query", mode: "native" },
48707
- { domain: "tasks", operation: "find", gateway: "query", mode: "native" },
48708
- { domain: "tasks", operation: "tree", gateway: "query", mode: "native" },
48709
- { domain: "tasks", operation: "blockers", gateway: "query", mode: "native" },
48710
- { domain: "tasks", operation: "depends", gateway: "query", mode: "native" },
48711
- { domain: "tasks", operation: "analyze", gateway: "query", mode: "native" },
48712
- { domain: "tasks", operation: "next", gateway: "query", mode: "native" },
48713
- { domain: "tasks", operation: "plan", gateway: "query", mode: "native" },
48714
- { domain: "tasks", operation: "relates", gateway: "query", mode: "native" },
48715
- { domain: "tasks", operation: "complexity.estimate", gateway: "query", mode: "native" },
48716
- { domain: "tasks", operation: "history", gateway: "query", mode: "native" },
48717
- { domain: "tasks", operation: "current", gateway: "query", mode: "native" },
48718
- { domain: "tasks", operation: "label.list", gateway: "query", mode: "native" },
48705
+ { domain: "tasks", operation: "show", gateway: "query", mode: "native", preferredChannel: "mcp" },
48706
+ { domain: "tasks", operation: "list", gateway: "query", mode: "native", preferredChannel: "mcp" },
48707
+ { domain: "tasks", operation: "find", gateway: "query", mode: "native", preferredChannel: "mcp" },
48708
+ {
48709
+ domain: "tasks",
48710
+ operation: "tree",
48711
+ gateway: "query",
48712
+ mode: "native",
48713
+ preferredChannel: "either"
48714
+ },
48715
+ {
48716
+ domain: "tasks",
48717
+ operation: "blockers",
48718
+ gateway: "query",
48719
+ mode: "native",
48720
+ preferredChannel: "either"
48721
+ },
48722
+ {
48723
+ domain: "tasks",
48724
+ operation: "depends",
48725
+ gateway: "query",
48726
+ mode: "native",
48727
+ preferredChannel: "either"
48728
+ },
48729
+ {
48730
+ domain: "tasks",
48731
+ operation: "analyze",
48732
+ gateway: "query",
48733
+ mode: "native",
48734
+ preferredChannel: "either"
48735
+ },
48736
+ { domain: "tasks", operation: "next", gateway: "query", mode: "native", preferredChannel: "mcp" },
48737
+ { domain: "tasks", operation: "plan", gateway: "query", mode: "native", preferredChannel: "mcp" },
48738
+ {
48739
+ domain: "tasks",
48740
+ operation: "relates",
48741
+ gateway: "query",
48742
+ mode: "native",
48743
+ preferredChannel: "either"
48744
+ },
48745
+ {
48746
+ domain: "tasks",
48747
+ operation: "complexity.estimate",
48748
+ gateway: "query",
48749
+ mode: "native",
48750
+ preferredChannel: "either"
48751
+ },
48752
+ {
48753
+ domain: "tasks",
48754
+ operation: "history",
48755
+ gateway: "query",
48756
+ mode: "native",
48757
+ preferredChannel: "either"
48758
+ },
48759
+ {
48760
+ domain: "tasks",
48761
+ operation: "current",
48762
+ gateway: "query",
48763
+ mode: "native",
48764
+ preferredChannel: "mcp"
48765
+ },
48766
+ {
48767
+ domain: "tasks",
48768
+ operation: "label.list",
48769
+ gateway: "query",
48770
+ mode: "native",
48771
+ preferredChannel: "either"
48772
+ },
48719
48773
  // Mutate operations
48720
- { domain: "tasks", operation: "add", gateway: "mutate", mode: "native" },
48721
- { domain: "tasks", operation: "update", gateway: "mutate", mode: "native" },
48722
- { domain: "tasks", operation: "complete", gateway: "mutate", mode: "native" },
48723
- { domain: "tasks", operation: "cancel", gateway: "mutate", mode: "native" },
48724
- { domain: "tasks", operation: "delete", gateway: "mutate", mode: "native" },
48725
- { domain: "tasks", operation: "archive", gateway: "mutate", mode: "native" },
48726
- { domain: "tasks", operation: "restore", gateway: "mutate", mode: "native" },
48727
- { domain: "tasks", operation: "reparent", gateway: "mutate", mode: "native" },
48728
- { domain: "tasks", operation: "reorder", gateway: "mutate", mode: "native" },
48729
- { domain: "tasks", operation: "relates.add", gateway: "mutate", mode: "native" },
48730
- { domain: "tasks", operation: "start", gateway: "mutate", mode: "native" },
48731
- { domain: "tasks", operation: "stop", gateway: "mutate", mode: "native" },
48774
+ { domain: "tasks", operation: "add", gateway: "mutate", mode: "native", preferredChannel: "mcp" },
48775
+ {
48776
+ domain: "tasks",
48777
+ operation: "update",
48778
+ gateway: "mutate",
48779
+ mode: "native",
48780
+ preferredChannel: "mcp"
48781
+ },
48782
+ {
48783
+ domain: "tasks",
48784
+ operation: "complete",
48785
+ gateway: "mutate",
48786
+ mode: "native",
48787
+ preferredChannel: "mcp"
48788
+ },
48789
+ {
48790
+ domain: "tasks",
48791
+ operation: "cancel",
48792
+ gateway: "mutate",
48793
+ mode: "native",
48794
+ preferredChannel: "either"
48795
+ },
48796
+ {
48797
+ domain: "tasks",
48798
+ operation: "delete",
48799
+ gateway: "mutate",
48800
+ mode: "native",
48801
+ preferredChannel: "either"
48802
+ },
48803
+ {
48804
+ domain: "tasks",
48805
+ operation: "archive",
48806
+ gateway: "mutate",
48807
+ mode: "native",
48808
+ preferredChannel: "either"
48809
+ },
48810
+ {
48811
+ domain: "tasks",
48812
+ operation: "restore",
48813
+ gateway: "mutate",
48814
+ mode: "native",
48815
+ preferredChannel: "either"
48816
+ },
48817
+ {
48818
+ domain: "tasks",
48819
+ operation: "reparent",
48820
+ gateway: "mutate",
48821
+ mode: "native",
48822
+ preferredChannel: "either"
48823
+ },
48824
+ {
48825
+ domain: "tasks",
48826
+ operation: "reorder",
48827
+ gateway: "mutate",
48828
+ mode: "native",
48829
+ preferredChannel: "either"
48830
+ },
48831
+ {
48832
+ domain: "tasks",
48833
+ operation: "relates.add",
48834
+ gateway: "mutate",
48835
+ mode: "native",
48836
+ preferredChannel: "either"
48837
+ },
48838
+ {
48839
+ domain: "tasks",
48840
+ operation: "start",
48841
+ gateway: "mutate",
48842
+ mode: "native",
48843
+ preferredChannel: "mcp"
48844
+ },
48845
+ {
48846
+ domain: "tasks",
48847
+ operation: "stop",
48848
+ gateway: "mutate",
48849
+ mode: "native",
48850
+ preferredChannel: "mcp"
48851
+ },
48732
48852
  // Sync sub-domain (provider-agnostic task reconciliation)
48733
- { domain: "tasks", operation: "sync.reconcile", gateway: "mutate", mode: "native" },
48734
- { domain: "tasks", operation: "sync.links", gateway: "query", mode: "native" },
48735
- { domain: "tasks", operation: "sync.links.remove", gateway: "mutate", mode: "native" },
48853
+ {
48854
+ domain: "tasks",
48855
+ operation: "sync.reconcile",
48856
+ gateway: "mutate",
48857
+ mode: "native",
48858
+ preferredChannel: "either"
48859
+ },
48860
+ {
48861
+ domain: "tasks",
48862
+ operation: "sync.links",
48863
+ gateway: "query",
48864
+ mode: "native",
48865
+ preferredChannel: "either"
48866
+ },
48867
+ {
48868
+ domain: "tasks",
48869
+ operation: "sync.links.remove",
48870
+ gateway: "mutate",
48871
+ mode: "native",
48872
+ preferredChannel: "either"
48873
+ },
48736
48874
  // === Session Domain ===
48737
48875
  // Query operations
48738
- { domain: "session", operation: "status", gateway: "query", mode: "native" },
48739
- { domain: "session", operation: "list", gateway: "query", mode: "native" },
48740
- { domain: "session", operation: "show", gateway: "query", mode: "native" },
48741
- { domain: "session", operation: "decision.log", gateway: "query", mode: "native" },
48742
- { domain: "session", operation: "context.drift", gateway: "query", mode: "native" },
48743
- { domain: "session", operation: "handoff.show", gateway: "query", mode: "native" },
48744
- { domain: "session", operation: "briefing.show", gateway: "query", mode: "native" },
48745
- { domain: "session", operation: "find", gateway: "query", mode: "native" },
48876
+ {
48877
+ domain: "session",
48878
+ operation: "status",
48879
+ gateway: "query",
48880
+ mode: "native",
48881
+ preferredChannel: "mcp"
48882
+ },
48883
+ {
48884
+ domain: "session",
48885
+ operation: "list",
48886
+ gateway: "query",
48887
+ mode: "native",
48888
+ preferredChannel: "either"
48889
+ },
48890
+ {
48891
+ domain: "session",
48892
+ operation: "show",
48893
+ gateway: "query",
48894
+ mode: "native",
48895
+ preferredChannel: "either"
48896
+ },
48897
+ {
48898
+ domain: "session",
48899
+ operation: "decision.log",
48900
+ gateway: "query",
48901
+ mode: "native",
48902
+ preferredChannel: "either"
48903
+ },
48904
+ {
48905
+ domain: "session",
48906
+ operation: "context.drift",
48907
+ gateway: "query",
48908
+ mode: "native",
48909
+ preferredChannel: "either"
48910
+ },
48911
+ {
48912
+ domain: "session",
48913
+ operation: "handoff.show",
48914
+ gateway: "query",
48915
+ mode: "native",
48916
+ preferredChannel: "mcp"
48917
+ },
48918
+ {
48919
+ domain: "session",
48920
+ operation: "briefing.show",
48921
+ gateway: "query",
48922
+ mode: "native",
48923
+ preferredChannel: "mcp"
48924
+ },
48925
+ {
48926
+ domain: "session",
48927
+ operation: "find",
48928
+ gateway: "query",
48929
+ mode: "native",
48930
+ preferredChannel: "either"
48931
+ },
48746
48932
  // Mutate operations
48747
- { domain: "session", operation: "start", gateway: "mutate", mode: "native" },
48748
- { domain: "session", operation: "end", gateway: "mutate", mode: "native" },
48749
- { domain: "session", operation: "resume", gateway: "mutate", mode: "native" },
48750
- { domain: "session", operation: "suspend", gateway: "mutate", mode: "native" },
48751
- { domain: "session", operation: "gc", gateway: "mutate", mode: "native" },
48752
- { domain: "session", operation: "record.decision", gateway: "mutate", mode: "native" },
48753
- { domain: "session", operation: "record.assumption", gateway: "mutate", mode: "native" },
48933
+ {
48934
+ domain: "session",
48935
+ operation: "start",
48936
+ gateway: "mutate",
48937
+ mode: "native",
48938
+ preferredChannel: "mcp"
48939
+ },
48940
+ {
48941
+ domain: "session",
48942
+ operation: "end",
48943
+ gateway: "mutate",
48944
+ mode: "native",
48945
+ preferredChannel: "mcp"
48946
+ },
48947
+ {
48948
+ domain: "session",
48949
+ operation: "resume",
48950
+ gateway: "mutate",
48951
+ mode: "native",
48952
+ preferredChannel: "either"
48953
+ },
48954
+ {
48955
+ domain: "session",
48956
+ operation: "suspend",
48957
+ gateway: "mutate",
48958
+ mode: "native",
48959
+ preferredChannel: "either"
48960
+ },
48961
+ {
48962
+ domain: "session",
48963
+ operation: "gc",
48964
+ gateway: "mutate",
48965
+ mode: "native",
48966
+ preferredChannel: "either"
48967
+ },
48968
+ {
48969
+ domain: "session",
48970
+ operation: "record.decision",
48971
+ gateway: "mutate",
48972
+ mode: "native",
48973
+ preferredChannel: "either"
48974
+ },
48975
+ {
48976
+ domain: "session",
48977
+ operation: "record.assumption",
48978
+ gateway: "mutate",
48979
+ mode: "native",
48980
+ preferredChannel: "either"
48981
+ },
48754
48982
  // === Admin Domain ===
48755
48983
  // Query operations
48756
- { domain: "admin", operation: "version", gateway: "query", mode: "native" },
48757
- { domain: "admin", operation: "health", gateway: "query", mode: "native" },
48758
- { domain: "admin", operation: "config.show", gateway: "query", mode: "native" },
48759
- { domain: "admin", operation: "stats", gateway: "query", mode: "native" },
48760
- { domain: "admin", operation: "context", gateway: "query", mode: "native" },
48761
- { domain: "admin", operation: "runtime", gateway: "query", mode: "native" },
48762
- { domain: "admin", operation: "job", gateway: "query", mode: "native" },
48763
- { domain: "admin", operation: "dash", gateway: "query", mode: "native" },
48764
- { domain: "admin", operation: "log", gateway: "query", mode: "native" },
48765
- { domain: "admin", operation: "sequence", gateway: "query", mode: "native" },
48766
- { domain: "admin", operation: "help", gateway: "query", mode: "native" },
48767
- { domain: "admin", operation: "token", gateway: "query", mode: "native" },
48768
- { domain: "admin", operation: "export", gateway: "query", mode: "native" },
48769
- { domain: "admin", operation: "adr.show", gateway: "query", mode: "native" },
48770
- { domain: "admin", operation: "adr.find", gateway: "query", mode: "native" },
48984
+ {
48985
+ domain: "admin",
48986
+ operation: "version",
48987
+ gateway: "query",
48988
+ mode: "native",
48989
+ preferredChannel: "either"
48990
+ },
48991
+ {
48992
+ domain: "admin",
48993
+ operation: "health",
48994
+ gateway: "query",
48995
+ mode: "native",
48996
+ preferredChannel: "either"
48997
+ },
48998
+ {
48999
+ domain: "admin",
49000
+ operation: "config.show",
49001
+ gateway: "query",
49002
+ mode: "native",
49003
+ preferredChannel: "either"
49004
+ },
49005
+ {
49006
+ domain: "admin",
49007
+ operation: "stats",
49008
+ gateway: "query",
49009
+ mode: "native",
49010
+ preferredChannel: "either"
49011
+ },
49012
+ {
49013
+ domain: "admin",
49014
+ operation: "context",
49015
+ gateway: "query",
49016
+ mode: "native",
49017
+ preferredChannel: "either"
49018
+ },
49019
+ {
49020
+ domain: "admin",
49021
+ operation: "runtime",
49022
+ gateway: "query",
49023
+ mode: "native",
49024
+ preferredChannel: "either"
49025
+ },
49026
+ {
49027
+ domain: "admin",
49028
+ operation: "job",
49029
+ gateway: "query",
49030
+ mode: "native",
49031
+ preferredChannel: "either"
49032
+ },
49033
+ { domain: "admin", operation: "dash", gateway: "query", mode: "native", preferredChannel: "mcp" },
49034
+ {
49035
+ domain: "admin",
49036
+ operation: "log",
49037
+ gateway: "query",
49038
+ mode: "native",
49039
+ preferredChannel: "either"
49040
+ },
49041
+ {
49042
+ domain: "admin",
49043
+ operation: "sequence",
49044
+ gateway: "query",
49045
+ mode: "native",
49046
+ preferredChannel: "either"
49047
+ },
49048
+ { domain: "admin", operation: "help", gateway: "query", mode: "native", preferredChannel: "mcp" },
49049
+ {
49050
+ domain: "admin",
49051
+ operation: "token",
49052
+ gateway: "query",
49053
+ mode: "native",
49054
+ preferredChannel: "either"
49055
+ },
49056
+ {
49057
+ domain: "admin",
49058
+ operation: "export",
49059
+ gateway: "query",
49060
+ mode: "native",
49061
+ preferredChannel: "either"
49062
+ },
49063
+ {
49064
+ domain: "admin",
49065
+ operation: "adr.show",
49066
+ gateway: "query",
49067
+ mode: "native",
49068
+ preferredChannel: "either"
49069
+ },
49070
+ {
49071
+ domain: "admin",
49072
+ operation: "adr.find",
49073
+ gateway: "query",
49074
+ mode: "native",
49075
+ preferredChannel: "either"
49076
+ },
49077
+ { domain: "admin", operation: "map", gateway: "query", mode: "native", preferredChannel: "mcp" },
48771
49078
  // Mutate operations
48772
- { domain: "admin", operation: "init", gateway: "mutate", mode: "native" },
48773
- { domain: "admin", operation: "config.set", gateway: "mutate", mode: "native" },
48774
- { domain: "admin", operation: "backup", gateway: "mutate", mode: "native" },
48775
- { domain: "admin", operation: "migrate", gateway: "mutate", mode: "native" },
48776
- { domain: "admin", operation: "cleanup", gateway: "mutate", mode: "native" },
48777
- { domain: "admin", operation: "safestop", gateway: "mutate", mode: "native" },
48778
- { domain: "admin", operation: "inject.generate", gateway: "mutate", mode: "native" },
48779
- { domain: "admin", operation: "job.cancel", gateway: "mutate", mode: "native" },
48780
- { domain: "admin", operation: "install.global", gateway: "mutate", mode: "native" },
48781
- { domain: "admin", operation: "token", gateway: "mutate", mode: "native" },
48782
- { domain: "admin", operation: "health", gateway: "mutate", mode: "native" },
48783
- { domain: "admin", operation: "detect", gateway: "mutate", mode: "native" },
48784
- { domain: "admin", operation: "import", gateway: "mutate", mode: "native" },
48785
- { domain: "admin", operation: "context.inject", gateway: "mutate", mode: "native" },
48786
- { domain: "admin", operation: "adr.sync", gateway: "mutate", mode: "native" },
49079
+ {
49080
+ domain: "admin",
49081
+ operation: "init",
49082
+ gateway: "mutate",
49083
+ mode: "native",
49084
+ preferredChannel: "either"
49085
+ },
49086
+ {
49087
+ domain: "admin",
49088
+ operation: "config.set",
49089
+ gateway: "mutate",
49090
+ mode: "native",
49091
+ preferredChannel: "either"
49092
+ },
49093
+ {
49094
+ domain: "admin",
49095
+ operation: "backup",
49096
+ gateway: "mutate",
49097
+ mode: "native",
49098
+ preferredChannel: "either"
49099
+ },
49100
+ {
49101
+ domain: "admin",
49102
+ operation: "migrate",
49103
+ gateway: "mutate",
49104
+ mode: "native",
49105
+ preferredChannel: "either"
49106
+ },
49107
+ {
49108
+ domain: "admin",
49109
+ operation: "cleanup",
49110
+ gateway: "mutate",
49111
+ mode: "native",
49112
+ preferredChannel: "either"
49113
+ },
49114
+ {
49115
+ domain: "admin",
49116
+ operation: "safestop",
49117
+ gateway: "mutate",
49118
+ mode: "native",
49119
+ preferredChannel: "either"
49120
+ },
49121
+ {
49122
+ domain: "admin",
49123
+ operation: "inject.generate",
49124
+ gateway: "mutate",
49125
+ mode: "native",
49126
+ preferredChannel: "either"
49127
+ },
49128
+ {
49129
+ domain: "admin",
49130
+ operation: "job.cancel",
49131
+ gateway: "mutate",
49132
+ mode: "native",
49133
+ preferredChannel: "either"
49134
+ },
49135
+ {
49136
+ domain: "admin",
49137
+ operation: "install.global",
49138
+ gateway: "mutate",
49139
+ mode: "native",
49140
+ preferredChannel: "either"
49141
+ },
49142
+ {
49143
+ domain: "admin",
49144
+ operation: "token",
49145
+ gateway: "mutate",
49146
+ mode: "native",
49147
+ preferredChannel: "either"
49148
+ },
49149
+ {
49150
+ domain: "admin",
49151
+ operation: "health",
49152
+ gateway: "mutate",
49153
+ mode: "native",
49154
+ preferredChannel: "either"
49155
+ },
49156
+ {
49157
+ domain: "admin",
49158
+ operation: "detect",
49159
+ gateway: "mutate",
49160
+ mode: "native",
49161
+ preferredChannel: "either"
49162
+ },
49163
+ {
49164
+ domain: "admin",
49165
+ operation: "import",
49166
+ gateway: "mutate",
49167
+ mode: "native",
49168
+ preferredChannel: "either"
49169
+ },
49170
+ {
49171
+ domain: "admin",
49172
+ operation: "context.inject",
49173
+ gateway: "mutate",
49174
+ mode: "native",
49175
+ preferredChannel: "either"
49176
+ },
49177
+ {
49178
+ domain: "admin",
49179
+ operation: "adr.sync",
49180
+ gateway: "mutate",
49181
+ mode: "native",
49182
+ preferredChannel: "either"
49183
+ },
49184
+ {
49185
+ domain: "admin",
49186
+ operation: "map",
49187
+ gateway: "mutate",
49188
+ mode: "native",
49189
+ preferredChannel: "either"
49190
+ },
48787
49191
  // === Check Domain ===
48788
49192
  // Query operations
48789
- { domain: "check", operation: "schema", gateway: "query", mode: "native" },
48790
- { domain: "check", operation: "protocol", gateway: "query", mode: "native" },
48791
- { domain: "check", operation: "task", gateway: "query", mode: "native" },
48792
- { domain: "check", operation: "manifest", gateway: "query", mode: "native" },
48793
- { domain: "check", operation: "output", gateway: "query", mode: "native" },
48794
- { domain: "check", operation: "compliance.summary", gateway: "query", mode: "native" },
48795
- { domain: "check", operation: "test", gateway: "query", mode: "native" },
48796
- { domain: "check", operation: "coherence", gateway: "query", mode: "native" },
48797
- { domain: "check", operation: "gate.status", gateway: "query", mode: "native" },
48798
- { domain: "check", operation: "archive.stats", gateway: "query", mode: "native" },
48799
- { domain: "check", operation: "grade", gateway: "query", mode: "native" },
48800
- { domain: "check", operation: "grade.list", gateway: "query", mode: "native" },
48801
- { domain: "check", operation: "chain.validate", gateway: "query", mode: "native" },
49193
+ {
49194
+ domain: "check",
49195
+ operation: "schema",
49196
+ gateway: "query",
49197
+ mode: "native",
49198
+ preferredChannel: "either"
49199
+ },
49200
+ {
49201
+ domain: "check",
49202
+ operation: "protocol",
49203
+ gateway: "query",
49204
+ mode: "native",
49205
+ preferredChannel: "either"
49206
+ },
49207
+ {
49208
+ domain: "check",
49209
+ operation: "task",
49210
+ gateway: "query",
49211
+ mode: "native",
49212
+ preferredChannel: "either"
49213
+ },
49214
+ {
49215
+ domain: "check",
49216
+ operation: "manifest",
49217
+ gateway: "query",
49218
+ mode: "native",
49219
+ preferredChannel: "either"
49220
+ },
49221
+ {
49222
+ domain: "check",
49223
+ operation: "output",
49224
+ gateway: "query",
49225
+ mode: "native",
49226
+ preferredChannel: "either"
49227
+ },
49228
+ {
49229
+ domain: "check",
49230
+ operation: "compliance.summary",
49231
+ gateway: "query",
49232
+ mode: "native",
49233
+ preferredChannel: "mcp"
49234
+ },
49235
+ {
49236
+ domain: "check",
49237
+ operation: "test",
49238
+ gateway: "query",
49239
+ mode: "native",
49240
+ preferredChannel: "either"
49241
+ },
49242
+ {
49243
+ domain: "check",
49244
+ operation: "coherence",
49245
+ gateway: "query",
49246
+ mode: "native",
49247
+ preferredChannel: "either"
49248
+ },
49249
+ {
49250
+ domain: "check",
49251
+ operation: "gate.status",
49252
+ gateway: "query",
49253
+ mode: "native",
49254
+ preferredChannel: "either"
49255
+ },
49256
+ {
49257
+ domain: "check",
49258
+ operation: "archive.stats",
49259
+ gateway: "query",
49260
+ mode: "native",
49261
+ preferredChannel: "either"
49262
+ },
49263
+ {
49264
+ domain: "check",
49265
+ operation: "grade",
49266
+ gateway: "query",
49267
+ mode: "native",
49268
+ preferredChannel: "either"
49269
+ },
49270
+ {
49271
+ domain: "check",
49272
+ operation: "grade.list",
49273
+ gateway: "query",
49274
+ mode: "native",
49275
+ preferredChannel: "either"
49276
+ },
49277
+ {
49278
+ domain: "check",
49279
+ operation: "chain.validate",
49280
+ gateway: "query",
49281
+ mode: "native",
49282
+ preferredChannel: "either"
49283
+ },
48802
49284
  // Mutate operations
48803
- { domain: "check", operation: "compliance.record", gateway: "mutate", mode: "native" },
48804
- { domain: "check", operation: "test.run", gateway: "mutate", mode: "native" },
48805
- { domain: "check", operation: "gate.set", gateway: "mutate", mode: "native" },
49285
+ {
49286
+ domain: "check",
49287
+ operation: "compliance.record",
49288
+ gateway: "mutate",
49289
+ mode: "native",
49290
+ preferredChannel: "mcp"
49291
+ },
49292
+ {
49293
+ domain: "check",
49294
+ operation: "test.run",
49295
+ gateway: "mutate",
49296
+ mode: "native",
49297
+ preferredChannel: "either"
49298
+ },
49299
+ {
49300
+ domain: "check",
49301
+ operation: "gate.set",
49302
+ gateway: "mutate",
49303
+ mode: "native",
49304
+ preferredChannel: "either"
49305
+ },
49306
+ {
49307
+ domain: "check",
49308
+ operation: "compliance.sync",
49309
+ gateway: "mutate",
49310
+ mode: "native",
49311
+ preferredChannel: "either"
49312
+ },
48806
49313
  // === Orchestrate Domain ===
48807
49314
  // Query operations
48808
- { domain: "orchestrate", operation: "status", gateway: "query", mode: "native" },
48809
- { domain: "orchestrate", operation: "next", gateway: "query", mode: "native" },
48810
- { domain: "orchestrate", operation: "ready", gateway: "query", mode: "native" },
48811
- { domain: "orchestrate", operation: "analyze", gateway: "query", mode: "native" },
48812
- { domain: "orchestrate", operation: "context", gateway: "query", mode: "native" },
48813
- { domain: "orchestrate", operation: "waves", gateway: "query", mode: "native" },
48814
- { domain: "orchestrate", operation: "bootstrap", gateway: "query", mode: "native" },
48815
- { domain: "orchestrate", operation: "unblock.opportunities", gateway: "query", mode: "native" },
48816
- { domain: "orchestrate", operation: "tessera.list", gateway: "query", mode: "native" },
49315
+ {
49316
+ domain: "orchestrate",
49317
+ operation: "status",
49318
+ gateway: "query",
49319
+ mode: "native",
49320
+ preferredChannel: "either"
49321
+ },
49322
+ {
49323
+ domain: "orchestrate",
49324
+ operation: "next",
49325
+ gateway: "query",
49326
+ mode: "native",
49327
+ preferredChannel: "either"
49328
+ },
49329
+ {
49330
+ domain: "orchestrate",
49331
+ operation: "ready",
49332
+ gateway: "query",
49333
+ mode: "native",
49334
+ preferredChannel: "either"
49335
+ },
49336
+ {
49337
+ domain: "orchestrate",
49338
+ operation: "analyze",
49339
+ gateway: "query",
49340
+ mode: "native",
49341
+ preferredChannel: "either"
49342
+ },
49343
+ {
49344
+ domain: "orchestrate",
49345
+ operation: "context",
49346
+ gateway: "query",
49347
+ mode: "native",
49348
+ preferredChannel: "either"
49349
+ },
49350
+ {
49351
+ domain: "orchestrate",
49352
+ operation: "waves",
49353
+ gateway: "query",
49354
+ mode: "native",
49355
+ preferredChannel: "either"
49356
+ },
49357
+ {
49358
+ domain: "orchestrate",
49359
+ operation: "bootstrap",
49360
+ gateway: "query",
49361
+ mode: "native",
49362
+ preferredChannel: "either"
49363
+ },
49364
+ {
49365
+ domain: "orchestrate",
49366
+ operation: "unblock.opportunities",
49367
+ gateway: "query",
49368
+ mode: "native",
49369
+ preferredChannel: "either"
49370
+ },
49371
+ {
49372
+ domain: "orchestrate",
49373
+ operation: "tessera.list",
49374
+ gateway: "query",
49375
+ mode: "native",
49376
+ preferredChannel: "either"
49377
+ },
48817
49378
  // Mutate operations
48818
- { domain: "orchestrate", operation: "start", gateway: "mutate", mode: "native" },
48819
- { domain: "orchestrate", operation: "spawn", gateway: "mutate", mode: "native" },
48820
- { domain: "orchestrate", operation: "handoff", gateway: "mutate", mode: "native" },
48821
- { domain: "orchestrate", operation: "spawn.execute", gateway: "mutate", mode: "native" },
48822
- { domain: "orchestrate", operation: "validate", gateway: "mutate", mode: "native" },
48823
- { domain: "orchestrate", operation: "parallel", gateway: "mutate", mode: "native" },
48824
- { domain: "orchestrate", operation: "tessera.instantiate", gateway: "mutate", mode: "native" },
49379
+ {
49380
+ domain: "orchestrate",
49381
+ operation: "start",
49382
+ gateway: "mutate",
49383
+ mode: "native",
49384
+ preferredChannel: "either"
49385
+ },
49386
+ {
49387
+ domain: "orchestrate",
49388
+ operation: "spawn",
49389
+ gateway: "mutate",
49390
+ mode: "native",
49391
+ preferredChannel: "mcp"
49392
+ },
49393
+ {
49394
+ domain: "orchestrate",
49395
+ operation: "handoff",
49396
+ gateway: "mutate",
49397
+ mode: "native",
49398
+ preferredChannel: "either"
49399
+ },
49400
+ {
49401
+ domain: "orchestrate",
49402
+ operation: "spawn.execute",
49403
+ gateway: "mutate",
49404
+ mode: "native",
49405
+ preferredChannel: "either"
49406
+ },
49407
+ {
49408
+ domain: "orchestrate",
49409
+ operation: "validate",
49410
+ gateway: "mutate",
49411
+ mode: "native",
49412
+ preferredChannel: "either"
49413
+ },
49414
+ {
49415
+ domain: "orchestrate",
49416
+ operation: "parallel",
49417
+ gateway: "mutate",
49418
+ mode: "native",
49419
+ preferredChannel: "either"
49420
+ },
49421
+ {
49422
+ domain: "orchestrate",
49423
+ operation: "tessera.instantiate",
49424
+ gateway: "mutate",
49425
+ mode: "native",
49426
+ preferredChannel: "either"
49427
+ },
48825
49428
  // === Memory Domain (brain.db cognitive memory -- T5241) ===
48826
49429
  // Query operations
48827
- { domain: "memory", operation: "find", gateway: "query", mode: "native" },
48828
- { domain: "memory", operation: "timeline", gateway: "query", mode: "native" },
48829
- { domain: "memory", operation: "fetch", gateway: "query", mode: "native" },
48830
- { domain: "memory", operation: "decision.find", gateway: "query", mode: "native" },
48831
- { domain: "memory", operation: "pattern.find", gateway: "query", mode: "native" },
48832
- { domain: "memory", operation: "learning.find", gateway: "query", mode: "native" },
48833
- { domain: "memory", operation: "graph.show", gateway: "query", mode: "native" },
48834
- { domain: "memory", operation: "graph.neighbors", gateway: "query", mode: "native" },
48835
- { domain: "memory", operation: "reason.why", gateway: "query", mode: "native" },
48836
- { domain: "memory", operation: "reason.similar", gateway: "query", mode: "native" },
48837
- { domain: "memory", operation: "search.hybrid", gateway: "query", mode: "native" },
49430
+ {
49431
+ domain: "memory",
49432
+ operation: "find",
49433
+ gateway: "query",
49434
+ mode: "native",
49435
+ preferredChannel: "mcp"
49436
+ },
49437
+ {
49438
+ domain: "memory",
49439
+ operation: "timeline",
49440
+ gateway: "query",
49441
+ mode: "native",
49442
+ preferredChannel: "mcp"
49443
+ },
49444
+ {
49445
+ domain: "memory",
49446
+ operation: "fetch",
49447
+ gateway: "query",
49448
+ mode: "native",
49449
+ preferredChannel: "mcp"
49450
+ },
49451
+ {
49452
+ domain: "memory",
49453
+ operation: "decision.find",
49454
+ gateway: "query",
49455
+ mode: "native",
49456
+ preferredChannel: "mcp"
49457
+ },
49458
+ {
49459
+ domain: "memory",
49460
+ operation: "pattern.find",
49461
+ gateway: "query",
49462
+ mode: "native",
49463
+ preferredChannel: "mcp"
49464
+ },
49465
+ {
49466
+ domain: "memory",
49467
+ operation: "learning.find",
49468
+ gateway: "query",
49469
+ mode: "native",
49470
+ preferredChannel: "mcp"
49471
+ },
49472
+ {
49473
+ domain: "memory",
49474
+ operation: "graph.show",
49475
+ gateway: "query",
49476
+ mode: "native",
49477
+ preferredChannel: "either"
49478
+ },
49479
+ {
49480
+ domain: "memory",
49481
+ operation: "graph.neighbors",
49482
+ gateway: "query",
49483
+ mode: "native",
49484
+ preferredChannel: "either"
49485
+ },
49486
+ {
49487
+ domain: "memory",
49488
+ operation: "reason.why",
49489
+ gateway: "query",
49490
+ mode: "native",
49491
+ preferredChannel: "either"
49492
+ },
49493
+ {
49494
+ domain: "memory",
49495
+ operation: "reason.similar",
49496
+ gateway: "query",
49497
+ mode: "native",
49498
+ preferredChannel: "either"
49499
+ },
49500
+ {
49501
+ domain: "memory",
49502
+ operation: "search.hybrid",
49503
+ gateway: "query",
49504
+ mode: "native",
49505
+ preferredChannel: "either"
49506
+ },
48838
49507
  // Mutate operations
48839
- { domain: "memory", operation: "observe", gateway: "mutate", mode: "native" },
48840
- { domain: "memory", operation: "decision.store", gateway: "mutate", mode: "native" },
48841
- { domain: "memory", operation: "pattern.store", gateway: "mutate", mode: "native" },
48842
- { domain: "memory", operation: "learning.store", gateway: "mutate", mode: "native" },
48843
- { domain: "memory", operation: "link", gateway: "mutate", mode: "native" },
48844
- { domain: "memory", operation: "graph.add", gateway: "mutate", mode: "native" },
48845
- { domain: "memory", operation: "graph.remove", gateway: "mutate", mode: "native" },
49508
+ {
49509
+ domain: "memory",
49510
+ operation: "observe",
49511
+ gateway: "mutate",
49512
+ mode: "native",
49513
+ preferredChannel: "mcp"
49514
+ },
49515
+ {
49516
+ domain: "memory",
49517
+ operation: "decision.store",
49518
+ gateway: "mutate",
49519
+ mode: "native",
49520
+ preferredChannel: "mcp"
49521
+ },
49522
+ {
49523
+ domain: "memory",
49524
+ operation: "pattern.store",
49525
+ gateway: "mutate",
49526
+ mode: "native",
49527
+ preferredChannel: "mcp"
49528
+ },
49529
+ {
49530
+ domain: "memory",
49531
+ operation: "learning.store",
49532
+ gateway: "mutate",
49533
+ mode: "native",
49534
+ preferredChannel: "mcp"
49535
+ },
49536
+ {
49537
+ domain: "memory",
49538
+ operation: "link",
49539
+ gateway: "mutate",
49540
+ mode: "native",
49541
+ preferredChannel: "either"
49542
+ },
49543
+ {
49544
+ domain: "memory",
49545
+ operation: "graph.add",
49546
+ gateway: "mutate",
49547
+ mode: "native",
49548
+ preferredChannel: "either"
49549
+ },
49550
+ {
49551
+ domain: "memory",
49552
+ operation: "graph.remove",
49553
+ gateway: "mutate",
49554
+ mode: "native",
49555
+ preferredChannel: "either"
49556
+ },
48846
49557
  // === Pipeline Domain ===
48847
49558
  // Stage sub-domain (RCASD lifecycle)
48848
- { domain: "pipeline", operation: "stage.validate", gateway: "query", mode: "native" },
48849
- { domain: "pipeline", operation: "stage.status", gateway: "query", mode: "native" },
48850
- { domain: "pipeline", operation: "stage.history", gateway: "query", mode: "native" },
48851
- { domain: "pipeline", operation: "stage.record", gateway: "mutate", mode: "native" },
48852
- { domain: "pipeline", operation: "stage.skip", gateway: "mutate", mode: "native" },
48853
- { domain: "pipeline", operation: "stage.reset", gateway: "mutate", mode: "native" },
48854
- { domain: "pipeline", operation: "stage.gate.pass", gateway: "mutate", mode: "native" },
48855
- { domain: "pipeline", operation: "stage.gate.fail", gateway: "mutate", mode: "native" },
49559
+ {
49560
+ domain: "pipeline",
49561
+ operation: "stage.validate",
49562
+ gateway: "query",
49563
+ mode: "native",
49564
+ preferredChannel: "mcp"
49565
+ },
49566
+ {
49567
+ domain: "pipeline",
49568
+ operation: "stage.status",
49569
+ gateway: "query",
49570
+ mode: "native",
49571
+ preferredChannel: "mcp"
49572
+ },
49573
+ {
49574
+ domain: "pipeline",
49575
+ operation: "stage.history",
49576
+ gateway: "query",
49577
+ mode: "native",
49578
+ preferredChannel: "either"
49579
+ },
49580
+ {
49581
+ domain: "pipeline",
49582
+ operation: "stage.record",
49583
+ gateway: "mutate",
49584
+ mode: "native",
49585
+ preferredChannel: "either"
49586
+ },
49587
+ {
49588
+ domain: "pipeline",
49589
+ operation: "stage.skip",
49590
+ gateway: "mutate",
49591
+ mode: "native",
49592
+ preferredChannel: "either"
49593
+ },
49594
+ {
49595
+ domain: "pipeline",
49596
+ operation: "stage.reset",
49597
+ gateway: "mutate",
49598
+ mode: "native",
49599
+ preferredChannel: "either"
49600
+ },
49601
+ {
49602
+ domain: "pipeline",
49603
+ operation: "stage.gate.pass",
49604
+ gateway: "mutate",
49605
+ mode: "native",
49606
+ preferredChannel: "either"
49607
+ },
49608
+ {
49609
+ domain: "pipeline",
49610
+ operation: "stage.gate.fail",
49611
+ gateway: "mutate",
49612
+ mode: "native",
49613
+ preferredChannel: "either"
49614
+ },
48856
49615
  // Manifest sub-domain (T5241)
48857
- { domain: "pipeline", operation: "manifest.show", gateway: "query", mode: "native" },
48858
- { domain: "pipeline", operation: "manifest.list", gateway: "query", mode: "native" },
48859
- { domain: "pipeline", operation: "manifest.find", gateway: "query", mode: "native" },
48860
- { domain: "pipeline", operation: "manifest.stats", gateway: "query", mode: "native" },
48861
- { domain: "pipeline", operation: "manifest.append", gateway: "mutate", mode: "native" },
48862
- { domain: "pipeline", operation: "manifest.archive", gateway: "mutate", mode: "native" },
49616
+ {
49617
+ domain: "pipeline",
49618
+ operation: "manifest.show",
49619
+ gateway: "query",
49620
+ mode: "native",
49621
+ preferredChannel: "either"
49622
+ },
49623
+ {
49624
+ domain: "pipeline",
49625
+ operation: "manifest.list",
49626
+ gateway: "query",
49627
+ mode: "native",
49628
+ preferredChannel: "either"
49629
+ },
49630
+ {
49631
+ domain: "pipeline",
49632
+ operation: "manifest.find",
49633
+ gateway: "query",
49634
+ mode: "native",
49635
+ preferredChannel: "either"
49636
+ },
49637
+ {
49638
+ domain: "pipeline",
49639
+ operation: "manifest.stats",
49640
+ gateway: "query",
49641
+ mode: "native",
49642
+ preferredChannel: "either"
49643
+ },
49644
+ {
49645
+ domain: "pipeline",
49646
+ operation: "manifest.append",
49647
+ gateway: "mutate",
49648
+ mode: "native",
49649
+ preferredChannel: "either"
49650
+ },
49651
+ {
49652
+ domain: "pipeline",
49653
+ operation: "manifest.archive",
49654
+ gateway: "mutate",
49655
+ mode: "native",
49656
+ preferredChannel: "either"
49657
+ },
48863
49658
  // Phase sub-domain (T5326)
48864
- { domain: "pipeline", operation: "phase.show", gateway: "query", mode: "native" },
48865
- { domain: "pipeline", operation: "phase.list", gateway: "query", mode: "native" },
48866
- { domain: "pipeline", operation: "phase.set", gateway: "mutate", mode: "native" },
48867
- { domain: "pipeline", operation: "phase.advance", gateway: "mutate", mode: "native" },
48868
- { domain: "pipeline", operation: "phase.rename", gateway: "mutate", mode: "native" },
48869
- { domain: "pipeline", operation: "phase.delete", gateway: "mutate", mode: "native" },
49659
+ {
49660
+ domain: "pipeline",
49661
+ operation: "phase.show",
49662
+ gateway: "query",
49663
+ mode: "native",
49664
+ preferredChannel: "either"
49665
+ },
49666
+ {
49667
+ domain: "pipeline",
49668
+ operation: "phase.list",
49669
+ gateway: "query",
49670
+ mode: "native",
49671
+ preferredChannel: "either"
49672
+ },
49673
+ {
49674
+ domain: "pipeline",
49675
+ operation: "phase.set",
49676
+ gateway: "mutate",
49677
+ mode: "native",
49678
+ preferredChannel: "either"
49679
+ },
49680
+ {
49681
+ domain: "pipeline",
49682
+ operation: "phase.advance",
49683
+ gateway: "mutate",
49684
+ mode: "native",
49685
+ preferredChannel: "either"
49686
+ },
49687
+ {
49688
+ domain: "pipeline",
49689
+ operation: "phase.rename",
49690
+ gateway: "mutate",
49691
+ mode: "native",
49692
+ preferredChannel: "either"
49693
+ },
49694
+ {
49695
+ domain: "pipeline",
49696
+ operation: "phase.delete",
49697
+ gateway: "mutate",
49698
+ mode: "native",
49699
+ preferredChannel: "either"
49700
+ },
48870
49701
  // Chain sub-domain (T5405)
48871
- { domain: "pipeline", operation: "chain.show", gateway: "query", mode: "native" },
48872
- { domain: "pipeline", operation: "chain.list", gateway: "query", mode: "native" },
48873
- { domain: "pipeline", operation: "chain.add", gateway: "mutate", mode: "native" },
48874
- { domain: "pipeline", operation: "chain.instantiate", gateway: "mutate", mode: "native" },
48875
- { domain: "pipeline", operation: "chain.advance", gateway: "mutate", mode: "native" },
49702
+ {
49703
+ domain: "pipeline",
49704
+ operation: "chain.show",
49705
+ gateway: "query",
49706
+ mode: "native",
49707
+ preferredChannel: "either"
49708
+ },
49709
+ {
49710
+ domain: "pipeline",
49711
+ operation: "chain.list",
49712
+ gateway: "query",
49713
+ mode: "native",
49714
+ preferredChannel: "either"
49715
+ },
49716
+ {
49717
+ domain: "pipeline",
49718
+ operation: "chain.add",
49719
+ gateway: "mutate",
49720
+ mode: "native",
49721
+ preferredChannel: "either"
49722
+ },
49723
+ {
49724
+ domain: "pipeline",
49725
+ operation: "chain.instantiate",
49726
+ gateway: "mutate",
49727
+ mode: "native",
49728
+ preferredChannel: "either"
49729
+ },
49730
+ {
49731
+ domain: "pipeline",
49732
+ operation: "chain.advance",
49733
+ gateway: "mutate",
49734
+ mode: "native",
49735
+ preferredChannel: "either"
49736
+ },
48876
49737
  // Release sub-domain (T5615 consolidated)
48877
- { domain: "pipeline", operation: "release.list", gateway: "query", mode: "native" },
48878
- { domain: "pipeline", operation: "release.show", gateway: "query", mode: "native" },
48879
- { domain: "pipeline", operation: "release.channel.show", gateway: "query", mode: "native" },
48880
- { domain: "pipeline", operation: "release.ship", gateway: "mutate", mode: "native" },
48881
- { domain: "pipeline", operation: "release.cancel", gateway: "mutate", mode: "native" },
48882
- { domain: "pipeline", operation: "release.rollback", gateway: "mutate", mode: "native" },
49738
+ {
49739
+ domain: "pipeline",
49740
+ operation: "release.list",
49741
+ gateway: "query",
49742
+ mode: "native",
49743
+ preferredChannel: "either"
49744
+ },
49745
+ {
49746
+ domain: "pipeline",
49747
+ operation: "release.show",
49748
+ gateway: "query",
49749
+ mode: "native",
49750
+ preferredChannel: "either"
49751
+ },
49752
+ {
49753
+ domain: "pipeline",
49754
+ operation: "release.channel.show",
49755
+ gateway: "query",
49756
+ mode: "native",
49757
+ preferredChannel: "either"
49758
+ },
49759
+ {
49760
+ domain: "pipeline",
49761
+ operation: "release.ship",
49762
+ gateway: "mutate",
49763
+ mode: "native",
49764
+ preferredChannel: "cli"
49765
+ },
49766
+ {
49767
+ domain: "pipeline",
49768
+ operation: "release.cancel",
49769
+ gateway: "mutate",
49770
+ mode: "native",
49771
+ preferredChannel: "either"
49772
+ },
49773
+ {
49774
+ domain: "pipeline",
49775
+ operation: "release.rollback",
49776
+ gateway: "mutate",
49777
+ mode: "native",
49778
+ preferredChannel: "either"
49779
+ },
48883
49780
  // === Tools Domain ===
48884
49781
  // Issue operations
48885
- { domain: "tools", operation: "issue.diagnostics", gateway: "query", mode: "native" },
49782
+ {
49783
+ domain: "tools",
49784
+ operation: "issue.diagnostics",
49785
+ gateway: "query",
49786
+ mode: "native",
49787
+ preferredChannel: "either"
49788
+ },
48886
49789
  // Skill operations
48887
- { domain: "tools", operation: "skill.list", gateway: "query", mode: "native" },
48888
- { domain: "tools", operation: "skill.show", gateway: "query", mode: "native" },
48889
- { domain: "tools", operation: "skill.find", gateway: "query", mode: "native" },
48890
- { domain: "tools", operation: "skill.dispatch", gateway: "query", mode: "native" },
48891
- { domain: "tools", operation: "skill.verify", gateway: "query", mode: "native" },
48892
- { domain: "tools", operation: "skill.dependencies", gateway: "query", mode: "native" },
48893
- { domain: "tools", operation: "skill.spawn.providers", gateway: "query", mode: "native" },
48894
- { domain: "tools", operation: "skill.catalog", gateway: "query", mode: "native" },
48895
- { domain: "tools", operation: "skill.precedence", gateway: "query", mode: "native" },
48896
- { domain: "tools", operation: "skill.install", gateway: "mutate", mode: "native" },
48897
- { domain: "tools", operation: "skill.uninstall", gateway: "mutate", mode: "native" },
48898
- { domain: "tools", operation: "skill.refresh", gateway: "mutate", mode: "native" },
49790
+ {
49791
+ domain: "tools",
49792
+ operation: "skill.list",
49793
+ gateway: "query",
49794
+ mode: "native",
49795
+ preferredChannel: "mcp"
49796
+ },
49797
+ {
49798
+ domain: "tools",
49799
+ operation: "skill.show",
49800
+ gateway: "query",
49801
+ mode: "native",
49802
+ preferredChannel: "mcp"
49803
+ },
49804
+ {
49805
+ domain: "tools",
49806
+ operation: "skill.find",
49807
+ gateway: "query",
49808
+ mode: "native",
49809
+ preferredChannel: "mcp"
49810
+ },
49811
+ {
49812
+ domain: "tools",
49813
+ operation: "skill.dispatch",
49814
+ gateway: "query",
49815
+ mode: "native",
49816
+ preferredChannel: "either"
49817
+ },
49818
+ {
49819
+ domain: "tools",
49820
+ operation: "skill.verify",
49821
+ gateway: "query",
49822
+ mode: "native",
49823
+ preferredChannel: "either"
49824
+ },
49825
+ {
49826
+ domain: "tools",
49827
+ operation: "skill.dependencies",
49828
+ gateway: "query",
49829
+ mode: "native",
49830
+ preferredChannel: "either"
49831
+ },
49832
+ {
49833
+ domain: "tools",
49834
+ operation: "skill.spawn.providers",
49835
+ gateway: "query",
49836
+ mode: "native",
49837
+ preferredChannel: "either"
49838
+ },
49839
+ {
49840
+ domain: "tools",
49841
+ operation: "skill.catalog",
49842
+ gateway: "query",
49843
+ mode: "native",
49844
+ preferredChannel: "either"
49845
+ },
49846
+ {
49847
+ domain: "tools",
49848
+ operation: "skill.precedence",
49849
+ gateway: "query",
49850
+ mode: "native",
49851
+ preferredChannel: "either"
49852
+ },
49853
+ {
49854
+ domain: "tools",
49855
+ operation: "skill.install",
49856
+ gateway: "mutate",
49857
+ mode: "native",
49858
+ preferredChannel: "either"
49859
+ },
49860
+ {
49861
+ domain: "tools",
49862
+ operation: "skill.uninstall",
49863
+ gateway: "mutate",
49864
+ mode: "native",
49865
+ preferredChannel: "either"
49866
+ },
49867
+ {
49868
+ domain: "tools",
49869
+ operation: "skill.refresh",
49870
+ gateway: "mutate",
49871
+ mode: "native",
49872
+ preferredChannel: "either"
49873
+ },
48899
49874
  // Provider operations
48900
- { domain: "tools", operation: "provider.list", gateway: "query", mode: "native" },
48901
- { domain: "tools", operation: "provider.detect", gateway: "query", mode: "native" },
48902
- { domain: "tools", operation: "provider.inject.status", gateway: "query", mode: "native" },
48903
- { domain: "tools", operation: "provider.supports", gateway: "query", mode: "native" },
48904
- { domain: "tools", operation: "provider.hooks", gateway: "query", mode: "native" },
48905
- { domain: "tools", operation: "provider.inject", gateway: "mutate", mode: "native" },
49875
+ {
49876
+ domain: "tools",
49877
+ operation: "provider.list",
49878
+ gateway: "query",
49879
+ mode: "native",
49880
+ preferredChannel: "mcp"
49881
+ },
49882
+ {
49883
+ domain: "tools",
49884
+ operation: "provider.detect",
49885
+ gateway: "query",
49886
+ mode: "native",
49887
+ preferredChannel: "mcp"
49888
+ },
49889
+ {
49890
+ domain: "tools",
49891
+ operation: "provider.inject.status",
49892
+ gateway: "query",
49893
+ mode: "native",
49894
+ preferredChannel: "either"
49895
+ },
49896
+ {
49897
+ domain: "tools",
49898
+ operation: "provider.supports",
49899
+ gateway: "query",
49900
+ mode: "native",
49901
+ preferredChannel: "either"
49902
+ },
49903
+ {
49904
+ domain: "tools",
49905
+ operation: "provider.hooks",
49906
+ gateway: "query",
49907
+ mode: "native",
49908
+ preferredChannel: "either"
49909
+ },
49910
+ {
49911
+ domain: "tools",
49912
+ operation: "provider.inject",
49913
+ gateway: "mutate",
49914
+ mode: "native",
49915
+ preferredChannel: "either"
49916
+ },
49917
+ // Adapter sub-domain (T5240)
49918
+ {
49919
+ domain: "tools",
49920
+ operation: "adapter.list",
49921
+ gateway: "query",
49922
+ mode: "native",
49923
+ preferredChannel: "mcp"
49924
+ },
49925
+ {
49926
+ domain: "tools",
49927
+ operation: "adapter.show",
49928
+ gateway: "query",
49929
+ mode: "native",
49930
+ preferredChannel: "mcp"
49931
+ },
49932
+ {
49933
+ domain: "tools",
49934
+ operation: "adapter.detect",
49935
+ gateway: "query",
49936
+ mode: "native",
49937
+ preferredChannel: "either"
49938
+ },
49939
+ {
49940
+ domain: "tools",
49941
+ operation: "adapter.health",
49942
+ gateway: "query",
49943
+ mode: "native",
49944
+ preferredChannel: "either"
49945
+ },
49946
+ {
49947
+ domain: "tools",
49948
+ operation: "adapter.activate",
49949
+ gateway: "mutate",
49950
+ mode: "native",
49951
+ preferredChannel: "mcp"
49952
+ },
49953
+ {
49954
+ domain: "tools",
49955
+ operation: "adapter.dispose",
49956
+ gateway: "mutate",
49957
+ mode: "native",
49958
+ preferredChannel: "either"
49959
+ },
48906
49960
  // === Nexus Domain ===
48907
49961
  // Query operations
48908
- { domain: "nexus", operation: "status", gateway: "query", mode: "native" },
48909
- { domain: "nexus", operation: "list", gateway: "query", mode: "native" },
48910
- { domain: "nexus", operation: "show", gateway: "query", mode: "native" },
48911
- { domain: "nexus", operation: "search", gateway: "query", mode: "native" },
48912
- { domain: "nexus", operation: "graph", gateway: "query", mode: "native" },
48913
- { domain: "nexus", operation: "deps", gateway: "query", mode: "native" },
48914
- { domain: "nexus", operation: "resolve", gateway: "query", mode: "native" },
48915
- { domain: "nexus", operation: "discover", gateway: "query", mode: "native" },
48916
- { domain: "nexus", operation: "orphans.list", gateway: "query", mode: "native" },
48917
- { domain: "nexus", operation: "blockers.show", gateway: "query", mode: "native" },
48918
- { domain: "nexus", operation: "path.show", gateway: "query", mode: "native" },
48919
- { domain: "nexus", operation: "share.status", gateway: "query", mode: "native" },
49962
+ {
49963
+ domain: "nexus",
49964
+ operation: "status",
49965
+ gateway: "query",
49966
+ mode: "native",
49967
+ preferredChannel: "either"
49968
+ },
49969
+ {
49970
+ domain: "nexus",
49971
+ operation: "list",
49972
+ gateway: "query",
49973
+ mode: "native",
49974
+ preferredChannel: "either"
49975
+ },
49976
+ {
49977
+ domain: "nexus",
49978
+ operation: "show",
49979
+ gateway: "query",
49980
+ mode: "native",
49981
+ preferredChannel: "either"
49982
+ },
49983
+ {
49984
+ domain: "nexus",
49985
+ operation: "search",
49986
+ gateway: "query",
49987
+ mode: "native",
49988
+ preferredChannel: "either"
49989
+ },
49990
+ {
49991
+ domain: "nexus",
49992
+ operation: "graph",
49993
+ gateway: "query",
49994
+ mode: "native",
49995
+ preferredChannel: "either"
49996
+ },
49997
+ {
49998
+ domain: "nexus",
49999
+ operation: "deps",
50000
+ gateway: "query",
50001
+ mode: "native",
50002
+ preferredChannel: "either"
50003
+ },
50004
+ {
50005
+ domain: "nexus",
50006
+ operation: "resolve",
50007
+ gateway: "query",
50008
+ mode: "native",
50009
+ preferredChannel: "either"
50010
+ },
50011
+ {
50012
+ domain: "nexus",
50013
+ operation: "discover",
50014
+ gateway: "query",
50015
+ mode: "native",
50016
+ preferredChannel: "either"
50017
+ },
50018
+ {
50019
+ domain: "nexus",
50020
+ operation: "orphans.list",
50021
+ gateway: "query",
50022
+ mode: "native",
50023
+ preferredChannel: "either"
50024
+ },
50025
+ {
50026
+ domain: "nexus",
50027
+ operation: "blockers.show",
50028
+ gateway: "query",
50029
+ mode: "native",
50030
+ preferredChannel: "either"
50031
+ },
50032
+ {
50033
+ domain: "nexus",
50034
+ operation: "path.show",
50035
+ gateway: "query",
50036
+ mode: "native",
50037
+ preferredChannel: "either"
50038
+ },
50039
+ {
50040
+ domain: "nexus",
50041
+ operation: "share.status",
50042
+ gateway: "query",
50043
+ mode: "native",
50044
+ preferredChannel: "either"
50045
+ },
50046
+ {
50047
+ domain: "nexus",
50048
+ operation: "transfer.preview",
50049
+ gateway: "query",
50050
+ mode: "native",
50051
+ preferredChannel: "either"
50052
+ },
48920
50053
  // Mutate operations
48921
- { domain: "nexus", operation: "init", gateway: "mutate", mode: "native" },
48922
- { domain: "nexus", operation: "register", gateway: "mutate", mode: "native" },
48923
- { domain: "nexus", operation: "unregister", gateway: "mutate", mode: "native" },
48924
- { domain: "nexus", operation: "sync", gateway: "mutate", mode: "native" },
48925
- { domain: "nexus", operation: "reconcile", gateway: "mutate", mode: "native" },
48926
- { domain: "nexus", operation: "permission.set", gateway: "mutate", mode: "native" },
48927
- { domain: "nexus", operation: "share.snapshot.export", gateway: "mutate", mode: "native" },
48928
- { domain: "nexus", operation: "share.snapshot.import", gateway: "mutate", mode: "native" },
50054
+ {
50055
+ domain: "nexus",
50056
+ operation: "init",
50057
+ gateway: "mutate",
50058
+ mode: "native",
50059
+ preferredChannel: "either"
50060
+ },
50061
+ {
50062
+ domain: "nexus",
50063
+ operation: "register",
50064
+ gateway: "mutate",
50065
+ mode: "native",
50066
+ preferredChannel: "either"
50067
+ },
50068
+ {
50069
+ domain: "nexus",
50070
+ operation: "unregister",
50071
+ gateway: "mutate",
50072
+ mode: "native",
50073
+ preferredChannel: "either"
50074
+ },
50075
+ {
50076
+ domain: "nexus",
50077
+ operation: "sync",
50078
+ gateway: "mutate",
50079
+ mode: "native",
50080
+ preferredChannel: "either"
50081
+ },
50082
+ {
50083
+ domain: "nexus",
50084
+ operation: "reconcile",
50085
+ gateway: "mutate",
50086
+ mode: "native",
50087
+ preferredChannel: "either"
50088
+ },
50089
+ {
50090
+ domain: "nexus",
50091
+ operation: "permission.set",
50092
+ gateway: "mutate",
50093
+ mode: "native",
50094
+ preferredChannel: "either"
50095
+ },
50096
+ {
50097
+ domain: "nexus",
50098
+ operation: "share.snapshot.export",
50099
+ gateway: "mutate",
50100
+ mode: "native",
50101
+ preferredChannel: "either"
50102
+ },
50103
+ {
50104
+ domain: "nexus",
50105
+ operation: "share.snapshot.import",
50106
+ gateway: "mutate",
50107
+ mode: "native",
50108
+ preferredChannel: "either"
50109
+ },
50110
+ {
50111
+ domain: "nexus",
50112
+ operation: "transfer",
50113
+ gateway: "mutate",
50114
+ mode: "native",
50115
+ preferredChannel: "either"
50116
+ },
48929
50117
  // === Sticky Domain ===
48930
50118
  // Query operations
48931
- { domain: "sticky", operation: "list", gateway: "query", mode: "native" },
48932
- { domain: "sticky", operation: "show", gateway: "query", mode: "native" },
50119
+ {
50120
+ domain: "sticky",
50121
+ operation: "list",
50122
+ gateway: "query",
50123
+ mode: "native",
50124
+ preferredChannel: "mcp"
50125
+ },
50126
+ {
50127
+ domain: "sticky",
50128
+ operation: "show",
50129
+ gateway: "query",
50130
+ mode: "native",
50131
+ preferredChannel: "mcp"
50132
+ },
48933
50133
  // Mutate operations
48934
- { domain: "sticky", operation: "add", gateway: "mutate", mode: "native" },
48935
- { domain: "sticky", operation: "archive", gateway: "mutate", mode: "native" },
48936
- { domain: "sticky", operation: "convert", gateway: "mutate", mode: "native" },
48937
- { domain: "sticky", operation: "purge", gateway: "mutate", mode: "native" }
50134
+ {
50135
+ domain: "sticky",
50136
+ operation: "add",
50137
+ gateway: "mutate",
50138
+ mode: "native",
50139
+ preferredChannel: "mcp"
50140
+ },
50141
+ {
50142
+ domain: "sticky",
50143
+ operation: "archive",
50144
+ gateway: "mutate",
50145
+ mode: "native",
50146
+ preferredChannel: "either"
50147
+ },
50148
+ {
50149
+ domain: "sticky",
50150
+ operation: "convert",
50151
+ gateway: "mutate",
50152
+ mode: "native",
50153
+ preferredChannel: "either"
50154
+ },
50155
+ {
50156
+ domain: "sticky",
50157
+ operation: "purge",
50158
+ gateway: "mutate",
50159
+ mode: "native",
50160
+ preferredChannel: "either"
50161
+ }
48938
50162
  ];
48939
50163
  }
48940
50164
  });
@@ -51697,6 +52921,7 @@ var init_config2 = __esm({
51697
52921
 
51698
52922
  // packages/core/src/skills/agents/install.ts
51699
52923
  import { existsSync as existsSync67, mkdirSync as mkdirSync14, readdirSync as readdirSync25, readlinkSync, symlinkSync, unlinkSync as unlinkSync4 } from "node:fs";
52924
+ import { platform as platform2 } from "node:os";
51700
52925
  import { basename as basename12, join as join70 } from "node:path";
51701
52926
  function getAgentInstallDir() {
51702
52927
  return getClaudeAgentsDir();
@@ -51727,7 +52952,7 @@ function installAgent(agentDir) {
51727
52952
  }
51728
52953
  }
51729
52954
  try {
51730
- symlinkSync(agentDir, targetPath, "dir");
52955
+ symlinkSync(agentDir, targetPath, DIR_SYMLINK_TYPE);
51731
52956
  return { installed: true, path: targetPath };
51732
52957
  } catch (err) {
51733
52958
  return { installed: false, path: targetPath, error: `Symlink failed: ${err}` };
@@ -51767,11 +52992,13 @@ function uninstallAgent(agentName) {
51767
52992
  return false;
51768
52993
  }
51769
52994
  }
52995
+ var DIR_SYMLINK_TYPE;
51770
52996
  var init_install = __esm({
51771
52997
  "packages/core/src/skills/agents/install.ts"() {
51772
52998
  "use strict";
51773
52999
  init_paths();
51774
53000
  init_config2();
53001
+ DIR_SYMLINK_TYPE = platform2() === "win32" ? "junction" : "dir";
51775
53002
  }
51776
53003
  });
51777
53004
 
@@ -53704,8 +54931,9 @@ var init_validator = __esm({
53704
54931
  // packages/core/src/skills/skill-paths.ts
53705
54932
  import { existsSync as existsSync77, lstatSync, readlinkSync as readlinkSync2, realpathSync as realpathSync2 } from "node:fs";
53706
54933
  import { delimiter, join as join79, resolve as resolve9 } from "node:path";
54934
+ import { getCanonicalSkillsDir as getCanonicalSkillsDir2 } from "@cleocode/caamp";
53707
54935
  function getCaampCanonical() {
53708
- return join79(getAgentsHome(), "skills");
54936
+ return getCanonicalSkillsDir2();
53709
54937
  }
53710
54938
  function getProjectEmbedded(projectRoot) {
53711
54939
  const root = projectRoot ?? process.cwd();
@@ -53825,7 +55053,6 @@ function getSkillSourceType(skillDir, projectRoot) {
53825
55053
  var init_skill_paths = __esm({
53826
55054
  "packages/core/src/skills/skill-paths.ts"() {
53827
55055
  "use strict";
53828
- init_paths();
53829
55056
  }
53830
55057
  });
53831
55058
 
@@ -56206,7 +57433,7 @@ function getNodeVersionInfo() {
56206
57433
  };
56207
57434
  }
56208
57435
  function getNodeUpgradeInstructions() {
56209
- const platform3 = detectPlatform();
57436
+ const platform5 = detectPlatform();
56210
57437
  const arch2 = process.arch;
56211
57438
  const instructions = [];
56212
57439
  const hasFnm = commandExists2("fnm");
@@ -56221,7 +57448,7 @@ function getNodeUpgradeInstructions() {
56221
57448
  if (hasVolta) {
56222
57449
  instructions.push(`volta install node@${MINIMUM_NODE_MAJOR}`);
56223
57450
  }
56224
- switch (platform3) {
57451
+ switch (platform5) {
56225
57452
  case "linux":
56226
57453
  if (commandExists2("dnf")) {
56227
57454
  instructions.push(
@@ -56253,7 +57480,7 @@ function getNodeUpgradeInstructions() {
56253
57480
  }
56254
57481
  instructions.push(`https://nodejs.org/en/download/`);
56255
57482
  const recommended = instructions[0] ?? `https://nodejs.org/en/download/`;
56256
- return { platform: platform3, arch: arch2, instructions, recommended };
57483
+ return { platform: platform5, arch: arch2, instructions, recommended };
56257
57484
  }
56258
57485
  function getSystemInfo2() {
56259
57486
  return {
@@ -57788,12 +59015,22 @@ async function startupHealthCheck(projectRoot) {
57788
59015
  message: scaffoldResult.home.action === "skipped" ? "Global home already current" : `Global home ${scaffoldResult.home.action}: ${scaffoldResult.home.details ?? ""}`,
57789
59016
  repaired: scaffoldResult.home.action !== "skipped"
57790
59017
  });
57791
- checks.push({
57792
- check: "global_schemas",
57793
- status: "pass",
57794
- message: `Schemas: ${scaffoldResult.schemas.installed} installed, ${scaffoldResult.schemas.updated} updated of ${scaffoldResult.schemas.total}`,
57795
- repaired: scaffoldResult.schemas.installed > 0 || scaffoldResult.schemas.updated > 0
57796
- });
59018
+ if (!globalSchemaCheck.ok) {
59019
+ const { ensureGlobalSchemas: ensureGlobalSchemas2 } = await Promise.resolve().then(() => (init_schema_management(), schema_management_exports));
59020
+ const schemaResult = ensureGlobalSchemas2();
59021
+ checks.push({
59022
+ check: "global_schemas",
59023
+ status: "pass",
59024
+ message: `Schemas: ${schemaResult.installed} installed, ${schemaResult.updated} updated of ${schemaResult.total}`,
59025
+ repaired: schemaResult.installed > 0 || schemaResult.updated > 0
59026
+ });
59027
+ } else {
59028
+ checks.push({
59029
+ check: "global_schemas",
59030
+ status: "pass",
59031
+ message: `All ${globalSchemaCheck.installed} schemas current`
59032
+ });
59033
+ }
57797
59034
  checks.push({
57798
59035
  check: "global_templates",
57799
59036
  status: "pass",
@@ -59302,13 +60539,13 @@ var init_templates = __esm({
59302
60539
 
59303
60540
  // packages/core/src/ui/aliases.ts
59304
60541
  import { existsSync as existsSync93, readFileSync as readFileSync67, writeFileSync as writeFileSync15 } from "node:fs";
59305
- import { homedir as homedir5, platform as platform2 } from "node:os";
60542
+ import { homedir as homedir5, platform as platform3 } from "node:os";
59306
60543
  import { join as join96 } from "node:path";
59307
60544
  function getCurrentShell() {
59308
60545
  const shell = process.env.SHELL ?? "";
59309
60546
  if (shell.includes("zsh")) return "zsh";
59310
60547
  if (shell.includes("bash")) return "bash";
59311
- if (platform2() === "win32") return "powershell";
60548
+ if (platform3() === "win32") return "powershell";
59312
60549
  return "bash";
59313
60550
  }
59314
60551
  function getRcFilePath(shell) {
@@ -59332,7 +60569,7 @@ function detectAvailableShells() {
59332
60569
  const shells = [];
59333
60570
  if (existsSync93(getRcFilePath("bash")) || existsSync93("/bin/bash")) shells.push("bash");
59334
60571
  if (existsSync93(getRcFilePath("zsh")) || existsSync93("/bin/zsh")) shells.push("zsh");
59335
- if (platform2() === "win32") shells.push("powershell");
60572
+ if (platform3() === "win32") shells.push("powershell");
59336
60573
  return shells;
59337
60574
  }
59338
60575
  function generateBashAliases(cleoPath) {
@@ -59796,27 +61033,10 @@ var init_flags = __esm({
59796
61033
  }
59797
61034
  });
59798
61035
 
59799
- // packages/core/src/ui/injection-legacy.ts
59800
- function getValidationKey(target) {
59801
- return INJECTION_VALIDATION_KEYS[target] ?? target.toLowerCase().replace(/[^a-z0-9]/g, "_");
59802
- }
59803
- var INJECTION_VALIDATION_KEYS;
59804
- var init_injection_legacy = __esm({
59805
- "packages/core/src/ui/injection-legacy.ts"() {
59806
- "use strict";
59807
- INJECTION_VALIDATION_KEYS = {
59808
- "CLAUDE.md": "claude_md",
59809
- "AGENTS.md": "agents_md",
59810
- "GEMINI.md": "gemini_md"
59811
- };
59812
- }
59813
- });
59814
-
59815
61036
  // packages/core/src/ui/index.ts
59816
61037
  var ui_exports = {};
59817
61038
  __export(ui_exports, {
59818
61039
  ALIASES_VERSION: () => ALIASES_VERSION,
59819
- INJECTION_VALIDATION_KEYS: () => INJECTION_VALIDATION_KEYS,
59820
61040
  appendToChangelog: () => appendToChangelog,
59821
61041
  checkAliasesStatus: () => checkAliasesStatus,
59822
61042
  defaultFlags: () => defaultFlags,
@@ -59833,7 +61053,6 @@ __export(ui_exports, {
59833
61053
  getCurrentShell: () => getCurrentShell,
59834
61054
  getInstalledVersion: () => getInstalledVersion,
59835
61055
  getRcFilePath: () => getRcFilePath,
59836
- getValidationKey: () => getValidationKey,
59837
61056
  groupTasksIntoSections: () => groupTasksIntoSections,
59838
61057
  hasAliasBlock: () => hasAliasBlock,
59839
61058
  injectAliases: () => injectAliases,
@@ -59853,7 +61072,6 @@ var init_ui = __esm({
59853
61072
  init_changelog();
59854
61073
  init_command_registry();
59855
61074
  init_flags();
59856
- init_injection_legacy();
59857
61075
  }
59858
61076
  });
59859
61077
 
@@ -63028,11 +64246,29 @@ __export(init_exports, {
63028
64246
  });
63029
64247
  import { existsSync as existsSync100, readdirSync as readdirSync33, readFileSync as readFileSync73 } from "node:fs";
63030
64248
  import { copyFile as copyFile3, lstat, mkdir as mkdir16, readFile as readFile17, symlink, unlink as unlink4, writeFile as writeFile11 } from "node:fs/promises";
64249
+ import { platform as platform4 } from "node:os";
63031
64250
  import { basename as basename17, dirname as dirname19, join as join100 } from "node:path";
63032
64251
  async function initAgentDefinition(created, warnings) {
63033
- const packageRoot = getPackageRoot();
63034
- const agentSourceDir = join100(packageRoot, "agents", "cleo-subagent");
63035
- if (!existsSync100(agentSourceDir)) {
64252
+ let agentSourceDir = null;
64253
+ try {
64254
+ const { createRequire: createRequire6 } = await import("node:module");
64255
+ const req = createRequire6(import.meta.url);
64256
+ const agentsPkgMain = req.resolve("@cleocode/agents/package.json");
64257
+ const agentsPkgRoot = dirname19(agentsPkgMain);
64258
+ const candidate = join100(agentsPkgRoot, "cleo-subagent");
64259
+ if (existsSync100(candidate)) {
64260
+ agentSourceDir = candidate;
64261
+ }
64262
+ } catch {
64263
+ }
64264
+ if (!agentSourceDir) {
64265
+ const packageRoot = getPackageRoot();
64266
+ const bundled = join100(packageRoot, "agents", "cleo-subagent");
64267
+ if (existsSync100(bundled)) {
64268
+ agentSourceDir = bundled;
64269
+ }
64270
+ }
64271
+ if (!agentSourceDir) {
63036
64272
  warnings.push("agents/cleo-subagent/ not found in package, skipping agent definition install");
63037
64273
  return;
63038
64274
  }
@@ -63046,7 +64282,7 @@ async function initAgentDefinition(created, warnings) {
63046
64282
  }
63047
64283
  } catch {
63048
64284
  }
63049
- await symlink(agentSourceDir, globalAgentsDir, "dir");
64285
+ await symlink(agentSourceDir, globalAgentsDir, DIR_SYMLINK_TYPE2);
63050
64286
  created.push("agent: cleo-subagent (symlinked)");
63051
64287
  } catch (_err) {
63052
64288
  try {
@@ -63105,17 +64341,29 @@ async function initCoreSkills(created, warnings) {
63105
64341
  const packageRoot = getPackageRoot();
63106
64342
  let ctSkillsRoot = null;
63107
64343
  try {
63108
- const bundledPath = join100(packageRoot, "packages", "skills");
63109
- if (existsSync100(join100(bundledPath, "skills.json"))) {
63110
- ctSkillsRoot = bundledPath;
63111
- } else {
63112
- const ctSkillsPath = join100(packageRoot, "node_modules", "@cleocode", "skills");
63113
- if (existsSync100(join100(ctSkillsPath, "skills.json"))) {
63114
- ctSkillsRoot = ctSkillsPath;
63115
- }
64344
+ const { createRequire: createRequire6 } = await import("node:module");
64345
+ const req = createRequire6(import.meta.url);
64346
+ const skillsPkgMain = req.resolve("@cleocode/skills/package.json");
64347
+ const skillsPkgRoot = dirname19(skillsPkgMain);
64348
+ if (existsSync100(join100(skillsPkgRoot, "skills.json"))) {
64349
+ ctSkillsRoot = skillsPkgRoot;
63116
64350
  }
63117
64351
  } catch {
63118
64352
  }
64353
+ if (!ctSkillsRoot) {
64354
+ try {
64355
+ const bundledPath = join100(packageRoot, "packages", "skills");
64356
+ if (existsSync100(join100(bundledPath, "skills.json"))) {
64357
+ ctSkillsRoot = bundledPath;
64358
+ } else {
64359
+ const ctSkillsPath = join100(packageRoot, "node_modules", "@cleocode", "skills");
64360
+ if (existsSync100(join100(ctSkillsPath, "skills.json"))) {
64361
+ ctSkillsRoot = ctSkillsPath;
64362
+ }
64363
+ }
64364
+ } catch {
64365
+ }
64366
+ }
63119
64367
  if (!ctSkillsRoot) {
63120
64368
  warnings.push("skills package not found, skipping core skill installation");
63121
64369
  return;
@@ -63407,7 +64655,6 @@ async function initProject(opts = {}) {
63407
64655
  warnings.push(`Contributor MCP setup: ${err instanceof Error ? err.message : String(err)}`);
63408
64656
  }
63409
64657
  await initAgentDefinition(created, warnings);
63410
- await initCoreSkills(created, warnings);
63411
64658
  await initNexusRegistration(projRoot, created, warnings);
63412
64659
  try {
63413
64660
  const { AdapterManager: AdapterManager2 } = await Promise.resolve().then(() => (init_adapters(), adapters_exports));
@@ -63494,6 +64741,7 @@ async function getVersion2(projectRoot) {
63494
64741
  }
63495
64742
  return { version: "0.0.0" };
63496
64743
  }
64744
+ var DIR_SYMLINK_TYPE2;
63497
64745
  var init_init = __esm({
63498
64746
  "packages/core/src/init.ts"() {
63499
64747
  "use strict";
@@ -63507,6 +64755,7 @@ var init_init = __esm({
63507
64755
  init_scaffold();
63508
64756
  init_schema_management();
63509
64757
  init_json2();
64758
+ DIR_SYMLINK_TYPE2 = platform4() === "win32" ? "junction" : "dir";
63510
64759
  }
63511
64760
  });
63512
64761
 
@@ -64079,7 +65328,8 @@ async function injectAgentsHub(ctx) {
64079
65328
  await writeFile12(globalAgentsMd, stripped, "utf8");
64080
65329
  }
64081
65330
  }
64082
- const action = await inject2(globalAgentsMd, "@~/.cleo/templates/CLEO-INJECTION.md");
65331
+ const expectedContent = "@~/.cleo/templates/CLEO-INJECTION.md";
65332
+ const action = await inject2(globalAgentsMd, expectedContent);
64083
65333
  ctx.created.push(`~/.agents/AGENTS.md (${action})`);
64084
65334
  } else {
64085
65335
  ctx.created.push("~/.agents/AGENTS.md (would create/update CAAMP block)");
@@ -68165,13 +69415,13 @@ var init_parallel = __esm({
68165
69415
  // packages/core/src/orchestration/skill-ops.ts
68166
69416
  import { existsSync as existsSync107, readdirSync as readdirSync35, readFileSync as readFileSync79 } from "node:fs";
68167
69417
  import { join as join106 } from "node:path";
68168
- import { getCanonicalSkillsDir as getCanonicalSkillsDir2 } from "@cleocode/caamp";
69418
+ import { getCanonicalSkillsDir as getCanonicalSkillsDir3 } from "@cleocode/caamp";
68169
69419
  function getSkillContent(skillName, projectRoot) {
68170
69420
  if (!skillName) {
68171
69421
  throw new CleoError(2 /* INVALID_INPUT */, "skill name is required");
68172
69422
  }
68173
69423
  const projectSkillDir = join106(projectRoot, ".cleo", "skills", skillName);
68174
- const canonicalSkillDir = join106(getCanonicalSkillsDir2(), skillName);
69424
+ const canonicalSkillDir = join106(getCanonicalSkillsDir3(), skillName);
68175
69425
  const skillDir = existsSync107(projectSkillDir) ? projectSkillDir : canonicalSkillDir;
68176
69426
  if (!existsSync107(skillDir)) {
68177
69427
  throw new CleoError(
@@ -72242,7 +73492,7 @@ async function validateLayer2Semantic(context) {
72242
73492
  }
72243
73493
  if (context.domain === "session" && context.operation === "start") {
72244
73494
  const scope = context.params?.scope;
72245
- if (scope && !scope.match(/^(epic|task|global):/)) {
73495
+ if (scope && scope !== "global" && !scope.match(/^(epic|task):/)) {
72246
73496
  violations.push({
72247
73497
  layer: 2 /* SEMANTIC */,
72248
73498
  severity: "error" /* ERROR */,
@@ -72250,7 +73500,7 @@ async function validateLayer2Semantic(context) {
72250
73500
  message: `Invalid session scope format: ${scope}`,
72251
73501
  field: "scope",
72252
73502
  constraint: "Must be epic:<id>, task:<id>, or global",
72253
- fix: "Use format: epic:T1234, task:T5678, or global"
73503
+ fix: 'Provide scope as "global" or "epic:TXXX"'
72254
73504
  });
72255
73505
  }
72256
73506
  }
@@ -84141,8 +85391,15 @@ async function taskList(projectRoot, params) {
84141
85391
  data: { tasks: tasks2, total: result.total, filtered: result.filtered },
84142
85392
  page: result.page
84143
85393
  };
84144
- } catch {
84145
- return engineError("E_NOT_INITIALIZED", "Task database not initialized");
85394
+ } catch (err) {
85395
+ const code = err?.code;
85396
+ if (code === 4) return engineError("E_NOT_FOUND", err.message || "Task not found");
85397
+ if (code === 2)
85398
+ return engineError("E_INVALID_INPUT", err.message || "Invalid input");
85399
+ return engineError(
85400
+ "E_NOT_INITIALIZED",
85401
+ err.message || "Task database not initialized"
85402
+ );
84146
85403
  }
84147
85404
  }
84148
85405
  async function taskFind(projectRoot, query, limit, options) {
@@ -84169,8 +85426,15 @@ async function taskFind(projectRoot, query, limit, options) {
84169
85426
  parentId: r.parentId
84170
85427
  }));
84171
85428
  return { success: true, data: { results, total: results.length } };
84172
- } catch {
84173
- return engineError("E_NOT_INITIALIZED", "Task database not initialized");
85429
+ } catch (err) {
85430
+ const code = err?.code;
85431
+ if (code === 4) return engineError("E_NOT_FOUND", err.message || "Task not found");
85432
+ if (code === 2)
85433
+ return engineError("E_INVALID_INPUT", err.message || "Invalid input");
85434
+ return engineError(
85435
+ "E_NOT_INITIALIZED",
85436
+ err.message || "Task database not initialized"
85437
+ );
84174
85438
  }
84175
85439
  }
84176
85440
  async function taskCreate(projectRoot, params) {
@@ -85101,54 +86365,42 @@ function routeByParam(params, paramName, routes, defaultRoute) {
85101
86365
 
85102
86366
  // packages/cleo/src/dispatch/domains/admin.ts
85103
86367
  var AdminHandler = class {
85104
- projectRoot;
85105
- constructor() {
85106
- this.projectRoot = getProjectRoot();
85107
- }
85108
86368
  // -----------------------------------------------------------------------
85109
86369
  // Query
85110
86370
  // -----------------------------------------------------------------------
85111
86371
  async query(operation, params) {
86372
+ const projectRoot = getProjectRoot();
85112
86373
  const startTime = Date.now();
85113
86374
  try {
85114
86375
  switch (operation) {
85115
86376
  case "version": {
85116
- const result = await getVersion3(this.projectRoot);
86377
+ const result = await getVersion3(projectRoot);
85117
86378
  return wrapResult(result, "query", "admin", operation, startTime);
85118
86379
  }
85119
86380
  case "health": {
85120
86381
  const mode = params?.mode;
85121
86382
  if (mode === "diagnose") {
85122
- const result2 = await systemDoctor(this.projectRoot);
86383
+ const result2 = await systemDoctor(projectRoot);
85123
86384
  return wrapResult(result2, "query", "admin", operation, startTime);
85124
86385
  }
85125
- const result = systemHealth(
85126
- this.projectRoot,
85127
- params
85128
- );
86386
+ const result = systemHealth(projectRoot, params);
85129
86387
  return wrapResult(result, "query", "admin", operation, startTime);
85130
86388
  }
85131
86389
  case "config.show": {
85132
- const result = await configGet(this.projectRoot, params?.key);
86390
+ const result = await configGet(projectRoot, params?.key);
85133
86391
  return wrapResult(result, "query", "admin", operation, startTime);
85134
86392
  }
85135
86393
  case "stats": {
85136
- const result = await systemStats(
85137
- this.projectRoot,
85138
- params
85139
- );
86394
+ const result = await systemStats(projectRoot, params);
85140
86395
  return wrapResult(result, "query", "admin", operation, startTime);
85141
86396
  }
85142
86397
  case "context": {
85143
- const result = systemContext(
85144
- this.projectRoot,
85145
- params
85146
- );
86398
+ const result = systemContext(projectRoot, params);
85147
86399
  return wrapResult(result, "query", "admin", operation, startTime);
85148
86400
  }
85149
86401
  case "runtime": {
85150
86402
  const result = await systemRuntime(
85151
- this.projectRoot,
86403
+ projectRoot,
85152
86404
  params
85153
86405
  );
85154
86406
  return wrapResult(result, "query", "admin", operation, startTime);
@@ -85243,12 +86495,12 @@ var AdminHandler = class {
85243
86495
  }
85244
86496
  case "dash": {
85245
86497
  const blockedTasksLimit = typeof params?.blockedTasksLimit === "number" ? params.blockedTasksLimit : void 0;
85246
- const result = await systemDash(this.projectRoot, { blockedTasksLimit });
86498
+ const result = await systemDash(projectRoot, { blockedTasksLimit });
85247
86499
  return wrapResult(result, "query", "admin", operation, startTime);
85248
86500
  }
85249
86501
  case "log": {
85250
86502
  const result = await systemLog(
85251
- this.projectRoot,
86503
+ projectRoot,
85252
86504
  params
85253
86505
  );
85254
86506
  return wrapResult(result, "query", "admin", operation, startTime);
@@ -85265,7 +86517,7 @@ var AdminHandler = class {
85265
86517
  startTime
85266
86518
  );
85267
86519
  }
85268
- const result = await systemSequence(this.projectRoot, {
86520
+ const result = await systemSequence(projectRoot, {
85269
86521
  action
85270
86522
  });
85271
86523
  return wrapResult(result, "query", "admin", operation, startTime);
@@ -85283,7 +86535,7 @@ var AdminHandler = class {
85283
86535
  case "adr.find": {
85284
86536
  const query = params?.query;
85285
86537
  if (query) {
85286
- const result2 = await findAdrs(this.projectRoot, query, {
86538
+ const result2 = await findAdrs(projectRoot, query, {
85287
86539
  topics: params?.topics,
85288
86540
  keywords: params?.keywords,
85289
86541
  status: params?.status
@@ -85295,7 +86547,7 @@ var AdminHandler = class {
85295
86547
  };
85296
86548
  }
85297
86549
  const { limit, offset } = getListParams(params);
85298
- const result = await listAdrs(this.projectRoot, {
86550
+ const result = await listAdrs(projectRoot, {
85299
86551
  status: params?.status,
85300
86552
  since: params?.since,
85301
86553
  limit,
@@ -85320,7 +86572,7 @@ var AdminHandler = class {
85320
86572
  startTime
85321
86573
  );
85322
86574
  }
85323
- const adr = await showAdr(this.projectRoot, adrId);
86575
+ const adr = await showAdr(projectRoot, adrId);
85324
86576
  if (!adr) {
85325
86577
  return errorResult(
85326
86578
  "query",
@@ -85359,7 +86611,7 @@ var AdminHandler = class {
85359
86611
  since: params?.since,
85360
86612
  until: params?.until
85361
86613
  },
85362
- this.projectRoot
86614
+ projectRoot
85363
86615
  );
85364
86616
  return {
85365
86617
  _meta: dispatchMeta("query", "admin", operation, startTime),
@@ -85386,7 +86638,7 @@ var AdminHandler = class {
85386
86638
  limit,
85387
86639
  offset
85388
86640
  },
85389
- this.projectRoot
86641
+ projectRoot
85390
86642
  );
85391
86643
  return {
85392
86644
  _meta: dispatchMeta("query", "admin", operation, startTime),
@@ -85411,7 +86663,7 @@ var AdminHandler = class {
85411
86663
  startTime
85412
86664
  );
85413
86665
  }
85414
- const result = await showTokenUsage(tokenId, this.projectRoot);
86666
+ const result = await showTokenUsage(tokenId, projectRoot);
85415
86667
  if (!result) {
85416
86668
  return errorResult(
85417
86669
  "query",
@@ -85436,8 +86688,8 @@ var AdminHandler = class {
85436
86688
  case "export": {
85437
86689
  const scope = params?.scope;
85438
86690
  if (scope === "snapshot") {
85439
- const snapshot = await exportSnapshot(this.projectRoot);
85440
- const outputPath = params?.output ?? getDefaultSnapshotPath(this.projectRoot);
86691
+ const snapshot = await exportSnapshot(projectRoot);
86692
+ const outputPath = params?.output ?? getDefaultSnapshotPath(projectRoot);
85441
86693
  await writeSnapshot(snapshot, outputPath);
85442
86694
  return {
85443
86695
  _meta: dispatchMeta("query", "admin", operation, startTime),
@@ -85458,7 +86710,7 @@ var AdminHandler = class {
85458
86710
  filter: params?.filter,
85459
86711
  includeDeps: params?.includeDeps,
85460
86712
  dryRun: params?.dryRun,
85461
- cwd: this.projectRoot
86713
+ cwd: projectRoot
85462
86714
  });
85463
86715
  return {
85464
86716
  _meta: dispatchMeta("query", "admin", operation, startTime),
@@ -85472,7 +86724,7 @@ var AdminHandler = class {
85472
86724
  status: params?.status,
85473
86725
  parent: params?.parent,
85474
86726
  phase: params?.phase,
85475
- cwd: this.projectRoot
86727
+ cwd: projectRoot
85476
86728
  });
85477
86729
  return {
85478
86730
  _meta: dispatchMeta("query", "admin", operation, startTime),
@@ -85482,7 +86734,7 @@ var AdminHandler = class {
85482
86734
  }
85483
86735
  case "map": {
85484
86736
  const { mapCodebase: mapCodebase3 } = await Promise.resolve().then(() => (init_codebase_map_engine(), codebase_map_engine_exports));
85485
- const result = await mapCodebase3(this.projectRoot, {
86737
+ const result = await mapCodebase3(projectRoot, {
85486
86738
  focus: params?.focus,
85487
86739
  storeToBrain: false
85488
86740
  });
@@ -85503,12 +86755,13 @@ var AdminHandler = class {
85503
86755
  // Mutate
85504
86756
  // -----------------------------------------------------------------------
85505
86757
  async mutate(operation, params) {
86758
+ const projectRoot = getProjectRoot();
85506
86759
  const startTime = Date.now();
85507
86760
  try {
85508
86761
  switch (operation) {
85509
86762
  case "init": {
85510
86763
  const result = await initProject2(
85511
- this.projectRoot,
86764
+ projectRoot,
85512
86765
  params
85513
86766
  );
85514
86767
  return wrapResult(result, "mutate", "admin", operation, startTime);
@@ -85517,10 +86770,10 @@ var AdminHandler = class {
85517
86770
  case "health": {
85518
86771
  const mode = params?.mode;
85519
86772
  if (mode === "diagnose") {
85520
- const result2 = await systemDoctor(this.projectRoot);
86773
+ const result2 = await systemDoctor(projectRoot);
85521
86774
  return wrapResult(result2, "mutate", "admin", operation, startTime);
85522
86775
  }
85523
- const result = await systemFix(this.projectRoot);
86776
+ const result = await systemFix(projectRoot);
85524
86777
  return wrapResult(result, "mutate", "admin", operation, startTime);
85525
86778
  }
85526
86779
  case "config.set": {
@@ -85535,7 +86788,7 @@ var AdminHandler = class {
85535
86788
  startTime
85536
86789
  );
85537
86790
  }
85538
- const result = await configSet(this.projectRoot, key, params?.value);
86791
+ const result = await configSet(projectRoot, key, params?.value);
85539
86792
  return wrapResult(result, "mutate", "admin", operation, startTime);
85540
86793
  }
85541
86794
  // Merged: backup absorbs restore and backup.restore via action param (T5615)
@@ -85553,7 +86806,7 @@ var AdminHandler = class {
85553
86806
  startTime
85554
86807
  );
85555
86808
  }
85556
- const result2 = systemRestore(this.projectRoot, {
86809
+ const result2 = systemRestore(projectRoot, {
85557
86810
  backupId,
85558
86811
  force: params?.force
85559
86812
  });
@@ -85571,20 +86824,20 @@ var AdminHandler = class {
85571
86824
  startTime
85572
86825
  );
85573
86826
  }
85574
- const result2 = await backupRestore(this.projectRoot, file2, {
86827
+ const result2 = await backupRestore(projectRoot, file2, {
85575
86828
  dryRun: params?.dryRun
85576
86829
  });
85577
86830
  return wrapResult(result2, "mutate", "admin", operation, startTime);
85578
86831
  }
85579
86832
  const result = systemBackup(
85580
- this.projectRoot,
86833
+ projectRoot,
85581
86834
  params
85582
86835
  );
85583
86836
  return wrapResult(result, "mutate", "admin", operation, startTime);
85584
86837
  }
85585
86838
  case "migrate": {
85586
86839
  const result = await systemMigrate(
85587
- this.projectRoot,
86840
+ projectRoot,
85588
86841
  params
85589
86842
  );
85590
86843
  return wrapResult(result, "mutate", "admin", operation, startTime);
@@ -85601,7 +86854,7 @@ var AdminHandler = class {
85601
86854
  startTime
85602
86855
  );
85603
86856
  }
85604
- const result = await systemCleanup(this.projectRoot, {
86857
+ const result = await systemCleanup(projectRoot, {
85605
86858
  target,
85606
86859
  olderThan: params?.olderThan,
85607
86860
  dryRun: params?.dryRun
@@ -85653,20 +86906,20 @@ var AdminHandler = class {
85653
86906
  }
85654
86907
  case "safestop": {
85655
86908
  const result = systemSafestop(
85656
- this.projectRoot,
86909
+ projectRoot,
85657
86910
  params
85658
86911
  );
85659
86912
  return wrapResult(result, "mutate", "admin", operation, startTime);
85660
86913
  }
85661
86914
  case "inject.generate": {
85662
- const result = await systemInjectGenerate(this.projectRoot);
86915
+ const result = await systemInjectGenerate(projectRoot);
85663
86916
  return wrapResult(result, "mutate", "admin", operation, startTime);
85664
86917
  }
85665
86918
  // adr.sync absorbs adr.validate via validate flag (T5615)
85666
86919
  case "adr.sync": {
85667
86920
  const validate = params?.validate;
85668
86921
  if (validate) {
85669
- const result2 = await validateAllAdrs(this.projectRoot);
86922
+ const result2 = await validateAllAdrs(projectRoot);
85670
86923
  return {
85671
86924
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
85672
86925
  success: result2.valid,
@@ -85679,7 +86932,7 @@ var AdminHandler = class {
85679
86932
  }
85680
86933
  };
85681
86934
  }
85682
- const result = await syncAdrsToDb(this.projectRoot);
86935
+ const result = await syncAdrsToDb(projectRoot);
85683
86936
  return {
85684
86937
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
85685
86938
  success: true,
@@ -85714,7 +86967,7 @@ var AdminHandler = class {
85714
86967
  }
85715
86968
  };
85716
86969
  }
85717
- const result2 = await importSnapshot(snapshot, this.projectRoot);
86970
+ const result2 = await importSnapshot(snapshot, projectRoot);
85718
86971
  return {
85719
86972
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
85720
86973
  success: true,
@@ -85750,7 +87003,7 @@ var AdminHandler = class {
85750
87003
  onConflict: params?.onConflict,
85751
87004
  onMissingDep: params?.onMissingDep,
85752
87005
  force: params?.force,
85753
- cwd: this.projectRoot
87006
+ cwd: projectRoot
85754
87007
  });
85755
87008
  return {
85756
87009
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
@@ -85776,7 +87029,7 @@ var AdminHandler = class {
85776
87029
  onDuplicate: params?.onDuplicate,
85777
87030
  addLabel: params?.addLabel,
85778
87031
  dryRun: params?.dryRun,
85779
- cwd: this.projectRoot
87032
+ cwd: projectRoot
85780
87033
  });
85781
87034
  return {
85782
87035
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
@@ -85786,8 +87039,8 @@ var AdminHandler = class {
85786
87039
  }
85787
87040
  case "detect": {
85788
87041
  const { ensureProjectContext: ensureProjectContext2, ensureContributorMcp: ensureContributorMcp2 } = await Promise.resolve().then(() => (init_internal(), internal_exports));
85789
- const contextResult = await ensureProjectContext2(this.projectRoot, { force: true });
85790
- const mcpResult = await ensureContributorMcp2(this.projectRoot);
87042
+ const contextResult = await ensureProjectContext2(projectRoot, { force: true });
87043
+ const mcpResult = await ensureContributorMcp2(projectRoot);
85791
87044
  return wrapResult(
85792
87045
  {
85793
87046
  success: true,
@@ -85819,7 +87072,7 @@ var AdminHandler = class {
85819
87072
  requestPayload: params?.requestPayload,
85820
87073
  responsePayload: params?.responsePayload,
85821
87074
  metadata: params?.metadata,
85822
- cwd: this.projectRoot
87075
+ cwd: projectRoot
85823
87076
  });
85824
87077
  return {
85825
87078
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
@@ -85839,7 +87092,7 @@ var AdminHandler = class {
85839
87092
  startTime
85840
87093
  );
85841
87094
  }
85842
- const result = await deleteTokenUsage(tokenId, this.projectRoot);
87095
+ const result = await deleteTokenUsage(tokenId, projectRoot);
85843
87096
  return {
85844
87097
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
85845
87098
  success: true,
@@ -85862,7 +87115,7 @@ var AdminHandler = class {
85862
87115
  since: params?.since,
85863
87116
  until: params?.until
85864
87117
  },
85865
- this.projectRoot
87118
+ projectRoot
85866
87119
  );
85867
87120
  return {
85868
87121
  _meta: dispatchMeta("mutate", "admin", operation, startTime),
@@ -85893,13 +87146,13 @@ var AdminHandler = class {
85893
87146
  taskId: params?.taskId,
85894
87147
  variant: params?.variant
85895
87148
  },
85896
- this.projectRoot
87149
+ projectRoot
85897
87150
  );
85898
87151
  return wrapResult(result, "mutate", "admin", operation, startTime);
85899
87152
  }
85900
87153
  case "map": {
85901
87154
  const { mapCodebase: mapCodebase3 } = await Promise.resolve().then(() => (init_codebase_map_engine(), codebase_map_engine_exports));
85902
- const result = await mapCodebase3(this.projectRoot, {
87155
+ const result = await mapCodebase3(projectRoot, {
85903
87156
  focus: params?.focus,
85904
87157
  storeToBrain: true
85905
87158
  });
@@ -85980,14 +87233,11 @@ var AdminHandler = class {
85980
87233
  // packages/cleo/src/dispatch/domains/check.ts
85981
87234
  init_internal();
85982
87235
  var CheckHandler = class {
85983
- projectRoot;
85984
- constructor() {
85985
- this.projectRoot = getProjectRoot();
85986
- }
85987
87236
  // -----------------------------------------------------------------------
85988
87237
  // Query
85989
87238
  // -----------------------------------------------------------------------
85990
87239
  async query(operation, params) {
87240
+ const projectRoot = getProjectRoot();
85991
87241
  const startTime = Date.now();
85992
87242
  try {
85993
87243
  switch (operation) {
@@ -86003,7 +87253,7 @@ var CheckHandler = class {
86003
87253
  startTime
86004
87254
  );
86005
87255
  }
86006
- const result = validateSchemaOp(type, params?.data, this.projectRoot);
87256
+ const result = validateSchemaOp(type, params?.data, projectRoot);
86007
87257
  return wrapResult(result, "query", "check", operation, startTime);
86008
87258
  }
86009
87259
  case "task": {
@@ -86018,11 +87268,11 @@ var CheckHandler = class {
86018
87268
  startTime
86019
87269
  );
86020
87270
  }
86021
- const result = await validateTask2(taskId, this.projectRoot);
87271
+ const result = await validateTask2(taskId, projectRoot);
86022
87272
  return wrapResult(result, "query", "check", operation, startTime);
86023
87273
  }
86024
87274
  case "manifest": {
86025
- const result = validateManifest(this.projectRoot);
87275
+ const result = validateManifest(projectRoot);
86026
87276
  return wrapResult(result, "query", "check", operation, startTime);
86027
87277
  }
86028
87278
  case "output": {
@@ -86040,7 +87290,7 @@ var CheckHandler = class {
86040
87290
  const result = validateOutput(
86041
87291
  filePath,
86042
87292
  params?.taskId,
86043
- this.projectRoot
87293
+ projectRoot
86044
87294
  );
86045
87295
  return wrapResult(result, "query", "check", operation, startTime);
86046
87296
  }
@@ -86048,23 +87298,23 @@ var CheckHandler = class {
86048
87298
  const detail = params?.detail;
86049
87299
  const limit = params?.limit;
86050
87300
  if (detail) {
86051
- const result2 = validateComplianceViolations(limit, this.projectRoot);
87301
+ const result2 = validateComplianceViolations(limit, projectRoot);
86052
87302
  return wrapResult(result2, "query", "check", operation, startTime);
86053
87303
  }
86054
- const result = validateComplianceSummary(this.projectRoot);
87304
+ const result = validateComplianceSummary(projectRoot);
86055
87305
  return wrapResult(result, "query", "check", operation, startTime);
86056
87306
  }
86057
87307
  case "test": {
86058
87308
  const format = params?.format;
86059
87309
  if (format === "coverage") {
86060
- const result2 = validateTestCoverage(this.projectRoot);
87310
+ const result2 = validateTestCoverage(projectRoot);
86061
87311
  return wrapResult(result2, "query", "check", operation, startTime);
86062
87312
  }
86063
- const result = validateTestStatus(this.projectRoot);
87313
+ const result = validateTestStatus(projectRoot);
86064
87314
  return wrapResult(result, "query", "check", operation, startTime);
86065
87315
  }
86066
87316
  case "coherence": {
86067
- const result = await validateCoherenceCheck(this.projectRoot);
87317
+ const result = await validateCoherenceCheck(projectRoot);
86068
87318
  return wrapResult(result, "query", "check", operation, startTime);
86069
87319
  }
86070
87320
  case "protocol": {
@@ -86083,12 +87333,12 @@ var CheckHandler = class {
86083
87333
  ...protocolParams,
86084
87334
  votingMatrixFile: params?.votingMatrixFile
86085
87335
  },
86086
- this.projectRoot
87336
+ projectRoot
86087
87337
  );
86088
87338
  return wrapResult(result, "query", "check", operation, startTime);
86089
87339
  }
86090
87340
  case "contribution": {
86091
- const result = await validateProtocolContribution(protocolParams, this.projectRoot);
87341
+ const result = await validateProtocolContribution(protocolParams, projectRoot);
86092
87342
  return wrapResult(result, "query", "check", operation, startTime);
86093
87343
  }
86094
87344
  case "decomposition": {
@@ -86097,12 +87347,12 @@ var CheckHandler = class {
86097
87347
  ...protocolParams,
86098
87348
  epicId: params?.epicId
86099
87349
  },
86100
- this.projectRoot
87350
+ projectRoot
86101
87351
  );
86102
87352
  return wrapResult(result, "query", "check", operation, startTime);
86103
87353
  }
86104
87354
  case "implementation": {
86105
- const result = await validateProtocolImplementation(protocolParams, this.projectRoot);
87355
+ const result = await validateProtocolImplementation(protocolParams, projectRoot);
86106
87356
  return wrapResult(result, "query", "check", operation, startTime);
86107
87357
  }
86108
87358
  case "specification": {
@@ -86111,7 +87361,7 @@ var CheckHandler = class {
86111
87361
  ...protocolParams,
86112
87362
  specFile: params?.specFile
86113
87363
  },
86114
- this.projectRoot
87364
+ projectRoot
86115
87365
  );
86116
87366
  return wrapResult(result, "query", "check", operation, startTime);
86117
87367
  }
@@ -86127,7 +87377,7 @@ var CheckHandler = class {
86127
87377
  startTime
86128
87378
  );
86129
87379
  }
86130
- const result = await validateProtocol(taskId, protocolType, this.projectRoot);
87380
+ const result = await validateProtocol(taskId, protocolType, projectRoot);
86131
87381
  return wrapResult(result, "query", "check", operation, startTime);
86132
87382
  }
86133
87383
  }
@@ -86144,11 +87394,11 @@ var CheckHandler = class {
86144
87394
  startTime
86145
87395
  );
86146
87396
  }
86147
- const result = await validateGateVerify({ taskId }, this.projectRoot);
87397
+ const result = await validateGateVerify({ taskId }, projectRoot);
86148
87398
  return wrapResult(result, "query", "check", operation, startTime);
86149
87399
  }
86150
87400
  case "archive.stats": {
86151
- const result = await systemArchiveStats(this.projectRoot);
87401
+ const result = await systemArchiveStats(projectRoot);
86152
87402
  return wrapResult(result, "query", "check", operation, startTime);
86153
87403
  }
86154
87404
  // T5405: WarpChain validation
@@ -86187,7 +87437,7 @@ var CheckHandler = class {
86187
87437
  startTime
86188
87438
  );
86189
87439
  }
86190
- const gradeResult = await gradeSession2(sessionId, this.projectRoot);
87440
+ const gradeResult = await gradeSession2(sessionId, projectRoot);
86191
87441
  return wrapResult(
86192
87442
  { success: true, data: gradeResult },
86193
87443
  "query",
@@ -86200,7 +87450,7 @@ var CheckHandler = class {
86200
87450
  const { readGrades: readGrades2 } = await Promise.resolve().then(() => (init_internal(), internal_exports));
86201
87451
  const limit = typeof params?.limit === "number" ? params.limit : void 0;
86202
87452
  const offset = typeof params?.offset === "number" ? params.offset : void 0;
86203
- const allGrades = await readGrades2(void 0, this.projectRoot);
87453
+ const allGrades = await readGrades2(void 0, projectRoot);
86204
87454
  const sessionId = params?.sessionId;
86205
87455
  const filteredGrades = sessionId ? allGrades.filter((g) => g.sessionId === sessionId) : allGrades;
86206
87456
  const page = paginate(filteredGrades, limit, offset);
@@ -86231,6 +87481,7 @@ var CheckHandler = class {
86231
87481
  // Mutate
86232
87482
  // -----------------------------------------------------------------------
86233
87483
  async mutate(operation, params) {
87484
+ const projectRoot = getProjectRoot();
86234
87485
  const startTime = Date.now();
86235
87486
  try {
86236
87487
  switch (operation) {
@@ -86252,14 +87503,14 @@ var CheckHandler = class {
86252
87503
  result,
86253
87504
  params?.protocol,
86254
87505
  params?.violations,
86255
- this.projectRoot
87506
+ projectRoot
86256
87507
  );
86257
87508
  return wrapResult(engineResult, "mutate", "check", operation, startTime);
86258
87509
  }
86259
87510
  case "test.run": {
86260
87511
  const result = validateTestRun(
86261
87512
  params,
86262
- this.projectRoot
87513
+ projectRoot
86263
87514
  );
86264
87515
  return wrapResult(result, "mutate", "check", operation, startTime);
86265
87516
  }
@@ -86267,7 +87518,7 @@ var CheckHandler = class {
86267
87518
  const { syncComplianceMetrics: syncComplianceMetrics2 } = await Promise.resolve().then(() => (init_internal(), internal_exports));
86268
87519
  const result = await syncComplianceMetrics2({
86269
87520
  force: params?.force,
86270
- cwd: this.projectRoot
87521
+ cwd: projectRoot
86271
87522
  });
86272
87523
  return {
86273
87524
  _meta: dispatchMeta("mutate", "check", operation, startTime),
@@ -86295,7 +87546,7 @@ var CheckHandler = class {
86295
87546
  all: params?.all,
86296
87547
  reset: params?.reset
86297
87548
  };
86298
- const result = await validateGateVerify(gateParams, this.projectRoot);
87549
+ const result = await validateGateVerify(gateParams, projectRoot);
86299
87550
  return wrapResult(result, "mutate", "check", operation, startTime);
86300
87551
  }
86301
87552
  default:
@@ -86338,14 +87589,11 @@ var CheckHandler = class {
86338
87589
  // packages/cleo/src/dispatch/domains/memory.ts
86339
87590
  init_src2();
86340
87591
  var MemoryHandler = class {
86341
- projectRoot;
86342
- constructor() {
86343
- this.projectRoot = getProjectRoot();
86344
- }
86345
87592
  // -----------------------------------------------------------------------
86346
87593
  // Query
86347
87594
  // -----------------------------------------------------------------------
86348
87595
  async query(operation, params) {
87596
+ const projectRoot = getProjectRoot();
86349
87597
  const startTime = Date.now();
86350
87598
  try {
86351
87599
  switch (operation) {
@@ -86369,7 +87617,7 @@ var MemoryHandler = class {
86369
87617
  dateStart: params?.dateStart,
86370
87618
  dateEnd: params?.dateEnd
86371
87619
  },
86372
- this.projectRoot
87620
+ projectRoot
86373
87621
  );
86374
87622
  return wrapResult(result, "query", "memory", operation, startTime);
86375
87623
  }
@@ -86391,7 +87639,7 @@ var MemoryHandler = class {
86391
87639
  depthBefore: params?.depthBefore,
86392
87640
  depthAfter: params?.depthAfter
86393
87641
  },
86394
- this.projectRoot
87642
+ projectRoot
86395
87643
  );
86396
87644
  return wrapResult(result, "query", "memory", operation, startTime);
86397
87645
  }
@@ -86407,7 +87655,7 @@ var MemoryHandler = class {
86407
87655
  startTime
86408
87656
  );
86409
87657
  }
86410
- const result = await memoryFetch({ ids }, this.projectRoot);
87658
+ const result = await memoryFetch({ ids }, projectRoot);
86411
87659
  return wrapResult(result, "query", "memory", operation, startTime);
86412
87660
  }
86413
87661
  case "decision.find": {
@@ -86417,7 +87665,7 @@ var MemoryHandler = class {
86417
87665
  taskId: params?.taskId,
86418
87666
  limit: params?.limit
86419
87667
  },
86420
- this.projectRoot
87668
+ projectRoot
86421
87669
  );
86422
87670
  return wrapResult(result, "query", "memory", operation, startTime);
86423
87671
  }
@@ -86430,7 +87678,7 @@ var MemoryHandler = class {
86430
87678
  minFrequency: params?.minFrequency,
86431
87679
  limit: params?.limit
86432
87680
  },
86433
- this.projectRoot
87681
+ projectRoot
86434
87682
  );
86435
87683
  return wrapResult(result, "query", "memory", operation, startTime);
86436
87684
  }
@@ -86443,7 +87691,7 @@ var MemoryHandler = class {
86443
87691
  applicableType: params?.applicableType,
86444
87692
  limit: params?.limit
86445
87693
  },
86446
- this.projectRoot
87694
+ projectRoot
86447
87695
  );
86448
87696
  return wrapResult(result, "query", "memory", operation, startTime);
86449
87697
  }
@@ -86459,7 +87707,7 @@ var MemoryHandler = class {
86459
87707
  startTime
86460
87708
  );
86461
87709
  }
86462
- const result = await memoryGraphShow({ nodeId }, this.projectRoot);
87710
+ const result = await memoryGraphShow({ nodeId }, projectRoot);
86463
87711
  return wrapResult(result, "query", "memory", operation, startTime);
86464
87712
  }
86465
87713
  case "graph.neighbors": {
@@ -86476,7 +87724,7 @@ var MemoryHandler = class {
86476
87724
  }
86477
87725
  const result = await memoryGraphNeighbors(
86478
87726
  { nodeId, edgeType: params?.edgeType },
86479
- this.projectRoot
87727
+ projectRoot
86480
87728
  );
86481
87729
  return wrapResult(result, "query", "memory", operation, startTime);
86482
87730
  }
@@ -86492,7 +87740,7 @@ var MemoryHandler = class {
86492
87740
  startTime
86493
87741
  );
86494
87742
  }
86495
- const result = await memoryReasonWhy({ taskId }, this.projectRoot);
87743
+ const result = await memoryReasonWhy({ taskId }, projectRoot);
86496
87744
  return wrapResult(result, "query", "memory", operation, startTime);
86497
87745
  }
86498
87746
  case "reason.similar": {
@@ -86509,7 +87757,7 @@ var MemoryHandler = class {
86509
87757
  }
86510
87758
  const result = await memoryReasonSimilar(
86511
87759
  { entryId, limit: params?.limit },
86512
- this.projectRoot
87760
+ projectRoot
86513
87761
  );
86514
87762
  return wrapResult(result, "query", "memory", operation, startTime);
86515
87763
  }
@@ -86533,7 +87781,7 @@ var MemoryHandler = class {
86533
87781
  graphWeight: params?.graphWeight,
86534
87782
  limit: params?.limit
86535
87783
  },
86536
- this.projectRoot
87784
+ projectRoot
86537
87785
  );
86538
87786
  return wrapResult(result, "query", "memory", operation, startTime);
86539
87787
  }
@@ -86553,6 +87801,7 @@ var MemoryHandler = class {
86553
87801
  // Mutate
86554
87802
  // -----------------------------------------------------------------------
86555
87803
  async mutate(operation, params) {
87804
+ const projectRoot = getProjectRoot();
86556
87805
  const startTime = Date.now();
86557
87806
  try {
86558
87807
  switch (operation) {
@@ -86577,7 +87826,7 @@ var MemoryHandler = class {
86577
87826
  sourceSessionId: params?.sourceSessionId,
86578
87827
  sourceType: params?.sourceType
86579
87828
  },
86580
- this.projectRoot
87829
+ projectRoot
86581
87830
  );
86582
87831
  return wrapResult(result, "mutate", "memory", operation, startTime);
86583
87832
  }
@@ -86602,7 +87851,7 @@ var MemoryHandler = class {
86602
87851
  taskId: params?.taskId,
86603
87852
  sessionId: params?.sessionId
86604
87853
  },
86605
- this.projectRoot
87854
+ projectRoot
86606
87855
  );
86607
87856
  return wrapResult(result, "mutate", "memory", operation, startTime);
86608
87857
  }
@@ -86630,7 +87879,7 @@ var MemoryHandler = class {
86630
87879
  examples: params?.examples,
86631
87880
  successRate: params?.successRate
86632
87881
  },
86633
- this.projectRoot
87882
+ projectRoot
86634
87883
  );
86635
87884
  return wrapResult(result, "mutate", "memory", operation, startTime);
86636
87885
  }
@@ -86656,7 +87905,7 @@ var MemoryHandler = class {
86656
87905
  application: params?.application,
86657
87906
  applicableTypes: params?.applicableTypes
86658
87907
  },
86659
- this.projectRoot
87908
+ projectRoot
86660
87909
  );
86661
87910
  return wrapResult(result, "mutate", "memory", operation, startTime);
86662
87911
  }
@@ -86673,7 +87922,7 @@ var MemoryHandler = class {
86673
87922
  startTime
86674
87923
  );
86675
87924
  }
86676
- const result = await memoryLink({ taskId, entryId }, this.projectRoot);
87925
+ const result = await memoryLink({ taskId, entryId }, projectRoot);
86677
87926
  return wrapResult(result, "mutate", "memory", operation, startTime);
86678
87927
  }
86679
87928
  case "graph.add": {
@@ -86688,7 +87937,7 @@ var MemoryHandler = class {
86688
87937
  edgeType: params?.edgeType,
86689
87938
  weight: params?.weight
86690
87939
  },
86691
- this.projectRoot
87940
+ projectRoot
86692
87941
  );
86693
87942
  return wrapResult(result, "mutate", "memory", operation, startTime);
86694
87943
  }
@@ -86700,7 +87949,7 @@ var MemoryHandler = class {
86700
87949
  toId: params?.toId,
86701
87950
  edgeType: params?.edgeType
86702
87951
  },
86703
- this.projectRoot
87952
+ projectRoot
86704
87953
  );
86705
87954
  return wrapResult(result, "mutate", "memory", operation, startTime);
86706
87955
  }
@@ -86989,14 +88238,11 @@ async function nexusTransferExecute(params) {
86989
88238
 
86990
88239
  // packages/cleo/src/dispatch/domains/nexus.ts
86991
88240
  var NexusHandler = class {
86992
- projectRoot;
86993
- constructor() {
86994
- this.projectRoot = getProjectRoot();
86995
- }
86996
88241
  // -----------------------------------------------------------------------
86997
88242
  // Query
86998
88243
  // -----------------------------------------------------------------------
86999
88244
  async query(operation, params) {
88245
+ const projectRoot = getProjectRoot();
87000
88246
  const startTime = Date.now();
87001
88247
  try {
87002
88248
  switch (operation) {
@@ -87144,7 +88390,7 @@ var NexusHandler = class {
87144
88390
  return wrapResult(result, "query", "nexus", operation, startTime);
87145
88391
  }
87146
88392
  case "share.status": {
87147
- const result = await nexusShareStatus(this.projectRoot);
88393
+ const result = await nexusShareStatus(projectRoot);
87148
88394
  return wrapResult(result, "query", "nexus", "share.status", startTime);
87149
88395
  }
87150
88396
  case "transfer.preview": {
@@ -87185,6 +88431,7 @@ var NexusHandler = class {
87185
88431
  // Mutate
87186
88432
  // -----------------------------------------------------------------------
87187
88433
  async mutate(operation, params) {
88434
+ const projectRoot = getProjectRoot();
87188
88435
  const startTime = Date.now();
87189
88436
  try {
87190
88437
  switch (operation) {
@@ -87268,13 +88515,13 @@ var NexusHandler = class {
87268
88515
  return wrapResult(result, "mutate", "nexus", operation, startTime);
87269
88516
  }
87270
88517
  case "reconcile": {
87271
- const projectRoot = params?.projectRoot || process.cwd();
87272
- const result = await nexusReconcileProject(projectRoot);
88518
+ const projectRoot2 = params?.projectRoot || process.cwd();
88519
+ const result = await nexusReconcileProject(projectRoot2);
87273
88520
  return wrapResult(result, "mutate", "nexus", operation, startTime);
87274
88521
  }
87275
88522
  case "share.snapshot.export": {
87276
88523
  const outputPath = params?.outputPath;
87277
- const result = await nexusShareSnapshotExport(this.projectRoot, outputPath);
88524
+ const result = await nexusShareSnapshotExport(projectRoot, outputPath);
87278
88525
  return wrapResult(result, "mutate", "nexus", "share.snapshot.export", startTime);
87279
88526
  }
87280
88527
  case "share.snapshot.import": {
@@ -87289,7 +88536,7 @@ var NexusHandler = class {
87289
88536
  startTime
87290
88537
  );
87291
88538
  }
87292
- const result = await nexusShareSnapshotImport(this.projectRoot, inputPath);
88539
+ const result = await nexusShareSnapshotImport(projectRoot, inputPath);
87293
88540
  return wrapResult(result, "mutate", "nexus", "share.snapshot.import", startTime);
87294
88541
  }
87295
88542
  case "transfer": {
@@ -87366,20 +88613,17 @@ var NexusHandler = class {
87366
88613
  // packages/cleo/src/dispatch/domains/orchestrate.ts
87367
88614
  init_internal();
87368
88615
  var OrchestrateHandler = class {
87369
- projectRoot;
87370
- constructor() {
87371
- this.projectRoot = getProjectRoot();
87372
- }
87373
88616
  // -----------------------------------------------------------------------
87374
88617
  // DomainHandler interface
87375
88618
  // -----------------------------------------------------------------------
87376
88619
  async query(operation, params) {
88620
+ const projectRoot = getProjectRoot();
87377
88621
  const startTime = Date.now();
87378
88622
  try {
87379
88623
  switch (operation) {
87380
88624
  case "status": {
87381
88625
  const epicId = params?.epicId;
87382
- const result = await orchestrateStatus(epicId, this.projectRoot);
88626
+ const result = await orchestrateStatus(epicId, projectRoot);
87383
88627
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87384
88628
  }
87385
88629
  case "next": {
@@ -87394,7 +88638,7 @@ var OrchestrateHandler = class {
87394
88638
  startTime
87395
88639
  );
87396
88640
  }
87397
- const result = await orchestrateNext(epicId, this.projectRoot);
88641
+ const result = await orchestrateNext(epicId, projectRoot);
87398
88642
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87399
88643
  }
87400
88644
  case "ready": {
@@ -87409,18 +88653,18 @@ var OrchestrateHandler = class {
87409
88653
  startTime
87410
88654
  );
87411
88655
  }
87412
- const result = await orchestrateReady(epicId, this.projectRoot);
88656
+ const result = await orchestrateReady(epicId, projectRoot);
87413
88657
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87414
88658
  }
87415
88659
  case "analyze": {
87416
88660
  const epicId = params?.epicId;
87417
88661
  const mode = params?.mode;
87418
- const result = await orchestrateAnalyze(epicId, this.projectRoot, mode);
88662
+ const result = await orchestrateAnalyze(epicId, projectRoot, mode);
87419
88663
  return wrapResult(result, "query", "orchestrate", "analyze", startTime);
87420
88664
  }
87421
88665
  case "context": {
87422
88666
  const epicId = params?.epicId;
87423
- const result = await orchestrateContext(epicId, this.projectRoot);
88667
+ const result = await orchestrateContext(epicId, projectRoot);
87424
88668
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87425
88669
  }
87426
88670
  case "waves": {
@@ -87435,16 +88679,16 @@ var OrchestrateHandler = class {
87435
88679
  startTime
87436
88680
  );
87437
88681
  }
87438
- const result = await orchestrateWaves(epicId, this.projectRoot);
88682
+ const result = await orchestrateWaves(epicId, projectRoot);
87439
88683
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87440
88684
  }
87441
88685
  case "bootstrap": {
87442
88686
  const speed = params?.speed;
87443
- const result = await orchestrateBootstrap(this.projectRoot, { speed });
88687
+ const result = await orchestrateBootstrap(projectRoot, { speed });
87444
88688
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87445
88689
  }
87446
88690
  case "unblock.opportunities": {
87447
- const result = await orchestrateUnblockOpportunities(this.projectRoot);
88691
+ const result = await orchestrateUnblockOpportunities(projectRoot);
87448
88692
  return wrapResult(result, "query", "orchestrate", operation, startTime);
87449
88693
  }
87450
88694
  case "tessera.list": {
@@ -87501,6 +88745,7 @@ var OrchestrateHandler = class {
87501
88745
  }
87502
88746
  }
87503
88747
  async mutate(operation, params) {
88748
+ const projectRoot = getProjectRoot();
87504
88749
  const startTime = Date.now();
87505
88750
  try {
87506
88751
  switch (operation) {
@@ -87516,7 +88761,7 @@ var OrchestrateHandler = class {
87516
88761
  startTime
87517
88762
  );
87518
88763
  }
87519
- const result = await orchestrateStartup(epicId, this.projectRoot);
88764
+ const result = await orchestrateStartup(epicId, projectRoot);
87520
88765
  return wrapResult(result, "mutate", "orchestrate", operation, startTime);
87521
88766
  }
87522
88767
  case "spawn": {
@@ -87533,7 +88778,7 @@ var OrchestrateHandler = class {
87533
88778
  }
87534
88779
  const protocolType = params?.protocolType;
87535
88780
  const tier = params?.tier;
87536
- const result = await orchestrateSpawn(taskId, protocolType, this.projectRoot, tier);
88781
+ const result = await orchestrateSpawn(taskId, protocolType, projectRoot, tier);
87537
88782
  return wrapResult(result, "mutate", "orchestrate", operation, startTime);
87538
88783
  }
87539
88784
  case "handoff": {
@@ -87570,7 +88815,7 @@ var OrchestrateHandler = class {
87570
88815
  tier,
87571
88816
  idempotencyKey: params?.idempotencyKey
87572
88817
  },
87573
- this.projectRoot
88818
+ projectRoot
87574
88819
  );
87575
88820
  return wrapResult(result, "mutate", "orchestrate", operation, startTime);
87576
88821
  }
@@ -87593,7 +88838,7 @@ var OrchestrateHandler = class {
87593
88838
  taskId,
87594
88839
  adapterId,
87595
88840
  protocolType,
87596
- this.projectRoot,
88841
+ projectRoot,
87597
88842
  tier
87598
88843
  );
87599
88844
  return wrapResult(result, "mutate", "orchestrate", operation, startTime);
@@ -87610,7 +88855,7 @@ var OrchestrateHandler = class {
87610
88855
  startTime
87611
88856
  );
87612
88857
  }
87613
- const result = await orchestrateValidate(taskId, this.projectRoot);
88858
+ const result = await orchestrateValidate(taskId, projectRoot);
87614
88859
  return wrapResult(result, "mutate", "orchestrate", operation, startTime);
87615
88860
  }
87616
88861
  case "parallel": {
@@ -87638,7 +88883,7 @@ var OrchestrateHandler = class {
87638
88883
  startTime
87639
88884
  );
87640
88885
  }
87641
- const result = await orchestrateParallelStart(epicId, wave, this.projectRoot);
88886
+ const result = await orchestrateParallelStart(epicId, wave, projectRoot);
87642
88887
  return wrapResult(result, "mutate", "orchestrate", "parallel", startTime);
87643
88888
  },
87644
88889
  end: async () => {
@@ -87664,7 +88909,7 @@ var OrchestrateHandler = class {
87664
88909
  startTime
87665
88910
  );
87666
88911
  }
87667
- const result = await orchestrateParallelEnd(epicId, wave, this.projectRoot);
88912
+ const result = await orchestrateParallelEnd(epicId, wave, projectRoot);
87668
88913
  return wrapResult(result, "mutate", "orchestrate", "parallel", startTime);
87669
88914
  }
87670
88915
  });
@@ -87707,7 +88952,7 @@ var OrchestrateHandler = class {
87707
88952
  const instance = await instantiateTessera(
87708
88953
  template,
87709
88954
  { templateId, epicId, variables: { epicId, ...variables } },
87710
- this.projectRoot
88955
+ projectRoot
87711
88956
  );
87712
88957
  return {
87713
88958
  _meta: dispatchMeta("mutate", "orchestrate", operation, startTime),
@@ -87763,9 +89008,8 @@ var OrchestrateHandler = class {
87763
89008
  init_internal();
87764
89009
  import { execFileSync as execFileSync13 } from "node:child_process";
87765
89010
  var PipelineHandler = class {
87766
- projectRoot;
87767
- constructor() {
87768
- this.projectRoot = getProjectRoot();
89011
+ get projectRoot() {
89012
+ return getProjectRoot();
87769
89013
  }
87770
89014
  // -----------------------------------------------------------------------
87771
89015
  // DomainHandler interface
@@ -88638,24 +89882,21 @@ function unbindSession() {
88638
89882
 
88639
89883
  // packages/cleo/src/dispatch/domains/session.ts
88640
89884
  var SessionHandler = class {
88641
- projectRoot;
88642
- constructor() {
88643
- this.projectRoot = getProjectRoot();
88644
- }
88645
89885
  // -----------------------------------------------------------------------
88646
89886
  // Query
88647
89887
  // -----------------------------------------------------------------------
88648
89888
  async query(operation, params) {
89889
+ const projectRoot = getProjectRoot();
88649
89890
  const startTime = Date.now();
88650
89891
  try {
88651
89892
  switch (operation) {
88652
89893
  case "status": {
88653
- const result = await sessionStatus2(this.projectRoot);
89894
+ const result = await sessionStatus2(projectRoot);
88654
89895
  return wrapResult(result, "query", "session", operation, startTime);
88655
89896
  }
88656
89897
  case "list": {
88657
89898
  const result = await sessionList(
88658
- this.projectRoot,
89899
+ projectRoot,
88659
89900
  params
88660
89901
  );
88661
89902
  return wrapResult(result, "query", "session", operation, startTime);
@@ -88675,24 +89916,21 @@ var SessionHandler = class {
88675
89916
  }
88676
89917
  const include = params?.include;
88677
89918
  if (include === "debrief") {
88678
- const result2 = await sessionDebriefShow(this.projectRoot, sessionId);
89919
+ const result2 = await sessionDebriefShow(projectRoot, sessionId);
88679
89920
  return wrapResult(result2, "query", "session", operation, startTime);
88680
89921
  }
88681
- const result = await sessionShow(this.projectRoot, sessionId);
89922
+ const result = await sessionShow(projectRoot, sessionId);
88682
89923
  return wrapResult(result, "query", "session", operation, startTime);
88683
89924
  }
88684
89925
  case "decision.log": {
88685
89926
  const result = await sessionDecisionLog(
88686
- this.projectRoot,
89927
+ projectRoot,
88687
89928
  params
88688
89929
  );
88689
89930
  return wrapResult(result, "query", "session", operation, startTime);
88690
89931
  }
88691
89932
  case "context.drift": {
88692
- const result = await sessionContextDrift(
88693
- this.projectRoot,
88694
- params
88695
- );
89933
+ const result = await sessionContextDrift(projectRoot, params);
88696
89934
  return wrapResult(result, "query", "session", operation, startTime);
88697
89935
  }
88698
89936
  case "handoff.show": {
@@ -88705,11 +89943,11 @@ var SessionHandler = class {
88705
89943
  scopeFilter = { type: "epic", epicId: scope.replace("epic:", "") };
88706
89944
  }
88707
89945
  }
88708
- const result = await sessionHandoff(this.projectRoot, scopeFilter);
89946
+ const result = await sessionHandoff(projectRoot, scopeFilter);
88709
89947
  return wrapResult(result, "query", "session", operation, startTime);
88710
89948
  }
88711
89949
  case "briefing.show": {
88712
- const result = await sessionBriefing(this.projectRoot, {
89950
+ const result = await sessionBriefing(projectRoot, {
88713
89951
  maxNextTasks: params?.maxNextTasks,
88714
89952
  maxBugs: params?.maxBugs,
88715
89953
  maxBlocked: params?.maxBlocked,
@@ -88720,7 +89958,7 @@ var SessionHandler = class {
88720
89958
  }
88721
89959
  case "find": {
88722
89960
  const result = await sessionFind(
88723
- this.projectRoot,
89961
+ projectRoot,
88724
89962
  params
88725
89963
  );
88726
89964
  return wrapResult(result, "query", "session", operation, startTime);
@@ -88740,6 +89978,7 @@ var SessionHandler = class {
88740
89978
  // Mutate
88741
89979
  // -----------------------------------------------------------------------
88742
89980
  async mutate(operation, params) {
89981
+ const projectRoot = getProjectRoot();
88743
89982
  const startTime = Date.now();
88744
89983
  try {
88745
89984
  switch (operation) {
@@ -88755,7 +89994,7 @@ var SessionHandler = class {
88755
89994
  startTime
88756
89995
  );
88757
89996
  }
88758
- const result = await sessionStart(this.projectRoot, {
89997
+ const result = await sessionStart(projectRoot, {
88759
89998
  scope,
88760
89999
  name: params?.name,
88761
90000
  autoStart: params?.autoStart,
@@ -88786,19 +90025,19 @@ var SessionHandler = class {
88786
90025
  return wrapResult(result, "mutate", "session", operation, startTime);
88787
90026
  }
88788
90027
  case "end": {
88789
- const endResult = await sessionEnd(this.projectRoot, params?.note);
90028
+ const endResult = await sessionEnd(projectRoot, params?.note);
88790
90029
  if (endResult.success && endResult.data) {
88791
90030
  const sessionId = endResult.data.sessionId;
88792
90031
  if (sessionId) {
88793
90032
  let debriefResult = null;
88794
90033
  try {
88795
- debriefResult = await sessionComputeDebrief(this.projectRoot, sessionId, {
90034
+ debriefResult = await sessionComputeDebrief(projectRoot, sessionId, {
88796
90035
  note: params?.note,
88797
90036
  nextAction: params?.nextAction
88798
90037
  });
88799
90038
  } catch {
88800
90039
  try {
88801
- await sessionComputeHandoff(this.projectRoot, sessionId, {
90040
+ await sessionComputeHandoff(projectRoot, sessionId, {
88802
90041
  note: params?.note,
88803
90042
  nextAction: params?.nextAction
88804
90043
  });
@@ -88808,7 +90047,7 @@ var SessionHandler = class {
88808
90047
  if (debriefResult?.success && debriefResult.data) {
88809
90048
  try {
88810
90049
  const { persistSessionMemory: persistSessionMemory2 } = await Promise.resolve().then(() => (init_internal(), internal_exports));
88811
- await persistSessionMemory2(this.projectRoot, sessionId, debriefResult.data);
90050
+ await persistSessionMemory2(projectRoot, sessionId, debriefResult.data);
88812
90051
  } catch {
88813
90052
  }
88814
90053
  }
@@ -88829,7 +90068,7 @@ var SessionHandler = class {
88829
90068
  startTime
88830
90069
  );
88831
90070
  }
88832
- const result = await sessionResume(this.projectRoot, sessionId);
90071
+ const result = await sessionResume(projectRoot, sessionId);
88833
90072
  return wrapResult(result, "mutate", "session", operation, startTime);
88834
90073
  }
88835
90074
  case "suspend": {
@@ -88845,21 +90084,18 @@ var SessionHandler = class {
88845
90084
  );
88846
90085
  }
88847
90086
  const result = await sessionSuspend(
88848
- this.projectRoot,
90087
+ projectRoot,
88849
90088
  sessionId,
88850
90089
  params?.reason
88851
90090
  );
88852
90091
  return wrapResult(result, "mutate", "session", operation, startTime);
88853
90092
  }
88854
90093
  case "gc": {
88855
- const result = await sessionGc(
88856
- this.projectRoot,
88857
- params?.maxAgeDays
88858
- );
90094
+ const result = await sessionGc(projectRoot, params?.maxAgeDays);
88859
90095
  return wrapResult(result, "mutate", "session", operation, startTime);
88860
90096
  }
88861
90097
  case "record.decision": {
88862
- const result = await sessionRecordDecision(this.projectRoot, {
90098
+ const result = await sessionRecordDecision(projectRoot, {
88863
90099
  sessionId: params?.sessionId,
88864
90100
  taskId: params?.taskId,
88865
90101
  decision: params?.decision,
@@ -88869,7 +90105,7 @@ var SessionHandler = class {
88869
90105
  return wrapResult(result, "mutate", "session", operation, startTime);
88870
90106
  }
88871
90107
  case "record.assumption": {
88872
- const result = await sessionRecordAssumption(this.projectRoot, {
90108
+ const result = await sessionRecordAssumption(projectRoot, {
88873
90109
  sessionId: params?.sessionId,
88874
90110
  taskId: params?.taskId,
88875
90111
  assumption: params?.assumption,
@@ -89010,14 +90246,11 @@ async function stickyPurge(projectRoot, id) {
89010
90246
 
89011
90247
  // packages/cleo/src/dispatch/domains/sticky.ts
89012
90248
  var StickyHandler = class {
89013
- projectRoot;
89014
- constructor() {
89015
- this.projectRoot = getProjectRoot();
89016
- }
89017
90249
  // -----------------------------------------------------------------------
89018
90250
  // Query
89019
90251
  // -----------------------------------------------------------------------
89020
90252
  async query(operation, params) {
90253
+ const projectRoot = getProjectRoot();
89021
90254
  const startTime = Date.now();
89022
90255
  try {
89023
90256
  switch (operation) {
@@ -89027,13 +90260,13 @@ var StickyHandler = class {
89027
90260
  color: params?.color,
89028
90261
  priority: params?.priority
89029
90262
  };
89030
- const result = await stickyList(this.projectRoot, filters);
90263
+ const result = await stickyList(projectRoot, filters);
89031
90264
  if (!result.success) {
89032
90265
  return wrapResult(result, "query", "sticky", operation, startTime);
89033
90266
  }
89034
90267
  const filteredStickies = result.data?.stickies ?? [];
89035
90268
  const hasFilter = filters.status !== void 0 || filters.color !== void 0 || filters.priority !== void 0;
89036
- const totalResult = hasFilter ? await stickyList(this.projectRoot, {}) : result;
90269
+ const totalResult = hasFilter ? await stickyList(projectRoot, {}) : result;
89037
90270
  if (!totalResult.success) {
89038
90271
  return wrapResult(totalResult, "query", "sticky", operation, startTime);
89039
90272
  }
@@ -89063,7 +90296,7 @@ var StickyHandler = class {
89063
90296
  startTime
89064
90297
  );
89065
90298
  }
89066
- const result = await stickyShow(this.projectRoot, stickyId);
90299
+ const result = await stickyShow(projectRoot, stickyId);
89067
90300
  return wrapResult(result, "query", "sticky", operation, startTime);
89068
90301
  }
89069
90302
  default:
@@ -89082,6 +90315,7 @@ var StickyHandler = class {
89082
90315
  // Mutate
89083
90316
  // -----------------------------------------------------------------------
89084
90317
  async mutate(operation, params) {
90318
+ const projectRoot = getProjectRoot();
89085
90319
  const startTime = Date.now();
89086
90320
  try {
89087
90321
  switch (operation) {
@@ -89097,7 +90331,7 @@ var StickyHandler = class {
89097
90331
  startTime
89098
90332
  );
89099
90333
  }
89100
- const result = await stickyAdd(this.projectRoot, {
90334
+ const result = await stickyAdd(projectRoot, {
89101
90335
  content,
89102
90336
  tags: params?.tags,
89103
90337
  color: params?.color,
@@ -89130,7 +90364,7 @@ var StickyHandler = class {
89130
90364
  }
89131
90365
  if (targetType === "task") {
89132
90366
  const result = await stickyConvertToTask(
89133
- this.projectRoot,
90367
+ projectRoot,
89134
90368
  stickyId,
89135
90369
  params?.title
89136
90370
  );
@@ -89147,18 +90381,18 @@ var StickyHandler = class {
89147
90381
  startTime
89148
90382
  );
89149
90383
  }
89150
- const result = await stickyConvertToTaskNote(this.projectRoot, stickyId, taskId);
90384
+ const result = await stickyConvertToTaskNote(projectRoot, stickyId, taskId);
89151
90385
  return wrapResult(result, "mutate", "sticky", operation, startTime);
89152
90386
  } else if (targetType === "session_note") {
89153
90387
  const result = await stickyConvertToSessionNote(
89154
- this.projectRoot,
90388
+ projectRoot,
89155
90389
  stickyId,
89156
90390
  params?.sessionId
89157
90391
  );
89158
90392
  return wrapResult(result, "mutate", "sticky", operation, startTime);
89159
90393
  } else {
89160
90394
  const result = await stickyConvertToMemory(
89161
- this.projectRoot,
90395
+ projectRoot,
89162
90396
  stickyId,
89163
90397
  params?.memoryType
89164
90398
  );
@@ -89177,7 +90411,7 @@ var StickyHandler = class {
89177
90411
  startTime
89178
90412
  );
89179
90413
  }
89180
- const result = await stickyArchive(this.projectRoot, stickyId);
90414
+ const result = await stickyArchive(projectRoot, stickyId);
89181
90415
  return wrapResult(result, "mutate", "sticky", operation, startTime);
89182
90416
  }
89183
90417
  case "purge": {
@@ -89192,7 +90426,7 @@ var StickyHandler = class {
89192
90426
  startTime
89193
90427
  );
89194
90428
  }
89195
- const result = await stickyPurge(this.projectRoot, stickyId);
90429
+ const result = await stickyPurge(projectRoot, stickyId);
89196
90430
  return wrapResult(result, "mutate", "sticky", operation, startTime);
89197
90431
  }
89198
90432
  default:
@@ -89221,23 +90455,20 @@ var StickyHandler = class {
89221
90455
  // packages/cleo/src/dispatch/domains/tasks.ts
89222
90456
  init_src2();
89223
90457
  var TasksHandler = class {
89224
- projectRoot;
89225
- constructor() {
89226
- this.projectRoot = getProjectRoot();
89227
- }
89228
90458
  // -----------------------------------------------------------------------
89229
90459
  // Query
89230
90460
  // -----------------------------------------------------------------------
89231
90461
  async query(operation, params) {
90462
+ const projectRoot = getProjectRoot();
89232
90463
  const startTime = Date.now();
89233
90464
  try {
89234
90465
  switch (operation) {
89235
90466
  case "show": {
89236
- const result = await taskShow(this.projectRoot, params.taskId);
90467
+ const result = await taskShow(projectRoot, params.taskId);
89237
90468
  return wrapResult(result, "query", "tasks", operation, startTime);
89238
90469
  }
89239
90470
  case "list": {
89240
- const result = await taskList(this.projectRoot, {
90471
+ const result = await taskList(projectRoot, {
89241
90472
  parent: params?.parent,
89242
90473
  status: params?.status,
89243
90474
  priority: params?.priority,
@@ -89253,7 +90484,7 @@ var TasksHandler = class {
89253
90484
  }
89254
90485
  case "find": {
89255
90486
  const result = await taskFind(
89256
- this.projectRoot,
90487
+ projectRoot,
89257
90488
  params?.query,
89258
90489
  params?.limit,
89259
90490
  {
@@ -89268,12 +90499,12 @@ var TasksHandler = class {
89268
90499
  }
89269
90500
  case "tree": {
89270
90501
  const taskId = params?.taskId;
89271
- const result = await taskTree(this.projectRoot, taskId);
90502
+ const result = await taskTree(projectRoot, taskId);
89272
90503
  return wrapResult(result, "query", "tasks", operation, startTime);
89273
90504
  }
89274
90505
  case "blockers": {
89275
90506
  const result = await taskBlockers(
89276
- this.projectRoot,
90507
+ projectRoot,
89277
90508
  params
89278
90509
  );
89279
90510
  return wrapResult(result, "query", "tasks", operation, startTime);
@@ -89281,11 +90512,11 @@ var TasksHandler = class {
89281
90512
  case "depends": {
89282
90513
  const action = params?.action;
89283
90514
  if (action === "overview") {
89284
- const result2 = await taskDepsOverview(this.projectRoot);
90515
+ const result2 = await taskDepsOverview(projectRoot);
89285
90516
  return wrapResult(result2, "query", "tasks", operation, startTime);
89286
90517
  }
89287
90518
  if (action === "cycles") {
89288
- const result2 = await taskDepsCycles(this.projectRoot);
90519
+ const result2 = await taskDepsCycles(projectRoot);
89289
90520
  return wrapResult(result2, "query", "tasks", operation, startTime);
89290
90521
  }
89291
90522
  const taskId = params?.taskId;
@@ -89301,64 +90532,64 @@ var TasksHandler = class {
89301
90532
  }
89302
90533
  const direction = params?.direction;
89303
90534
  const tree = params?.tree;
89304
- const result = await taskDepends(this.projectRoot, taskId, direction, tree);
90535
+ const result = await taskDepends(projectRoot, taskId, direction, tree);
89305
90536
  return wrapResult(result, "query", "tasks", operation, startTime);
89306
90537
  }
89307
90538
  case "analyze": {
89308
90539
  const taskId = params?.taskId;
89309
90540
  const tierLimit = params?.tierLimit;
89310
- const result = await taskAnalyze(this.projectRoot, taskId, { tierLimit });
90541
+ const result = await taskAnalyze(projectRoot, taskId, { tierLimit });
89311
90542
  return wrapResult(result, "query", "tasks", operation, startTime);
89312
90543
  }
89313
90544
  case "next": {
89314
90545
  const result = await taskNext(
89315
- this.projectRoot,
90546
+ projectRoot,
89316
90547
  params
89317
90548
  );
89318
90549
  return wrapResult(result, "query", "tasks", operation, startTime);
89319
90550
  }
89320
90551
  case "plan": {
89321
- const result = await taskPlan(this.projectRoot);
90552
+ const result = await taskPlan(projectRoot);
89322
90553
  return wrapResult(result, "query", "tasks", operation, startTime);
89323
90554
  }
89324
90555
  case "relates": {
89325
90556
  const taskId = params.taskId;
89326
90557
  if (params?.mode) {
89327
- const result2 = await taskRelatesFind(this.projectRoot, taskId, {
90558
+ const result2 = await taskRelatesFind(projectRoot, taskId, {
89328
90559
  mode: params.mode,
89329
90560
  threshold: params?.threshold ? Number(params.threshold) : void 0
89330
90561
  });
89331
90562
  return wrapResult(result2, "query", "tasks", operation, startTime);
89332
90563
  }
89333
- const result = await taskRelates(this.projectRoot, taskId);
90564
+ const result = await taskRelates(projectRoot, taskId);
89334
90565
  return wrapResult(result, "query", "tasks", operation, startTime);
89335
90566
  }
89336
90567
  case "complexity.estimate": {
89337
- const result = await taskComplexityEstimate(this.projectRoot, {
90568
+ const result = await taskComplexityEstimate(projectRoot, {
89338
90569
  taskId: params.taskId
89339
90570
  });
89340
90571
  return wrapResult(result, "query", "tasks", operation, startTime);
89341
90572
  }
89342
90573
  case "current": {
89343
- const result = await taskCurrentGet(this.projectRoot);
90574
+ const result = await taskCurrentGet(projectRoot);
89344
90575
  return wrapResult(result, "query", "tasks", operation, startTime);
89345
90576
  }
89346
90577
  case "history": {
89347
90578
  const taskId = params?.taskId;
89348
90579
  if (taskId) {
89349
- const result2 = await taskHistory(this.projectRoot, taskId, params?.limit);
90580
+ const result2 = await taskHistory(projectRoot, taskId, params?.limit);
89350
90581
  return wrapResult(result2, "query", "tasks", operation, startTime);
89351
90582
  }
89352
- const result = await taskWorkHistory2(this.projectRoot);
90583
+ const result = await taskWorkHistory2(projectRoot);
89353
90584
  return wrapResult(result, "query", "tasks", operation, startTime);
89354
90585
  }
89355
90586
  case "label.list": {
89356
- const result = await taskLabelList(this.projectRoot);
90587
+ const result = await taskLabelList(projectRoot);
89357
90588
  return wrapResult(result, "query", "tasks", operation, startTime);
89358
90589
  }
89359
90590
  case "sync.links": {
89360
90591
  const result = await taskSyncLinks(
89361
- this.projectRoot,
90592
+ projectRoot,
89362
90593
  params
89363
90594
  );
89364
90595
  return wrapResult(result, "query", "tasks", operation, startTime);
@@ -89378,11 +90609,12 @@ var TasksHandler = class {
89378
90609
  // Mutate
89379
90610
  // -----------------------------------------------------------------------
89380
90611
  async mutate(operation, params) {
90612
+ const projectRoot = getProjectRoot();
89381
90613
  const startTime = Date.now();
89382
90614
  try {
89383
90615
  switch (operation) {
89384
90616
  case "add": {
89385
- const result = await taskCreate(this.projectRoot, {
90617
+ const result = await taskCreate(projectRoot, {
89386
90618
  title: params.title,
89387
90619
  description: params?.description ?? params.title,
89388
90620
  parent: params?.parent ?? params?.parentId,
@@ -89394,7 +90626,7 @@ var TasksHandler = class {
89394
90626
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89395
90627
  }
89396
90628
  case "update": {
89397
- const result = await taskUpdate(this.projectRoot, params.taskId, {
90629
+ const result = await taskUpdate(projectRoot, params.taskId, {
89398
90630
  title: params?.title,
89399
90631
  description: params?.description,
89400
90632
  status: params?.status,
@@ -89415,7 +90647,7 @@ var TasksHandler = class {
89415
90647
  }
89416
90648
  case "complete": {
89417
90649
  const result = await taskComplete(
89418
- this.projectRoot,
90650
+ projectRoot,
89419
90651
  params.taskId,
89420
90652
  params?.notes
89421
90653
  );
@@ -89423,7 +90655,7 @@ var TasksHandler = class {
89423
90655
  }
89424
90656
  case "delete": {
89425
90657
  const result = await taskDelete(
89426
- this.projectRoot,
90658
+ projectRoot,
89427
90659
  params.taskId,
89428
90660
  params?.force
89429
90661
  );
@@ -89431,7 +90663,7 @@ var TasksHandler = class {
89431
90663
  }
89432
90664
  case "archive": {
89433
90665
  const result = await taskArchive(
89434
- this.projectRoot,
90666
+ projectRoot,
89435
90667
  params?.taskId,
89436
90668
  params?.before
89437
90669
  );
@@ -89441,20 +90673,20 @@ var TasksHandler = class {
89441
90673
  const taskId = params.taskId;
89442
90674
  const from = params?.from;
89443
90675
  if (from === "done") {
89444
- const result2 = await taskReopen(this.projectRoot, taskId, {
90676
+ const result2 = await taskReopen(projectRoot, taskId, {
89445
90677
  status: params?.status,
89446
90678
  reason: params?.reason
89447
90679
  });
89448
90680
  return wrapResult(result2, "mutate", "tasks", operation, startTime);
89449
90681
  }
89450
90682
  if (from === "archived") {
89451
- const result2 = await taskUnarchive(this.projectRoot, taskId, {
90683
+ const result2 = await taskUnarchive(projectRoot, taskId, {
89452
90684
  status: params?.status,
89453
90685
  preserveStatus: params?.preserveStatus
89454
90686
  });
89455
90687
  return wrapResult(result2, "mutate", "tasks", operation, startTime);
89456
90688
  }
89457
- const result = await taskRestore(this.projectRoot, taskId, {
90689
+ const result = await taskRestore(projectRoot, taskId, {
89458
90690
  cascade: params?.cascade,
89459
90691
  notes: params?.notes
89460
90692
  });
@@ -89462,7 +90694,7 @@ var TasksHandler = class {
89462
90694
  }
89463
90695
  case "cancel": {
89464
90696
  const result = await taskCancel(
89465
- this.projectRoot,
90697
+ projectRoot,
89466
90698
  params.taskId,
89467
90699
  params?.reason
89468
90700
  );
@@ -89470,7 +90702,7 @@ var TasksHandler = class {
89470
90702
  }
89471
90703
  case "reparent": {
89472
90704
  const result = await taskReparent(
89473
- this.projectRoot,
90705
+ projectRoot,
89474
90706
  params.taskId,
89475
90707
  params?.newParentId ?? null
89476
90708
  );
@@ -89478,7 +90710,7 @@ var TasksHandler = class {
89478
90710
  }
89479
90711
  case "reorder": {
89480
90712
  const result = await taskReorder(
89481
- this.projectRoot,
90713
+ projectRoot,
89482
90714
  params.taskId,
89483
90715
  params.position
89484
90716
  );
@@ -89497,7 +90729,7 @@ var TasksHandler = class {
89497
90729
  );
89498
90730
  }
89499
90731
  const result = await taskRelatesAdd(
89500
- this.projectRoot,
90732
+ projectRoot,
89501
90733
  params.taskId,
89502
90734
  relatedId,
89503
90735
  params.type,
@@ -89506,15 +90738,15 @@ var TasksHandler = class {
89506
90738
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89507
90739
  }
89508
90740
  case "start": {
89509
- const result = await taskStart(this.projectRoot, params.taskId);
90741
+ const result = await taskStart(projectRoot, params.taskId);
89510
90742
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89511
90743
  }
89512
90744
  case "stop": {
89513
- const result = await taskStop(this.projectRoot);
90745
+ const result = await taskStop(projectRoot);
89514
90746
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89515
90747
  }
89516
90748
  case "sync.reconcile": {
89517
- const result = await taskSyncReconcile(this.projectRoot, {
90749
+ const result = await taskSyncReconcile(projectRoot, {
89518
90750
  providerId: params.providerId,
89519
90751
  externalTasks: params.externalTasks,
89520
90752
  dryRun: params?.dryRun,
@@ -89525,7 +90757,7 @@ var TasksHandler = class {
89525
90757
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89526
90758
  }
89527
90759
  case "sync.links.remove": {
89528
- const result = await taskSyncLinksRemove(this.projectRoot, params.providerId);
90760
+ const result = await taskSyncLinksRemove(projectRoot, params.providerId);
89529
90761
  return wrapResult(result, "mutate", "tasks", operation, startTime);
89530
90762
  }
89531
90763
  default:
@@ -89596,7 +90828,7 @@ import {
89596
90828
  discoverSkill as discoverSkill2,
89597
90829
  discoverSkills,
89598
90830
  getAllProviders as getAllProviders2,
89599
- getCanonicalSkillsDir as getCanonicalSkillsDir3,
90831
+ getCanonicalSkillsDir as getCanonicalSkillsDir4,
89600
90832
  getInstalledProviders as getInstalledProviders3,
89601
90833
  getTrackedSkills,
89602
90834
  injectAll as injectAll2,
@@ -89613,7 +90845,7 @@ function toolsIssueDiagnostics() {
89613
90845
  }
89614
90846
  async function toolsSkillList(limit, offset) {
89615
90847
  try {
89616
- const skills = await discoverSkills(getCanonicalSkillsDir3());
90848
+ const skills = await discoverSkills(getCanonicalSkillsDir4());
89617
90849
  const page = paginate(skills, limit, offset);
89618
90850
  return {
89619
90851
  success: true,
@@ -89632,7 +90864,7 @@ async function toolsSkillList(limit, offset) {
89632
90864
  }
89633
90865
  async function toolsSkillShow(name2) {
89634
90866
  try {
89635
- const skill = await discoverSkill2(`${getCanonicalSkillsDir3()}/${name2}`);
90867
+ const skill = await discoverSkill2(`${getCanonicalSkillsDir4()}/${name2}`);
89636
90868
  if (!skill) {
89637
90869
  return engineError("E_NOT_FOUND", `Skill not found: ${name2}`);
89638
90870
  }
@@ -89644,7 +90876,7 @@ async function toolsSkillShow(name2) {
89644
90876
  async function toolsSkillFind(query) {
89645
90877
  try {
89646
90878
  const q = (query ?? "").toLowerCase();
89647
- const skills = await discoverSkills(getCanonicalSkillsDir3());
90879
+ const skills = await discoverSkills(getCanonicalSkillsDir4());
89648
90880
  const filtered = q ? skills.filter(
89649
90881
  (s) => s.name.toLowerCase().includes(q) || s.metadata.description.toLowerCase().includes(q)
89650
90882
  ) : skills;
@@ -89668,13 +90900,13 @@ function toolsSkillDispatch(name2) {
89668
90900
  }
89669
90901
  async function toolsSkillVerify(name2) {
89670
90902
  try {
89671
- const installed = await discoverSkill2(`${getCanonicalSkillsDir3()}/${name2}`);
90903
+ const installed = await discoverSkill2(`${getCanonicalSkillsDir4()}/${name2}`);
89672
90904
  const catalogEntry = catalog3.getSkill(name2);
89673
90905
  return engineSuccess({
89674
90906
  skill: name2,
89675
90907
  installed: !!installed,
89676
90908
  inCatalog: !!catalogEntry,
89677
- installPath: installed ? `${getCanonicalSkillsDir3()}/${name2}` : null
90909
+ installPath: installed ? `${getCanonicalSkillsDir4()}/${name2}` : null
89678
90910
  });
89679
90911
  } catch (error40) {
89680
90912
  return engineError("E_INTERNAL", error40 instanceof Error ? error40.message : String(error40));
@@ -90079,9 +91311,8 @@ async function toolsAdapterDispose(projectRoot, id) {
90079
91311
 
90080
91312
  // packages/cleo/src/dispatch/domains/tools.ts
90081
91313
  var ToolsHandler = class {
90082
- projectRoot;
90083
- constructor() {
90084
- this.projectRoot = getProjectRoot();
91314
+ get projectRoot() {
91315
+ return getProjectRoot();
90085
91316
  }
90086
91317
  // -----------------------------------------------------------------------
90087
91318
  // DomainHandler interface