@sensigo/realm 0.41.0 → 0.42.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/adapters/gorgias-adapter.d.ts.map +1 -1
- package/dist/adapters/gorgias-adapter.js +39 -10
- package/dist/adapters/gorgias-adapter.js.map +1 -1
- package/dist/engine/execution-loop.d.ts.map +1 -1
- package/dist/engine/execution-loop.js +124 -21
- package/dist/engine/execution-loop.js.map +1 -1
- package/dist/engine/run-health.d.ts +1 -1
- package/dist/engine/run-health.d.ts.map +1 -1
- package/dist/engine/run-health.js +49 -4
- package/dist/engine/run-health.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/types/run-record.d.ts +11 -1
- package/dist/types/run-record.d.ts.map +1 -1
- package/dist/types/run-record.js.map +1 -1
- package/dist/types/workflow-definition.d.ts +146 -10
- package/dist/types/workflow-definition.d.ts.map +1 -1
- package/dist/types/workflow-definition.js +225 -0
- package/dist/types/workflow-definition.js.map +1 -1
- package/dist/types/workflow-error.d.ts +1 -1
- package/dist/types/workflow-error.d.ts.map +1 -1
- package/dist/types/workflow-error.js.map +1 -1
- package/dist/workflow/diagnostics.d.ts +7 -5
- package/dist/workflow/diagnostics.d.ts.map +1 -1
- package/dist/workflow/diagnostics.js +6 -6
- package/dist/workflow/diagnostics.js.map +1 -1
- package/dist/workflow/registrar.d.ts +42 -0
- package/dist/workflow/registrar.d.ts.map +1 -1
- package/dist/workflow/registrar.js +57 -0
- package/dist/workflow/registrar.js.map +1 -1
- package/dist/workflow/step-key-registry.d.ts +1258 -0
- package/dist/workflow/step-key-registry.d.ts.map +1 -0
- package/dist/workflow/step-key-registry.js +1217 -0
- package/dist/workflow/step-key-registry.js.map +1 -0
- package/dist/workflow/yaml-loader.d.ts +16 -0
- package/dist/workflow/yaml-loader.d.ts.map +1 -1
- package/dist/workflow/yaml-loader.js +494 -340
- package/dist/workflow/yaml-loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gorgias-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,CAAC;QACd,sDAAsD;QACtD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,wBAAwB,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAmBpD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;YAQN,cAAc;YAqEd,cAAc;IA2E5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAcpB,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"gorgias-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO,CAAC;QACd,sDAAsD;QACtD,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAwDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,wBAAwB,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IAmBpD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;YAQN,cAAc;YAqEd,cAAc;IA2E5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAcpB,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IA0NrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;IAkDrB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC;CAqC5B"}
|
|
@@ -238,6 +238,15 @@ export class GorgiasAdapter {
|
|
|
238
238
|
stableParts.push(`order_by=${encodeURIComponent(orderBy)}`);
|
|
239
239
|
const accumulated = [];
|
|
240
240
|
let cursor = undefined;
|
|
241
|
+
// #575: not every Gorgias list endpoint uses the cursor contract. GET /tickets/{id}/messages
|
|
242
|
+
// (the per-ticket path — what every real get_messages call goes through, since ticket_id is
|
|
243
|
+
// always supplied) uses an older page-based scheme instead: it hands back a complete
|
|
244
|
+
// `meta.next_page` relative URL rather than a `meta.next_cursor` token. When a response
|
|
245
|
+
// carries a next_page URL, `nextUrl` holds the fully-resolved request URL to use verbatim on
|
|
246
|
+
// the following iteration, bypassing `stableParts`/`cursor` entirely — Gorgias's next_page
|
|
247
|
+
// already encodes the full continuation query, so re-deriving it would risk drifting from
|
|
248
|
+
// what Gorgias actually asked us to fetch next.
|
|
249
|
+
let nextUrl = undefined;
|
|
241
250
|
// INVARIANT: truncated === true iff at least one message the API would have returned for
|
|
242
251
|
// this request was NOT included in `messages` — i.e. we stopped because of effectiveLimit,
|
|
243
252
|
// never merely because the API ran out. (A1 fix: the prior version checked next_cursor===null
|
|
@@ -246,13 +255,19 @@ export class GorgiasAdapter {
|
|
|
246
255
|
let truncated = false;
|
|
247
256
|
for (;;) {
|
|
248
257
|
this.checkAborted(signal);
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
258
|
+
let url;
|
|
259
|
+
if (nextUrl !== undefined) {
|
|
260
|
+
url = nextUrl;
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
const urlParts = cursor !== undefined ? [...stableParts, `cursor=${cursor}`] : stableParts;
|
|
264
|
+
// Per-ticket endpoint when a ticket_id is supplied — the flat /messages?ticket_id= filter
|
|
265
|
+
// is inconsistent (returns 0, 1, or all messages for the same request; live evidence:
|
|
266
|
+
// ticket 71355453 → 0 via the flat filter vs 4 via the per-ticket path, same moment).
|
|
267
|
+
// Retained for the global-scan case (ticketId === null), where there is no id to path on.
|
|
268
|
+
const messagesPath = ticketId !== null ? `/tickets/${ticketId}/messages` : `/messages`;
|
|
269
|
+
url = `${this.baseUrl}${messagesPath}?${urlParts.join('&')}`;
|
|
270
|
+
}
|
|
256
271
|
const response = await this.executeRequest('GET', url, 'get_messages', undefined, signal);
|
|
257
272
|
const json = response.data;
|
|
258
273
|
for (const message of json.data) {
|
|
@@ -264,14 +279,28 @@ export class GorgiasAdapter {
|
|
|
264
279
|
}
|
|
265
280
|
}
|
|
266
281
|
const nextCursor = json.meta.next_cursor ?? null;
|
|
282
|
+
const nextPage = json.meta.next_page ?? null;
|
|
283
|
+
const hasContinuation = nextCursor !== null || nextPage !== null;
|
|
267
284
|
if (accumulated.length >= effectiveLimit) {
|
|
268
|
-
if (
|
|
285
|
+
if (hasContinuation)
|
|
269
286
|
truncated = true; // more pages remain past the limit
|
|
270
287
|
break;
|
|
271
288
|
}
|
|
272
|
-
if (
|
|
289
|
+
if (!hasContinuation)
|
|
273
290
|
break; // API exhausted with room to spare — nothing dropped
|
|
274
|
-
|
|
291
|
+
if (nextCursor !== null) {
|
|
292
|
+
cursor = nextCursor;
|
|
293
|
+
nextUrl = undefined;
|
|
294
|
+
}
|
|
295
|
+
else if (nextPage !== null) {
|
|
296
|
+
// Follow the URL Gorgias gives you, the same way the cursor branch follows the cursor
|
|
297
|
+
// Gorgias gives you. next_page is an absolute-path reference (e.g.
|
|
298
|
+
// `/api/tickets/74952676/messages/?limit=100&page=2`); resolving it against this.baseUrl
|
|
299
|
+
// (which itself already carries `/api`, e.g. `https://{domain}.gorgias.com/api`) replaces
|
|
300
|
+
// the base's path with next_page's own path per the URL spec, rather than concatenating —
|
|
301
|
+
// exactly right, since next_page already includes its own `/api/...` prefix.
|
|
302
|
+
nextUrl = new URL(nextPage, this.baseUrl).toString();
|
|
303
|
+
}
|
|
275
304
|
}
|
|
276
305
|
return { status: 200, data: { messages: accumulated, truncated } };
|
|
277
306
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gorgias-adapter.js","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gorgias-adapter.js","sourceRoot":"","sources":["../../src/adapters/gorgias-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EAIT,eAAe,EAGf,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"execution-loop.d.ts","sourceRoot":"","sources":["../../src/engine/execution-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { extensionIdentityDiffers } from '../types/extension-identity.js';
|
|
2
2
|
import { WorkflowError } from '../types/workflow-error.js';
|
|
3
|
+
import { classifyStepTrust, isGateTrust, buildTrustRefusal } from '../types/workflow-definition.js';
|
|
3
4
|
import { persistsField } from '../store/store-fidelity.js';
|
|
4
5
|
import { storeDeclaresSeal, storeDeclaresNonceCarriage } from '../store/trace-buffer-store.js';
|
|
5
6
|
import { partitionBufferedEntries } from './trace-adoption.js';
|
|
@@ -941,6 +942,55 @@ export async function executeStep(store, definition, options) {
|
|
|
941
942
|
};
|
|
942
943
|
}
|
|
943
944
|
const stepDef = definition.steps[options.command];
|
|
945
|
+
// issue #508 (L2) — fail CLOSED, not merely fail-loud, on a trust value L1 would have refused
|
|
946
|
+
// at load. This is the layer that closes the population L1 cannot reach: a definition already
|
|
947
|
+
// sitting in the registry from before L1 shipped (`registrar.ts` reads back with ZERO
|
|
948
|
+
// validation), or one an embedder hands to this function directly without ever routing it
|
|
949
|
+
// through the loader at all. Guard/finalizer are excluded from `classifyStepTrust`'s 'refuse'
|
|
950
|
+
// population by construction here — `eligibility.ts`'s `findEligibleSteps` keeps them out of
|
|
951
|
+
// `executeStep` entirely, so `stepDef?.execution` this function ever sees is 'auto' or 'agent'
|
|
952
|
+
// (a mutant hardcoding the kind here would be an EQUIVALENT MUTANT; #519 owns validating a
|
|
953
|
+
// loader-bypassing definition's guard/finalizer steps structurally).
|
|
954
|
+
//
|
|
955
|
+
// MUST precede `store.claimStep` below (Step 3): `makeErrorEnvelope` is a pure builder that
|
|
956
|
+
// never writes, so a guard placed after the claim would leave an ORPHAN CLAIM — every retry
|
|
957
|
+
// then returns `STATE_STEP_ALREADY_CLAIMED` until the claim deadline expires, and the run-
|
|
958
|
+
// health finding below goes silent too (the orphan claim removes the step from eligibility,
|
|
959
|
+
// which is what the finding is keyed on) — the operator loses the recovery AND the
|
|
960
|
+
// explanation at once. Placed AFTER Step 1.5's `enactExpiredGateIfDue` above, deliberately:
|
|
961
|
+
// enacting a DIFFERENT step's already-expired gate is lawful and must not be blocked by this
|
|
962
|
+
// step's own trust defect.
|
|
963
|
+
if (classifyStepTrust(stepDef?.execution, stepDef?.trust) === 'refuse') {
|
|
964
|
+
// issue #508 (final correction): this whole message is now `buildTrustRefusal`
|
|
965
|
+
// (types/workflow-definition.ts) — the same composer L1 (yaml-loader.ts), the
|
|
966
|
+
// trust_value_invalid finding (run-health.ts), and the protocol briefing (generator.ts) all
|
|
967
|
+
// use, so this surface can no longer silently fall back to the generic "not a recognized
|
|
968
|
+
// value" text while the other three name a service-trust confusion or the human_notified
|
|
969
|
+
// tombstone by their own arm. `stepDef!` is sound here: `classifyStepTrust` only reaches
|
|
970
|
+
// 'refuse' when `stepDef?.trust !== undefined`, which is only possible when `stepDef` itself
|
|
971
|
+
// is defined (optional chaining on an undefined `stepDef` would make `.trust` undefined too,
|
|
972
|
+
// routing to the FIRST 'lawful_no_gate' arm instead) — and `stepDef.execution` is always
|
|
973
|
+
// 'auto' or 'agent' here by construction, per this function's own comment above (guard and
|
|
974
|
+
// finalizer never reach `executeStep` at all).
|
|
975
|
+
const err = new WorkflowError(buildTrustRefusal({
|
|
976
|
+
kind: stepDef.execution,
|
|
977
|
+
value: stepDef.trust,
|
|
978
|
+
step: options.command,
|
|
979
|
+
surface: 'dispatch',
|
|
980
|
+
}), {
|
|
981
|
+
code: 'VALIDATION_TRUST_VALUE',
|
|
982
|
+
category: 'VALIDATION',
|
|
983
|
+
agentAction: 'report_to_user',
|
|
984
|
+
retryable: false,
|
|
985
|
+
stepId: options.command,
|
|
986
|
+
});
|
|
987
|
+
// Deliberately NOT passing `definition`: `makeErrorEnvelope` appends
|
|
988
|
+
// `buildNextActions(definition, run)` whenever a definition is supplied and the error's
|
|
989
|
+
// agentAction isn't 'stop' (:1007-1009) — the refused step is by construction still
|
|
990
|
+
// eligible, so it would appear in its own refusal's `next_actions`, and an agent following
|
|
991
|
+
// them would loop forever. Omitting `definition` here is what keeps `next_actions: []`.
|
|
992
|
+
return makeErrorEnvelope(options, run, err);
|
|
993
|
+
}
|
|
944
994
|
const evidenceByStep = buildEvidenceByStep(run);
|
|
945
995
|
// Step 2a: Evaluate preconditions.
|
|
946
996
|
if (stepDef?.preconditions !== undefined && stepDef.preconditions.length > 0) {
|
|
@@ -1530,7 +1580,7 @@ export async function executeStep(store, definition, options) {
|
|
|
1530
1580
|
// effectiveTimeoutSeconds is the single source of truth for the step's OWN declared/default
|
|
1531
1581
|
// per-attempt bound; timeoutMs is derived from it so the two can never diverge.
|
|
1532
1582
|
//
|
|
1533
|
-
// Issue #140 (retryable timeout + total-time cap): capMs/
|
|
1583
|
+
// Issue #140 (retryable timeout + total-time cap): capMs/capExhausted resolve ONCE
|
|
1534
1584
|
// here too (same as timeoutMs), gated on `enforceTimeout && retryConfig !== undefined` — every
|
|
1535
1585
|
// retry-configured auto step now gets a default total-time cap (resolveCapMs), whether or not it
|
|
1536
1586
|
// opts into `retry.on_timeout`. What is NOT resolved once anymore is the PER-ATTEMPT bound
|
|
@@ -1562,9 +1612,17 @@ export async function executeStep(store, definition, options) {
|
|
|
1562
1612
|
: undefined;
|
|
1563
1613
|
const timeoutMs = effectiveTimeoutSeconds !== undefined ? effectiveTimeoutSeconds * 1000 : undefined;
|
|
1564
1614
|
const capMs = enforceTimeout && retryConfig !== undefined ? resolveCapMs(retryConfig, timeoutMs) : undefined;
|
|
1565
|
-
const capStart = Date.now(); // wall-clock — the SAME clock the claim horizon is measured against
|
|
1566
1615
|
let capExhausted = false;
|
|
1567
|
-
|
|
1616
|
+
// issue #573 §C: elapsed budget is measured on the monotonic clock (`performance.now()`), not
|
|
1617
|
+
// the wall clock — durations, never persisted horizons (the claim horizon is anchored at claim
|
|
1618
|
+
// time, `json-file-store.ts:548`, and consumes only the cap's VALUE, never this clock). The
|
|
1619
|
+
// cap clock starts at attempt 1's dispatch (set below, right before the first `withTimeout`
|
|
1620
|
+
// call) — `capClockStart` stays `undefined` until then, so `elapsedCapMs()` is exactly `0` for
|
|
1621
|
+
// any read before that, which is what makes attempt 1's budget equal the full cap by
|
|
1622
|
+
// construction (§A/§B).
|
|
1623
|
+
let capClockStart;
|
|
1624
|
+
const elapsedCapMs = () => (capClockStart === undefined ? 0 : performance.now() - capClockStart);
|
|
1625
|
+
const remainingMs = () => capMs - elapsedCapMs();
|
|
1568
1626
|
// Programmatic-gate advisory (#119-preserving): the loader refuses `on_timeout: true` without
|
|
1569
1627
|
// `idempotent: true` at load (E1) — but a hand-built WorkflowDefinition (a custom embedder, or a
|
|
1570
1628
|
// test) can bypass the loader entirely. Surface the same rule here, at the engine surface, as a
|
|
@@ -1601,11 +1659,27 @@ export async function executeStep(store, definition, options) {
|
|
|
1601
1659
|
const bypassDispatch = exhaustion !== null;
|
|
1602
1660
|
if (!bypassDispatch) {
|
|
1603
1661
|
for (let attemptNum = 1; attemptNum <= maxAttempts; attemptNum++) {
|
|
1662
|
+
// issue #573 §A/§B: the remaining budget is read ONCE per attempt, at the instant that
|
|
1663
|
+
// matters — attempt 1 gets the FULL cap by construction (the cap clock has not started
|
|
1664
|
+
// yet; `capClockStart` is set below, right before this attempt dispatches), so equality
|
|
1665
|
+
// (`total_timeout_seconds === timeout_seconds`) bounds the first attempt, never clips it.
|
|
1666
|
+
// Later attempts floor a fractional monotonic read to a whole millisecond BEFORE it bounds
|
|
1667
|
+
// anything — a fraction that is not there is never granted, and `clipped_to_ms` /
|
|
1668
|
+
// `effective_timeout_seconds` stay integer quantities exactly as they always were.
|
|
1669
|
+
const remainingAtDispatch = capMs === undefined
|
|
1670
|
+
? undefined
|
|
1671
|
+
: attemptNum === 1
|
|
1672
|
+
? capMs
|
|
1673
|
+
: Math.max(0, Math.floor(remainingMs()));
|
|
1604
1674
|
// SITE (a) — issue #140, loop-top, BEFORE attemptsUsed is assigned: attempt 1 ALWAYS
|
|
1605
1675
|
// proceeds regardless of capMs (the `attemptNum > 1` conjunct) — this guard exists solely for
|
|
1606
|
-
// the clock-anomaly window between
|
|
1607
|
-
// jump), never to gate the very first attempt.
|
|
1608
|
-
|
|
1676
|
+
// the clock-anomaly window between the previous attempt's cap check and here (a suspend/
|
|
1677
|
+
// resume or NTP forward jump), never to gate the very first attempt. issue #573: consumes the
|
|
1678
|
+
// SAME `remainingAtDispatch` read above — no second clock read reopens the double-read class
|
|
1679
|
+
// one attempt later. The `Math.max(0, …)` floor above means a negative can never reach this
|
|
1680
|
+
// comparison, so the conjunct is now defensive, not load-bearing — the drift window its
|
|
1681
|
+
// predecessor comment described no longer exists (the budget is read once, not twice).
|
|
1682
|
+
if (capMs !== undefined && attemptNum > 1 && remainingAtDispatch <= 0) {
|
|
1609
1683
|
capExhausted = true;
|
|
1610
1684
|
break;
|
|
1611
1685
|
}
|
|
@@ -1614,21 +1688,36 @@ export async function executeStep(store, definition, options) {
|
|
|
1614
1688
|
let attemptOutput = {};
|
|
1615
1689
|
let attemptError = null;
|
|
1616
1690
|
let resolvedParams;
|
|
1617
|
-
//
|
|
1618
|
-
//
|
|
1619
|
-
//
|
|
1620
|
-
//
|
|
1621
|
-
//
|
|
1622
|
-
//
|
|
1623
|
-
//
|
|
1691
|
+
// issue #573: `effectiveMs` / `clippedToMs` / `boundWasCap` are all derived from the single
|
|
1692
|
+
// `remainingAtDispatch` read above — never a second call to `remainingMs()` (that reopened
|
|
1693
|
+
// the double-read class one line above the bound: at equality, a tick between the two reads
|
|
1694
|
+
// minted a phantom `clipped_to_ms: 999` on an attempt the cap never actually touched).
|
|
1695
|
+
// capMs undefined ⇒ effectiveMs === timeoutMs, byte-identical to pre-#140 behavior (every
|
|
1696
|
+
// non-retry-configured, or unopted-uncapped-by-total_timeout_seconds-being-absent, auto
|
|
1697
|
+
// step). `clippedToMs` records the per-attempt evidence value ONLY when the cap actually
|
|
1698
|
+
// reduced the bound below the step's own declared/default timeout — never on an uncapped or
|
|
1699
|
+
// not-yet-biting attempt.
|
|
1624
1700
|
const effectiveMs = timeoutMs !== undefined
|
|
1625
|
-
?
|
|
1626
|
-
? Math.min(timeoutMs,
|
|
1701
|
+
? remainingAtDispatch !== undefined
|
|
1702
|
+
? Math.min(timeoutMs, remainingAtDispatch)
|
|
1627
1703
|
: timeoutMs
|
|
1628
1704
|
: undefined;
|
|
1629
|
-
const clippedToMs =
|
|
1705
|
+
const clippedToMs = remainingAtDispatch !== undefined && effectiveMs !== undefined && effectiveMs < timeoutMs
|
|
1630
1706
|
? effectiveMs
|
|
1631
1707
|
: undefined;
|
|
1708
|
+
// issue #573 §A: true when this attempt's bound WAS the remaining budget (not the step's own
|
|
1709
|
+
// declared/default timeout) — the fact SITE (b) needs to label a `STEP_TIMEOUT` as cap
|
|
1710
|
+
// exhaustion BY CONSTRUCTION, because Node/libuv timers can fire up to ~1ms EARLY against any
|
|
1711
|
+
// clock (loop time is floored to whole milliseconds), so comparing clocks again after the
|
|
1712
|
+
// fact can read "budget left" when the timer has already fired.
|
|
1713
|
+
const boundWasCap = remainingAtDispatch !== undefined &&
|
|
1714
|
+
effectiveMs !== undefined &&
|
|
1715
|
+
effectiveMs >= remainingAtDispatch;
|
|
1716
|
+
// issue #573 §C: the cap clock starts when attempt 1 is DISPATCHED (not when the loop is
|
|
1717
|
+
// entered) — set exactly once, after the bound above is computed (attempt 1 never reads it)
|
|
1718
|
+
// and immediately before the `try` that calls `withTimeout`.
|
|
1719
|
+
if (attemptNum === 1)
|
|
1720
|
+
capClockStart = performance.now();
|
|
1632
1721
|
try {
|
|
1633
1722
|
const makeCall = (signal) => {
|
|
1634
1723
|
if (stepDef?.execution === 'auto' && stepDef.uses_service !== undefined) {
|
|
@@ -1901,7 +1990,14 @@ export async function executeStep(store, definition, options) {
|
|
|
1901
1990
|
// site (c) below re-checks once more right before an actual sleep). Fires on ANY dispatch
|
|
1902
1991
|
// error once the cap is spent, not just STEP_TIMEOUT — the cap bounds the step's total
|
|
1903
1992
|
// budget, regardless of which error exhausted it.
|
|
1904
|
-
|
|
1993
|
+
// issue #573 §A: an attempt bounded by the remaining budget (`boundWasCap`) that times out
|
|
1994
|
+
// HAS consumed the budget — no clock comparison after the fact may say otherwise (a timer
|
|
1995
|
+
// can fire up to ~1ms EARLY against any clock, so `remainingMs() <= 0` alone can read false
|
|
1996
|
+
// the instant the timer has already fired). A synthetic `STEP_TIMEOUT` thrown directly by a
|
|
1997
|
+
// hand-built dispatcher on a capped step whose bound equalled the budget is labelled cap
|
|
1998
|
+
// exhaustion too — the bound WAS the budget.
|
|
1999
|
+
if (capMs !== undefined &&
|
|
2000
|
+
(remainingMs() <= 0 || (attemptError.code === 'STEP_TIMEOUT' && boundWasCap))) {
|
|
1905
2001
|
capExhausted = true;
|
|
1906
2002
|
}
|
|
1907
2003
|
const willRetry = (retryConfig !== undefined && attemptError.retryable && attemptNum < maxAttempts) ||
|
|
@@ -1928,7 +2024,9 @@ export async function executeStep(store, definition, options) {
|
|
|
1928
2024
|
// exact-fit sleep is doomed too — never sleep into a wall). dispatchError already holds the
|
|
1929
2025
|
// ACTUAL last error (e.g. a 429 with retry_after in its details); the post-loop wrap gate
|
|
1930
2026
|
// below decides whether/how to wrap it — this site only decides whether to sleep at all.
|
|
1931
|
-
|
|
2027
|
+
// issue #573 §C: the same monotonic elapsed-budget read as everywhere else in this cap's
|
|
2028
|
+
// machinery — one clock for durations.
|
|
2029
|
+
if (capMs !== undefined && sleepWouldExceedCap(elapsedCapMs(), waitMs, capMs)) {
|
|
1932
2030
|
capExhausted = true;
|
|
1933
2031
|
break;
|
|
1934
2032
|
}
|
|
@@ -2556,7 +2654,9 @@ export async function executeStep(store, definition, options) {
|
|
|
2556
2654
|
};
|
|
2557
2655
|
}
|
|
2558
2656
|
// Step 5b: Gate check — if trust requires human confirmation, open a gate and halt.
|
|
2559
|
-
|
|
2657
|
+
// issue #508: single-source membership via isGateTrust — was two hand-copied literals here,
|
|
2658
|
+
// which is exactly the drift the #508 vocabulary (TRUST_LEVELS/GATE_TRUST_LEVELS) closes.
|
|
2659
|
+
if (isGateTrust(stepDef.trust)) {
|
|
2560
2660
|
const gate_id = crypto.randomUUID();
|
|
2561
2661
|
const choicesRaw = stepDef.gate?.choices ?? stepDef.input_schema?.properties?.['choice']?.enum;
|
|
2562
2662
|
const choices = Array.isArray(choicesRaw) ? choicesRaw : ['approve', 'reject'];
|
|
@@ -3943,8 +4043,11 @@ async function buildFinalizedSeal(definition, sealDraft, outcome, registry) {
|
|
|
3943
4043
|
const now = new Date();
|
|
3944
4044
|
const evidenceByStep = buildEvidenceByStep(record);
|
|
3945
4045
|
const timeoutMs = (step.timeout_seconds ?? DRAIN_CEILING_SECONDS) * 1000;
|
|
3946
|
-
// Minimal per-finalizer dispatch options: handler-only,
|
|
3947
|
-
//
|
|
4046
|
+
// Minimal per-finalizer dispatch options: handler-only, `input: {}` is only the
|
|
4047
|
+
// absent-input_map fallback — callHandler still resolves a stepDef.input_map when a
|
|
4048
|
+
// loader-bypassed definition carries one (the #519 residual class); the loader prohibition
|
|
4049
|
+
// is what keeps the empty-input contract true for loader-validated workflows. No agent
|
|
4050
|
+
// dispatcher path. callHandler resolves the handler from the injected registry.
|
|
3948
4051
|
const options = {
|
|
3949
4052
|
runId: record.id,
|
|
3950
4053
|
command: name,
|