@relaycast/engine 8.10.0 → 8.11.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.
Files changed (63) hide show
  1. package/dist/adapters/node/kv.d.ts +1 -1
  2. package/dist/adapters/node/kv.d.ts.map +1 -1
  3. package/dist/adapters/node/kv.js +9 -4
  4. package/dist/adapters/node/kv.js.map +1 -1
  5. package/dist/adapters/node/rate-limit.d.ts.map +1 -1
  6. package/dist/adapters/node/rate-limit.js +10 -5
  7. package/dist/adapters/node/rate-limit.js.map +1 -1
  8. package/dist/db/migrations/0060_durable_task_invocations.sql +7 -0
  9. package/dist/db/migrations/0061_messages_workspace_length_id_index.sql +7 -0
  10. package/dist/db/schema.d.ts +51 -1
  11. package/dist/db/schema.d.ts.map +1 -1
  12. package/dist/db/schema.js +3 -0
  13. package/dist/db/schema.js.map +1 -1
  14. package/dist/engine/action.d.ts +30 -0
  15. package/dist/engine/action.d.ts.map +1 -1
  16. package/dist/engine/action.js +33 -3
  17. package/dist/engine/action.js.map +1 -1
  18. package/dist/engine/inbox.d.ts.map +1 -1
  19. package/dist/engine/inbox.js +73 -27
  20. package/dist/engine/inbox.js.map +1 -1
  21. package/dist/engine/node.d.ts +10 -0
  22. package/dist/engine/node.d.ts.map +1 -1
  23. package/dist/engine/node.js +20 -0
  24. package/dist/engine/node.js.map +1 -1
  25. package/dist/engine/nodeProvider.d.ts.map +1 -1
  26. package/dist/engine/nodeProvider.js +5 -1
  27. package/dist/engine/nodeProvider.js.map +1 -1
  28. package/dist/engine/taskInvocation.d.ts +110 -0
  29. package/dist/engine/taskInvocation.d.ts.map +1 -0
  30. package/dist/engine/taskInvocation.js +141 -0
  31. package/dist/engine/taskInvocation.js.map +1 -0
  32. package/dist/engine/usage.d.ts +17 -8
  33. package/dist/engine/usage.d.ts.map +1 -1
  34. package/dist/engine/usage.js +35 -18
  35. package/dist/engine/usage.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/lib/throttle.d.ts +20 -0
  41. package/dist/lib/throttle.d.ts.map +1 -0
  42. package/dist/lib/throttle.js +28 -0
  43. package/dist/lib/throttle.js.map +1 -0
  44. package/dist/middleware/planLimits.d.ts.map +1 -1
  45. package/dist/middleware/planLimits.js +22 -1
  46. package/dist/middleware/planLimits.js.map +1 -1
  47. package/dist/middleware/rateLimit.d.ts.map +1 -1
  48. package/dist/middleware/rateLimit.js +17 -3
  49. package/dist/middleware/rateLimit.js.map +1 -1
  50. package/dist/ports/entitlements.d.ts +8 -0
  51. package/dist/ports/entitlements.d.ts.map +1 -1
  52. package/dist/ports/kv.d.ts +7 -1
  53. package/dist/ports/kv.d.ts.map +1 -1
  54. package/dist/ports/rate-limit.d.ts +5 -0
  55. package/dist/ports/rate-limit.d.ts.map +1 -1
  56. package/dist/providers/static-entitlements.d.ts +4 -2
  57. package/dist/providers/static-entitlements.d.ts.map +1 -1
  58. package/dist/providers/static-entitlements.js +8 -4
  59. package/dist/providers/static-entitlements.js.map +1 -1
  60. package/dist/routes/workspace.d.ts.map +1 -1
  61. package/dist/routes/workspace.js +25 -22
  62. package/dist/routes/workspace.js.map +1 -1
  63. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/engine/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAW,iBAAiB,EAAoE,MAAM,iBAAiB,CAAC;AAQ/H,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMrF,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAEnC,KAAK,aAAa,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC;AAC3D,KAAK,sBAAsB,GAAG,IAAI,CAChC,aAAa,EACb,IAAI,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GAAG,kBAAkB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,kBAAkB,GAAG,yBAAyB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CACvN,CAAC;AAIF,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,SAAU,CAAC;AACzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,QAAsB,CAAC;AACjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AAIrD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0DAA0D;IAC1D,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,4DAA4D;IAC5D,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAkPD,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,EACD,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,wBAAwB,CAAA;CAAO;;;;;;;;;;;;;;;GAoJ5D;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;KAuBjF;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;UA4B7F;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,wBAAwB,CAAA;CAAO,oBAyB5D;AAuPD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAmvBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACxB;;;;;;;;;GAWP;AA6JD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5G,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,sBAAsB,CAAA;CAAO;;;;;;;;;GAU3D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,sBAAsB,CAAA;CAAO;;;;;;;;;GAgE3D;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;yEACqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACxB;;;;;;;;;GAkTP;AAssBD;;;;;;;;;GASG;AACH,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAYlB;AAkVD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,sBAAsB,EAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CA6IjB;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,sBAAsB,EAChC,UAAU,EAAE,sBAAsB,EAClC,IAAI,GAAE;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAO,oBAyL5E;AAED,wBAAsB,gCAAgC,CACpD,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,sBAAsB,EAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,mBAiCf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;;;;;;;;;;;;;;UA2DF;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,sBAAsB,EAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,IAAI,CAAC,EAAE,wBAAwB;;;;;;;;;;;;;;UAsGhC;AAiKD,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,sBAAsB,EAChC,IAAI,GAAE,+BAA+B,GAAG,MAAM,GAAG,IAAS,mBAiD3D;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;;;;;;;;;;;UAcxG"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/engine/action.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { runAtomic, runAtomicWrites } from '../ports/database.js';
