@corenel/harness 0.10.0 → 0.12.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/dist/approvals/decisionLog.d.ts +21 -0
- package/dist/approvals/decisionLog.d.ts.map +1 -0
- package/dist/approvals/decisionLog.js +129 -0
- package/dist/approvals/decisionLog.js.map +1 -0
- package/dist/approvals/hooks.d.ts +18 -0
- package/dist/approvals/hooks.d.ts.map +1 -0
- package/dist/approvals/hooks.js +34 -0
- package/dist/approvals/hooks.js.map +1 -0
- package/dist/approvals/index.d.ts +10 -0
- package/dist/approvals/index.d.ts.map +1 -0
- package/dist/approvals/index.js +10 -0
- package/dist/approvals/index.js.map +1 -0
- package/dist/approvals/service.d.ts +46 -0
- package/dist/approvals/service.d.ts.map +1 -0
- package/dist/approvals/service.js +181 -0
- package/dist/approvals/service.js.map +1 -0
- package/dist/approvals/settings.d.ts +20 -0
- package/dist/approvals/settings.d.ts.map +1 -0
- package/dist/approvals/settings.js +32 -0
- package/dist/approvals/settings.js.map +1 -0
- package/dist/approvals/shellTools.d.ts +10 -0
- package/dist/approvals/shellTools.d.ts.map +1 -0
- package/dist/approvals/shellTools.js +17 -0
- package/dist/approvals/shellTools.js.map +1 -0
- package/dist/approvals/standingStore.d.ts +15 -0
- package/dist/approvals/standingStore.d.ts.map +1 -0
- package/dist/approvals/standingStore.js +50 -0
- package/dist/approvals/standingStore.js.map +1 -0
- package/dist/approvals/suggest.d.ts +15 -0
- package/dist/approvals/suggest.d.ts.map +1 -0
- package/dist/approvals/suggest.js +23 -0
- package/dist/approvals/suggest.js.map +1 -0
- package/dist/approvals/summarize.d.ts +7 -0
- package/dist/approvals/summarize.d.ts.map +1 -0
- package/dist/approvals/summarize.js +70 -0
- package/dist/approvals/summarize.js.map +1 -0
- package/dist/approvals/testTextStore.d.ts +6 -0
- package/dist/approvals/testTextStore.d.ts.map +1 -0
- package/dist/approvals/testTextStore.js +11 -0
- package/dist/approvals/testTextStore.js.map +1 -0
- package/dist/approvals/textStore.d.ts +9 -0
- package/dist/approvals/textStore.d.ts.map +1 -0
- package/dist/approvals/textStore.js +2 -0
- package/dist/approvals/textStore.js.map +1 -0
- package/dist/audit/canonical.d.ts +5 -0
- package/dist/audit/canonical.d.ts.map +1 -0
- package/dist/audit/canonical.js +15 -0
- package/dist/audit/canonical.js.map +1 -0
- package/dist/audit/ids.d.ts +3 -0
- package/dist/audit/ids.d.ts.map +1 -0
- package/dist/audit/ids.js +11 -0
- package/dist/audit/ids.js.map +1 -0
- package/dist/audit/index.d.ts +7 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +7 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/log.d.ts +64 -0
- package/dist/audit/log.d.ts.map +1 -0
- package/dist/audit/log.js +457 -0
- package/dist/audit/log.js.map +1 -0
- package/dist/audit/recorder.d.ts +31 -0
- package/dist/audit/recorder.d.ts.map +1 -0
- package/dist/audit/recorder.js +185 -0
- package/dist/audit/recorder.js.map +1 -0
- package/dist/audit/runAudit.d.ts +38 -0
- package/dist/audit/runAudit.d.ts.map +1 -0
- package/dist/audit/runAudit.js +99 -0
- package/dist/audit/runAudit.js.map +1 -0
- package/dist/audit/verify.d.ts +14 -0
- package/dist/audit/verify.d.ts.map +1 -0
- package/dist/audit/verify.js +47 -0
- package/dist/audit/verify.js.map +1 -0
- package/dist/conversation.d.ts +31 -0
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +33 -0
- package/dist/conversation.js.map +1 -1
- package/dist/core/hash.d.ts +2 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +9 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/loop.d.ts +18 -0
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +67 -6
- package/dist/core/loop.js.map +1 -1
- package/dist/core/spawn.d.ts +59 -4
- package/dist/core/spawn.d.ts.map +1 -1
- package/dist/core/spawn.js +83 -5
- package/dist/core/spawn.js.map +1 -1
- package/dist/core/turnVerify.d.ts +25 -0
- package/dist/core/turnVerify.d.ts.map +1 -0
- package/dist/core/turnVerify.js +177 -0
- package/dist/core/turnVerify.js.map +1 -0
- package/dist/dag/executeNode.d.ts +7 -0
- package/dist/dag/executeNode.d.ts.map +1 -1
- package/dist/dag/executeNode.js +3 -0
- package/dist/dag/executeNode.js.map +1 -1
- package/dist/guardrail/guardrail.d.ts +7 -0
- package/dist/guardrail/guardrail.d.ts.map +1 -1
- package/dist/guardrail/guardrail.js +8 -0
- package/dist/guardrail/guardrail.js.map +1 -1
- package/dist/guardrail/index.d.ts +2 -2
- package/dist/guardrail/index.d.ts.map +1 -1
- package/dist/guardrail/index.js +2 -2
- package/dist/guardrail/index.js.map +1 -1
- package/dist/guardrail/permission-service.d.ts +41 -6
- package/dist/guardrail/permission-service.d.ts.map +1 -1
- package/dist/guardrail/permission-service.js +118 -11
- package/dist/guardrail/permission-service.js.map +1 -1
- package/dist/guardrail/serialize.d.ts.map +1 -1
- package/dist/guardrail/serialize.js +2 -0
- package/dist/guardrail/serialize.js.map +1 -1
- package/dist/guardrail/validate.d.ts.map +1 -1
- package/dist/guardrail/validate.js +3 -1
- package/dist/guardrail/validate.js.map +1 -1
- package/dist/install/lockfile.d.ts +13 -5
- package/dist/install/lockfile.d.ts.map +1 -1
- package/dist/install/lockfile.js +31 -2
- package/dist/install/lockfile.js.map +1 -1
- package/dist/orchestrator/agentSearch.d.ts +15 -0
- package/dist/orchestrator/agentSearch.d.ts.map +1 -0
- package/dist/orchestrator/agentSearch.js +112 -0
- package/dist/orchestrator/agentSearch.js.map +1 -0
- package/dist/orchestrator/agentTags.d.ts +13 -0
- package/dist/orchestrator/agentTags.d.ts.map +1 -0
- package/dist/orchestrator/agentTags.js +48 -0
- package/dist/orchestrator/agentTags.js.map +1 -0
- package/dist/orchestrator/branch.d.ts +9 -0
- package/dist/orchestrator/branch.d.ts.map +1 -0
- package/dist/orchestrator/branch.js +26 -0
- package/dist/orchestrator/branch.js.map +1 -0
- package/dist/orchestrator/checks.d.ts +16 -0
- package/dist/orchestrator/checks.d.ts.map +1 -0
- package/dist/orchestrator/checks.js +66 -0
- package/dist/orchestrator/checks.js.map +1 -0
- package/dist/orchestrator/planDoc.d.ts +41 -0
- package/dist/orchestrator/planDoc.d.ts.map +1 -0
- package/dist/orchestrator/planDoc.js +181 -0
- package/dist/orchestrator/planDoc.js.map +1 -0
- package/dist/orchestrator/record.d.ts +110 -0
- package/dist/orchestrator/record.d.ts.map +1 -0
- package/dist/orchestrator/record.js +221 -0
- package/dist/orchestrator/record.js.map +1 -0
- package/dist/orchestrator/sidecarTools.d.ts +7 -0
- package/dist/orchestrator/sidecarTools.d.ts.map +1 -0
- package/dist/orchestrator/sidecarTools.js +141 -0
- package/dist/orchestrator/sidecarTools.js.map +1 -0
- package/dist/prompts/config.d.ts.map +1 -1
- package/dist/prompts/config.js +11 -0
- package/dist/prompts/config.js.map +1 -1
- package/dist/prompts/index.d.ts +0 -6
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +10 -17
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/init.d.ts +12 -0
- package/dist/prompts/init.d.ts.map +1 -0
- package/dist/prompts/init.js +48 -0
- package/dist/prompts/init.js.map +1 -0
- package/dist/prompts/library/defaults.generated.d.ts.map +1 -1
- package/dist/prompts/library/defaults.generated.js +29 -12
- package/dist/prompts/library/defaults.generated.js.map +1 -1
- package/dist/redact.d.ts.map +1 -1
- package/dist/redact.js +1 -0
- package/dist/redact.js.map +1 -1
- package/dist/rooms/findings.d.ts +14 -0
- package/dist/rooms/findings.d.ts.map +1 -1
- package/dist/rooms/findings.js +37 -0
- package/dist/rooms/findings.js.map +1 -1
- package/dist/sessions/blobGc.d.ts.map +1 -1
- package/dist/sessions/blobGc.js +2 -5
- package/dist/sessions/blobGc.js.map +1 -1
- package/dist/sessions/childSessions.d.ts +12 -0
- package/dist/sessions/childSessions.d.ts.map +1 -0
- package/dist/sessions/childSessions.js +43 -0
- package/dist/sessions/childSessions.js.map +1 -0
- package/dist/sessions/fileRecallStore.d.ts.map +1 -1
- package/dist/sessions/fileRecallStore.js +1 -3
- package/dist/sessions/fileRecallStore.js.map +1 -1
- package/dist/sessions/fileSessionStore.d.ts +11 -7
- package/dist/sessions/fileSessionStore.d.ts.map +1 -1
- package/dist/sessions/fileSessionStore.js +27 -16
- package/dist/sessions/fileSessionStore.js.map +1 -1
- package/dist/sessions/inflight.js +0 -0
- package/dist/sessions/inflight.js.map +1 -1
- package/dist/sessions/jsonl.d.ts +4 -0
- package/dist/sessions/jsonl.d.ts.map +1 -1
- package/dist/sessions/jsonl.js +1 -0
- package/dist/sessions/jsonl.js.map +1 -1
- package/dist/sessions/testFs.d.ts.map +1 -1
- package/dist/sessions/testFs.js +1 -1
- package/dist/sessions/testFs.js.map +1 -1
- package/dist/sidecar/host.d.ts +194 -3
- package/dist/sidecar/host.d.ts.map +1 -1
- package/dist/sidecar/host.js +401 -6
- package/dist/sidecar/host.js.map +1 -1
- package/dist/sidecar/identity.d.ts +44 -0
- package/dist/sidecar/identity.d.ts.map +1 -0
- package/dist/sidecar/identity.js +45 -0
- package/dist/sidecar/identity.js.map +1 -0
- package/dist/sidecar/server.d.ts +250 -4
- package/dist/sidecar/server.d.ts.map +1 -1
- package/dist/sidecar/server.js +866 -46
- package/dist/sidecar/server.js.map +1 -1
- package/dist/skillSource.js +1 -1
- package/dist/skillSource.js.map +1 -1
- package/dist/skills.d.ts +23 -7
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +62 -37
- package/dist/skills.js.map +1 -1
- package/dist/tools/callAgent.d.ts +29 -12
- package/dist/tools/callAgent.d.ts.map +1 -1
- package/dist/tools/callAgent.js +120 -14
- package/dist/tools/callAgent.js.map +1 -1
- package/dist/tools/crewList.d.ts +33 -0
- package/dist/tools/crewList.d.ts.map +1 -0
- package/dist/tools/crewList.js +66 -0
- package/dist/tools/crewList.js.map +1 -0
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +11 -5
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/findAgent.d.ts +23 -0
- package/dist/tools/findAgent.d.ts.map +1 -0
- package/dist/tools/findAgent.js +58 -0
- package/dist/tools/findAgent.js.map +1 -0
- package/dist/tools/namespaces.d.ts.map +1 -1
- package/dist/tools/namespaces.js +7 -0
- package/dist/tools/namespaces.js.map +1 -1
- package/dist/tools/orchestrate.d.ts +4 -0
- package/dist/tools/orchestrate.d.ts.map +1 -0
- package/dist/tools/orchestrate.js +38 -0
- package/dist/tools/orchestrate.js.map +1 -0
- package/dist/tools/orchestration.d.ts +24 -0
- package/dist/tools/orchestration.d.ts.map +1 -0
- package/dist/tools/orchestration.js +173 -0
- package/dist/tools/orchestration.js.map +1 -0
- package/dist/tools/orchestrationSet.d.ts +6 -0
- package/dist/tools/orchestrationSet.d.ts.map +1 -0
- package/dist/tools/orchestrationSet.js +12 -0
- package/dist/tools/orchestrationSet.js.map +1 -0
- package/dist/tools/roomTools.d.ts +6 -0
- package/dist/tools/roomTools.d.ts.map +1 -1
- package/dist/tools/roomTools.js +26 -2
- package/dist/tools/roomTools.js.map +1 -1
- package/dist/tools/skillTool.d.ts +15 -0
- package/dist/tools/skillTool.d.ts.map +1 -0
- package/dist/tools/skillTool.js +39 -0
- package/dist/tools/skillTool.js.map +1 -0
- package/dist/tools/urlGuard.d.ts +7 -0
- package/dist/tools/urlGuard.d.ts.map +1 -1
- package/dist/tools/urlGuard.js +54 -18
- package/dist/tools/urlGuard.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../guardrail/permission-service.ts"],"names":[],"mappings":"AAAA;;;;;wEAKwE;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"permission-service.js","sourceRoot":"","sources":["../../guardrail/permission-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../guardrail/serialize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAkB,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzE;kFACkF;AAClF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../guardrail/serialize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAkB,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzE;kFACkF;AAClF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB9C;AAED;8DAC8D;AAC9D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAYnE"}
|
|
@@ -38,6 +38,8 @@ export function policyToYaml(p) {
|
|
|
38
38
|
ordered.unattended = p.unattended;
|
|
39
39
|
if (p.parkTimeoutMs !== undefined)
|
|
40
40
|
ordered.parkTimeoutMs = p.parkTimeoutMs;
|
|
41
|
+
if (p.pushWaitMs !== undefined)
|
|
42
|
+
ordered.pushWaitMs = p.pushWaitMs;
|
|
41
43
|
return stringify(ordered, { lineWidth: 0 });
|
|
42
44
|
}
|
|
43
45
|
/** Parse YAML text into a validated Policy. YAML syntax errors and schema errors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../guardrail/serialize.ts"],"names":[],"mappings":"AAAA;;;;;uFAKuF;AACvF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,cAAc,EAA+B,MAAM,YAAY,CAAC;AAEzE;kFACkF;AAClF,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,8EAA8E;IAC9E,MAAM,OAAO,GAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACxE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACvF,kFAAkF;IAClF,6EAA6E;IAC7E,6BAA6B;IAC7B,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;IACjF,gFAAgF;IAChF,sDAAsD;IACtD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IAClE,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;IAC3E,OAAO,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../guardrail/serialize.ts"],"names":[],"mappings":"AAAA;;;;;uFAKuF;AACvF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,cAAc,EAA+B,MAAM,YAAY,CAAC;AAEzE;kFACkF;AAClF,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,8EAA8E;IAC9E,MAAM,OAAO,GAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACxE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC5D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACrE,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACvF,kFAAkF;IAClF,6EAA6E;IAC7E,6BAA6B;IAC7B,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS;QAAE,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;IACjF,gFAAgF;IAChF,sDAAsD;IACtD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IAClE,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;IAC3E,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IAClE,OAAO,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,qBAAqB,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../guardrail/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAoD,MAAM,mBAAmB,CAAC;AAkBlG,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA2BD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../guardrail/validate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAoD,MAAM,mBAAmB,CAAC;AAkBlG,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA2BD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAwErE"}
|
|
@@ -27,7 +27,7 @@ function isPosNum(v) {
|
|
|
27
27
|
const POLICY_KEYS = new Set([
|
|
28
28
|
'version', 'name', 'description', 'onViolation', 'maxTurns', 'maxToolCalls',
|
|
29
29
|
'tools', 'mustCall', 'permissions', 'defaultPermission', 'mutatingDefault',
|
|
30
|
-
'unattended', 'parkTimeoutMs',
|
|
30
|
+
'unattended', 'parkTimeoutMs', 'pushWaitMs',
|
|
31
31
|
]);
|
|
32
32
|
const TOOLS_KEYS = new Set(['allow', 'deny']);
|
|
33
33
|
/** Names that would collide with Object.prototype slots — saving one corrupts
|
|
@@ -115,6 +115,8 @@ export function validatePolicy(input) {
|
|
|
115
115
|
if (o.parkTimeoutMs !== undefined && !isPosNum(o.parkTimeoutMs)) {
|
|
116
116
|
errors.push('Policy.parkTimeoutMs must be a positive number.');
|
|
117
117
|
}
|
|
118
|
+
if (o.pushWaitMs !== undefined && !isPosNum(o.pushWaitMs))
|
|
119
|
+
errors.push('Policy.pushWaitMs must be a positive number.');
|
|
118
120
|
if (errors.length)
|
|
119
121
|
return { ok: false, errors };
|
|
120
122
|
return { ok: true, policy: input, errors: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../guardrail/validate.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,GAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3D,MAAM,OAAO,GAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,UAAU,GAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/D;mFACmF;AACnF,MAAM,aAAa,GAAoC;IACrD,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;IACxC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM;CACzC,CAAC;AAEF,kFAAkF;AAClF,SAAS,cAAc,CAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAQD,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AACD;qFACqF;AACrF,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;qEACqE;AACrE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc;IAC3E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB;IAC1E,YAAY,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../guardrail/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/** Package kinds the registry serves. A plain string union rather than an import
|
|
2
|
-
* from @prompd/core, to keep this module free of that dependency; unknown kinds
|
|
3
|
-
* off the wire are preserved rather than rejected (see parseLock). */
|
|
4
1
|
export type LockedType = 'package' | 'workflow' | 'skill' | 'node-template' | (string & {});
|
|
5
2
|
export interface LockedPackage {
|
|
6
3
|
/** Full scoped name, e.g. "@prompd/core". */
|
|
@@ -18,8 +15,19 @@ export interface Lockfile {
|
|
|
18
15
|
packages: LockedPackage[];
|
|
19
16
|
}
|
|
20
17
|
export declare const LOCKFILE_VERSION: 1;
|
|
21
|
-
/**
|
|
22
|
-
export declare const
|
|
18
|
+
/** The lockfile's name. It carries Prompd's name because it names the FORMAT. */
|
|
19
|
+
export declare const LOCKFILE_NAME = "prompd-lock.json";
|
|
20
|
+
/** Where THIS host writes its lockfile: `<stateDir>/prompd-lock.json`. Read lazily. */
|
|
21
|
+
export declare function lockfilePath(): string;
|
|
22
|
+
/** Every lockfile to READ, host dir first, then Prompd's (read-only fallback). */
|
|
23
|
+
export declare function lockfileReadPaths(): string[];
|
|
24
|
+
/** Merge locks given in priority order: on a NAME collision the earlier lock
|
|
25
|
+
* wins outright — every entry for that name in a later lock is dropped, even
|
|
26
|
+
* at a different version — so the host's pin always shadows Prompd's for the
|
|
27
|
+
* same package rather than the two versions coexisting. Built through
|
|
28
|
+
* `withPackages` so the result stays canonical. A READ view only; never write
|
|
29
|
+
* the result back. */
|
|
30
|
+
export declare function mergeLocks(locks: readonly Lockfile[]): Lockfile;
|
|
23
31
|
export declare function emptyLock(): Lockfile;
|
|
24
32
|
/**
|
|
25
33
|
* Add or replace entries, returning a NEW lockfile.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../install/lockfile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../../install/lockfile.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB;;wCAEoC;IACpC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,iFAAiF;AACjF,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAEhD,uFAAuF;AACvF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;;;;uBAKuB;AACvB,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,CAS/D;AAED,wBAAgB,SAAS,IAAI,QAAQ,CAEpC;AAwBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,QAAQ,CAKtF;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKrE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMpD;AAMD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBvD;AAED,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,gCAAgC;IAChC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAOjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAG9G;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,aAAa,EAAE,CAGpH;AAED;4CAC4C;AAC5C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAEjD"}
|
package/dist/install/lockfile.js
CHANGED
|
@@ -17,9 +17,38 @@
|
|
|
17
17
|
* installed in. Without that, a lockfile churns in version control on every
|
|
18
18
|
* install and stops being reviewable — which is most of why anyone keeps one.
|
|
19
19
|
*/
|
|
20
|
+
/** Package kinds the registry serves. A plain string union rather than an import
|
|
21
|
+
* from @prompd/core, to keep this module free of that dependency; unknown kinds
|
|
22
|
+
* off the wire are preserved rather than rejected (see parseLock). */
|
|
23
|
+
import { stateDirName, stateReadDirs } from '@corenel/protocol';
|
|
20
24
|
export const LOCKFILE_VERSION = 1;
|
|
21
|
-
/**
|
|
22
|
-
export const
|
|
25
|
+
/** The lockfile's name. It carries Prompd's name because it names the FORMAT. */
|
|
26
|
+
export const LOCKFILE_NAME = 'prompd-lock.json';
|
|
27
|
+
/** Where THIS host writes its lockfile: `<stateDir>/prompd-lock.json`. Read lazily. */
|
|
28
|
+
export function lockfilePath() {
|
|
29
|
+
return `${stateDirName()}/${LOCKFILE_NAME}`;
|
|
30
|
+
}
|
|
31
|
+
/** Every lockfile to READ, host dir first, then Prompd's (read-only fallback). */
|
|
32
|
+
export function lockfileReadPaths() {
|
|
33
|
+
return stateReadDirs().map((d) => `${d}/${LOCKFILE_NAME}`);
|
|
34
|
+
}
|
|
35
|
+
/** Merge locks given in priority order: on a NAME collision the earlier lock
|
|
36
|
+
* wins outright — every entry for that name in a later lock is dropped, even
|
|
37
|
+
* at a different version — so the host's pin always shadows Prompd's for the
|
|
38
|
+
* same package rather than the two versions coexisting. Built through
|
|
39
|
+
* `withPackages` so the result stays canonical. A READ view only; never write
|
|
40
|
+
* the result back. */
|
|
41
|
+
export function mergeLocks(locks) {
|
|
42
|
+
let out = emptyLock();
|
|
43
|
+
const seenNames = new Set();
|
|
44
|
+
for (const l of locks) {
|
|
45
|
+
const kept = l.packages.filter((p) => !seenNames.has(p.name));
|
|
46
|
+
out = withPackages(out, kept);
|
|
47
|
+
for (const p of kept)
|
|
48
|
+
seenNames.add(p.name);
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
23
52
|
export function emptyLock() {
|
|
24
53
|
return { lockfileVersion: LOCKFILE_VERSION, packages: [] };
|
|
25
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../install/lockfile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../install/lockfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SearchableAgent {
|
|
2
|
+
name: string;
|
|
3
|
+
jobTitle?: string;
|
|
4
|
+
description: string;
|
|
5
|
+
tags?: string[];
|
|
6
|
+
enabled?: boolean;
|
|
7
|
+
installed?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Score one agent against a free-text query. 0 when nothing matches. */
|
|
10
|
+
export declare function scoreAgent(a: SearchableAgent, query: string): number;
|
|
11
|
+
/** Rank agents by relevance to `query`. With an empty/whitespace-only query,
|
|
12
|
+
* returns the input order unchanged. Otherwise scores, drops zero-score
|
|
13
|
+
* agents, and sorts by score desc, then installed, then enabled, then name. */
|
|
14
|
+
export declare function rankAgents<T extends SearchableAgent>(agents: readonly T[], query: string): T[];
|
|
15
|
+
//# sourceMappingURL=agentSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentSearch.d.ts","sourceRoot":"","sources":["../../orchestrator/agentSearch.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkFD,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBpE;AAED;;+EAE+E;AAC/E,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAoB9F"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* Pure keyword/tag scorer for finding agents. Lives in the harness (not
|
|
2
|
+
* @corenel/crew, which re-exports it) because list_agents ranks with it and the
|
|
3
|
+
* harness cannot depend on crew. Shared by the crew list search,
|
|
4
|
+
* the orchestrator's list_agents, and a chat find_agent tool, so the ranking
|
|
5
|
+
* behaves identically everywhere it is used. */
|
|
6
|
+
import { normalizeTag } from './agentTags.js';
|
|
7
|
+
const EXACT_TAG = 10;
|
|
8
|
+
const TAG_PREFIX = 6;
|
|
9
|
+
const WHOLE_WORD_TITLE = 5;
|
|
10
|
+
/* A name, title or tag word that STARTS with the query word, at any length.
|
|
11
|
+
* This is what makes the crew list search type-ahead: 'o' finds the
|
|
12
|
+
* orchestrator, 'ana' both analysts, without waiting for a third character.
|
|
13
|
+
* Below a whole word, so finishing the word still ranks it higher. */
|
|
14
|
+
const WORD_PREFIX = 3;
|
|
15
|
+
const WHOLE_WORD_DESCRIPTION = 2;
|
|
16
|
+
const SUBSTRING = 1;
|
|
17
|
+
function splitWords(text) {
|
|
18
|
+
return text
|
|
19
|
+
.toLowerCase()
|
|
20
|
+
.split(/[^a-z0-9]+/)
|
|
21
|
+
.filter(Boolean);
|
|
22
|
+
}
|
|
23
|
+
/** Split free-text query into words: punctuation other than hyphen/underscore
|
|
24
|
+
* separates (so 'docs/api' -> 'docs','api' and "don't" -> 'don','t'), then each
|
|
25
|
+
* word is normalised the same way a tag is (so a hyphenated word like
|
|
26
|
+
* 'code-reviewer' survives as one word, matching how tags and names keep
|
|
27
|
+
* their hyphens). Empty results after normalising are dropped. */
|
|
28
|
+
function splitQueryWords(query) {
|
|
29
|
+
return query
|
|
30
|
+
.split(/[^a-zA-Z0-9_-]+/)
|
|
31
|
+
.map(normalizeTag)
|
|
32
|
+
.filter(Boolean);
|
|
33
|
+
}
|
|
34
|
+
function scoreWord(word, tags, nameWords, titleWords, descWords, nameText, titleText, descText, rawName) {
|
|
35
|
+
let best = 0;
|
|
36
|
+
if (tags.includes(word))
|
|
37
|
+
best = Math.max(best, EXACT_TAG);
|
|
38
|
+
if (word.length >= 3) {
|
|
39
|
+
for (const tag of tags) {
|
|
40
|
+
if (tag !== word && tag.startsWith(word)) {
|
|
41
|
+
best = Math.max(best, TAG_PREFIX);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (nameWords.includes(word) || titleWords.includes(word))
|
|
47
|
+
best = Math.max(best, WHOLE_WORD_TITLE);
|
|
48
|
+
// A query word equal to the agent's whole (still-hyphenated) name is a
|
|
49
|
+
// name match too -- otherwise typing an agent's name exactly as shown
|
|
50
|
+
// ('code-reviewer') never matches, since nameWords only holds the
|
|
51
|
+
// hyphen-split pieces ('code', 'reviewer').
|
|
52
|
+
if (word === rawName)
|
|
53
|
+
best = Math.max(best, WHOLE_WORD_TITLE);
|
|
54
|
+
if (best < WORD_PREFIX && (rawName.startsWith(word)
|
|
55
|
+
|| nameWords.some((w) => w.startsWith(word))
|
|
56
|
+
|| titleWords.some((w) => w.startsWith(word))
|
|
57
|
+
|| tags.some((t) => t.startsWith(word))))
|
|
58
|
+
best = WORD_PREFIX;
|
|
59
|
+
if (descWords.includes(word))
|
|
60
|
+
best = Math.max(best, WHOLE_WORD_DESCRIPTION);
|
|
61
|
+
if (word.length >= 3 && best < SUBSTRING) {
|
|
62
|
+
if (nameText.includes(word) || titleText.includes(word) || descText.includes(word) || rawName.includes(word)) {
|
|
63
|
+
best = Math.max(best, SUBSTRING);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return best;
|
|
67
|
+
}
|
|
68
|
+
/** Score one agent against a free-text query. 0 when nothing matches. */
|
|
69
|
+
export function scoreAgent(a, query) {
|
|
70
|
+
const words = splitQueryWords(query);
|
|
71
|
+
if (words.length === 0)
|
|
72
|
+
return 0;
|
|
73
|
+
const tags = a.tags ?? [];
|
|
74
|
+
const rawName = a.name.toLowerCase();
|
|
75
|
+
const nameText = a.name.split('-').join(' ').toLowerCase();
|
|
76
|
+
const titleText = (a.jobTitle ?? '').toLowerCase();
|
|
77
|
+
const descText = a.description.toLowerCase();
|
|
78
|
+
const nameWords = splitWords(nameText);
|
|
79
|
+
const titleWords = splitWords(titleText);
|
|
80
|
+
const descWords = splitWords(descText);
|
|
81
|
+
let total = 0;
|
|
82
|
+
for (const word of words) {
|
|
83
|
+
total += scoreWord(word, tags, nameWords, titleWords, descWords, nameText, titleText, descText, rawName);
|
|
84
|
+
}
|
|
85
|
+
return total;
|
|
86
|
+
}
|
|
87
|
+
/** Rank agents by relevance to `query`. With an empty/whitespace-only query,
|
|
88
|
+
* returns the input order unchanged. Otherwise scores, drops zero-score
|
|
89
|
+
* agents, and sorts by score desc, then installed, then enabled, then name. */
|
|
90
|
+
export function rankAgents(agents, query) {
|
|
91
|
+
const words = splitQueryWords(query);
|
|
92
|
+
if (words.length === 0)
|
|
93
|
+
return [...agents];
|
|
94
|
+
const scored = agents
|
|
95
|
+
.map((agent) => ({ agent, score: scoreAgent(agent, query) }))
|
|
96
|
+
.filter((s) => s.score > 0);
|
|
97
|
+
scored.sort((x, y) => {
|
|
98
|
+
if (y.score !== x.score)
|
|
99
|
+
return y.score - x.score;
|
|
100
|
+
const xInstalled = x.agent.installed !== false;
|
|
101
|
+
const yInstalled = y.agent.installed !== false;
|
|
102
|
+
if (xInstalled !== yInstalled)
|
|
103
|
+
return xInstalled ? -1 : 1;
|
|
104
|
+
const xEnabled = x.agent.enabled !== false;
|
|
105
|
+
const yEnabled = y.agent.enabled !== false;
|
|
106
|
+
if (xEnabled !== yEnabled)
|
|
107
|
+
return xEnabled ? -1 : 1;
|
|
108
|
+
return x.agent.name < y.agent.name ? -1 : x.agent.name > y.agent.name ? 1 : 0;
|
|
109
|
+
});
|
|
110
|
+
return scored.map((s) => s.agent);
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=agentSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentSearch.js","sourceRoot":"","sources":["../../orchestrator/agentSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const TAG_MAX = 12;
|
|
2
|
+
export declare const TAG_LEN = 32;
|
|
3
|
+
/** Suggested starter tags. A suggestion list only: any normalised tag is valid. */
|
|
4
|
+
export declare const TAG_VOCABULARY: readonly string[];
|
|
5
|
+
/** Normalise one tag; '' when nothing survives. */
|
|
6
|
+
export declare function normalizeTag(raw: string): string;
|
|
7
|
+
/** Normalise a list: non-strings and empties dropped, duplicates removed
|
|
8
|
+
* keeping first order, capped at TAG_MAX. */
|
|
9
|
+
export declare function normalizeTags(raw: readonly unknown[]): string[];
|
|
10
|
+
/** Tags from parsed frontmatter; undefined when absent, not a list, or empty
|
|
11
|
+
* after normalising. */
|
|
12
|
+
export declare function parseTags(meta: Record<string, unknown>): string[] | undefined;
|
|
13
|
+
//# sourceMappingURL=agentTags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentTags.d.ts","sourceRoot":"","sources":["../../orchestrator/agentTags.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,OAAO,KAAK,CAAC;AAE1B,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAE3C,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED;6CAC6C;AAC7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,EAAE,CAS/D;AAED;wBACwB;AACxB,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAK7E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* Free-form agent tags. Stored in AGENT.md frontmatter as a YAML list, always
|
|
2
|
+
* in normalised form: lowercase, [a-z0-9-] only, whitespace and underscores
|
|
3
|
+
* collapsed to one hyphen, no leading/trailing hyphen. Over-long tags are cut
|
|
4
|
+
* and extra tags dropped rather than refused, so a hand-edited file never
|
|
5
|
+
* fails to load over its tags. */
|
|
6
|
+
export const TAG_MAX = 12;
|
|
7
|
+
export const TAG_LEN = 32;
|
|
8
|
+
/** Suggested starter tags. A suggestion list only: any normalised tag is valid. */
|
|
9
|
+
export const TAG_VOCABULARY = [
|
|
10
|
+
'code', 'testing', 'review', 'docs', 'research', 'git', 'planning', 'data', 'writing', 'marketing',
|
|
11
|
+
];
|
|
12
|
+
/** Normalise one tag; '' when nothing survives. */
|
|
13
|
+
export function normalizeTag(raw) {
|
|
14
|
+
return raw
|
|
15
|
+
.trim()
|
|
16
|
+
.toLowerCase()
|
|
17
|
+
.replace(/[\s_]+/g, '-')
|
|
18
|
+
.replace(/[^a-z0-9-]/g, '')
|
|
19
|
+
.replace(/-+/g, '-')
|
|
20
|
+
.replace(/^-|-$/g, '')
|
|
21
|
+
.slice(0, TAG_LEN)
|
|
22
|
+
.replace(/-$/, '');
|
|
23
|
+
}
|
|
24
|
+
/** Normalise a list: non-strings and empties dropped, duplicates removed
|
|
25
|
+
* keeping first order, capped at TAG_MAX. */
|
|
26
|
+
export function normalizeTags(raw) {
|
|
27
|
+
const out = [];
|
|
28
|
+
for (const r of raw) {
|
|
29
|
+
if (typeof r !== 'string')
|
|
30
|
+
continue;
|
|
31
|
+
const t = normalizeTag(r);
|
|
32
|
+
if (t && !out.includes(t))
|
|
33
|
+
out.push(t);
|
|
34
|
+
if (out.length === TAG_MAX)
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/** Tags from parsed frontmatter; undefined when absent, not a list, or empty
|
|
40
|
+
* after normalising. */
|
|
41
|
+
export function parseTags(meta) {
|
|
42
|
+
const raw = meta.tags;
|
|
43
|
+
if (!Array.isArray(raw))
|
|
44
|
+
return undefined;
|
|
45
|
+
const t = normalizeTags(raw);
|
|
46
|
+
return t.length ? t : undefined;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=agentTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentTags.js","sourceRoot":"","sources":["../../orchestrator/agentTags.ts"],"names":[],"mappings":"AAAA;;;;kCAIkC;AAElC,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;AAE1B,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;CACnG,CAAC;AAEF,mDAAmD;AACnD,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG;SACP,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;SACjB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAED;6CAC6C;AAC7C,MAAM,UAAU,aAAa,CAAC,GAAuB;IACnD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QACpC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;wBACwB;AACxB,MAAM,UAAU,SAAS,CAAC,IAA6B;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const MAX_SLUG = 40;
|
|
2
|
+
/** The orchestrator record id minted by record.ts: `orch_` + base-36. */
|
|
3
|
+
export declare const RUN_ID_RE: RegExp;
|
|
4
|
+
export declare function slugify(title: string): string;
|
|
5
|
+
/** A dot-dir name minus its dot, with anything git could object to (a `.lock`
|
|
6
|
+
* suffix, `..`) folded to dashes. */
|
|
7
|
+
export declare function productOf(stateDir: string): string;
|
|
8
|
+
export declare function runBranchName(stateDir: string, runId: string, title: string): string;
|
|
9
|
+
//# sourceMappingURL=branch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../orchestrator/branch.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,yEAAyE;AACzE,eAAO,MAAM,SAAS,QAA0B,CAAC;AAEjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;qCACqC;AACrC,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* The run's branch: `<product>/<run-id>-<slug>` (spec section 7). `<product>`
|
|
2
|
+
* is the host's state dir without its leading dot -- git refuses a ref
|
|
3
|
+
* component that starts with a dot. Pure; the sidecar also runs
|
|
4
|
+
* `git check-ref-format --branch` before creating it. */
|
|
5
|
+
import { isStateDirName } from '@corenel/protocol';
|
|
6
|
+
export const MAX_SLUG = 40;
|
|
7
|
+
/** The orchestrator record id minted by record.ts: `orch_` + base-36. */
|
|
8
|
+
export const RUN_ID_RE = /^orch_[a-z0-9]{4,40}$/;
|
|
9
|
+
export function slugify(title) {
|
|
10
|
+
const s = title.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, MAX_SLUG).replace(/-+$/, '');
|
|
11
|
+
return s || 'task';
|
|
12
|
+
}
|
|
13
|
+
/** A dot-dir name minus its dot, with anything git could object to (a `.lock`
|
|
14
|
+
* suffix, `..`) folded to dashes. */
|
|
15
|
+
export function productOf(stateDir) {
|
|
16
|
+
const p = stateDir.replace(/^\.+/, '').replace(/[^A-Za-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');
|
|
17
|
+
return p || 'agent';
|
|
18
|
+
}
|
|
19
|
+
export function runBranchName(stateDir, runId, title) {
|
|
20
|
+
if (!isStateDirName(stateDir))
|
|
21
|
+
throw new Error(`invalid state dir name: ${String(stateDir)}`);
|
|
22
|
+
if (!RUN_ID_RE.test(runId))
|
|
23
|
+
throw new Error(`invalid run id: ${runId}`);
|
|
24
|
+
return `${productOf(stateDir)}/${runId}-${slugify(title)}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=branch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../orchestrator/branch.ts"],"names":[],"mappings":"AAAA;;;yDAGyD;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAEjD,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxH,OAAO,CAAC,IAAI,MAAM,CAAC;AACrB,CAAC;AAED;qCACqC;AACrC,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChG,OAAO,CAAC,IAAI,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAa,EAAE,KAAa;IAC1E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CheckDef } from '@corenel/protocol';
|
|
2
|
+
export declare const CHECKS_FILE = "checks.yaml";
|
|
3
|
+
export declare const MAX_CHECKS_BYTES: number;
|
|
4
|
+
export declare const MAX_CHECKS = 20;
|
|
5
|
+
export declare const MAX_COMMAND_CHARS = 1000;
|
|
6
|
+
export declare const CHECK_NAME_RE: RegExp;
|
|
7
|
+
export interface ParsedChecks {
|
|
8
|
+
checks: CheckDef[];
|
|
9
|
+
problems: string[];
|
|
10
|
+
}
|
|
11
|
+
/** Parse the file. `checks` holds every valid entry; `problems` says what is
|
|
12
|
+
* wrong with the rest. A file with any problem cannot be pinned. */
|
|
13
|
+
export declare function parseChecksYaml(content: string): ParsedChecks;
|
|
14
|
+
/** The YAML for a list of checks (proposals shown to the user). */
|
|
15
|
+
export declare function checksToYaml(defs: CheckDef[]): string;
|
|
16
|
+
//# sourceMappingURL=checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../orchestrator/checks.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,aAAa,QAA4B,CAAC;AAEvD,MAAM,WAAW,YAAY;IAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;AAMxE;oEACoE;AACpE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CA6B7D;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* The checks file, `<root>/<stateDir>/checks.yaml`:
|
|
2
|
+
*
|
|
3
|
+
* checks:
|
|
4
|
+
* typecheck: pnpm typecheck
|
|
5
|
+
* test: pnpm test
|
|
6
|
+
*
|
|
7
|
+
* Pure: parsing and serializing only. The sidecar reads the file, hashes it and
|
|
8
|
+
* compares the hash to the one the user confirmed before it runs anything. */
|
|
9
|
+
import { parse, stringify } from 'yaml';
|
|
10
|
+
export const CHECKS_FILE = 'checks.yaml';
|
|
11
|
+
export const MAX_CHECKS_BYTES = 16 * 1024;
|
|
12
|
+
export const MAX_CHECKS = 20;
|
|
13
|
+
export const MAX_COMMAND_CHARS = 1000;
|
|
14
|
+
export const CHECK_NAME_RE = /^[a-z][a-z0-9_-]{0,39}$/;
|
|
15
|
+
function byteLength(s) {
|
|
16
|
+
return new TextEncoder().encode(s).byteLength;
|
|
17
|
+
}
|
|
18
|
+
/** Parse the file. `checks` holds every valid entry; `problems` says what is
|
|
19
|
+
* wrong with the rest. A file with any problem cannot be pinned. */
|
|
20
|
+
export function parseChecksYaml(content) {
|
|
21
|
+
if (byteLength(content) > MAX_CHECKS_BYTES) {
|
|
22
|
+
return { checks: [], problems: [`the checks file is larger than ${MAX_CHECKS_BYTES} bytes`] };
|
|
23
|
+
}
|
|
24
|
+
let doc;
|
|
25
|
+
try {
|
|
26
|
+
doc = parse(content);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
return { checks: [], problems: [`not valid YAML: ${e instanceof Error ? e.message : String(e)}`] };
|
|
30
|
+
}
|
|
31
|
+
const raw = doc && typeof doc === 'object' && !Array.isArray(doc) ? doc.checks : undefined;
|
|
32
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
33
|
+
return { checks: [], problems: ['expected a `checks:` mapping of name to command'] };
|
|
34
|
+
}
|
|
35
|
+
const checks = [];
|
|
36
|
+
const problems = [];
|
|
37
|
+
for (const [name, value] of Object.entries(raw)) {
|
|
38
|
+
if (!CHECK_NAME_RE.test(name)) {
|
|
39
|
+
problems.push(`"${name}": a name is lower-case letters, digits, - and _, starts with a letter, at most 40 characters`);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (typeof value !== 'string' || !value.trim()) {
|
|
43
|
+
problems.push(`"${name}": the command must be a non-empty string`);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (/[\r\n\0]/.test(value)) {
|
|
47
|
+
problems.push(`"${name}": the command must be one line`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (value.length > MAX_COMMAND_CHARS) {
|
|
51
|
+
problems.push(`"${name}": the command is longer than ${MAX_COMMAND_CHARS} characters`);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
checks.push({ name, command: value.trim() });
|
|
55
|
+
}
|
|
56
|
+
if (checks.length > MAX_CHECKS)
|
|
57
|
+
problems.push(`at most ${MAX_CHECKS} checks are allowed`);
|
|
58
|
+
if (!checks.length && !problems.length)
|
|
59
|
+
problems.push('no checks are defined');
|
|
60
|
+
return { checks, problems };
|
|
61
|
+
}
|
|
62
|
+
/** The YAML for a list of checks (proposals shown to the user). */
|
|
63
|
+
export function checksToYaml(defs) {
|
|
64
|
+
return stringify({ checks: Object.fromEntries(defs.map((d) => [d.name, d.command])) });
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../orchestrator/checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface PlanTask {
|
|
2
|
+
n: number;
|
|
3
|
+
title: string;
|
|
4
|
+
agent: string;
|
|
5
|
+
steps: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const PLAN_DIR = "docs/plans";
|
|
8
|
+
export declare const SUPERPOWERS_PLAN_DIR = "docs/superpowers/plans";
|
|
9
|
+
/** One task of a plan document, as the review sheet shows it. */
|
|
10
|
+
export interface PlanSection {
|
|
11
|
+
n: number;
|
|
12
|
+
title: string;
|
|
13
|
+
agent: string;
|
|
14
|
+
/** Each line under `**Files:**`, its bullet removed (or the text after `**Files:**` on the same line). */
|
|
15
|
+
files: string[];
|
|
16
|
+
/** The text of each `- [ ]` line, a wrapping `**...**` removed. */
|
|
17
|
+
steps: string[];
|
|
18
|
+
/** The whole section as written, heading included. */
|
|
19
|
+
raw: string;
|
|
20
|
+
/** The section without its heading, its Agent line and its Files block. */
|
|
21
|
+
body: string;
|
|
22
|
+
}
|
|
23
|
+
/** A run of plan text: prose, or the inside of one fenced code block. */
|
|
24
|
+
export interface PlanTextPart {
|
|
25
|
+
kind: 'text' | 'code';
|
|
26
|
+
text: string;
|
|
27
|
+
lang?: string;
|
|
28
|
+
}
|
|
29
|
+
/** Text and fenced code, in order. An unclosed fence runs to the end. */
|
|
30
|
+
export declare function splitFences(text: string): PlanTextPart[];
|
|
31
|
+
/** Every `### Task N:` section. Lines inside fenced code are text, never
|
|
32
|
+
* structure: a `### Task` or `- [ ]` inside a code block belongs to the task
|
|
33
|
+
* the block is in. A heading at the task's level or above ends the task. */
|
|
34
|
+
export declare function parsePlanSections(markdown: string): PlanSection[];
|
|
35
|
+
export declare function parsePlan(markdown: string): PlanTask[];
|
|
36
|
+
/** What is wrong with a plan, in the words the orchestrator is told. */
|
|
37
|
+
export declare function planProblems(tasks: PlanTask[], roster: readonly string[]): string[];
|
|
38
|
+
export declare function planSlug(title: string): string;
|
|
39
|
+
export declare function planFilePath(dir: string, now: Date, title: string): string;
|
|
40
|
+
export declare function planHash(markdown: string): Promise<string>;
|
|
41
|
+
//# sourceMappingURL=planDoc.d.ts.map
|