@isomorph.ai/app-sdk 2.4.0 → 2.5.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/README.md CHANGED
@@ -396,7 +396,7 @@ const computerUse = createComputerUseTool({ runKey: ctx.runId ?? `my-job/${ctx.s
396
396
  // Add { computerUse } to generateText's tools. It returns { status: 'done' | 'failed', summary, finalUrl, downloads }.
397
397
  ```
398
398
 
399
- - The tool calls the task API at `ISOMORPH_COMPUTER_USE_URL` (region `ISOMORPH_COMPUTER_USE_REGION`, default `us-east-1`); Provision sets both when the cell has the API. Each request is signed with SigV4 (`execute-api`) as the runtime's own role: the Lambda environment's credentials, or on a cluster pod its ServiceAccount role through STS `AssumeRoleWithWebIdentity`.
399
+ - Hosted, the tool posts to its App Gateway (`ISOMORPH_GATEWAY_URL`, `/_harbour/computer-use/...`) with the workload token; the gateway and governance carry the call into Harbour's account (data plane ADR 0103). Only a runtime with no gateway URL calls the task API at `ISOMORPH_COMPUTER_USE_URL` directly (region `ISOMORPH_COMPUTER_USE_REGION`, default `us-east-1`), signed with SigV4 as its own role; Provision no longer sets those (ADR 0110).
400
400
  - It starts the task with `POST /tasks`, then checks `POST /tasks/check` every 5 s until the task is `done`, `failed` or `waiting_for_input`. Waiting returns immediately; end the app job rather than holding a worker while a person signs in.
401
401
  - It calls `progress(step count, note)` on every new step and at least once a minute, so the job's lease does not run out.
402
402
  - When `cancelled()` turns true it sends `POST /tasks/cancel` once and keeps checking until the task has `failed`.
package/dist/runtime.js CHANGED
@@ -885,7 +885,9 @@ export class Runtime {
885
885
  const owner = context.user.id;
886
886
  switch (name) {
887
887
  case PING_ACTION: {
888
- const answer = { ok: true, mode: this.options.mode, actions: this.inventory.actions, trusted: this.inventory.trusted, exposed: this.inventory.exposed, jobs: this.inventory.jobs.map((job) => job.name) };
888
+ // `hooks` is what the local gateway's hooks entrance serves under `isomorph dev` (data plane ADR 0112).
889
+ const hooks = this.inventory.jobs.flatMap((job) => job.trigger?.type === 'webhook' ? [{ job: job.name, provider: job.trigger.provider }] : []);
890
+ const answer = { ok: true, mode: this.options.mode, actions: this.inventory.actions, trusted: this.inventory.trusted, exposed: this.inventory.exposed, jobs: this.inventory.jobs.map((job) => job.name), hooks };
889
891
  return this.options.mode === 'gate' ? { ...answer, loadFailures: await this.loadFailures() } : answer;
890
892
  }
891
893
  case ENQUEUE_ACTION: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isomorph.ai/app-sdk",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",