12
12
  import { claimSpawnNode, chooseNodeForAction, isNodeLive, releaseNodeCapacity, reserveNodeCapacity } from './placement.js';
13
13
  import { DEFAULT_PROVIDER_NAME, capacityProviderName, getProvider, isProviderLive } from './nodeProvider.js';
14
14
  import { AGENT_TOKEN_HASH_PATTERN } from '@relaycast/types';
15
+ import { createTaskState, expireTaskInvocation, expireTaskInvocations, taskExecution } from './taskInvocation.js';
15
16
  const OPEN_INVOCATION_STATUSES = ['pending', 'dispatched', 'invoked'];
16
17
  const REPLAYED_INVOCATION = Symbol('replayed-action-invocation');
17
18
  export const ACTION_DISPATCH_TIMEOUT_MS = 30_000;
@@ -424,6 +425,9 @@ export async function deleteAction(db, workspaceId, name, options = {}) {
424
425
  return deleted;
425
426
  }
426
427
  async function createInvocation(db, workspaceId, action, data) {
428
+ if (action?.executionMode === 'task' && !data.invocation_id) {
429
+ throw codedError('Task actions require the idempotent action invoke route', 'task_idempotency_required', 400);
430
+ }
427
431
  const invocationId = data.invocation_id ?? `inv_${generateId()}`;
428
432
  const expectedActionName = action?.name ?? data.action_name ?? 'spawn';
429
433
  const [created] = await db
@@ -439,6 +443,7 @@ async function createInvocation(db, workspaceId, action, data) {
439
443
  handlerAgentId: data.handler_agent_id ?? action?.handlerAgentId ?? null,
440
444
  handlerNodeId: data.handler_node_id ?? action?.handlerNodeId ?? null,
441
445
  input: data.input ?? {},
446
+ taskState: action?.executionMode === 'task' ? createTaskState(data.input ?? {}) : null,
442
447
  status: data.status ?? 'pending',
443
448
  })
444
449
  .onConflictDoNothing()
