@ashlr/hub 2.2.0 → 3.0.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/CHANGELOG.md +55 -0
- package/README.md +59 -2
- package/dist/api/plugin.d.ts +1 -0
- package/dist/cli/backlog.js +2 -0
- package/dist/cli/backlog.js.map +1 -1
- package/dist/cli/digest.d.ts +6 -0
- package/dist/cli/digest.js +127 -2
- package/dist/cli/digest.js.map +1 -1
- package/dist/cli/eval-fixtures.d.ts +18 -0
- package/dist/cli/eval-fixtures.js +38 -0
- package/dist/cli/eval-fixtures.js.map +1 -0
- package/dist/cli/eval.d.ts +56 -0
- package/dist/cli/eval.js +283 -0
- package/dist/cli/eval.js.map +1 -0
- package/dist/cli/fleet.d.ts +27 -0
- package/dist/cli/fleet.js +222 -0
- package/dist/cli/fleet.js.map +1 -0
- package/dist/cli/goal.d.ts +15 -0
- package/dist/cli/goal.js +91 -0
- package/dist/cli/goal.js.map +1 -0
- package/dist/cli/help.js +10 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/inbox.d.ts +6 -0
- package/dist/cli/inbox.js +183 -8
- package/dist/cli/inbox.js.map +1 -1
- package/dist/cli/index.js +42 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/loop.d.ts +16 -0
- package/dist/cli/loop.js +66 -0
- package/dist/cli/loop.js.map +1 -0
- package/dist/cli/mcp.d.ts +12 -0
- package/dist/cli/mcp.js +148 -0
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/onboard.d.ts +16 -0
- package/dist/cli/onboard.js +71 -0
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli/plugins.js +9 -8
- package/dist/cli/plugins.js.map +1 -1
- package/dist/cli/pulse.d.ts +10 -0
- package/dist/cli/pulse.js +261 -0
- package/dist/cli/pulse.js.map +1 -1
- package/dist/cli/run.js +21 -3
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/stack.d.ts +34 -0
- package/dist/cli/stack.js +221 -0
- package/dist/cli/stack.js.map +1 -0
- package/dist/cli/update.js +12 -5
- package/dist/cli/update.js.map +1 -1
- package/dist/core/daemon/loop.d.ts +10 -5
- package/dist/core/daemon/loop.js +167 -37
- package/dist/core/daemon/loop.js.map +1 -1
- package/dist/core/env-bridge.js +3 -2
- package/dist/core/env-bridge.js.map +1 -1
- package/dist/core/fleet/automerge-pass.d.ts +33 -0
- package/dist/core/fleet/automerge-pass.js +61 -0
- package/dist/core/fleet/automerge-pass.js.map +1 -0
- package/dist/core/fleet/quota.d.ts +70 -0
- package/dist/core/fleet/quota.js +198 -0
- package/dist/core/fleet/quota.js.map +1 -0
- package/dist/core/fleet/router.d.ts +46 -0
- package/dist/core/fleet/router.js +121 -0
- package/dist/core/fleet/router.js.map +1 -0
- package/dist/core/fleet/self.d.ts +58 -0
- package/dist/core/fleet/self.js +187 -0
- package/dist/core/fleet/self.js.map +1 -0
- package/dist/core/fleet/status.d.ts +54 -0
- package/dist/core/fleet/status.js +157 -0
- package/dist/core/fleet/status.js.map +1 -0
- package/dist/core/foundry/provenance.d.ts +78 -0
- package/dist/core/foundry/provenance.js +172 -0
- package/dist/core/foundry/provenance.js.map +1 -0
- package/dist/core/git.d.ts +13 -0
- package/dist/core/git.js +26 -0
- package/dist/core/git.js.map +1 -1
- package/dist/core/inbox/merge.d.ts +151 -0
- package/dist/core/inbox/merge.js +858 -0
- package/dist/core/inbox/merge.js.map +1 -0
- package/dist/core/inbox/store.js +10 -1
- package/dist/core/inbox/store.js.map +1 -1
- package/dist/core/integrations/markdown.d.ts +66 -0
- package/dist/core/integrations/markdown.js +132 -0
- package/dist/core/integrations/markdown.js.map +1 -0
- package/dist/core/integrations/secrets.d.ts +37 -0
- package/dist/core/integrations/secrets.js +67 -0
- package/dist/core/integrations/secrets.js.map +1 -0
- package/dist/core/integrations/stack.d.ts +47 -0
- package/dist/core/integrations/stack.js +107 -0
- package/dist/core/integrations/stack.js.map +1 -0
- package/dist/core/mcp-native-engineer.d.ts +123 -0
- package/dist/core/mcp-native-engineer.js +936 -0
- package/dist/core/mcp-native-engineer.js.map +1 -0
- package/dist/core/mcp-native.js +20 -42
- package/dist/core/mcp-native.js.map +1 -1
- package/dist/core/mcp-registry.js +2 -0
- package/dist/core/mcp-registry.js.map +1 -1
- package/dist/core/observability/codex-source.d.ts +53 -0
- package/dist/core/observability/codex-source.js +390 -0
- package/dist/core/observability/codex-source.js.map +1 -0
- package/dist/core/observability/estimate.d.ts +12 -0
- package/dist/core/observability/estimate.js +26 -0
- package/dist/core/observability/estimate.js.map +1 -1
- package/dist/core/observability/limits.d.ts +52 -0
- package/dist/core/observability/limits.js +316 -0
- package/dist/core/observability/limits.js.map +1 -0
- package/dist/core/observability/usage-source.js +3 -1
- package/dist/core/observability/usage-source.js.map +1 -1
- package/dist/core/portfolio/scanners.d.ts +1 -0
- package/dist/core/portfolio/scanners.js +40 -1
- package/dist/core/portfolio/scanners.js.map +1 -1
- package/dist/core/providers.js +4 -0
- package/dist/core/providers.js.map +1 -1
- package/dist/core/quality/health.js +1 -0
- package/dist/core/quality/health.js.map +1 -1
- package/dist/core/run/agent-loop.d.ts +8 -0
- package/dist/core/run/agent-loop.js +24 -14
- package/dist/core/run/agent-loop.js.map +1 -1
- package/dist/core/run/engine-registry.d.ts +48 -0
- package/dist/core/run/engine-registry.js +190 -0
- package/dist/core/run/engine-registry.js.map +1 -0
- package/dist/core/run/engines.d.ts +17 -3
- package/dist/core/run/engines.js +63 -44
- package/dist/core/run/engines.js.map +1 -1
- package/dist/core/run/learned-router.d.ts +121 -0
- package/dist/core/run/learned-router.js +374 -0
- package/dist/core/run/learned-router.js.map +1 -0
- package/dist/core/run/model-manager.js +3 -3
- package/dist/core/run/model-manager.js.map +1 -1
- package/dist/core/run/model-profile.d.ts +67 -0
- package/dist/core/run/model-profile.js +132 -0
- package/dist/core/run/model-profile.js.map +1 -0
- package/dist/core/run/orchestrator.d.ts +1 -1
- package/dist/core/run/orchestrator.js +642 -510
- package/dist/core/run/orchestrator.js.map +1 -1
- package/dist/core/run/prompts/budget.d.ts +25 -0
- package/dist/core/run/prompts/budget.js +51 -0
- package/dist/core/run/prompts/budget.js.map +1 -0
- package/dist/core/run/prompts/index.d.ts +14 -0
- package/dist/core/run/prompts/index.js +59 -0
- package/dist/core/run/prompts/index.js.map +1 -0
- package/dist/core/run/prompts/layers.d.ts +26 -0
- package/dist/core/run/prompts/layers.js +73 -0
- package/dist/core/run/prompts/layers.js.map +1 -0
- package/dist/core/run/prompts/roles.d.ts +23 -0
- package/dist/core/run/prompts/roles.js +48 -0
- package/dist/core/run/prompts/roles.js.map +1 -0
- package/dist/core/run/prompts/types.d.ts +38 -0
- package/dist/core/run/prompts/types.js +5 -0
- package/dist/core/run/prompts/types.js.map +1 -0
- package/dist/core/run/provider-client.d.ts +6 -24
- package/dist/core/run/provider-client.js +125 -61
- package/dist/core/run/provider-client.js.map +1 -1
- package/dist/core/run/router.js +8 -0
- package/dist/core/run/router.js.map +1 -1
- package/dist/core/run/sandboxed-engine.d.ts +66 -0
- package/dist/core/run/sandboxed-engine.js +262 -0
- package/dist/core/run/sandboxed-engine.js.map +1 -0
- package/dist/core/run/verify-commands.d.ts +83 -0
- package/dist/core/run/verify-commands.js +234 -0
- package/dist/core/run/verify-commands.js.map +1 -0
- package/dist/core/run/verify.d.ts +31 -1
- package/dist/core/run/verify.js +48 -0
- package/dist/core/run/verify.js.map +1 -1
- package/dist/core/sandbox/audit.d.ts +27 -0
- package/dist/core/sandbox/audit.js +34 -0
- package/dist/core/sandbox/audit.js.map +1 -1
- package/dist/core/sandbox/confine.d.ts +134 -0
- package/dist/core/sandbox/confine.js +370 -0
- package/dist/core/sandbox/confine.js.map +1 -0
- package/dist/core/types.d.ts +227 -5
- package/dist/core/web/api.js +77 -28
- package/dist/core/web/api.js.map +1 -1
- package/dist/core/web/control.d.ts +116 -0
- package/dist/core/web/control.js +307 -0
- package/dist/core/web/control.js.map +1 -0
- package/dist/core/web/public/app.js +512 -6
- package/dist/core/web/public/styles.css +468 -0
- package/package.json +1 -1
package/dist/core/daemon/loop.js
CHANGED
|
@@ -9,11 +9,16 @@
|
|
|
9
9
|
* - stopDaemon(): set kill switch + clear running state.
|
|
10
10
|
*
|
|
11
11
|
* NON-NEGOTIABLE GUARDRAILS (enforced here, grep-provable):
|
|
12
|
-
* 1. PROPOSAL-
|
|
13
|
-
* inbox
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
12
|
+
* 1. PROPOSAL-FIRST (proposal-only by default): every dispatch produces a
|
|
13
|
+
* PENDING inbox proposal (via the swarm runner or a sandboxed engine, with
|
|
14
|
+
* { propose: true }) — applied LATER only by explicit human approval. This
|
|
15
|
+
* file itself imports NO apply / push / PR-create / deploy primitive (the
|
|
16
|
+
* `daemon-no-primitive` contract). M48: an OPT-IN auto-merge pass
|
|
17
|
+
* (cfg.foundry.autoMerge.enabled, DEFAULT OFF) is delegated to a SEPARATE
|
|
18
|
+
* module (fleet/automerge-pass) and may merge a proposal to main ONLY
|
|
19
|
+
* through the M47 tiered-trust gate (frontier merge-authority + risk ≤
|
|
20
|
+
* maxRisk + full verify + kill-switch + enrollment). With autoMerge disabled
|
|
21
|
+
* the daemon stays strictly proposal-only.
|
|
17
22
|
* 2. ENROLLMENT-ONLY: operates exclusively on listEnrolled() repos.
|
|
18
23
|
* DEFAULT EMPTY => the daemon does NOTHING.
|
|
19
24
|
* 3. SANDBOXED: every runSwarm call sets opts.sandbox = true so all
|
|
@@ -33,6 +38,14 @@ import { buildBacklog } from '../portfolio/backlog.js';
|
|
|
33
38
|
import { loadDaemonState, saveDaemonState, resetDayIfNeeded } from './state.js';
|
|
34
39
|
import { nullSink } from '../run/streaming.js';
|
|
35
40
|
import { runSwarm } from '../swarm/runner.js';
|
|
41
|
+
import { runGoal } from '../run/orchestrator.js';
|
|
42
|
+
import { routeBackend } from '../fleet/router.js';
|
|
43
|
+
import { withinLimit, recordUse } from '../fleet/quota.js';
|
|
44
|
+
import { recommendRoute, recoverWithinBudget } from '../run/learned-router.js';
|
|
45
|
+
import { estimateRun } from '../observability/estimate.js';
|
|
46
|
+
import { buildForecast } from '../observability/forecast.js';
|
|
47
|
+
import { emitTuningProposals } from '../learn/tuning.js';
|
|
48
|
+
import { runAutoMergePass } from '../fleet/automerge-pass.js';
|
|
36
49
|
import { pendingCount } from '../inbox/store.js';
|
|
37
50
|
// ---------------------------------------------------------------------------
|
|
38
51
|
// DaemonConfig defaults (conservative)
|
|
@@ -272,6 +285,8 @@ export async function tick(cfg, opts) {
|
|
|
272
285
|
// reaches the remaining daily headroom (the USD daily cap is otherwise only
|
|
273
286
|
// enforced BETWEEN ticks — this keeps a single tick from overshooting it).
|
|
274
287
|
let tickSpent = 0;
|
|
288
|
+
// M48: per-backend dispatch tally for this tick (observability only).
|
|
289
|
+
const backendDispatch = {};
|
|
275
290
|
// Per-item USD budget slice: divide remaining budget evenly across items.
|
|
276
291
|
const perItemUsdSlice = remainingBudget / selected.length;
|
|
277
292
|
// Convert USD slice to a rough token count for the swarm budget.
|
|
@@ -302,41 +317,103 @@ export async function tick(cfg, opts) {
|
|
|
302
317
|
}
|
|
303
318
|
let swarmSpent = 0;
|
|
304
319
|
let dispatched = false;
|
|
320
|
+
// M48: route this item to a backend (M46). Default (no cfg.foundry) →
|
|
321
|
+
// 'builtin'. A frontier backend over its rolling rate quota falls back to
|
|
322
|
+
// local so work keeps flowing without exceeding the subscription's limit.
|
|
323
|
+
const routed = routeBackend(item, cfg);
|
|
324
|
+
let backend = routed.backend;
|
|
325
|
+
if (backend !== 'builtin' && !withinLimit(backend, cfg)) {
|
|
326
|
+
backend = 'builtin';
|
|
327
|
+
}
|
|
328
|
+
// M53: learned-router recommend + budget cascade (flag-off: no-op when
|
|
329
|
+
// cfg.foundry.intelligence is absent). recoverWithinBudget is PURE and
|
|
330
|
+
// may only return a tier choice or a pause signal — no outward action.
|
|
331
|
+
// This file imports NO apply/merge/push/deploy primitive.
|
|
332
|
+
{
|
|
333
|
+
const intelRaw = cfg.foundry?.intelligence;
|
|
334
|
+
if (intelRaw !== undefined && intelRaw !== null) {
|
|
335
|
+
const forecast = buildForecast('7d', cfg);
|
|
336
|
+
const goal = `${item.title}\n\n${item.detail}`.trim();
|
|
337
|
+
const est = await estimateRun(goal, { maxTokens: perItemMaxTokens }, cfg);
|
|
338
|
+
const recommended = await recommendRoute(item, cfg, { estimate: est });
|
|
339
|
+
// Only override when the recommend result doesn't escalate a local decision.
|
|
340
|
+
if (routed.tier !== 'local' || recommended.tier === 'local') {
|
|
341
|
+
backend = recommended.backend;
|
|
342
|
+
}
|
|
343
|
+
// Budget cascade: step down tier when near cap.
|
|
344
|
+
const recovery = recoverWithinBudget({ backend, tier: recommended.tier, reason: recommended.reason }, cfg, tickSpent + state.todaySpentUsd, forecast);
|
|
345
|
+
if (recovery.action === 'pause') {
|
|
346
|
+
audit({
|
|
347
|
+
action: 'daemon:budget-cascade',
|
|
348
|
+
repo: item.repo,
|
|
349
|
+
sandboxId: null,
|
|
350
|
+
summary: `M53 budget cascade: pausing dispatch for "${item.title}" — ${recovery.reason}`,
|
|
351
|
+
result: 'ok',
|
|
352
|
+
});
|
|
353
|
+
return { item, spentUsd: 0, dispatched: false };
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
backend = recovery.decision.backend;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
const goal = `${item.title}\n\n${item.detail}`.trim();
|
|
361
|
+
const itemBudget = { maxTokens: perItemMaxTokens, maxSteps: 100, allowCloud: false };
|
|
305
362
|
// Snapshot ASHLR_IN_SWARM and restore it after the call. The swarm runner
|
|
306
363
|
// sets ASHLR_IN_SWARM=1 on THIS (long-lived) process and does not unwind it;
|
|
307
|
-
//
|
|
308
|
-
//
|
|
309
|
-
// silently neutering the daemon. Restoring keeps each dispatch clean while
|
|
310
|
-
// the runner's own child-spawn inheritance still works during the call.
|
|
364
|
+
// restoring keeps each subsequent dispatch / tick from hitting the recursion
|
|
365
|
+
// guard while the runner's own child-spawn inheritance still works mid-call.
|
|
311
366
|
const prevInSwarm = process.env['ASHLR_IN_SWARM'];
|
|
312
367
|
try {
|
|
313
368
|
const sink = nullSink();
|
|
314
369
|
dispatched = true;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
370
|
+
backendDispatch[backend] = (backendDispatch[backend] ?? 0) + 1;
|
|
371
|
+
if (backend === 'builtin') {
|
|
372
|
+
const swarmRun = await runSwarm({ goal }, cfg, {
|
|
373
|
+
sandbox: true, // M21: isolated git-worktree — NEVER user's tree
|
|
374
|
+
requireSandbox: true, // M24: sandbox MANDATORY — abort if it can't be created
|
|
375
|
+
propose: true, // M24: swarm records its diff as a PENDING inbox proposal
|
|
376
|
+
project: item.repo,
|
|
377
|
+
budget: itemBudget,
|
|
378
|
+
parallel: 1,
|
|
379
|
+
dryRun: false,
|
|
380
|
+
noCapture: true,
|
|
381
|
+
}, sink);
|
|
382
|
+
swarmSpent = swarmRun.usage?.estCostUsd ?? 0;
|
|
383
|
+
tickSpent += swarmSpent;
|
|
384
|
+
audit({
|
|
385
|
+
action: 'daemon:proposal-created',
|
|
386
|
+
repo: item.repo,
|
|
387
|
+
sandboxId: null,
|
|
388
|
+
summary: `swarm ${swarmRun.id} finished (status=${swarmRun.status}, spent=$${swarmSpent.toFixed(4)}) for "${item.title}"`,
|
|
389
|
+
result: 'ok',
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
// M48: a frontier backend (claude/codex) is itself a full agent — run
|
|
394
|
+
// the WHOLE item as ONE sandboxed-external run (M45): worktree → agent →
|
|
395
|
+
// diff → PENDING proposal. No nested swarm. M45 containment (severed git
|
|
396
|
+
// push, scrubbed diff) + the M47 merge gate still apply downstream.
|
|
397
|
+
recordUse(backend);
|
|
398
|
+
const runState = await runGoal(goal, cfg, {
|
|
399
|
+
engine: backend,
|
|
400
|
+
sandboxEngine: true,
|
|
401
|
+
requireSandbox: true,
|
|
402
|
+
cwd: item.repo,
|
|
403
|
+
budget: itemBudget,
|
|
404
|
+
tools: true,
|
|
405
|
+
noMemory: false,
|
|
406
|
+
});
|
|
407
|
+
swarmSpent = runState.usage?.estCostUsd ?? 0;
|
|
408
|
+
tickSpent += swarmSpent;
|
|
409
|
+
audit({
|
|
410
|
+
action: 'daemon:proposal-created',
|
|
411
|
+
repo: item.repo,
|
|
412
|
+
sandboxId: null,
|
|
413
|
+
summary: `${backend} run ${runState.id} finished (status=${runState.status}, spent=$${swarmSpent.toFixed(4)}) for "${item.title}"`,
|
|
414
|
+
result: 'ok',
|
|
415
|
+
});
|
|
416
|
+
}
|
|
340
417
|
}
|
|
341
418
|
catch (err) {
|
|
342
419
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -344,17 +421,55 @@ export async function tick(cfg, opts) {
|
|
|
344
421
|
action: 'daemon:swarm-error',
|
|
345
422
|
repo: item.repo,
|
|
346
423
|
sandboxId: null,
|
|
347
|
-
summary:
|
|
424
|
+
summary: `${backend} dispatch failed for "${item.title}": ${msg.slice(0, 200)}`,
|
|
348
425
|
result: 'error',
|
|
349
426
|
});
|
|
350
427
|
}
|
|
351
428
|
finally {
|
|
352
|
-
// Restore ASHLR_IN_SWARM so the next dispatch / next tick is not refused.
|
|
353
429
|
if (prevInSwarm === undefined)
|
|
354
430
|
delete process.env['ASHLR_IN_SWARM'];
|
|
355
431
|
else
|
|
356
432
|
process.env['ASHLR_IN_SWARM'] = prevInSwarm;
|
|
357
433
|
}
|
|
434
|
+
// M53: anomaly-hold — if run cost > k×p50, hold the proposal PENDING and
|
|
435
|
+
// file a TuningProposal. NEVER auto-apply. This block imports NO
|
|
436
|
+
// apply/merge/push/deploy primitive.
|
|
437
|
+
if (dispatched && swarmSpent > 0) {
|
|
438
|
+
const intelRaw2 = cfg.foundry?.intelligence;
|
|
439
|
+
if (intelRaw2 !== undefined && intelRaw2 !== null) {
|
|
440
|
+
const intelCfg2 = intelRaw2;
|
|
441
|
+
const anomalyK = typeof intelCfg2.anomalyK === 'number' && intelCfg2.anomalyK > 0
|
|
442
|
+
? intelCfg2.anomalyK : 4;
|
|
443
|
+
const goal2 = `${item.title}\n\n${item.detail}`.trim();
|
|
444
|
+
const est2 = await estimateRun(goal2, { maxTokens: perItemMaxTokens }, cfg).catch(() => null);
|
|
445
|
+
const p50 = est2?.estCostUsd.median ?? 0;
|
|
446
|
+
if (p50 > 0 && swarmSpent > anomalyK * p50) {
|
|
447
|
+
audit({
|
|
448
|
+
action: 'daemon:anomaly-hold',
|
|
449
|
+
repo: item.repo,
|
|
450
|
+
sandboxId: null,
|
|
451
|
+
summary: `M53 anomaly hold: "${item.title}" cost $${swarmSpent.toFixed(4)} ` +
|
|
452
|
+
`> ${anomalyK}×p50 ($${(anomalyK * p50).toFixed(4)}) — proposal stays PENDING`,
|
|
453
|
+
result: 'ok',
|
|
454
|
+
});
|
|
455
|
+
// File a TuningProposal describing the anomaly (proposal-only, never auto-applied).
|
|
456
|
+
try {
|
|
457
|
+
emitTuningProposals([{
|
|
458
|
+
key: `anomaly.cost.${item.id.replace(/[^a-z0-9]/gi, '-').slice(0, 40)}`,
|
|
459
|
+
area: 'policy',
|
|
460
|
+
title: `Cost anomaly hold: "${item.title.slice(0, 60)}"`,
|
|
461
|
+
rationale: `Run cost $${swarmSpent.toFixed(4)} exceeded ${anomalyK}×p50 ` +
|
|
462
|
+
`($${(anomalyK * p50).toFixed(4)}) for "${item.title}". ` +
|
|
463
|
+
`Proposal held PENDING for human review.`,
|
|
464
|
+
confidence: Math.min(0.9, 0.5 + (swarmSpent / (anomalyK * p50) - 1) / 10),
|
|
465
|
+
}]);
|
|
466
|
+
}
|
|
467
|
+
catch {
|
|
468
|
+
// Emission must never crash the tick.
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
358
473
|
return { item, spentUsd: swarmSpent, dispatched };
|
|
359
474
|
});
|
|
360
475
|
const outcomes = await bounded(tasks, dcfg.parallel);
|
|
@@ -374,6 +489,19 @@ export async function tick(cfg, opts) {
|
|
|
374
489
|
catch {
|
|
375
490
|
proposalsCreated = 0;
|
|
376
491
|
}
|
|
492
|
+
// M48: OPT-IN auto-merge pass (cfg.foundry.autoMerge.enabled, DEFAULT OFF).
|
|
493
|
+
// Delegated to fleet/automerge-pass so THIS file imports no merge primitive.
|
|
494
|
+
// Every merge runs the M47 tiered-trust gate (frontier authority + risk ≤
|
|
495
|
+
// maxRisk + full verify + kill-switch + enrollment); unauthorized proposals
|
|
496
|
+
// stay PENDING. With autoMerge disabled this is a no-op — the daemon stays
|
|
497
|
+
// strictly proposal-only.
|
|
498
|
+
let merged = 0;
|
|
499
|
+
try {
|
|
500
|
+
merged = (await runAutoMergePass(cfg)).merged;
|
|
501
|
+
}
|
|
502
|
+
catch {
|
|
503
|
+
merged = 0;
|
|
504
|
+
}
|
|
377
505
|
// -------------------------------------------------------------------------
|
|
378
506
|
// 7. Update + persist state with this tick's accounting.
|
|
379
507
|
// -------------------------------------------------------------------------
|
|
@@ -388,6 +516,8 @@ export async function tick(cfg, opts) {
|
|
|
388
516
|
proposalsCreated,
|
|
389
517
|
spentUsd: tickSpent,
|
|
390
518
|
reason: 'ok',
|
|
519
|
+
...(Object.keys(backendDispatch).length > 0 ? { backends: backendDispatch } : {}),
|
|
520
|
+
...(merged > 0 ? { merged } : {}),
|
|
391
521
|
};
|
|
392
522
|
state.ticks = [...state.ticks, tickRecord];
|
|
393
523
|
saveDaemonState(state);
|
|
@@ -395,7 +525,7 @@ export async function tick(cfg, opts) {
|
|
|
395
525
|
action: 'daemon:tick',
|
|
396
526
|
repo: null,
|
|
397
527
|
sandboxId: null,
|
|
398
|
-
summary: `tick ok: ${selected.length} item(s) considered, ${proposalsCreated} proposal(s) created, $${tickSpent.toFixed(4)} spent`,
|
|
528
|
+
summary: `tick ok: ${selected.length} item(s) considered, ${proposalsCreated} proposal(s) created, ${merged} merged, $${tickSpent.toFixed(4)} spent`,
|
|
399
529
|
result: 'ok',
|
|
400
530
|
});
|
|
401
531
|
return tickRecord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/core/daemon/loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/core/daemon/loop.ts"],"names":[],"mappings":"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"}
|
package/dist/core/env-bridge.js
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
* ASHLR_ROOTS cfg.roots.join(':') Colon-joined roots
|
|
35
35
|
* ─────────────────────────────────────────────────────────────────────────────
|
|
36
36
|
*/
|
|
37
|
-
import { join } from 'path';
|
|
37
|
+
import { join, delimiter } from 'path';
|
|
38
38
|
import { CONFIG_DIR, CONFIG_PATH } from './config.js';
|
|
39
39
|
/**
|
|
40
40
|
* Build a flat Record of ashlr-derived, NON-SECRET environment keys to merge
|
|
@@ -82,7 +82,8 @@ export function buildToolEnv(cfg, opts) {
|
|
|
82
82
|
// ── Scan roots (colon-joined) ─────────────────────────────────────────────
|
|
83
83
|
const roots = (cfg.roots ?? []).filter(Boolean);
|
|
84
84
|
if (roots.length > 0) {
|
|
85
|
-
|
|
85
|
+
// path.delimiter (':' POSIX, ';' Windows) keeps Windows drive-letter paths intact.
|
|
86
|
+
env['ASHLR_ROOTS'] = roots.join(delimiter);
|
|
86
87
|
}
|
|
87
88
|
return env;
|
|
88
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-bridge.js","sourceRoot":"","sources":["../../src/core/env-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"env-bridge.js","sourceRoot":"","sources":["../../src/core/env-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAUtD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAgB,EAChB,IAAuB;IAEvB,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,6EAA6E;IAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QAC/B,GAAG,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,6EAA6E;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;QACnC,GAAG,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;IACvC,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,oBAAoB,CAAC,GAAG,cAAc,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,6EAA6E;IAC7E,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,kBAAkB;IAC7C,CAAC;IAED,6EAA6E;IAC7E,GAAG,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC;IAE/B,6EAA6E;IAC7E,GAAG,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;IAElC,6EAA6E;IAC7E,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAErD,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,mFAAmF;QACnF,GAAG,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,GAAgB,EAChB,IAAwB,EACxB,IAAuB;IAEvB,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* automerge-pass.ts — M48: the daemon's OPT-IN auto-merge pass.
|
|
3
|
+
*
|
|
4
|
+
* Kept DELIBERATELY OUT of daemon/loop.ts so the daemon file itself imports no
|
|
5
|
+
* merge/apply/push primitive (the `daemon-no-primitive` safety contract stays
|
|
6
|
+
* literally true: loop.ts only *triggers* this pass). All merge authority lives
|
|
7
|
+
* behind the M47 gate (`autoMergeProposal`), which enforces, per proposal:
|
|
8
|
+
* frontier merge-authority model ∈ cfg.foundry.mergeAuthority
|
|
9
|
+
* AND risk class ≤ maxRisk AND full verification passes
|
|
10
|
+
* AND kill-switch off AND repo enrolled.
|
|
11
|
+
*
|
|
12
|
+
* DEFAULT OFF: a no-op unless cfg.foundry.autoMerge.enabled === true. Only
|
|
13
|
+
* 'frontier'-tier proposals are even considered; the gate re-checks everything.
|
|
14
|
+
* Never throws.
|
|
15
|
+
*/
|
|
16
|
+
import type { AshlrConfig } from '../types.js';
|
|
17
|
+
import { type AutoMergeResult } from '../inbox/merge.js';
|
|
18
|
+
export interface AutoMergePassResult {
|
|
19
|
+
/** Proposals the gate was run against this pass (frontier + branch-eligible mid). */
|
|
20
|
+
attempted: number;
|
|
21
|
+
/** Of those, how many actually merged to main (frontier only). */
|
|
22
|
+
merged: number;
|
|
23
|
+
/** Of those, how many a MID-tier proposal applied to a branch/PR (M56). */
|
|
24
|
+
branched: number;
|
|
25
|
+
/** Per-proposal gate results (for observability/audit). */
|
|
26
|
+
results: AutoMergeResult[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run the M47 tiered-trust gate over PENDING proposals. No-op (returns zeros)
|
|
30
|
+
* unless auto-merge is explicitly enabled. Honors the kill switch before and
|
|
31
|
+
* during the pass. Never throws.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runAutoMergePass(cfg: AshlrConfig): Promise<AutoMergePassResult>;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* automerge-pass.ts — M48: the daemon's OPT-IN auto-merge pass.
|
|
3
|
+
*
|
|
4
|
+
* Kept DELIBERATELY OUT of daemon/loop.ts so the daemon file itself imports no
|
|
5
|
+
* merge/apply/push primitive (the `daemon-no-primitive` safety contract stays
|
|
6
|
+
* literally true: loop.ts only *triggers* this pass). All merge authority lives
|
|
7
|
+
* behind the M47 gate (`autoMergeProposal`), which enforces, per proposal:
|
|
8
|
+
* frontier merge-authority model ∈ cfg.foundry.mergeAuthority
|
|
9
|
+
* AND risk class ≤ maxRisk AND full verification passes
|
|
10
|
+
* AND kill-switch off AND repo enrolled.
|
|
11
|
+
*
|
|
12
|
+
* DEFAULT OFF: a no-op unless cfg.foundry.autoMerge.enabled === true. Only
|
|
13
|
+
* 'frontier'-tier proposals are even considered; the gate re-checks everything.
|
|
14
|
+
* Never throws.
|
|
15
|
+
*/
|
|
16
|
+
import { listProposals } from '../inbox/store.js';
|
|
17
|
+
import { autoMergeProposal } from '../inbox/merge.js';
|
|
18
|
+
import { killSwitchOn } from '../sandbox/policy.js';
|
|
19
|
+
/**
|
|
20
|
+
* Run the M47 tiered-trust gate over PENDING proposals. No-op (returns zeros)
|
|
21
|
+
* unless auto-merge is explicitly enabled. Honors the kill switch before and
|
|
22
|
+
* during the pass. Never throws.
|
|
23
|
+
*/
|
|
24
|
+
export async function runAutoMergePass(cfg) {
|
|
25
|
+
const out = { attempted: 0, merged: 0, branched: 0, results: [] };
|
|
26
|
+
if (cfg.foundry?.autoMerge?.enabled !== true)
|
|
27
|
+
return out;
|
|
28
|
+
if (killSwitchOn())
|
|
29
|
+
return out;
|
|
30
|
+
let pending;
|
|
31
|
+
try {
|
|
32
|
+
pending = listProposals({ status: 'pending' });
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
for (const p of pending) {
|
|
38
|
+
if (killSwitchOn())
|
|
39
|
+
break;
|
|
40
|
+
// Frontier proposals are main-merge-eligible; MID proposals are branch/PR-
|
|
41
|
+
// eligible ONLY when the separate default-off midToBranch flag is on. The
|
|
42
|
+
// gate re-verifies authority/risk/verification — this is a fast pre-filter.
|
|
43
|
+
const midEligible = cfg.foundry?.autoMerge?.midToBranch === true && p.engineTier === 'mid';
|
|
44
|
+
if (p.engineTier !== 'frontier' && !midEligible)
|
|
45
|
+
continue;
|
|
46
|
+
out.attempted++;
|
|
47
|
+
try {
|
|
48
|
+
const res = await autoMergeProposal(p.id, cfg);
|
|
49
|
+
out.results.push(res);
|
|
50
|
+
if (res.merged)
|
|
51
|
+
out.merged++;
|
|
52
|
+
if (res.branched)
|
|
53
|
+
out.branched++;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// autoMergeProposal never throws by contract; defensive only.
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=automerge-pass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automerge-pass.js","sourceRoot":"","sources":["../../../src/core/fleet/automerge-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAapD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAgB;IACrD,MAAM,GAAG,GAAwB,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACvF,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC;IACzD,IAAI,YAAY,EAAE;QAAE,OAAO,GAAG,CAAC;IAE/B,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,YAAY,EAAE;YAAE,MAAM;QAC1B,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC;QAC3F,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,WAAW;YAAE,SAAS;QAC1D,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,GAAG,CAAC,MAAM;gBAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,QAAQ;gBAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* quota.ts — M46: per-backend rolling-window rate/quota ledger.
|
|
3
|
+
*
|
|
4
|
+
* Subscription frontier backends (Claude / Codex) are flat-fee but RATE-LIMITED
|
|
5
|
+
* (not token-billed), so the fleet must throttle dispatches per backend. This
|
|
6
|
+
* ledger records each dispatch and answers "how many in the last window?" and
|
|
7
|
+
* "are we still under the configured cap?".
|
|
8
|
+
*
|
|
9
|
+
* Persistence discipline mirrors daemon/state.ts EXACTLY:
|
|
10
|
+
* - Atomic writes (tmp file + POSIX rename).
|
|
11
|
+
* - NEVER throws — load returns a fresh empty ledger on missing/corrupt file;
|
|
12
|
+
* record swallows any persistence error.
|
|
13
|
+
* - mkdir -p the parent dir.
|
|
14
|
+
* - Bounded history (last ~2000 events).
|
|
15
|
+
* - Homedir re-resolved at call time so tests can relocate HOME.
|
|
16
|
+
*
|
|
17
|
+
* No new runtime deps; node builtins only. evalQuota mirrors evalBudget's
|
|
18
|
+
* three-level (ok/warn/over) semantics with a null-cap-disabled path.
|
|
19
|
+
*/
|
|
20
|
+
import type { AshlrConfig, EngineId } from '../types.js';
|
|
21
|
+
/** A single recorded backend dispatch. */
|
|
22
|
+
export interface FleetQuotaEvent {
|
|
23
|
+
/** Backend that was dispatched. */
|
|
24
|
+
backend: EngineId;
|
|
25
|
+
/** ISO timestamp of the dispatch. */
|
|
26
|
+
ts: string;
|
|
27
|
+
}
|
|
28
|
+
/** The persisted fleet quota ledger. */
|
|
29
|
+
export interface FleetQuota {
|
|
30
|
+
/** Bounded list of recent dispatch events (oldest first). */
|
|
31
|
+
events: FleetQuotaEvent[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Convert a window label to milliseconds. Extends rollup.ts's day-granularity
|
|
35
|
+
* vocabulary with sub-day windows used by rate limits. Unknown labels fall back
|
|
36
|
+
* to 1h (the most conservative useful default for rate caps).
|
|
37
|
+
*/
|
|
38
|
+
export declare function windowToMs(window: string): number;
|
|
39
|
+
/** Absolute path to the fleet quota ledger file. */
|
|
40
|
+
export declare function fleetQuotaPath(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Read and parse fleetQuotaPath(). NEVER throws.
|
|
43
|
+
* Returns a fresh empty ledger when the file is missing or malformed.
|
|
44
|
+
*/
|
|
45
|
+
export declare function loadFleetQuota(): FleetQuota;
|
|
46
|
+
/**
|
|
47
|
+
* Append a dispatch event for `backend` (ts = now) and persist. Never throws.
|
|
48
|
+
*/
|
|
49
|
+
export declare function recordUse(backend: EngineId): void;
|
|
50
|
+
/**
|
|
51
|
+
* Count events for `backend` whose ts is within the last `windowMs`
|
|
52
|
+
* (ts >= now - windowMs). Reads the ledger internally; `now` is injectable for
|
|
53
|
+
* deterministic tests (defaults to Date.now()).
|
|
54
|
+
*/
|
|
55
|
+
export declare function usesInWindow(backend: EngineId, windowMs: number, now?: number): number;
|
|
56
|
+
/**
|
|
57
|
+
* True when `backend` is still UNDER its configured rate limit (or unlimited).
|
|
58
|
+
*
|
|
59
|
+
* Mirrors evalBudget's null-cap-disabled logic: when no
|
|
60
|
+
* cfg.foundry.limits[backend] is configured, the backend is unlimited ⇒ always
|
|
61
|
+
* within limit. Otherwise true iff usesInWindow(...) < limit.max. `now` is
|
|
62
|
+
* injectable for tests.
|
|
63
|
+
*/
|
|
64
|
+
export declare function withinLimit(backend: EngineId, cfg: AshlrConfig, now?: number): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Evaluate a backend's rate-limit status as 'ok' | 'warn' | 'over', mirroring
|
|
67
|
+
* evalBudget: 'over' at >= 100% of the cap, 'warn' at >= 80%, else 'ok'. When no
|
|
68
|
+
* cap is configured the backend is unlimited ⇒ always 'ok'. `now` is injectable.
|
|
69
|
+
*/
|
|
70
|
+
export declare function evalQuota(backend: EngineId, cfg: AshlrConfig, now?: number): 'ok' | 'warn' | 'over';
|