syntaur 0.16.3 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dashboard/dist/assets/{_basePickBy-DTuHiZCP.js → _basePickBy-Dek5-ACb.js} +1 -1
  2. package/dashboard/dist/assets/{_baseUniq-BjbISCNN.js → _baseUniq-BeLddDKU.js} +1 -1
  3. package/dashboard/dist/assets/{arc-D9mCa8If.js → arc-kotdj4Uh.js} +1 -1
  4. package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-CLWheiZu.js → architectureDiagram-2XIMDMQ5-BaqFXQ-q.js} +1 -1
  5. package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-BBxrVTWB.js → blockDiagram-WCTKOSBZ-BSyGne6h.js} +1 -1
  6. package/dashboard/dist/assets/{c4Diagram-IC4MRINW-DnhDZ2W3.js → c4Diagram-IC4MRINW-iYjZFKOW.js} +1 -1
  7. package/dashboard/dist/assets/channel-eXdj7ayV.js +1 -0
  8. package/dashboard/dist/assets/{chunk-4BX2VUAB-DeAfVeDa.js → chunk-4BX2VUAB-DvY9Y7jB.js} +1 -1
  9. package/dashboard/dist/assets/{chunk-55IACEB6-cKEeGDNI.js → chunk-55IACEB6-2vCDm2cJ.js} +1 -1
  10. package/dashboard/dist/assets/{chunk-FMBD7UC4-7RuZ6HEq.js → chunk-FMBD7UC4-BVPaoRtV.js} +1 -1
  11. package/dashboard/dist/assets/{chunk-JSJVCQXG-B5dwG0bv.js → chunk-JSJVCQXG-B9uJpMzd.js} +1 -1
  12. package/dashboard/dist/assets/{chunk-KX2RTZJC-DeyQYDVj.js → chunk-KX2RTZJC-CHcjjGaq.js} +1 -1
  13. package/dashboard/dist/assets/{chunk-NQ4KR5QH-NYo4hSqA.js → chunk-NQ4KR5QH-B8n19pSs.js} +1 -1
  14. package/dashboard/dist/assets/{chunk-QZHKN3VN-CtJFICF8.js → chunk-QZHKN3VN-CF9ZYFGK.js} +1 -1
  15. package/dashboard/dist/assets/{chunk-WL4C6EOR-DZ3WYdab.js → chunk-WL4C6EOR-mY_1Vmdf.js} +1 -1
  16. package/dashboard/dist/assets/classDiagram-VBA2DB6C-B-bBQACr.js +1 -0
  17. package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-B-bBQACr.js +1 -0
  18. package/dashboard/dist/assets/clone-CL04pv9J.js +1 -0
  19. package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-DaYOsf-M.js → cose-bilkent-S5V4N54A-DOYoG3gB.js} +1 -1
  20. package/dashboard/dist/assets/{dagre-KLK3FWXG-DzLc7ykF.js → dagre-KLK3FWXG-CZFrp-Yq.js} +1 -1
  21. package/dashboard/dist/assets/{diagram-E7M64L7V-kpjEdOqb.js → diagram-E7M64L7V-F3rF5YwM.js} +1 -1
  22. package/dashboard/dist/assets/{diagram-IFDJBPK2-D3EHoh6j.js → diagram-IFDJBPK2-BynWv-Vo.js} +1 -1
  23. package/dashboard/dist/assets/{diagram-P4PSJMXO-Cp6Un2ys.js → diagram-P4PSJMXO-NIyzhm_M.js} +1 -1
  24. package/dashboard/dist/assets/{erDiagram-INFDFZHY-DDjOUPWk.js → erDiagram-INFDFZHY-Ca9NbihE.js} +1 -1
  25. package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-CfO51xge.js → flowDiagram-PKNHOUZH-YhS0MOu4.js} +1 -1
  26. package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-BDzAtkcp.js → ganttDiagram-A5KZAMGK-G7P3qq_2.js} +1 -1
  27. package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-JPMFN2zF.js → gitGraphDiagram-K3NZZRJ6-BJAK7M7E.js} +1 -1
  28. package/dashboard/dist/assets/{graph-DXDryilu.js → graph-11geMy3f.js} +1 -1
  29. package/dashboard/dist/assets/index--qwybK3W.js +535 -0
  30. package/dashboard/dist/assets/index-DwrhlK8r.css +1 -0
  31. package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-CYi5kkvz.js → infoDiagram-LFFYTUFH-COcQYcLf.js} +1 -1
  32. package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-DQl_IUe8.js → ishikawaDiagram-PHBUUO56-B7Jjyw8J.js} +1 -1
  33. package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-BXXGPcrS.js → journeyDiagram-4ABVD52K--snU-QAX.js} +1 -1
  34. package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-BqJestUY.js → kanban-definition-K7BYSVSG-BucLoc89.js} +1 -1
  35. package/dashboard/dist/assets/{layout-D5VdYmWn.js → layout-Bcgxdz8A.js} +1 -1
  36. package/dashboard/dist/assets/{linear-dZA_O_GN.js → linear-CRF8xwvk.js} +1 -1
  37. package/dashboard/dist/assets/{mermaid.core-B0Ixd1yP.js → mermaid.core-D5JD5uYg.js} +4 -4
  38. package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-CSJYdSMG.js → mindmap-definition-YRQLILUH-BqGcTcbk.js} +1 -1
  39. package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-DmYrRZHN.js → pieDiagram-SKSYHLDU-CnQ2EkyX.js} +1 -1
  40. package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-La3ce5kE.js → quadrantDiagram-337W2JSQ-CKCfmTRc.js} +1 -1
  41. package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-DPitIZQl.js → requirementDiagram-Z7DCOOCP-B9J4bvUK.js} +1 -1
  42. package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-CAmCqGkr.js → sankeyDiagram-WA2Y5GQK-CMSzI5rg.js} +1 -1
  43. package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-6lEzNTWG.js → sequenceDiagram-2WXFIKYE-BFQDtxd0.js} +1 -1
  44. package/dashboard/dist/assets/{stateDiagram-RAJIS63D-DyGKCS2C.js → stateDiagram-RAJIS63D-DgWYKT02.js} +1 -1
  45. package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-Nmwft4cR.js +1 -0
  46. package/dashboard/dist/assets/{timeline-definition-YZTLITO2-D9RxQE3j.js → timeline-definition-YZTLITO2-jANu0e7M.js} +1 -1
  47. package/dashboard/dist/assets/{treemap-KZPCXAKY-TuXbGNN4.js → treemap-KZPCXAKY-BFjWMkyM.js} +1 -1
  48. package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-Bly5knr-.js → vennDiagram-LZ73GAT5-DGwrAJYj.js} +1 -1
  49. package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-CA-5z7-4.js → xychartDiagram-JWTSCODW-BLCPfoFM.js} +1 -1
  50. package/dashboard/dist/index.html +2 -2
  51. package/dist/dashboard/server.js +1945 -312
  52. package/dist/dashboard/server.js.map +1 -1
  53. package/dist/db/leases-db.js.map +1 -1
  54. package/dist/index.js +4390 -1126
  55. package/dist/index.js.map +1 -1
  56. package/dist/launch/index.js +30 -8
  57. package/dist/launch/index.js.map +1 -1
  58. package/package.json +1 -1
  59. package/platforms/claude-code/skills/bundle-worktree/SKILL.md +107 -0
  60. package/platforms/claude-code/skills/complete-bundle/SKILL.md +113 -0
  61. package/platforms/claude-code/skills/grab-bundle/SKILL.md +111 -0
  62. package/platforms/claude-code/skills/plan-bundle/SKILL.md +88 -0
  63. package/platforms/codex/skills/bundle-worktree/SKILL.md +107 -0
  64. package/platforms/codex/skills/complete-bundle/SKILL.md +113 -0
  65. package/platforms/codex/skills/grab-bundle/SKILL.md +111 -0
  66. package/platforms/codex/skills/plan-bundle/SKILL.md +88 -0
  67. package/skills/bundle-worktree/SKILL.md +107 -0
  68. package/skills/complete-bundle/SKILL.md +113 -0
  69. package/skills/grab-bundle/SKILL.md +111 -0
  70. package/skills/plan-bundle/SKILL.md +88 -0
  71. package/dashboard/dist/assets/channel-CN5VmjNa.js +0 -1
  72. package/dashboard/dist/assets/classDiagram-VBA2DB6C-CqLb9GuU.js +0 -1
  73. package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-CqLb9GuU.js +0 -1
  74. package/dashboard/dist/assets/clone-DwvrjCQs.js +0 -1
  75. package/dashboard/dist/assets/index-D7UtkCYM.js +0 -515
  76. package/dashboard/dist/assets/index-DTXSWSzH.css +0 -1
  77. package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-BOmRICoY.js +0 -1
