@fieldwork-ai/cli 0.17.1 → 0.17.2

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
@@ -62,3 +62,7 @@ claude mcp add --transport http fieldwork https://app.getfieldwork.ai/mcp
62
62
  Source stays in the private app repository under `cli/`. Run `pnpm install --frozen-lockfile`, `pnpm build`, and `pnpm test` here. Publish the compiled package with `npm publish --access public`; the package includes `dist/` and npm metadata, without TypeScript source or source maps. `scripts/pack-cli.sh` builds and packs this same package into the compute image without depending on an npm release.
63
63
 
64
64
  The terminal chat client is the separate public `@fieldwork-ai/fieldwork-code` package (`fwcode`).
65
+
66
+ ## Graph authoring diagnostics
67
+
68
+ Use `fieldwork tool run automations_graph_examples --json` for executable examples and the coordinated code/graph publication format. `automations_graph_validate` takes the publication input without committing it. `automations_graph_test` uses isolated editable-table fixtures and captured notifications; it does not execute authored code or send email. `automations_graph_wait` returns bounded, compact progress, and `automations_graph_trace` accepts `detail: "full"` when saved payloads are needed. Contract failures include source/destination paths, required coordinated changes and retryability on stderr with a nonzero exit code.
package/dist/http.js CHANGED
@@ -121,6 +121,16 @@ export async function apiJson(pathname, init = {}) {
121
121
  const { path, message } = issue;
122
122
  return typeof message === "string" ? [`${Array.isArray(path) ? path.join(".") + ": " : ""}${message}`] : [];
123
123
  }) : [];
124
+ if (body?.code === "invalid_graph" && body.details && typeof body.details === "object" && !Array.isArray(body.details)) {
125
+ const diagnostic = body.details;
126
+ for (const key of ["action_definition_id", "automation_id", "automation_revision_id", "node_id", "source", "destination", "input", "output", "source_schema", "target_schema", "effect_changed", "credential_changed", "required_action"]) {
127
+ const value = diagnostic[key];
128
+ if (value !== undefined && value !== null)
129
+ details.push(`${key}: ${typeof value === "string" ? value : JSON.stringify(value)}`);
130
+ }
131
+ if (typeof body.retryable === "boolean")
132
+ details.push(`retryable: ${body.retryable}`);
133
+ }
124
134
  const prefix = typeof body?.tool === "string" ? `${body.tool}: ` : "";
125
135
  fail([prefix + message, ...details].join("\n"), exitCodeFor(res.status));
126
136
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fieldwork-ai/cli",
3
- "version": "0.17.1",
3
+ "version": "0.17.2",
4
4
  "description": "Fieldwork asset-management CLI",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",