syntaur 0.44.0 → 0.45.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.
- package/.claude-plugin/plugin.json +1 -1
- package/dashboard/dist/assets/{_basePickBy-CNjxCBYf.js → _basePickBy-RQBuJKcX.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-1yktSv9L.js → _baseUniq-_J7s4kD3.js} +1 -1
- package/dashboard/dist/assets/{arc-CUp_7cxd.js → arc-_9SyUgKQ.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-BhQNIov3.js → architectureDiagram-2XIMDMQ5-C8LeFMgr.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-BbrHpJX7.js → blockDiagram-WCTKOSBZ-gMh0EPEh.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-BzAgIl-O.js → c4Diagram-IC4MRINW-cHwecwLI.js} +1 -1
- package/dashboard/dist/assets/channel-C36dnl_e.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-DxR-gcvU.js → chunk-4BX2VUAB-Bb2anYuQ.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-DgMbDP9S.js → chunk-55IACEB6-DYIRGzA1.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-zECir1CK.js → chunk-FMBD7UC4-sgRWBbaF.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-Cnl5h8xD.js → chunk-JSJVCQXG-DlYKMl_j.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-Ck2VpQt9.js → chunk-KX2RTZJC-D0YDLAOF.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-B8kgPwoS.js → chunk-NQ4KR5QH-D-Y-CUx6.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-CsN9VGXC.js → chunk-QZHKN3VN-D7FpSvb5.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-BP27dBI1.js → chunk-WL4C6EOR-CtXgQLdS.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-BsoGa6_a.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BsoGa6_a.js +1 -0
- package/dashboard/dist/assets/clone-Bz6jW3OY.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-m2V_HPK-.js → cose-bilkent-S5V4N54A-YbTaohoJ.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-CZfxqYb1.js → dagre-KLK3FWXG-CMtwGAnP.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-DtzcWFtr.js → diagram-E7M64L7V-D8wBMBAX.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-D2IymgnX.js → diagram-IFDJBPK2-DfudLpiJ.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-D24UPsRu.js → diagram-P4PSJMXO-CyMy61wE.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-CZKUJMzt.js → erDiagram-INFDFZHY-BlB4ZQl9.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-DL_F8pzV.js → flowDiagram-PKNHOUZH-DbhDQJM3.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-D8fgmRAI.js → ganttDiagram-A5KZAMGK-DJFqteNi.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-2-zNwJhX.js → gitGraphDiagram-K3NZZRJ6-D8etA_mm.js} +1 -1
- package/dashboard/dist/assets/{graph-BGFPrUov.js → graph-Ce86jeZn.js} +1 -1
- package/dashboard/dist/assets/index-DRng26Jg.js +567 -0
- package/dashboard/dist/assets/index-DzHQIE2n.css +1 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-C_AYIIRq.js → infoDiagram-LFFYTUFH-Cx35U-h8.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-BF1Td7it.js → ishikawaDiagram-PHBUUO56-C04Y2nj8.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-EMMIV9Ho.js → journeyDiagram-4ABVD52K-D8-cxbxE.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-Bf_bRjc1.js → kanban-definition-K7BYSVSG-DVKqMylP.js} +1 -1
- package/dashboard/dist/assets/{layout-DVtc1c49.js → layout-98xZDpgu.js} +1 -1
- package/dashboard/dist/assets/{linear-B-_q9tMu.js → linear-0jk_IwAc.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-DsNAtlU2.js → mermaid.core-C337VWfr.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-CIk_H2CD.js → mindmap-definition-YRQLILUH-8sNYGYEP.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-CuqaiuOZ.js → pieDiagram-SKSYHLDU-afcmzHxf.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-By2Uoys0.js → quadrantDiagram-337W2JSQ-B4RjcpOq.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-RQe6sA24.js → requirementDiagram-Z7DCOOCP-CRavU6cI.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-BWqm0u7o.js → sankeyDiagram-WA2Y5GQK-DFomU3z-.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-DZ4Esix3.js → sequenceDiagram-2WXFIKYE-CGKO7nmK.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-Xae5htdZ.js → stateDiagram-RAJIS63D-BjFI1K8h.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-BtxefYKD.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-DxW_e6Qq.js → timeline-definition-YZTLITO2-BBo8XJFG.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-BTD-CY69.js → treemap-KZPCXAKY-COd6i6TE.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-BhpyjM1r.js → vennDiagram-LZ73GAT5-CGQweQ36.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-BmQJbBCA.js → xychartDiagram-JWTSCODW-mfJ5So7N.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/dashboard/server.js +237 -94
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +258 -107
- package/dist/index.js.map +1 -1
- package/dist/launch/index.d.ts +2 -1
- package/dist/launch/index.js +159 -95
- package/dist/launch/index.js.map +1 -1
- package/package.json +1 -1
- package/platforms/claude-code/.claude-plugin/plugin.json +1 -1
- package/platforms/codex/.codex-plugin/plugin.json +1 -1
- package/platforms/hermes/plugins/syntaur/__pycache__/__init__.cpython-312.pyc +0 -0
- package/platforms/hermes/plugins/syntaur/__pycache__/boundary.cpython-312.pyc +0 -0
- package/dashboard/dist/assets/channel-Dcp4Ds-Z.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-CnkOuwPH.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-CnkOuwPH.js +0 -1
- package/dashboard/dist/assets/clone-cpjQdgQb.js +0 -1
- package/dashboard/dist/assets/index-C4lUbUTt.js +0 -566
- package/dashboard/dist/assets/index-D1f1wB-7.css +0 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-BfD_wvla.js +0 -1
package/dist/launch/index.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ interface ParsedOpenUrl {
|
|
|
38
38
|
* Optional one-shot launch-prompt override (the `prompt=` query param) — the
|
|
39
39
|
* dashboard's editable prompt box sends the (possibly edited) template here.
|
|
40
40
|
* Only set for `kind === 'assignment'` (sessions take their first message
|
|
41
|
-
* from history).
|
|
41
|
+
* from history). Length-bounded (`MAX_OPEN_PROMPT_LENGTH`).
|
|
42
42
|
* Presence-significant: an empty string is a deliberate override (re-resolves
|
|
43
43
|
* to the fallback seed), distinct from `undefined` (no override).
|
|
44
44
|
*/
|
|
@@ -174,6 +174,7 @@ interface RawFactDeclaration {
|
|
|
174
174
|
type: string;
|
|
175
175
|
binds: string | null;
|
|
176
176
|
}
|
|
177
|
+
|
|
177
178
|
interface StatusConfig {
|
|
178
179
|
statuses: StatusDefinition[];
|
|
179
180
|
order: string[];
|
package/dist/launch/index.js
CHANGED
|
@@ -1028,7 +1028,11 @@ var init_fields = __esm({
|
|
|
1028
1028
|
tags: { kind: "list" },
|
|
1029
1029
|
archived: { kind: "bool" },
|
|
1030
1030
|
title: { kind: "substring" },
|
|
1031
|
-
search
|
|
1031
|
+
// `search` reads a dedicated `searchText` haystack when the item provides one
|
|
1032
|
+
// (so the dashboard can match title + slug + project like its filter box),
|
|
1033
|
+
// falling back to `title` when absent. Backward-compatible: title-only when no
|
|
1034
|
+
// searchText. The `title` field stays title-only.
|
|
1035
|
+
search: { kind: "substring", get: (i) => i["searchText"] ?? i["title"] },
|
|
1032
1036
|
created: { kind: "timestamp" },
|
|
1033
1037
|
updated: { kind: "timestamp" },
|
|
1034
1038
|
completedat: { kind: "timestamp", get: (i) => i["completedAt"] },
|
|
@@ -1663,17 +1667,7 @@ var init_query = __esm({
|
|
|
1663
1667
|
}
|
|
1664
1668
|
});
|
|
1665
1669
|
|
|
1666
|
-
// src/
|
|
1667
|
-
var derive_exports = {};
|
|
1668
|
-
__export(derive_exports, {
|
|
1669
|
-
DERIVE_FIELDS: () => DERIVE_FIELDS,
|
|
1670
|
-
acceptFactDeclarations: () => acceptFactDeclarations,
|
|
1671
|
-
buildDeriveRegistry: () => buildDeriveRegistry,
|
|
1672
|
-
buildQueryRegistry: () => buildQueryRegistry,
|
|
1673
|
-
deriveDimensions: () => deriveDimensions,
|
|
1674
|
-
factFieldNames: () => factFieldNames,
|
|
1675
|
-
validateDeriveCondition: () => validateDeriveCondition
|
|
1676
|
-
});
|
|
1670
|
+
// src/utils/fact-registry.ts
|
|
1677
1671
|
function factFieldNames(decl) {
|
|
1678
1672
|
const name = decl.name;
|
|
1679
1673
|
const exportNames = {
|
|
@@ -1740,85 +1734,63 @@ function buildQueryRegistry(accepted) {
|
|
|
1740
1734
|
for (const decl of accepted) addFactFields(registry, decl);
|
|
1741
1735
|
return registry;
|
|
1742
1736
|
}
|
|
1743
|
-
function
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1737
|
+
function queryFieldNames(declarations) {
|
|
1738
|
+
const builtins = [
|
|
1739
|
+
"status",
|
|
1740
|
+
"priority",
|
|
1741
|
+
"type",
|
|
1742
|
+
"assignee",
|
|
1743
|
+
"project",
|
|
1744
|
+
"tag",
|
|
1745
|
+
"tags",
|
|
1746
|
+
"archived",
|
|
1747
|
+
"title",
|
|
1748
|
+
"search",
|
|
1749
|
+
"created",
|
|
1750
|
+
"updated",
|
|
1751
|
+
"completedAt",
|
|
1752
|
+
"statusAge",
|
|
1753
|
+
"phase",
|
|
1754
|
+
"disposition",
|
|
1755
|
+
"phaseAge",
|
|
1756
|
+
"hasRealObjective",
|
|
1757
|
+
"acRealTotal",
|
|
1758
|
+
"acRealChecked",
|
|
1759
|
+
"acAllChecked",
|
|
1760
|
+
"planExists",
|
|
1761
|
+
"planApproved",
|
|
1762
|
+
"workspaceSet",
|
|
1763
|
+
"implementationStarted",
|
|
1764
|
+
"depsSatisfied",
|
|
1765
|
+
"unresolvedQuestions",
|
|
1766
|
+
"progressStaleDays",
|
|
1767
|
+
"blocked",
|
|
1768
|
+
"parked",
|
|
1769
|
+
"reviewRequested",
|
|
1770
|
+
"pinned"
|
|
1771
|
+
];
|
|
1772
|
+
const custom = [];
|
|
1773
|
+
for (const decl of declarations) {
|
|
1774
|
+
const names = factFieldNames(decl);
|
|
1775
|
+
if (decl.type === "attestation") {
|
|
1776
|
+
custom.push(
|
|
1777
|
+
names.exports.fact,
|
|
1778
|
+
names.exports.approved,
|
|
1779
|
+
names.exports.changesRequested,
|
|
1780
|
+
names.exports.by,
|
|
1781
|
+
names.exports.approvedBy
|
|
1782
|
+
);
|
|
1765
1783
|
} else {
|
|
1766
|
-
|
|
1767
|
-
if (!parsed.ast) {
|
|
1768
|
-
throw new CompileError(parsed.errors);
|
|
1769
|
-
}
|
|
1770
|
-
pred = compileNode(parsed.ast, registry);
|
|
1771
|
-
}
|
|
1772
|
-
cache.set(when, pred);
|
|
1773
|
-
}
|
|
1774
|
-
return pred;
|
|
1775
|
-
}
|
|
1776
|
-
function deriveDimensions(input) {
|
|
1777
|
-
const { facts, derive, currentStatus, terminalStatuses, knownStatusIds, override } = input;
|
|
1778
|
-
const registry = input.registry ?? DERIVE_FIELDS;
|
|
1779
|
-
if (terminalStatuses.has(currentStatus)) return null;
|
|
1780
|
-
const ctx = { now: 0 };
|
|
1781
|
-
const item = facts;
|
|
1782
|
-
let phase = derive.phaseLadder[0]?.phase ?? currentStatus;
|
|
1783
|
-
let nextAction = derive.phaseLadder[0]?.next ?? null;
|
|
1784
|
-
for (let i = derive.phaseLadder.length - 1; i >= 0; i--) {
|
|
1785
|
-
const rung = derive.phaseLadder[i];
|
|
1786
|
-
if (compiledWhen(registry, rung.when)(item, ctx)) {
|
|
1787
|
-
phase = rung.phase;
|
|
1788
|
-
nextAction = rung.next ?? null;
|
|
1789
|
-
break;
|
|
1784
|
+
custom.push(names.exports.fact);
|
|
1790
1785
|
}
|
|
1791
1786
|
}
|
|
1792
|
-
|
|
1793
|
-
for (const rule of derive.disposition) {
|
|
1794
|
-
if (rule.when === null || compiledWhen(registry, rule.when)(item, ctx)) {
|
|
1795
|
-
disposition = rule.is;
|
|
1796
|
-
break;
|
|
1797
|
-
}
|
|
1798
|
-
}
|
|
1799
|
-
let derivedStatus;
|
|
1800
|
-
switch (disposition) {
|
|
1801
|
-
case "parked":
|
|
1802
|
-
derivedStatus = knownStatusIds.has(derive.headline.parked) ? derive.headline.parked : phase;
|
|
1803
|
-
break;
|
|
1804
|
-
case "blocked":
|
|
1805
|
-
derivedStatus = knownStatusIds.has(derive.headline.blocked) ? derive.headline.blocked : phase;
|
|
1806
|
-
break;
|
|
1807
|
-
default:
|
|
1808
|
-
derivedStatus = phase;
|
|
1809
|
-
}
|
|
1810
|
-
let status = derivedStatus;
|
|
1811
|
-
if (override && override.status && !terminalStatuses.has(override.status) && knownStatusIds.has(override.status)) {
|
|
1812
|
-
status = override.status;
|
|
1813
|
-
}
|
|
1814
|
-
return { phase, disposition, derivedStatus, status, nextAction };
|
|
1787
|
+
return [...builtins, ...custom];
|
|
1815
1788
|
}
|
|
1816
|
-
var DERIVE_FIELDS
|
|
1817
|
-
var
|
|
1818
|
-
"src/
|
|
1789
|
+
var DERIVE_FIELDS;
|
|
1790
|
+
var init_fact_registry = __esm({
|
|
1791
|
+
"src/utils/fact-registry.ts"() {
|
|
1819
1792
|
"use strict";
|
|
1820
1793
|
init_query();
|
|
1821
|
-
init_query();
|
|
1822
1794
|
DERIVE_FIELDS = {
|
|
1823
1795
|
hasrealobjective: { kind: "bool", get: (i) => i["hasRealObjective"] },
|
|
1824
1796
|
acrealtotal: { kind: "number", get: (i) => i["acRealTotal"] },
|
|
@@ -1835,7 +1807,6 @@ var init_derive = __esm({
|
|
|
1835
1807
|
reviewrequested: { kind: "bool", get: (i) => i["reviewRequested"] },
|
|
1836
1808
|
pinned: { kind: "bool" }
|
|
1837
1809
|
};
|
|
1838
|
-
conditionCache = /* @__PURE__ */ new WeakMap();
|
|
1839
1810
|
}
|
|
1840
1811
|
});
|
|
1841
1812
|
|
|
@@ -3478,7 +3449,7 @@ var init_config2 = __esm({
|
|
|
3478
3449
|
init_hotkeysCatalog();
|
|
3479
3450
|
init_agents_schema();
|
|
3480
3451
|
init_slug();
|
|
3481
|
-
|
|
3452
|
+
init_fact_registry();
|
|
3482
3453
|
init_query();
|
|
3483
3454
|
init_terminal_schema();
|
|
3484
3455
|
init_workspace_visibility_schema();
|
|
@@ -3656,6 +3627,103 @@ var init_assignment_resolver = __esm({
|
|
|
3656
3627
|
}
|
|
3657
3628
|
});
|
|
3658
3629
|
|
|
3630
|
+
// src/lifecycle/derive.ts
|
|
3631
|
+
var derive_exports = {};
|
|
3632
|
+
__export(derive_exports, {
|
|
3633
|
+
DERIVE_FIELDS: () => DERIVE_FIELDS,
|
|
3634
|
+
acceptFactDeclarations: () => acceptFactDeclarations,
|
|
3635
|
+
addFactFields: () => addFactFields,
|
|
3636
|
+
buildDeriveRegistry: () => buildDeriveRegistry,
|
|
3637
|
+
buildQueryRegistry: () => buildQueryRegistry,
|
|
3638
|
+
deriveDimensions: () => deriveDimensions,
|
|
3639
|
+
factFieldNames: () => factFieldNames,
|
|
3640
|
+
queryFieldNames: () => queryFieldNames,
|
|
3641
|
+
validateDeriveCondition: () => validateDeriveCondition
|
|
3642
|
+
});
|
|
3643
|
+
function validateDeriveCondition(when, registry = DERIVE_FIELDS) {
|
|
3644
|
+
if (when === "*") return null;
|
|
3645
|
+
const parsed = parseQuery(when);
|
|
3646
|
+
if (!parsed.ast) return parsed.errors[0]?.message ?? "unparseable condition";
|
|
3647
|
+
try {
|
|
3648
|
+
compileNode(parsed.ast, registry);
|
|
3649
|
+
return null;
|
|
3650
|
+
} catch (err) {
|
|
3651
|
+
if (err instanceof CompileError) return err.errors[0]?.message ?? "invalid condition";
|
|
3652
|
+
throw err;
|
|
3653
|
+
}
|
|
3654
|
+
}
|
|
3655
|
+
function compiledWhen(registry, when) {
|
|
3656
|
+
let cache = conditionCache.get(registry);
|
|
3657
|
+
if (!cache) {
|
|
3658
|
+
cache = /* @__PURE__ */ new Map();
|
|
3659
|
+
conditionCache.set(registry, cache);
|
|
3660
|
+
}
|
|
3661
|
+
let pred = cache.get(when);
|
|
3662
|
+
if (!pred) {
|
|
3663
|
+
if (when === "*") {
|
|
3664
|
+
pred = () => true;
|
|
3665
|
+
} else {
|
|
3666
|
+
const parsed = parseQuery(when);
|
|
3667
|
+
if (!parsed.ast) {
|
|
3668
|
+
throw new CompileError(parsed.errors);
|
|
3669
|
+
}
|
|
3670
|
+
pred = compileNode(parsed.ast, registry);
|
|
3671
|
+
}
|
|
3672
|
+
cache.set(when, pred);
|
|
3673
|
+
}
|
|
3674
|
+
return pred;
|
|
3675
|
+
}
|
|
3676
|
+
function deriveDimensions(input) {
|
|
3677
|
+
const { facts, derive, currentStatus, terminalStatuses, knownStatusIds, override } = input;
|
|
3678
|
+
const registry = input.registry ?? DERIVE_FIELDS;
|
|
3679
|
+
if (terminalStatuses.has(currentStatus)) return null;
|
|
3680
|
+
const ctx = { now: 0 };
|
|
3681
|
+
const item = facts;
|
|
3682
|
+
let phase = derive.phaseLadder[0]?.phase ?? currentStatus;
|
|
3683
|
+
let nextAction = derive.phaseLadder[0]?.next ?? null;
|
|
3684
|
+
for (let i = derive.phaseLadder.length - 1; i >= 0; i--) {
|
|
3685
|
+
const rung = derive.phaseLadder[i];
|
|
3686
|
+
if (compiledWhen(registry, rung.when)(item, ctx)) {
|
|
3687
|
+
phase = rung.phase;
|
|
3688
|
+
nextAction = rung.next ?? null;
|
|
3689
|
+
break;
|
|
3690
|
+
}
|
|
3691
|
+
}
|
|
3692
|
+
let disposition = "active";
|
|
3693
|
+
for (const rule of derive.disposition) {
|
|
3694
|
+
if (rule.when === null || compiledWhen(registry, rule.when)(item, ctx)) {
|
|
3695
|
+
disposition = rule.is;
|
|
3696
|
+
break;
|
|
3697
|
+
}
|
|
3698
|
+
}
|
|
3699
|
+
let derivedStatus;
|
|
3700
|
+
switch (disposition) {
|
|
3701
|
+
case "parked":
|
|
3702
|
+
derivedStatus = knownStatusIds.has(derive.headline.parked) ? derive.headline.parked : phase;
|
|
3703
|
+
break;
|
|
3704
|
+
case "blocked":
|
|
3705
|
+
derivedStatus = knownStatusIds.has(derive.headline.blocked) ? derive.headline.blocked : phase;
|
|
3706
|
+
break;
|
|
3707
|
+
default:
|
|
3708
|
+
derivedStatus = phase;
|
|
3709
|
+
}
|
|
3710
|
+
let status = derivedStatus;
|
|
3711
|
+
if (override && override.status && !terminalStatuses.has(override.status) && knownStatusIds.has(override.status)) {
|
|
3712
|
+
status = override.status;
|
|
3713
|
+
}
|
|
3714
|
+
return { phase, disposition, derivedStatus, status, nextAction };
|
|
3715
|
+
}
|
|
3716
|
+
var conditionCache;
|
|
3717
|
+
var init_derive = __esm({
|
|
3718
|
+
"src/lifecycle/derive.ts"() {
|
|
3719
|
+
"use strict";
|
|
3720
|
+
init_query();
|
|
3721
|
+
init_fact_registry();
|
|
3722
|
+
init_fact_registry();
|
|
3723
|
+
conditionCache = /* @__PURE__ */ new WeakMap();
|
|
3724
|
+
}
|
|
3725
|
+
});
|
|
3726
|
+
|
|
3659
3727
|
// src/utils/playbooks.ts
|
|
3660
3728
|
import { resolve as resolve8 } from "path";
|
|
3661
3729
|
import { readdir as readdir4, readFile as readFile7, unlink } from "fs/promises";
|
|
@@ -4315,7 +4383,8 @@ async function getStatusConfig() {
|
|
|
4315
4383
|
derive: config.statuses.derive ?? null,
|
|
4316
4384
|
facts: config.statuses.facts ?? null,
|
|
4317
4385
|
factDeclarations: accepted,
|
|
4318
|
-
deriveRegistry: buildDeriveRegistry(accepted)
|
|
4386
|
+
deriveRegistry: buildDeriveRegistry(accepted),
|
|
4387
|
+
queryRegistry: buildQueryRegistry(accepted)
|
|
4319
4388
|
};
|
|
4320
4389
|
} else {
|
|
4321
4390
|
const def = buildDefaultStatusConfig();
|
|
@@ -4329,7 +4398,8 @@ async function getStatusConfig() {
|
|
|
4329
4398
|
derive: null,
|
|
4330
4399
|
facts: null,
|
|
4331
4400
|
factDeclarations: [],
|
|
4332
|
-
deriveRegistry: buildDeriveRegistry([])
|
|
4401
|
+
deriveRegistry: buildDeriveRegistry([]),
|
|
4402
|
+
queryRegistry: buildQueryRegistry([])
|
|
4333
4403
|
};
|
|
4334
4404
|
}
|
|
4335
4405
|
return _cachedConfig;
|
|
@@ -5285,12 +5355,6 @@ function parseOpenUrl(input) {
|
|
|
5285
5355
|
let prompt;
|
|
5286
5356
|
if (promptVals.length === 1) {
|
|
5287
5357
|
const value = promptVals[0];
|
|
5288
|
-
if (/[\r\n]/.test(value)) {
|
|
5289
|
-
throw new OpenUrlError(
|
|
5290
|
-
"invalid-prompt",
|
|
5291
|
-
"`prompt` query param must be a single line (no newlines)"
|
|
5292
|
-
);
|
|
5293
|
-
}
|
|
5294
5358
|
if (value.length > MAX_OPEN_PROMPT_LENGTH) {
|
|
5295
5359
|
throw new OpenUrlError(
|
|
5296
5360
|
"invalid-prompt",
|