@@ -1036,10 +1041,25 @@ async function dispatchRelease(args) {
1036
1041
  ?? activeBindings.find((binding) => binding.nodeId === implicitDirectNodeId)?.nodeId
1037
1042
  ?? activeBindings[0]?.nodeId
1038
1043
  ?? (agent.locationType === 'via_node' ? agent.locationNodeId : null);
1039
- const hostLive = !!registry
1044
+ // An implicit direct node has no provider row and the Cloudflare edge adapter
1045
+ // cannot see the DO, so `isHandlerConnectionLive` reports it connected. For a
1046
+ // guarded release the node row is the only liveness signal: a never-attached
1047
+ // ghost (status 'offline', null heartbeat) can never accept the dispatch and
1048
+ // must complete locally; a connected real direct node is 'online' with a fresh
1049
+ // heartbeat and keeps the existing dispatch fence. Scoped to the implicit
1050
+ // direct node so all other node/legacy semantics are unchanged.
1051
+ let hostLive = !!registry
1040
1052
  && !!nodeId
1041
1053
  && await isHandlerConnectionLive(args.db, registry, args.workspaceId, nodeId, agent.providerName);
1042
- if (!hostLive) {
1054
+ if (hostLive && nodeId === implicitDirectNodeId) {
1055
+ const [directNode] = await args.db
1056
+ .select({ status: nodes.status, lastHeartbeatAt: nodes.lastHeartbeatAt })
1057
+ .from(nodes)
1058
+ .where(and(eq(nodes.workspaceId, args.workspaceId), eq(nodes.id, nodeId)));
1059
+ if (!directNode || !isNodeLive(directNode))
1060
+ hostLive = false;
1061
+ }
1062
+ if (!hostLive || !registry) {
1043
1063
  return input.delete_agent === true ? completeLocally() : failClosed();
1044
1064
  }
1045
1065
  // Release is a capacity operation handled by the provider hosting the agent.
@@ -1340,6 +1360,9 @@ export async function invokeAction(db, workspaceId, actionName, data, options =
1340
1360
  }
1341
1361
  }
1342
1362
  // Check availableTo access control — deny if caller is absent OR not in the list
1363
+ if (action?.executionMode === 'task' && (!action.handlerNodeId || options.idempotencyKey === undefined)) {
1364
+ throw codedError('Task actions require a node handler and Idempotency-Key', 'task_idempotency_required', 400);
1365
+ }
1343
1366
  if (action?.availableTo && action.availableTo.length > 0) {
1344
1367
  if (!data.caller_name || !action.availableTo.includes(data.caller_name)) {
1345
1368
  const who = data.caller_name ? `Agent "${data.caller_name}"` : 'Caller';
@@ -1580,6 +1603,7 @@ function publicInvocation(row) {
1580
1603
  dispatched_at: row.dispatchedAt?.toISOString() ?? null,
1581
1604
  created_at: row.createdAt.toISOString(),
1582
1605
  completed_at: row.completedAt?.toISOString() ?? null,
1606
+ ...(row.taskState ? { task_execution: taskExecution(row) } : {}),
1583
1607
  };
1584
1608
  }
1585
1609
  async function completeGuardedReleaseNodeInvocation(db, workspaceId, nodeId, providerName, invocation, data, deps) {
@@ -1986,11 +2010,13 @@ async function claimRegisteredActionHandoff(db, args) {
1986
2010
  actionId: actionInvocations.actionId,
1987
2011
  actionName: actionInvocations.actionName,
1988
2012
  dispatchAttempts: actionInvocations.dispatchAttempts,
2013
+ taskState: actionInvocations.taskState,
1989
2014
  });
1990
2015
  return claimed?.actionId ? {
1991
2016
  actionId: claimed.actionId,
1992
2017
  actionName: claimed.actionName,
1993
2018
  dispatchAttempts: claimed.dispatchAttempts,
2019
+ taskState: claimed.taskState,
1994
2020
  } : null;
1995
2021
  }
1996
2022
  async function bindInvocationToRegisteredNodeAction(db, args) {
@@ -2147,6 +2173,9 @@ async function dispatchNodeInvocation(args) {
2147
2173
  return { accepted: false, pending: false, sent: false, settled };
2148
2174
  }
2149
2175
  }
2176
+ if (registeredNodeClaim?.taskState) {
2177
+ frame.task_execution = taskExecution({ id: args.invocationId, ...registeredNodeClaim });
2178
+ }
2150
2179
  const sent = args.agent && args.actionId
2151
2180
  ? await (args.registry.sendAuthorizedActionToProvider?.(args.workspaceId, args.nodeId, args.providerName, frame, {
2152
2181
  kind: 'agent-action-v1',
@@ -2848,6 +2877,7 @@ async function failNeverDispatchedInvocationRows(db, workspaceId, invocationIds,
2848
2877
  .returning();
2849
2878
  }
2850
2879
  export async function sweepTimedOutInvocations(db, registry, opts = {}) {
2880
+ await expireTaskInvocations(db);
2851
2881
  const sweepOpts = typeof opts === 'number' || opts === null ? {} : opts;
2852
2882
  const timeoutMs = typeof opts === 'number' ? opts : sweepOpts.timeoutMs ?? ACTION_DISPATCH_TIMEOUT_MS;
2853
2883
  await failUnreachableAgentInvocations(db, registry, sweepOpts.handlerUnreachableTtlMs ?? ACTION_HANDLER_UNREACHABLE_TTL_MS, sweepOpts.completionDeps);
@@ -2886,6 +2916,6 @@ export async function getInvocation(db, workspaceId, actionName, invocationId) {
2886
2916
  .where(and(eq(actionInvocations.workspaceId, workspaceId), eq(actionInvocations.id, invocationId), eq(actionInvocations.actionName, actionName)));
2887
2917
  if (!row)
2888
2918
  return null;
2889
- return publicInvocation(row);
2919
+ return publicInvocation(await expireTaskInvocation(db, row));
2890
2920
  }
2891
2921
  //# sourceMappingURL=action.js.map