@telora/daemon 0.17.82 → 0.17.88
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/build-info.json +10 -3
- package/dist/audit-hooks.d.ts +24 -0
- package/dist/audit-hooks.d.ts.map +1 -1
- package/dist/audit-hooks.js +52 -1
- package/dist/audit-hooks.js.map +1 -1
- package/dist/audit-phase.d.ts +30 -6
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +46 -18
- package/dist/audit-phase.js.map +1 -1
- package/dist/cli/codex-provision.d.ts +28 -0
- package/dist/cli/codex-provision.d.ts.map +1 -1
- package/dist/cli/codex-provision.js +35 -1
- package/dist/cli/codex-provision.js.map +1 -1
- package/dist/completion/read-only-pristine.d.ts +63 -0
- package/dist/completion/read-only-pristine.d.ts.map +1 -0
- package/dist/completion/read-only-pristine.js +87 -0
- package/dist/completion/read-only-pristine.js.map +1 -0
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +20 -1
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/condition-evaluators.d.ts.map +1 -1
- package/dist/condition-evaluators.js +36 -0
- package/dist/condition-evaluators.js.map +1 -1
- package/dist/discovery-poll.d.ts +50 -0
- package/dist/discovery-poll.d.ts.map +1 -0
- package/dist/discovery-poll.js +240 -0
- package/dist/discovery-poll.js.map +1 -0
- package/dist/focus-executor.d.ts +47 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +95 -8
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-lifecycle.js +7 -7
- package/dist/focus-lifecycle.js.map +1 -1
- package/dist/focus-merge.d.ts +40 -0
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +84 -0
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-provisioning.js +7 -7
- package/dist/focus-provisioning.js.map +1 -1
- package/dist/focus-stage-lifecycle.d.ts +64 -1
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +140 -2
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +9 -1
- package/dist/listener.js.map +1 -1
- package/dist/prompt-sections/role-sections.d.ts +8 -0
- package/dist/prompt-sections/role-sections.d.ts.map +1 -1
- package/dist/prompt-sections/role-sections.js +46 -11
- package/dist/prompt-sections/role-sections.js.map +1 -1
- package/dist/queries/deliveries.d.ts +17 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +3 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +9 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +14 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/local-models.d.ts +50 -0
- package/dist/queries/local-models.d.ts.map +1 -0
- package/dist/queries/local-models.js +57 -0
- package/dist/queries/local-models.js.map +1 -0
- package/dist/queries/schemas.d.ts +34 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +36 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/spawner/lifecycle.d.ts.map +1 -1
- package/dist/spawner/lifecycle.js +9 -6
- package/dist/spawner/lifecycle.js.map +1 -1
- package/dist/templates/claude-settings.d.ts +36 -1
- package/dist/templates/claude-settings.d.ts.map +1 -1
- package/dist/templates/claude-settings.js +63 -12
- package/dist/templates/claude-settings.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-completion.d.ts","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"team-completion.d.ts","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAuBnF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EACL,KAAK,sBAAsB,EAC3B,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,mBAAmB,EACxB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAiID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsKtF"}
|
|
@@ -24,6 +24,7 @@ import { getActiveTeams } from '../focus-team-state.js';
|
|
|
24
24
|
import { commitWipChanges, worktreeHasUncommittedChanges, branchHasUnmergedCommits, runGitSync } from '../git.js';
|
|
25
25
|
import { computeGitDiffStats } from '../git-utils.js';
|
|
26
26
|
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
27
|
+
import { assertReadOnlyWorktreePristine } from './read-only-pristine.js';
|
|
27
28
|
import { classifyTeamExit, deriveExitCategory } from './exit-classification.js';
|
|
28
29
|
import { selectWorkedDeliveryIds, attemptFocusMerge, escalateFailedMergeDeliveries, runCiMergeToMain, } from './merge-phase.js';
|
|
29
30
|
import { advanceDeliveryStatuses } from './status-advance-phase.js';
|
|
@@ -87,9 +88,27 @@ async function runReadOnlyGuardPhase(config, teamState, sessionId) {
|
|
|
87
88
|
return false;
|
|
88
89
|
const { focusId, focusName, branchName } = teamState;
|
|
89
90
|
const worktreePath = teamState.worktreePath;
|
|
90
|
-
//
|
|
91
|
+
// Pristine-at-exit assertion: a read-only audit must leave the worktree
|
|
92
|
+
// pristine. If it didn't, file a (dedup-aware) escalation BEFORE reverting,
|
|
93
|
+
// so an operator sees that the audit modified files it shouldn't have. The
|
|
94
|
+
// write-deny overlay should make this impossible at the tool layer; this is
|
|
95
|
+
// the completion-side backstop.
|
|
91
96
|
const hasChanges = worktreeHasUncommittedChanges(worktreePath);
|
|
92
97
|
if (hasChanges) {
|
|
98
|
+
// A representative delivery anchors the escalation. Prefer a worked/known
|
|
99
|
+
// delivery; the audit-focus case may have none, in which case the focusId
|
|
100
|
+
// anchor still carries provenance.
|
|
101
|
+
const representativeDeliveryId = [...teamState.knownDeliveryIds][0] ?? '';
|
|
102
|
+
await assertReadOnlyWorktreePristine({
|
|
103
|
+
worktreePath,
|
|
104
|
+
organizationId: teamState.organizationId,
|
|
105
|
+
sessionId,
|
|
106
|
+
deliveryId: representativeDeliveryId,
|
|
107
|
+
focusId,
|
|
108
|
+
focusName,
|
|
109
|
+
branchName,
|
|
110
|
+
});
|
|
111
|
+
// Revert the uncommitted changes so the worktree returns to pristine.
|
|
93
112
|
console.warn(`[focus-executor] Read-only audit "${focusName}" left uncommitted changes. Reverting.`);
|
|
94
113
|
runGitSync(['checkout', '.'], worktreePath);
|
|
95
114
|
runGitSync(['clean', '-fd'], worktreePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-completion.js","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"team-completion.js","sourceRoot":"","sources":["../../src/completion/team-completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-evaluators.d.ts","sourceRoot":"","sources":["../src/condition-evaluators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAU3F;AAMD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,iBAAiB,KACnB,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"condition-evaluators.d.ts","sourceRoot":"","sources":["../src/condition-evaluators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAU3F;AAMD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,iBAAiB,KACnB,mBAAmB,CAAC;AA4ezB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,iBAAiB,GACrB,mBAAmB,CASrB"}
|
|
@@ -371,6 +371,41 @@ function evaluateWallClock(node, nodeId, ctx) {
|
|
|
371
371
|
: `Wall clock (${Math.round(observed)}${unit}) does not satisfy ${operator} ${expected}${unit}`,
|
|
372
372
|
};
|
|
373
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* human_ratification: passes only when a human has ratified the focus's
|
|
376
|
+
* remediation plan (sourced from product_focuses.ratified_at IS NOT NULL,
|
|
377
|
+
* surfaced as a `humanRatified` flag on the evaluation context).
|
|
378
|
+
*
|
|
379
|
+
* The load-bearing crossing for the Safe audit-to-remediation gate is the
|
|
380
|
+
* daemon focus-phase transition `releaseRatifiedReadOnlyFocus` (which reads
|
|
381
|
+
* focus.ratifiedAt directly); this condition is the guard-engine vocabulary
|
|
382
|
+
* for expressing the same gate once focus-level guard evaluation is wired.
|
|
383
|
+
* The context field is read defensively via a narrow local type so this
|
|
384
|
+
* evaluator stays self-contained -- it does NOT require the shared
|
|
385
|
+
* `EvaluationContext` (in @telora/daemon-core) to declare the field, which
|
|
386
|
+
* keeps the daemon-core package untouched until a focus-level guard actually
|
|
387
|
+
* populates the signal.
|
|
388
|
+
*
|
|
389
|
+
* FAIL-CLOSED: when the context carries no ratification signal (humanRatified
|
|
390
|
+
* absent or false) the condition BLOCKS. The whole point of the gate is that
|
|
391
|
+
* crossing planning->execution requires a genuine, distinct human signal -- so
|
|
392
|
+
* a missing signal must never read as satisfied. There is no node parameter:
|
|
393
|
+
* ratification is binary and contextual.
|
|
394
|
+
*/
|
|
395
|
+
function evaluateHumanRatification(node, nodeId, ctx) {
|
|
396
|
+
const conditionType = node.condition_type ?? 'human_ratification';
|
|
397
|
+
const ratified = ctx.humanRatified === true;
|
|
398
|
+
return {
|
|
399
|
+
condition_id: nodeId,
|
|
400
|
+
condition_type: conditionType,
|
|
401
|
+
passed: ratified,
|
|
402
|
+
observed_value: ratified,
|
|
403
|
+
expected_value: true,
|
|
404
|
+
message: ratified
|
|
405
|
+
? 'Human has ratified the remediation plan'
|
|
406
|
+
: 'No human ratification signal -- blocked (fail-closed; ratification required to cross planning->execution)',
|
|
407
|
+
};
|
|
408
|
+
}
|
|
374
409
|
function evaluateUnknown(node, nodeId, _ctx) {
|
|
375
410
|
const conditionType = node.condition_type ?? 'unknown';
|
|
376
411
|
console.warn(`[guard] Unknown condition type "${conditionType}" -- blocking (possible misconfiguration)`);
|
|
@@ -400,6 +435,7 @@ const conditionEvaluators = {
|
|
|
400
435
|
all_work_units_completed: evaluateAllWorkUnitsCompleted,
|
|
401
436
|
cycle_count: evaluateCycleCount,
|
|
402
437
|
wall_clock: evaluateWallClock,
|
|
438
|
+
human_ratification: evaluateHumanRatification,
|
|
403
439
|
};
|
|
404
440
|
/**
|
|
405
441
|
* Evaluate a single leaf condition against the evaluation context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-evaluators.js","sourceRoot":"","sources":["../src/condition-evaluators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,QAAgB,EAAE,QAAgB;IAChF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;QACxC,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;QACzC,KAAK,IAAI,CAAC,CAAC,OAAO,QAAQ,GAAG,QAAQ,CAAC;QACtC,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,IAAI,QAAQ,CAAC;QACxC,KAAK,IAAI,CAAC,CAAC,OAAO,QAAQ,GAAG,QAAQ,CAAC;QACtC,KAAK,KAAK,CAAC,CAAC,OAAO,QAAQ,IAAI,QAAQ,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC;IACxC,CAAC;AACH,CAAC;AAeD,+CAA+C;AAC/C,kCAAkC;AAClC,+CAA+C;AAE/C,SAAS,uBAAuB,CAC9B,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC1C,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAiC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3D,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,EAAE;QACzC,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,sBAAsB,QAAQ,eAAe,QAAQ,IAAI,QAAQ,EAAE;YACrE,CAAC,CAAC,sBAAsB,QAAQ,sBAAsB,QAAQ,IAAI,QAAQ,EAAE;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;IAEnE,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,cAAc,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC;gBACzB,CAAC,CAAC,kCAAkC;gBACpC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,wBAAwB;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACxC,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEnE,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,GAAG,CAAC,YAAY;QAChC,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,EAAE;QACzC,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,oBAAoB,GAAG,CAAC,YAAY,eAAe,QAAQ,IAAI,QAAQ,EAAE;YAC3E,CAAC,CAAC,oBAAoB,GAAG,CAAC,YAAY,sBAAsB,QAAQ,IAAI,QAAQ,EAAE;KACrF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,aAAa,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAA+B,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,oBAAoB;YACpC,OAAO,EAAE,gEAAgE;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAI,IAAI,CAAC,KAA4B,IAAI,OAAO,CAAC;IAC5D,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,aAAa,GAAI,IAAI,CAAC,KAA4B,IAAI,QAAQ,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,QAA8B,CAAC;IAEpD,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IACtC,IAAI,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAE5D,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC;QACjC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,YAAY;YAC5B,cAAc,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;YAC9C,OAAO,EAAE,wCAAwC,QAAQ,yBAAyB;SACnF,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,KAAK,KAAK;QAC/B,CAAC,CAAC,aAAa,KAAK,aAAa;QACjC,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC;IAEpC,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;QAC9C,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,QAAQ,QAAQ,YAAY,aAAa,eAAe,QAAQ,IAAI,aAAa,EAAE;YACrF,CAAC,CAAC,QAAQ,QAAQ,YAAY,aAAa,sBAAsB,QAAQ,IAAI,aAAa,EAAE;KAC/F,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,cAAc,CAAC;IAErC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,4CAA4C;SACtD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAI,IAAI,CAAC,IAA2B,IAAI,YAAY,CAAC;IAC/D,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,GAAG,CAAC,UAAU;YAC9B,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,+DAA+D;SACzE,CAAC;IACJ,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC5B,oDAAoD;YACpD,OAAO;gBACL,YAAY,EAAE,MAAM;gBACpB,cAAc,EAAE,aAAa;gBAC7B,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG;gBAC1C,OAAO,EAAE,sDAAsD;aAChE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC1B,8DAA8D;YAC9D,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAErD,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG;QAChD,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;QAChD,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,eAAe,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;YACzF,CAAC,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,sBAAsB,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;KACnG,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAgC,CAAC;IAEvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,mBAAmB;YACnC,OAAO,EAAE,mEAAmE;SAC7E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,kEAAkE;SAC5E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC/C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3D,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,EAAE;QACzC,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,kBAAkB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,eAAe,QAAQ,IAAI,QAAQ,EAAE;YAC1F,CAAC,CAAC,kBAAkB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,sBAAsB,QAAQ,IAAI,QAAQ,EAAE;KACpG,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,aAAa,GAAG,0BAA0B,CAAC;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;IAEhD,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,OAAO,KAAK,2BAA2B;YACzC,CAAC,CAAC,KAAK,KAAK,CAAC;gBACX,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,GAAG,SAAS,OAAO,KAAK,2BAA2B;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,aAAa,CAAC;IAEpC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,2CAA2C;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,sEAAsE;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;QACjC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,UAAoB,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,GAAG,CAAC,UAAU;YAC9B,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,8DAA8D;SACxE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC;IAE7B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEjE,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,GAAG,CAAC,UAAU;QAC9B,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,EAAE;QACzC,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,gBAAgB,GAAG,CAAC,UAAU,eAAe,QAAQ,IAAI,QAAQ,EAAE;YACrE,CAAC,CAAC,gBAAgB,GAAG,CAAC,UAAU,sBAAsB,QAAQ,IAAI,QAAQ,EAAE;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,YAAY,CAAC;IAEnC,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,0CAA0C;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAI,IAAI,CAAC,IAA2B,IAAI,YAAY,CAAC;IAC/D,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA+B,IAAI,IAAI,CAAC;IAC/D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,aAAa;YAC7B,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,GAAG,CAAC,gBAAgB;YACpC,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,6DAA6D;SACvE,CAAC;IACJ,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,qBAAqB,IAAI,IAAI,EAAE,CAAC;YACtC,OAAO;gBACL,YAAY,EAAE,MAAM;gBACpB,cAAc,EAAE,aAAa;gBAC7B,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG;gBAC1C,OAAO,EAAE,0DAA0D;aACpE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,qBAAqB,KAAK,CAAC,EAAE,CAAC;YACpC,kEAAkE;YAClE,QAAQ,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC;QACtE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/C,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM;QACN,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG;QAChD,cAAc,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;QAChD,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,eAAe,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;YACxF,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,sBAAsB,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;KAClG,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,IAAwB,EACxB,MAAc,EACd,IAAuB;IAEvB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,mCAAmC,aAAa,2CAA2C,CAAC,CAAC;IAC1G,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,cAAc,EAAE,aAAa;QAC7B,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,2BAA2B,aAAa,kCAAkC;KACpF,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C;;;GAGG;AACH,MAAM,mBAAmB,GAAyC;IAChE,iBAAiB,EAAE,uBAAuB;IAC1C,eAAe,EAAE,qBAAqB;IACtC,eAAe,EAAE,qBAAqB;IACtC,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,qBAAqB;IACtC,wBAAwB,EAAE,6BAA6B;IACvD,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,MAAc,EACd,GAAsB;IAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAErD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"condition-evaluators.js","sourceRoot":"","sources":["../src/condition-evaluators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local model endpoint discovery poll (Local model registry, D5).
|
|
3
|
+
*
|
|
4
|
+
* The daemon is the only component that can reach LAN-local HTTP endpoints (the
|
|
5
|
+
* HTTPS UI is blocked by mixed-content; a cloud edge fn is off-LAN). So the UI
|
|
6
|
+
* records a discovery request and this poll claims it, fetches {baseUrl}/models
|
|
7
|
+
* (OpenAI-compatible), normalizes the served ids, and writes the list (or an
|
|
8
|
+
* error) back so the add-model form can offer a valid-by-construction picklist.
|
|
9
|
+
*
|
|
10
|
+
* Runs once per focus-poll cycle, org-scoped, best-effort: a failure here must
|
|
11
|
+
* never disturb the spawn/merge poll work it rides alongside.
|
|
12
|
+
*/
|
|
13
|
+
/** Time-box a single endpoint fetch so an unreachable host fails fast to error. */
|
|
14
|
+
export declare const DISCOVERY_FETCH_TIMEOUT_MS = 5000;
|
|
15
|
+
/**
|
|
16
|
+
* Hard ceiling on a discovery response body. A `/models` listing is tiny; this
|
|
17
|
+
* cap defends against a malicious endpoint streaming an unbounded body to OOM
|
|
18
|
+
* the daemon (TEL-6). Enforced both via the declared Content-Length and a
|
|
19
|
+
* streamed byte ceiling so a lying header can't slip past.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MAX_DISCOVERY_BYTES = 1000000;
|
|
22
|
+
/** Number of claimed discovery requests fetched concurrently per cycle (TEL-7). */
|
|
23
|
+
export declare const DISCOVERY_FETCH_CONCURRENCY = 4;
|
|
24
|
+
/** Generic, address-free error strings written back to the DB (TEL-5). The raw
|
|
25
|
+
* detail (URL, system error) is logged daemon-side only -- the DB-written value
|
|
26
|
+
* is readable by org members and must not leak a probe oracle. */
|
|
27
|
+
export declare const DISCOVERY_ERROR_STATUS = "Endpoint returned an error status";
|
|
28
|
+
export declare const DISCOVERY_ERROR_UNREACHABLE = "Endpoint unreachable or timed out";
|
|
29
|
+
export declare const DISCOVERY_ERROR_INVALID = "Endpoint response was not valid";
|
|
30
|
+
/**
|
|
31
|
+
* True only for a base_url that parses as a URL whose protocol is exactly
|
|
32
|
+
* `http:` or `https:`. Rejects `file:`, `ftp:`, `gopher:`, non-URL strings, and
|
|
33
|
+
* empty -- the SSRF guard predicate (TEL-5). Pure + exported for unit testing.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isAllowedDiscoveryUrl(raw: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Extract served model id strings from an OpenAI-compatible `/models` payload
|
|
38
|
+
* (`{ object: 'list', data: [{ id }, ...] }`). Pure + defensive: tolerates a
|
|
39
|
+
* missing/!array `data`, non-object items, and non-string/blank ids, returning
|
|
40
|
+
* a de-duplicated, trimmed string[] (possibly empty). Exported for unit testing.
|
|
41
|
+
*/
|
|
42
|
+
export declare function normalizeModelList(payload: unknown): string[];
|
|
43
|
+
/**
|
|
44
|
+
* Claim and resolve all of the org's pending discovery requests. Best-effort:
|
|
45
|
+
* a claim failure logs and returns; per-request fetches run with bounded
|
|
46
|
+
* concurrency and never throw out of the batch; a terminal-row prune runs once
|
|
47
|
+
* at the end (best-effort). Re-entrant calls are dropped.
|
|
48
|
+
*/
|
|
49
|
+
export declare function checkDiscoveryRequests(): Promise<void>;
|
|
50
|
+
//# sourceMappingURL=discovery-poll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-poll.d.ts","sourceRoot":"","sources":["../src/discovery-poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAE7C,mFAAmF;AACnF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;mEAEmE;AACnE,eAAO,MAAM,sBAAsB,sCAAsC,CAAC;AAC1E,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAC/E,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAkBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAc7D;AA8ID;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB5D"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local model endpoint discovery poll (Local model registry, D5).
|
|
3
|
+
*
|
|
4
|
+
* The daemon is the only component that can reach LAN-local HTTP endpoints (the
|
|
5
|
+
* HTTPS UI is blocked by mixed-content; a cloud edge fn is off-LAN). So the UI
|
|
6
|
+
* records a discovery request and this poll claims it, fetches {baseUrl}/models
|
|
7
|
+
* (OpenAI-compatible), normalizes the served ids, and writes the list (or an
|
|
8
|
+
* error) back so the add-model form can offer a valid-by-construction picklist.
|
|
9
|
+
*
|
|
10
|
+
* Runs once per focus-poll cycle, org-scoped, best-effort: a failure here must
|
|
11
|
+
* never disturb the spawn/merge poll work it rides alongside.
|
|
12
|
+
*/
|
|
13
|
+
import { getPendingDiscoveryRequests, resolveDiscoveryRequest, pruneDiscoveryRequests, } from './queries/local-models.js';
|
|
14
|
+
/** Time-box a single endpoint fetch so an unreachable host fails fast to error. */
|
|
15
|
+
export const DISCOVERY_FETCH_TIMEOUT_MS = 5000;
|
|
16
|
+
/**
|
|
17
|
+
* Hard ceiling on a discovery response body. A `/models` listing is tiny; this
|
|
18
|
+
* cap defends against a malicious endpoint streaming an unbounded body to OOM
|
|
19
|
+
* the daemon (TEL-6). Enforced both via the declared Content-Length and a
|
|
20
|
+
* streamed byte ceiling so a lying header can't slip past.
|
|
21
|
+
*/
|
|
22
|
+
export const MAX_DISCOVERY_BYTES = 1_000_000;
|
|
23
|
+
/** Number of claimed discovery requests fetched concurrently per cycle (TEL-7). */
|
|
24
|
+
export const DISCOVERY_FETCH_CONCURRENCY = 4;
|
|
25
|
+
/** Generic, address-free error strings written back to the DB (TEL-5). The raw
|
|
26
|
+
* detail (URL, system error) is logged daemon-side only -- the DB-written value
|
|
27
|
+
* is readable by org members and must not leak a probe oracle. */
|
|
28
|
+
export const DISCOVERY_ERROR_STATUS = 'Endpoint returned an error status';
|
|
29
|
+
export const DISCOVERY_ERROR_UNREACHABLE = 'Endpoint unreachable or timed out';
|
|
30
|
+
export const DISCOVERY_ERROR_INVALID = 'Endpoint response was not valid';
|
|
31
|
+
/**
|
|
32
|
+
* True only for a base_url that parses as a URL whose protocol is exactly
|
|
33
|
+
* `http:` or `https:`. Rejects `file:`, `ftp:`, `gopher:`, non-URL strings, and
|
|
34
|
+
* empty -- the SSRF guard predicate (TEL-5). Pure + exported for unit testing.
|
|
35
|
+
*/
|
|
36
|
+
export function isAllowedDiscoveryUrl(raw) {
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = new URL(raw);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A daemon-side error carrying a sanitized, address-free message for the DB.
|
|
48
|
+
* `fetchModels` throws these so the catch can write `dbMessage` verbatim while
|
|
49
|
+
* still logging the rich `message` daemon-side.
|
|
50
|
+
*/
|
|
51
|
+
class DiscoveryError extends Error {
|
|
52
|
+
dbMessage;
|
|
53
|
+
constructor(message,
|
|
54
|
+
/** Generic string safe to write to the org-readable `error` column. */
|
|
55
|
+
dbMessage) {
|
|
56
|
+
super(message);
|
|
57
|
+
this.dbMessage = dbMessage;
|
|
58
|
+
this.name = 'DiscoveryError';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Extract served model id strings from an OpenAI-compatible `/models` payload
|
|
63
|
+
* (`{ object: 'list', data: [{ id }, ...] }`). Pure + defensive: tolerates a
|
|
64
|
+
* missing/!array `data`, non-object items, and non-string/blank ids, returning
|
|
65
|
+
* a de-duplicated, trimmed string[] (possibly empty). Exported for unit testing.
|
|
66
|
+
*/
|
|
67
|
+
export function normalizeModelList(payload) {
|
|
68
|
+
if (!payload || typeof payload !== 'object')
|
|
69
|
+
return [];
|
|
70
|
+
const data = payload.data;
|
|
71
|
+
if (!Array.isArray(data))
|
|
72
|
+
return [];
|
|
73
|
+
const seen = new Set();
|
|
74
|
+
for (const item of data) {
|
|
75
|
+
if (!item || typeof item !== 'object')
|
|
76
|
+
continue;
|
|
77
|
+
const id = item.id;
|
|
78
|
+
if (typeof id === 'string') {
|
|
79
|
+
const trimmed = id.trim();
|
|
80
|
+
if (trimmed)
|
|
81
|
+
seen.add(trimmed);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return [...seen];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Read a fetch response body with a hard byte ceiling, aborting once the cap is
|
|
88
|
+
* exceeded so a lying Content-Length (or a chunked body with none) can't OOM the
|
|
89
|
+
* daemon (TEL-6). Returns the decoded text. Throws past the ceiling.
|
|
90
|
+
*/
|
|
91
|
+
async function readBodyCapped(res) {
|
|
92
|
+
const body = res.body;
|
|
93
|
+
if (!body) {
|
|
94
|
+
// No stream available (shouldn't happen on Node fetch) -- fall back but still
|
|
95
|
+
// cap by post-read byteLength.
|
|
96
|
+
const buf = await res.arrayBuffer();
|
|
97
|
+
if (buf.byteLength > MAX_DISCOVERY_BYTES) {
|
|
98
|
+
throw new DiscoveryError('Response body exceeded byte ceiling', DISCOVERY_ERROR_INVALID);
|
|
99
|
+
}
|
|
100
|
+
return new TextDecoder().decode(buf);
|
|
101
|
+
}
|
|
102
|
+
const reader = body.getReader();
|
|
103
|
+
const chunks = [];
|
|
104
|
+
let total = 0;
|
|
105
|
+
try {
|
|
106
|
+
for (;;) {
|
|
107
|
+
const { done, value } = await reader.read();
|
|
108
|
+
if (done)
|
|
109
|
+
break;
|
|
110
|
+
if (value) {
|
|
111
|
+
total += value.byteLength;
|
|
112
|
+
if (total > MAX_DISCOVERY_BYTES) {
|
|
113
|
+
throw new DiscoveryError('Response body exceeded byte ceiling', DISCOVERY_ERROR_INVALID);
|
|
114
|
+
}
|
|
115
|
+
chunks.push(value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
// Stop the underlying transfer; ignore cancel errors.
|
|
121
|
+
await reader.cancel().catch(() => { });
|
|
122
|
+
}
|
|
123
|
+
const merged = new Uint8Array(total);
|
|
124
|
+
let offset = 0;
|
|
125
|
+
for (const c of chunks) {
|
|
126
|
+
merged.set(c, offset);
|
|
127
|
+
offset += c.byteLength;
|
|
128
|
+
}
|
|
129
|
+
return new TextDecoder().decode(merged);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Fetch + normalize an endpoint's model list. Throws a `DiscoveryError` whose
|
|
133
|
+
* `dbMessage` is a generic, address-free string (TEL-5/TEL-6) -- the caller
|
|
134
|
+
* writes that to the DB and logs the rich `.message` daemon-side only.
|
|
135
|
+
*/
|
|
136
|
+
async function fetchModels(baseUrl) {
|
|
137
|
+
// TEL-5: validate the operator-supplied base_url before any network call --
|
|
138
|
+
// reject anything that isn't a parseable http/https URL (no file:, ftp:, etc).
|
|
139
|
+
if (!isAllowedDiscoveryUrl(baseUrl)) {
|
|
140
|
+
throw new DiscoveryError(`Rejected non-http(s) discovery URL: ${baseUrl}`, DISCOVERY_ERROR_INVALID);
|
|
141
|
+
}
|
|
142
|
+
// base_url already includes /v1 (e.g. http://host:8888/v1); append /models.
|
|
143
|
+
const url = `${baseUrl.replace(/\/+$/, '')}/models`;
|
|
144
|
+
const controller = new AbortController();
|
|
145
|
+
const timer = setTimeout(() => controller.abort(), DISCOVERY_FETCH_TIMEOUT_MS);
|
|
146
|
+
try {
|
|
147
|
+
const res = await fetch(url, { signal: controller.signal, headers: { accept: 'application/json' } });
|
|
148
|
+
if (!res.ok) {
|
|
149
|
+
throw new DiscoveryError(`Endpoint returned HTTP ${res.status}`, DISCOVERY_ERROR_STATUS);
|
|
150
|
+
}
|
|
151
|
+
// TEL-6: reject a too-large declared body up front...
|
|
152
|
+
const declared = Number(res.headers.get('content-length'));
|
|
153
|
+
if (Number.isFinite(declared) && declared > MAX_DISCOVERY_BYTES) {
|
|
154
|
+
throw new DiscoveryError(`Declared Content-Length ${declared} exceeds cap`, DISCOVERY_ERROR_INVALID);
|
|
155
|
+
}
|
|
156
|
+
// ...and defensively cap the actual stream in case the header lied / is absent.
|
|
157
|
+
const text = await readBodyCapped(res);
|
|
158
|
+
let json;
|
|
159
|
+
try {
|
|
160
|
+
json = JSON.parse(text);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
throw new DiscoveryError('Response body was not valid JSON', DISCOVERY_ERROR_INVALID);
|
|
164
|
+
}
|
|
165
|
+
return normalizeModelList(json);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
if (err instanceof DiscoveryError)
|
|
169
|
+
throw err;
|
|
170
|
+
if (err.name === 'AbortError') {
|
|
171
|
+
throw new DiscoveryError(`Timed out after ${DISCOVERY_FETCH_TIMEOUT_MS}ms reaching ${url}`, DISCOVERY_ERROR_UNREACHABLE);
|
|
172
|
+
}
|
|
173
|
+
// Network-level failure (DNS, connection refused, TLS): generic to the DB.
|
|
174
|
+
throw new DiscoveryError(err.message || `Failed to reach ${url}`, DISCOVERY_ERROR_UNREACHABLE);
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
clearTimeout(timer);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Process one claimed discovery request: fetch + normalize, then write back its
|
|
182
|
+
* own loaded/error result. Never throws -- one request's failure must not abort
|
|
183
|
+
* the batch (TEL-7). The DB-written `error` is always generic (TEL-5); the rich
|
|
184
|
+
* detail stays in the daemon log.
|
|
185
|
+
*/
|
|
186
|
+
async function processDiscoveryRequest(req) {
|
|
187
|
+
try {
|
|
188
|
+
const models = await fetchModels(req.baseUrl);
|
|
189
|
+
await resolveDiscoveryRequest({ id: req.id, status: 'loaded', discoveredModels: models });
|
|
190
|
+
console.log(`[discovery] ${req.baseUrl}: discovered ${models.length} model(s)`);
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
// Generic message to the DB (probe-oracle defense); rich detail to the log.
|
|
194
|
+
const dbMessage = err instanceof DiscoveryError ? err.dbMessage : DISCOVERY_ERROR_UNREACHABLE;
|
|
195
|
+
const logDetail = err.message || 'Discovery failed';
|
|
196
|
+
await resolveDiscoveryRequest({ id: req.id, status: 'error', error: dbMessage }).catch((writeErr) => console.warn(`[discovery] Failed to write error for ${req.id.slice(0, 8)}:`, writeErr.message));
|
|
197
|
+
console.warn(`[discovery] ${req.baseUrl}: ${logDetail}`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/** Run tasks over `items` with at most `limit` in flight at once (TEL-7). */
|
|
201
|
+
async function withConcurrency(items, limit, task) {
|
|
202
|
+
for (let i = 0; i < items.length; i += limit) {
|
|
203
|
+
const chunk = items.slice(i, i + limit);
|
|
204
|
+
await Promise.allSettled(chunk.map(task));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Module-level re-entrancy guard (TEL-7): overlapping poll cycles must not stack
|
|
209
|
+
* discovery work. A second entrant while one cycle is in flight returns at once.
|
|
210
|
+
*/
|
|
211
|
+
let discoveryRunning = false;
|
|
212
|
+
/**
|
|
213
|
+
* Claim and resolve all of the org's pending discovery requests. Best-effort:
|
|
214
|
+
* a claim failure logs and returns; per-request fetches run with bounded
|
|
215
|
+
* concurrency and never throw out of the batch; a terminal-row prune runs once
|
|
216
|
+
* at the end (best-effort). Re-entrant calls are dropped.
|
|
217
|
+
*/
|
|
218
|
+
export async function checkDiscoveryRequests() {
|
|
219
|
+
if (discoveryRunning)
|
|
220
|
+
return;
|
|
221
|
+
discoveryRunning = true;
|
|
222
|
+
try {
|
|
223
|
+
let pending;
|
|
224
|
+
try {
|
|
225
|
+
pending = await getPendingDiscoveryRequests();
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
console.warn('[discovery] Failed to claim pending discovery requests:', err.message);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
await withConcurrency(pending, DISCOVERY_FETCH_CONCURRENCY, processDiscoveryRequest);
|
|
232
|
+
// TEL-9: prune the org's stale terminal rows once per cycle. Best-effort --
|
|
233
|
+
// a prune failure must never throw out of the poll.
|
|
234
|
+
await pruneDiscoveryRequests().catch((err) => console.warn('[discovery] Prune failed:', err.message));
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
discoveryRunning = false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=discovery-poll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery-poll.js","sourceRoot":"","sources":["../src/discovery-poll.ts"],"names":[],"mappings":"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"}
|
package/dist/focus-executor.d.ts
CHANGED
|
@@ -31,7 +31,8 @@ import type { DaemonConfig, AgentRole, PipelineConfig } from './types.js';
|
|
|
31
31
|
import { type ResourceGovernor } from '@telora/daemon-core';
|
|
32
32
|
import { getFocusDeliveries } from './queries/focuses.js';
|
|
33
33
|
import './assembly-resolvers.js';
|
|
34
|
-
import { type
|
|
34
|
+
import { type LocalModelCoordinates } from './queries/local-models.js';
|
|
35
|
+
import { type AgentBackend, type EngineOverride, type EnginePass } from './backends/index.js';
|
|
35
36
|
export { getActiveTeams, hasActiveTeam, getActiveTeamCount, } from './focus-team-state.js';
|
|
36
37
|
export { mergeFocusBranch, } from './focus-merge.js';
|
|
37
38
|
export { handleTeamCompletion, advanceDeliveryStatuses, isStatusTerminal, isStatusAgentActionable, } from './completion/index.js';
|
|
@@ -112,6 +113,43 @@ export declare function generateFocusBranchName(role: AgentRole, focusName: stri
|
|
|
112
113
|
export declare function codexHomeForSpawn(engineId: string, config: {
|
|
113
114
|
codexHome?: string;
|
|
114
115
|
}): string | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Select the per-pass local model ref to resolve for this spawn, or null.
|
|
118
|
+
*
|
|
119
|
+
* Pure + testable. A ref applies ONLY to a codex-engine spawn whose focus has a
|
|
120
|
+
* non-empty localModelOverride entry for the pass being spawned. Every other
|
|
121
|
+
* case (claude engine, no override, blank ref) returns null so the spawn keeps
|
|
122
|
+
* its per-product / engine-default behavior unchanged.
|
|
123
|
+
*/
|
|
124
|
+
export declare function selectLocalModelRef(engineId: string, pass: EnginePass, localModelOverride: Record<string, string | null> | null | undefined): string | null;
|
|
125
|
+
/**
|
|
126
|
+
* Decide what a codex spawn should do with a selected local-model ref, given the
|
|
127
|
+
* resolved coordinates and a way to look up env vars. Pure + testable: it holds
|
|
128
|
+
* NO I/O (the DB call that produces `coords` and the CODEX_HOME write/session
|
|
129
|
+
* update happen in the caller). It only renders the routing DECISION:
|
|
130
|
+
*
|
|
131
|
+
* - ref null -> { kind: 'none' } (no local model selected)
|
|
132
|
+
* - ref set but coords null -> { kind: 'fallback' } (ref not in registry)
|
|
133
|
+
* - coords present + key env unset -> { kind: 'skip' } (fail closed)
|
|
134
|
+
* - coords present + key env set -> { kind: 'route' } (route the spawn)
|
|
135
|
+
*
|
|
136
|
+
* Reached only when a ref exists upstream (codex-only is already enforced by
|
|
137
|
+
* `selectLocalModelRef`); `coords` is `getLocalModel(ref)`'s result.
|
|
138
|
+
*/
|
|
139
|
+
export type LocalModelRouting = {
|
|
140
|
+
kind: 'none';
|
|
141
|
+
} | {
|
|
142
|
+
kind: 'fallback';
|
|
143
|
+
} | {
|
|
144
|
+
kind: 'skip';
|
|
145
|
+
envName: string;
|
|
146
|
+
coords: LocalModelCoordinates;
|
|
147
|
+
} | {
|
|
148
|
+
kind: 'route';
|
|
149
|
+
envName: string;
|
|
150
|
+
coords: LocalModelCoordinates;
|
|
151
|
+
};
|
|
152
|
+
export declare function decideLocalModelRouting(ref: string | null, coords: LocalModelCoordinates | null, envLookup: (name: string) => string | undefined): LocalModelRouting;
|
|
115
153
|
/**
|
|
116
154
|
* Resolve the effective model id for a spawn. Priority (most specific wins):
|
|
117
155
|
* 1. directiveModel -- a stage-directive model override
|
|
@@ -150,6 +188,14 @@ export interface SpawnFocusTeamParams {
|
|
|
150
188
|
* inherit the org default. Fed into resolveBackend() (D3).
|
|
151
189
|
*/
|
|
152
190
|
engineOverride?: EngineOverride | null;
|
|
191
|
+
/**
|
|
192
|
+
* Per-focus selected local model (per-pass map {coding?, review?} of
|
|
193
|
+
* local_models ids); null/absent = no specific local model selected. When the
|
|
194
|
+
* resolved engine for a pass is codex and this carries a ref for that pass,
|
|
195
|
+
* the daemon resolves the ref to coordinates and routes the spawn to that
|
|
196
|
+
* model's endpoint (D3).
|
|
197
|
+
*/
|
|
198
|
+
localModelOverride?: Record<string, string | null> | null;
|
|
153
199
|
/** Org-level default engine id; null/absent = the global default ('claude'). */
|
|
154
200
|
orgDefaultEngine?: string | null;
|
|
155
201
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EAET,cAAc,EACf,MAAM,YAAY,CAAC;AASpB,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIrF,OAAO,EAAE,kBAAkB,EAAsG,MAAM,sBAAsB,CAAC;AAa9J,OAAO,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-executor.d.ts","sourceRoot":"","sources":["../src/focus-executor.ts"],"names":[],"mappings":"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"}
|