@@ -887,7 +887,20 @@ async function readConfig() {
887
887
  };
888
888
  }
889
889
  function getAgents(config) {
890
- return config.agents ?? BUILTIN_AGENTS;
890
+ if (config.agents === null) return BUILTIN_AGENTS;
891
+ const builtinById = new Map(BUILTIN_AGENTS.map((a) => [a.id, a]));
892
+ return config.agents.map((agent) => {
893
+ const builtin = builtinById.get(agent.id);
894
+ if (!builtin) return agent;
895
+ const resume = agent.resume ?? builtin.resume;
896
+ const fork = agent.fork ?? builtin.fork;
897
+ if (resume === agent.resume && fork === agent.fork) return agent;
898
+ return {
899
+ ...agent,
900
+ ...resume ? { resume } : {},
901
+ ...fork ? { fork } : {}
902
+ };
903
+ });
891
904
  }
892
905
  function parseTerminalConfig(value) {
893
906
  if (value === void 0 || value === null || value === "") return null;
@@ -1333,7 +1346,7 @@ function buildTransitionTable(transitions) {
1333
1346
  return table;
1334
1347
  }
1335
1348
  function getTargetStatus(_from, command, table) {
1336
- if (!table || table === DEFAULT_TRANSITION_TABLE) {
1349
+ if (!table) {
1337
1350
  return DEFAULT_COMMAND_TARGETS.get(command) ?? null;
1338
1351
  }
1339
1352
  return table.get(command) ?? table.get(`${_from}:${command}`) ?? null;
@@ -1763,12 +1776,17 @@ async function getStatusConfig() {
1763
1776
  const terminalSet = new Set(
1764
1777
  config.statuses.statuses.filter((s) => s.terminal).map((s) => s.id)
1765
1778
  );
1779
+ const hasCustomTransitions = config.statuses.transitions.length > 0;
1780
+ const effectiveTransitions = hasCustomTransitions ? config.statuses.transitions : Array.from(DEFAULT_TRANSITION_TABLE.entries()).map(([key, to]) => {
1781
+ const [from, command] = key.split(":");
1782
+ return { from, command, to };
1783
+ });
1766
1784
  _cachedConfig = {
1767
1785
  custom: true,
1768
1786
  statuses: config.statuses.statuses,
1769
1787
  order: config.statuses.order,
1770
- transitions: config.statuses.transitions,
1771
- transitionTable: buildTransitionTable(config.statuses.transitions),
1788
+ transitions: effectiveTransitions,
1789
+ transitionTable: buildTransitionTable(effectiveTransitions),
1772
1790
  terminalStatuses: terminalSet.size > 0 ? terminalSet : /* @__PURE__ */ new Set(["completed", "failed"])
1773
1791
  };
1774
1792
  } else {
@@ -1796,16 +1814,17 @@ async function getStandaloneAvailableTransitions(assignment) {
1796
1814
  const transitionDefs = getTransitionDefinitions(config);
1797
1815
  const actions = [];
1798
1816
  for (const definition of transitionDefs) {
1817
+ const target = getTargetStatus(assignment.status, definition.command, config.transitionTable);
1818
+ if (target === null) continue;
1799
1819
  let warning = null;
1800
1820
  if (definition.command === "start" && !assignment.assignee) {
1801
1821
  warning = "No assignee set \u2014 consider assigning before starting.";
1802
1822
  }
1803
- const target = getTargetStatus(assignment.status, definition.command, config.transitionTable);
1804
1823
  actions.push({
1805
1824
  command: definition.command,
1806
1825
  label: definition.label,
1807
1826
  description: definition.description,
1808
- targetStatus: target ?? definition.command,
1827
+ targetStatus: target,
1809
1828
  disabled: false,
1810
1829
  disabledReason: null,
1811
1830
  warning,
@@ -1899,6 +1918,7 @@ async function getAssignmentDetail(projectsDir, projectSlug, assignmentSlug) {
1899
1918
  slug: assignment.slug || assignmentSlug,
1900
1919
  title: assignment.title,
1901
1920
  status: assignment.status,
1921
+ type: assignment.type,
1902
1922
  priority: assignment.priority,
1903
1923
  assignee: assignment.assignee,
1904
1924
  dependsOn: assignment.dependsOn,
@@ -2147,6 +2167,7 @@ async function buildStandaloneAssignmentDetail(resolved) {
2147
2167
  slug: assignment.slug || resolved.id,
2148
2168
  title: assignment.title,
2149
2169
  status: assignment.status,
2170
+ type: assignment.type,
2150
2171
  priority: assignment.priority,
2151
2172
  assignee: assignment.assignee,
2152
2173
  dependsOn: [],
@@ -2340,6 +2361,8 @@ async function getAvailableTransitions(projectsDir, projectSlug, assignmentSlug,
2340
2361
  const projectPath = resolve11(projectsDir, projectSlug);
2341
2362
  const traces = options?.traces;
2342
2363
  for (const definition of transitionDefs) {
2364
+ const target = getTargetStatus(assignment.status, definition.command, config.transitionTable);
2365
+ if (target === null) continue;
2343
2366
  let warning = null;
2344
2367
  if (definition.command === "start" && !assignment.assignee) {
2345
2368
  warning = "No assignee set \u2014 consider assigning before starting.";
@@ -2357,12 +2380,11 @@ async function getAvailableTransitions(projectsDir, projectSlug, assignmentSlug,
2357
2380
  warning = `Unmet dependencies: ${unmetDependencies.join(", ")}.`;
2358
2381
  }
2359
2382
  }
2360
- const target = getTargetStatus(assignment.status, definition.command, config.transitionTable);
2361
2383
  actions.push({
2362
2384
  command: definition.command,
2363
2385
  label: definition.label,
2364
2386
  description: definition.description,
2365
- targetStatus: target ?? definition.command,
2387
+ targetStatus: target,
2366
2388
  disabled: false,
2367
2389
  disabledReason: null,
2368
2390
  warning,