workflowskill 0.1.0 → 0.2.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
@@ -16,7 +16,7 @@ A declarative workflow language for AI agents.
16
16
 
17
17
  ```yaml
18
18
  inputs:
19
- endpoint:
19
+ url:
20
20
  type: string
21
21
 
22
22
  outputs:
@@ -25,20 +25,24 @@ outputs:
25
25
  value: $steps.summarize.output.summary
26
26
 
27
27
  steps:
28
- - id: fetch
28
+ - id: scrape
29
29
  type: tool
30
- tool: http.request
30
+ tool: web.scrape
31
31
  inputs:
32
32
  url:
33
33
  type: string
34
- value: $inputs.endpoint
35
- outputs:
36
- body:
34
+ value: $inputs.url
35
+ selector:
37
36
  type: string
37
+ value: "p"
38
+ outputs:
39
+ text:
40
+ type: array
41
+ value: $result.results
38
42
 
39
43
  - id: summarize
40
44
  type: llm
41
- prompt: "Summarize this content: $steps.fetch.output.body"
45
+ prompt: "Summarize this content: $steps.scrape.output.text"
42
46
  outputs:
43
47
  summary:
44
48
  type: string
@@ -75,20 +79,13 @@ A WorkflowSkill is authored via natural conversation with any agent system that
75
79
  2. Your agent writes a WorkflowSkill.
76
80
  3. Run it deterministically: `workflowskill run <workflow.md>`
77
81
 
78
- Your agent will research the task, write the workflow file, and validate it with the CLI. The dev tools available to generated workflows are:
82
+ Your agent will research the task, write the workflow file, and validate it with the CLI. The bundled tools available to generated workflows are:
79
83
 
80
- | Tool | What it does | Needs credentials |
81
- | --------------- | ------------------------------------- | ----------------- |
82
- | `http.request` | HTTP GET/POST/PUT/PATCH/DELETE | No |
83
- | `html.select` | CSS selector extraction from HTML | No |
84
- | `gmail.search` | Search Gmail by query | Google OAuth2 |
85
- | `gmail.read` | Read a Gmail message by ID | Google OAuth2 |
86
- | `gmail.send` | Send email via Gmail | Google OAuth2 |
87
- | `sheets.read` | Read a Google Sheets range | Google OAuth2 |
88
- | `sheets.write` | Write to a Google Sheets range | Google OAuth2 |
89
- | `sheets.append` | Append rows to a Google Sheets range | Google OAuth2 |
84
+ | Tool | What it does |
85
+ | ------------- | ------------------------------------------------ |
86
+ | `web.scrape` | Fetch a URL and extract data via CSS selectors |
90
87
 
91
- `http.request` and `html.select` work with no setup. For Google tools, add credentials to `.env` (see [Configuration](#configuration)).
88
+ Works with no setup or credentials.
92
89
 
93
90
  **Evaluate the output:** Check `status` for overall success. If a step failed, its `error` field explains why. For `each` steps, `iterations` shows per-item results. Compare per-step `inputs` and `output` values against your expectations to find where the data flow broke down.
94
91
 
@@ -96,13 +93,13 @@ Your agent will research the task, write the workflow file, and validate it with
96
93
 
97
94
  WorkflowSkill workflows are YAML documents with five step types:
98
95
 
99
- | Step type | Description |
100
- | ------------- | ------------------------------------------------------------------------------------------ |
101
- | `tool` | Invoke an MCP server endpoint, dev tool (HTTP, Gmail, Sheets), or any registered function |
102
- | `llm` | Call a language model with a templated prompt |
103
- | `transform` | Filter, map, or sort data without side effects |
104
- | `conditional` | Branch execution based on an expression |
105
- | `exit` | Terminate early with a status and output |
96
+ | Step type | Description |
97
+ | ------------- | ------------------------------------------------------------------------------------ |
98
+ | `tool` | Invoke a builtin tool (`web.scrape`), MCP server endpoint, or any registered adapter |
99
+ | `llm` | Call a language model with a templated prompt |
100
+ | `transform` | Filter, map, or sort data without side effects |
101
+ | `conditional` | Branch execution based on an expression |
102
+ | `exit` | Terminate early with a status and output |
106
103
 
107
104
  Steps are connected by `$steps.<id>.output.<field>` references. Loops use `each`. Error handling uses `on_error: fail | ignore` (retries are a separate `retry:` field).
108
105
 
@@ -169,7 +166,7 @@ interface LLMAdapter {
169
166
 
170
167
  Built-in implementations:
171
168
 
172
- - **`DevToolAdapter`** — provides `http.request`, `html.select`, Gmail, and Google Sheets tools for standalone use
169
+ - **`BuiltinToolAdapter`** — provides `web.scrape` for standalone use
173
170
  - **`AnthropicLLMAdapter`** — wraps the Anthropic SDK; reads `ANTHROPIC_API_KEY` from the environment
174
171
 
175
172
  For testing, **`MockToolAdapter`** and **`MockLLMAdapter`** let you supply handler functions without any external dependencies.
@@ -215,23 +212,9 @@ Create a `.env` file in your project directory (or export env vars in your shell
215
212
 
216
213
  ```
217
214
  ANTHROPIC_API_KEY=sk-ant-... # Required for LLM steps in workflows
218
- GOOGLE_CLIENT_ID=... # Required for Gmail and Sheets tools
219
- GOOGLE_CLIENT_SECRET=...
220
- GOOGLE_REFRESH_TOKEN=...
221
215
  ```
222
216
 
223
- Missing `ANTHROPIC_API_KEY` causes LLM steps to fail with a clear error (no silent fallback). Missing Google credentials → Google tools not registered (warning if a workflow references them).
224
-
225
- ### Getting Google OAuth2 credentials
226
-
227
- 1. Go to [Google Cloud Console](https://console.cloud.google.com/) and create or select a project.
228
- 2. Enable the APIs you need: **Gmail API** and/or **Google Sheets API** under _APIs & Services > Library_.
229
- 3. Go to _APIs & Services > OAuth consent screen_. Choose **External** and fill in the app name and your email.
230
- 4. Go to _APIs & Services > Credentials > Create Credentials > OAuth client ID_. Choose **Desktop app**. Copy the **Client ID** and **Client Secret** into your `.env`.
231
- 5. Get a refresh token. The easiest way is [Google's OAuth 2.0 Playground](https://developers.google.com/oauthplayground/):
232
- - Click the gear icon, check **Use your own OAuth credentials**, and enter your Client ID and Client Secret.
233
- - In the left panel, select the scopes you need: `https://www.googleapis.com/auth/gmail.modify` (under **Gmail API v1**) and/or `https://www.googleapis.com/auth/spreadsheets` (under **Sheets API v4**). Click **Authorize APIs** and sign in.
234
- - Click **Exchange authorization code for tokens**. Copy the **Refresh token** into your `.env`.
217
+ Missing `ANTHROPIC_API_KEY` causes LLM steps to fail with a clear error (no silent fallback).
235
218
 
236
219
  ## Documentation
237
220
 
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { S as ParseError, f as loadConfig, h as validateWorkflow, i as runWorkflowSkill, m as AnthropicLLMAdapter, p as DevToolAdapter, w as parseWorkflowFromMd } from "../runtime-BY1CFnew.mjs";
2
+ import { S as ParseError, f as loadConfig, h as validateWorkflow, i as runWorkflowSkill, m as AnthropicLLMAdapter, p as BuiltinToolAdapter, w as parseWorkflowFromMd } from "../runtime-CD81H1bx.mjs";
3
3
  import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
4
  import { basename, join } from "node:path";
5
5
  import { Command } from "commander";
@@ -156,7 +156,7 @@ async function runCommand(file, options) {
156
156
  process.exit(1);
157
157
  }
158
158
  const config = loadConfig();
159
- const toolAdapter = await DevToolAdapter.create(config);
159
+ const toolAdapter = await BuiltinToolAdapter.create();
160
160
  let llmAdapter;
161
161
  if (config.anthropicApiKey) llmAdapter = new AnthropicLLMAdapter(config.anthropicApiKey);
162
162
  else llmAdapter = { call() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/cli/validate.ts","../../src/cli/format.ts","../../src/cli/run.ts","../../src/cli/index.ts"],"sourcesContent":["// CLI: validate command — check workflows without running them.\n\nimport { readFileSync } from 'node:fs';\nimport { parseWorkflowFromMd } from '../parser/index.js';\nimport { ParseError } from '../parser/index.js';\nimport { validateWorkflow } from '../validator/index.js';\n\nexport function validateCommand(files: string[]): void {\n let hasErrors = false;\n\n for (const file of files) {\n let content: string;\n try {\n content = readFileSync(file, 'utf-8');\n } catch {\n console.error(`✗ ${file}: Cannot read file`);\n hasErrors = true;\n continue;\n }\n\n // Parse\n let workflow;\n try {\n workflow = parseWorkflowFromMd(content);\n } catch (err) {\n if (err instanceof ParseError) {\n console.error(`✗ ${file}: ${err.message}`);\n for (const detail of err.details) {\n console.error(` ${detail.path}: ${detail.message}`);\n }\n } else {\n console.error(`✗ ${file}: ${err instanceof Error ? err.message : String(err)}`);\n }\n hasErrors = true;\n continue;\n }\n\n // Validate\n const result = validateWorkflow(workflow);\n if (!result.valid) {\n console.error(`✗ ${file}: Validation errors`);\n for (const error of result.errors) {\n console.error(` ${error.path}: ${error.message}`);\n }\n hasErrors = true;\n continue;\n }\n\n console.log(`✓ ${file} (${workflow.steps.length} steps)`);\n }\n\n if (hasErrors) {\n process.exit(1);\n }\n}\n","// CLI formatting module — runtime event rendering.\n// Uses picocolors for terminal colors and writes to stderr (keeping stdout clean for output).\n\nimport pc from 'picocolors';\nimport type { RuntimeEvent } from '../types/index.js';\n\n// ─── Runtime event renderer ───────────────────────────────────────────────────\n\n// Track in-progress step names for the \"running...\" line (keyed by stepId).\nconst runtimeActiveSteps = new Map<string, string>();\n\n// Whether stderr is a real TTY (enables in-place cursor movement).\nconst isTTY = !!process.stderr.isTTY;\n\n// ANSI helpers for in-place line updates (only used when isTTY is true).\nconst MOVE_UP = (n: number): string => `\\x1b[${n}A`;\nconst CLEAR_LINE = '\\x1b[2K\\r';\nconst MOVE_DOWN = (n: number): string => `\\x1b[${n}B`;\n\n// Lines printed between step_start and step_complete (retries, each_progress).\nlet linesSinceStepStart = 0;\n// Whether each_progress has been printed at least once for the current step.\nlet hasEachProgress = false;\n\n/**\n * Render a runtime event to stderr with live step-by-step progress output.\n * All CLI live output goes to stderr; stdout is reserved for the JSON run log.\n *\n * On TTY: the yellow \"running...\" line is overwritten in-place by the green/red\n * completion line, and each_progress updates a single line instead of appending.\n * On non-TTY (pipes, files): append-only fallback — existing behavior.\n */\nexport function renderRuntimeEvent(event: RuntimeEvent): void {\n switch (event.type) {\n case 'workflow_start':\n process.stderr.write(`\\n${pc.bold('▶')} Running ${pc.cyan(event.workflow)} (${event.totalSteps} step${event.totalSteps !== 1 ? 's' : ''})\\n\\n`);\n break;\n\n case 'step_start': {\n linesSinceStepStart = 0;\n hasEachProgress = false;\n const typeLabel = event.tool ? `[tool] (${event.tool})` : `[${event.stepType}]`;\n const line = ` ${pc.yellow('●')} ${event.stepId} ${pc.dim(typeLabel)} ${pc.dim('running...')}`;\n runtimeActiveSteps.set(event.stepId, line);\n process.stderr.write(line + '\\n');\n break;\n }\n\n case 'step_complete': {\n runtimeActiveSteps.delete(event.stepId);\n const durationStr = formatDuration(event.duration_ms);\n const extras: string[] = [];\n if (event.tokens) extras.push(`${event.tokens.input + event.tokens.output} tokens`);\n if (event.iterations !== undefined) extras.push(`${event.iterations} iterations`);\n const extraStr = extras.length > 0 ? pc.dim(` (${extras.join(', ')})`) : '';\n const completionLine =\n event.status === 'success'\n ? ` ${pc.green('✓')} ${event.stepId} ${pc.dim(durationStr)}${extraStr}`\n : ` ${pc.red('✗')} ${event.stepId} ${pc.dim(durationStr)} ${pc.red('failed')}${extraStr}`;\n\n if (isTTY) {\n // Move up past any intermediate lines + the \"running...\" line, overwrite it,\n // then move the cursor back down past the intermediate lines.\n const up = linesSinceStepStart + 1;\n process.stderr.write(\n MOVE_UP(up) + CLEAR_LINE + completionLine + '\\n' +\n (linesSinceStepStart > 0 ? MOVE_DOWN(linesSinceStepStart) : ''),\n );\n } else {\n process.stderr.write(completionLine + '\\n');\n }\n break;\n }\n\n case 'step_skip':\n runtimeActiveSteps.delete(event.stepId);\n process.stderr.write(` ${pc.dim('○')} ${pc.dim(event.stepId)} ${pc.dim('skipped')}: ${pc.dim(event.reason)}\\n`);\n break;\n\n case 'step_retry':\n process.stderr.write(` ${pc.yellow('↻')} ${event.stepId} retry #${event.attempt}: ${pc.dim(event.error)}\\n`);\n linesSinceStepStart++;\n break;\n\n case 'step_error':\n process.stderr.write(` ${pc.red('✗')} ${event.stepId} error (${event.onError}): ${pc.dim(event.error)}\\n`);\n linesSinceStepStart++;\n break;\n\n case 'each_progress':\n if (isTTY && hasEachProgress) {\n // Overwrite the previous each_progress line in-place.\n process.stderr.write(MOVE_UP(1) + CLEAR_LINE + ` ${pc.dim(`${event.current}/${event.total}`)}\\n`);\n } else {\n process.stderr.write(` ${pc.dim(`${event.current}/${event.total}`)}\\n`);\n linesSinceStepStart++;\n hasEachProgress = true;\n }\n break;\n\n case 'workflow_complete': {\n const durationStr = formatDuration(event.duration_ms);\n const { steps_executed, steps_skipped, total_tokens } = event.summary;\n const parts: string[] = [`${steps_executed} executed`];\n if (steps_skipped > 0) parts.push(`${steps_skipped} skipped`);\n if (total_tokens > 0) parts.push(`${total_tokens} tokens`);\n const summary = parts.join(', ');\n if (event.status === 'success') {\n process.stderr.write(`\\n${pc.green(pc.bold('✓'))} ${pc.green('Success')} in ${durationStr} ${pc.dim(`(${summary})`)}\\n`);\n } else {\n process.stderr.write(`\\n${pc.red(pc.bold('✗'))} ${pc.red('Failed')} in ${durationStr} ${pc.dim(`(${summary})`)}\\n`);\n }\n break;\n }\n }\n}\n\n/** Reset runtime format state (for testing). */\nexport function resetRuntimeFormatState(): void {\n runtimeActiveSteps.clear();\n linesSinceStepStart = 0;\n hasEachProgress = false;\n}\n\n/** Format a duration in milliseconds as a human-readable string (e.g. \"1.2s\", \"2m30s\"). */\nexport function formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`;\n const totalSeconds = ms / 1000;\n if (totalSeconds < 60) return `${totalSeconds.toFixed(1)}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = Math.round(totalSeconds % 60);\n return `${minutes}m${seconds}s`;\n}\n","// CLI: run command — execute a workflow and print the run log.\n\nimport { mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { basename, join } from 'node:path';\nimport { runWorkflowSkill } from '../runtime/index.js';\nimport type { RunLog } from '../types/index.js';\nimport { loadConfig } from '../config/index.js';\nimport { AnthropicLLMAdapter } from '../adapters/anthropic-llm-adapter.js';\nimport { DevToolAdapter } from '../dev-tools/dev-tool-adapter.js';\nimport type { LLMAdapter, LLMResult } from '../types/index.js';\nimport { renderRuntimeEvent } from './format.js';\n\n/** Write a run log to stdout and persist it to disk. */\nfunction writeRunLog(log: RunLog, logDir: string): void {\n const json = JSON.stringify(log, null, 2);\n mkdirSync(logDir, { recursive: true });\n const safeTimestamp = log.started_at.replace(/:/g, '-');\n const logFile = join(logDir, `${log.workflow}-${safeTimestamp}.json`);\n writeFileSync(logFile, json + '\\n', 'utf-8');\n console.error(`Run log written to ${logFile}`);\n console.log(json);\n}\n\nexport async function runCommand(\n file: string,\n options: { input?: string; logDir?: string },\n): Promise<void> {\n const logDir = options.logDir ?? 'runs';\n const workflowName = basename(file, '.md');\n\n let content: string;\n try {\n content = readFileSync(file, 'utf-8');\n } catch (err) {\n console.error(`Error: Cannot read file \"${file}\": ${err instanceof Error ? err.message : String(err)}`);\n process.exit(1);\n }\n\n // Parse inputs\n let inputs: Record<string, unknown> = {};\n if (options.input) {\n try {\n inputs = JSON.parse(options.input) as Record<string, unknown>;\n } catch {\n console.error('Error: --input must be valid JSON');\n process.exit(1);\n }\n }\n\n // Load config and create adapters\n const config = loadConfig();\n const toolAdapter = await DevToolAdapter.create(config);\n let llmAdapter: LLMAdapter;\n if (config.anthropicApiKey) {\n llmAdapter = new AnthropicLLMAdapter(config.anthropicApiKey);\n } else {\n // No API key — create an adapter that fails with a clear error on first use.\n // Workflows without LLM steps (e.g., hello-world.md) still work.\n llmAdapter = {\n call(): Promise<LLMResult> {\n throw new Error(\n 'ANTHROPIC_API_KEY not set. This workflow has LLM steps that require it.\\n' +\n 'Set it in runtime/.env or export it in your shell: export ANTHROPIC_API_KEY=sk-ant-...',\n );\n },\n };\n }\n\n const log = await runWorkflowSkill({\n content,\n inputs,\n toolAdapter,\n llmAdapter,\n workflowName,\n onEvent: renderRuntimeEvent,\n });\n\n writeRunLog(log, logDir);\n process.exit(log.status === 'success' ? 0 : 1);\n}\n","#!/usr/bin/env node\n// WorkflowSkill CLI — validate and run workflows.\n\nimport { Command } from 'commander';\nimport { validateCommand } from './validate.js';\nimport { runCommand } from './run.js';\n\nconst program = new Command();\n\nprogram\n .name('workflowskill')\n .description('WorkflowSkill runtime CLI')\n .version('0.1.0');\n\nprogram\n .command('validate')\n .description('Validate one or more workflow SKILL.md files without executing')\n .argument('<files...>', 'Workflow files to validate')\n .action(validateCommand);\n\nprogram\n .command('run <file>')\n .description('Execute a workflow SKILL.md file')\n .option('-i, --input <json>', 'Workflow inputs as JSON string', '{}')\n .option('-l, --log-dir <dir>', 'Directory to write run logs', 'runs')\n .action(runCommand);\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/cli/validate.ts","../../src/cli/format.ts","../../src/cli/run.ts","../../src/cli/index.ts"],"sourcesContent":["// CLI: validate command — check workflows without running them.\n\nimport { readFileSync } from 'node:fs';\nimport { parseWorkflowFromMd } from '../parser/index.js';\nimport { ParseError } from '../parser/index.js';\nimport { validateWorkflow } from '../validator/index.js';\n\nexport function validateCommand(files: string[]): void {\n let hasErrors = false;\n\n for (const file of files) {\n let content: string;\n try {\n content = readFileSync(file, 'utf-8');\n } catch {\n console.error(`✗ ${file}: Cannot read file`);\n hasErrors = true;\n continue;\n }\n\n // Parse\n let workflow;\n try {\n workflow = parseWorkflowFromMd(content);\n } catch (err) {\n if (err instanceof ParseError) {\n console.error(`✗ ${file}: ${err.message}`);\n for (const detail of err.details) {\n console.error(` ${detail.path}: ${detail.message}`);\n }\n } else {\n console.error(`✗ ${file}: ${err instanceof Error ? err.message : String(err)}`);\n }\n hasErrors = true;\n continue;\n }\n\n // Validate\n const result = validateWorkflow(workflow);\n if (!result.valid) {\n console.error(`✗ ${file}: Validation errors`);\n for (const error of result.errors) {\n console.error(` ${error.path}: ${error.message}`);\n }\n hasErrors = true;\n continue;\n }\n\n console.log(`✓ ${file} (${workflow.steps.length} steps)`);\n }\n\n if (hasErrors) {\n process.exit(1);\n }\n}\n","// CLI formatting module — runtime event rendering.\n// Uses picocolors for terminal colors and writes to stderr (keeping stdout clean for output).\n\nimport pc from 'picocolors';\nimport type { RuntimeEvent } from '../types/index.js';\n\n// ─── Runtime event renderer ───────────────────────────────────────────────────\n\n// Track in-progress step names for the \"running...\" line (keyed by stepId).\nconst runtimeActiveSteps = new Map<string, string>();\n\n// Whether stderr is a real TTY (enables in-place cursor movement).\nconst isTTY = !!process.stderr.isTTY;\n\n// ANSI helpers for in-place line updates (only used when isTTY is true).\nconst MOVE_UP = (n: number): string => `\\x1b[${n}A`;\nconst CLEAR_LINE = '\\x1b[2K\\r';\nconst MOVE_DOWN = (n: number): string => `\\x1b[${n}B`;\n\n// Lines printed between step_start and step_complete (retries, each_progress).\nlet linesSinceStepStart = 0;\n// Whether each_progress has been printed at least once for the current step.\nlet hasEachProgress = false;\n\n/**\n * Render a runtime event to stderr with live step-by-step progress output.\n * All CLI live output goes to stderr; stdout is reserved for the JSON run log.\n *\n * On TTY: the yellow \"running...\" line is overwritten in-place by the green/red\n * completion line, and each_progress updates a single line instead of appending.\n * On non-TTY (pipes, files): append-only fallback — existing behavior.\n */\nexport function renderRuntimeEvent(event: RuntimeEvent): void {\n switch (event.type) {\n case 'workflow_start':\n process.stderr.write(`\\n${pc.bold('▶')} Running ${pc.cyan(event.workflow)} (${event.totalSteps} step${event.totalSteps !== 1 ? 's' : ''})\\n\\n`);\n break;\n\n case 'step_start': {\n linesSinceStepStart = 0;\n hasEachProgress = false;\n const typeLabel = event.tool ? `[tool] (${event.tool})` : `[${event.stepType}]`;\n const line = ` ${pc.yellow('●')} ${event.stepId} ${pc.dim(typeLabel)} ${pc.dim('running...')}`;\n runtimeActiveSteps.set(event.stepId, line);\n process.stderr.write(line + '\\n');\n break;\n }\n\n case 'step_complete': {\n runtimeActiveSteps.delete(event.stepId);\n const durationStr = formatDuration(event.duration_ms);\n const extras: string[] = [];\n if (event.tokens) extras.push(`${event.tokens.input + event.tokens.output} tokens`);\n if (event.iterations !== undefined) extras.push(`${event.iterations} iterations`);\n const extraStr = extras.length > 0 ? pc.dim(` (${extras.join(', ')})`) : '';\n const completionLine =\n event.status === 'success'\n ? ` ${pc.green('✓')} ${event.stepId} ${pc.dim(durationStr)}${extraStr}`\n : ` ${pc.red('✗')} ${event.stepId} ${pc.dim(durationStr)} ${pc.red('failed')}${extraStr}`;\n\n if (isTTY) {\n // Move up past any intermediate lines + the \"running...\" line, overwrite it,\n // then move the cursor back down past the intermediate lines.\n const up = linesSinceStepStart + 1;\n process.stderr.write(\n MOVE_UP(up) + CLEAR_LINE + completionLine + '\\n' +\n (linesSinceStepStart > 0 ? MOVE_DOWN(linesSinceStepStart) : ''),\n );\n } else {\n process.stderr.write(completionLine + '\\n');\n }\n break;\n }\n\n case 'step_skip':\n runtimeActiveSteps.delete(event.stepId);\n process.stderr.write(` ${pc.dim('○')} ${pc.dim(event.stepId)} ${pc.dim('skipped')}: ${pc.dim(event.reason)}\\n`);\n break;\n\n case 'step_retry':\n process.stderr.write(` ${pc.yellow('↻')} ${event.stepId} retry #${event.attempt}: ${pc.dim(event.error)}\\n`);\n linesSinceStepStart++;\n break;\n\n case 'step_error':\n process.stderr.write(` ${pc.red('✗')} ${event.stepId} error (${event.onError}): ${pc.dim(event.error)}\\n`);\n linesSinceStepStart++;\n break;\n\n case 'each_progress':\n if (isTTY && hasEachProgress) {\n // Overwrite the previous each_progress line in-place.\n process.stderr.write(MOVE_UP(1) + CLEAR_LINE + ` ${pc.dim(`${event.current}/${event.total}`)}\\n`);\n } else {\n process.stderr.write(` ${pc.dim(`${event.current}/${event.total}`)}\\n`);\n linesSinceStepStart++;\n hasEachProgress = true;\n }\n break;\n\n case 'workflow_complete': {\n const durationStr = formatDuration(event.duration_ms);\n const { steps_executed, steps_skipped, total_tokens } = event.summary;\n const parts: string[] = [`${steps_executed} executed`];\n if (steps_skipped > 0) parts.push(`${steps_skipped} skipped`);\n if (total_tokens > 0) parts.push(`${total_tokens} tokens`);\n const summary = parts.join(', ');\n if (event.status === 'success') {\n process.stderr.write(`\\n${pc.green(pc.bold('✓'))} ${pc.green('Success')} in ${durationStr} ${pc.dim(`(${summary})`)}\\n`);\n } else {\n process.stderr.write(`\\n${pc.red(pc.bold('✗'))} ${pc.red('Failed')} in ${durationStr} ${pc.dim(`(${summary})`)}\\n`);\n }\n break;\n }\n }\n}\n\n/** Reset runtime format state (for testing). */\nexport function resetRuntimeFormatState(): void {\n runtimeActiveSteps.clear();\n linesSinceStepStart = 0;\n hasEachProgress = false;\n}\n\n/** Format a duration in milliseconds as a human-readable string (e.g. \"1.2s\", \"2m30s\"). */\nexport function formatDuration(ms: number): string {\n if (ms < 1000) return `${ms}ms`;\n const totalSeconds = ms / 1000;\n if (totalSeconds < 60) return `${totalSeconds.toFixed(1)}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = Math.round(totalSeconds % 60);\n return `${minutes}m${seconds}s`;\n}\n","// CLI: run command — execute a workflow and print the run log.\n\nimport { mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { basename, join } from 'node:path';\nimport { runWorkflowSkill } from '../runtime/index.js';\nimport type { RunLog } from '../types/index.js';\nimport { loadConfig } from '../config/index.js';\nimport { AnthropicLLMAdapter } from '../adapters/anthropic-llm-adapter.js';\nimport { BuiltinToolAdapter } from '../tools/builtin-tool-adapter.js';\nimport type { LLMAdapter, LLMResult } from '../types/index.js';\nimport { renderRuntimeEvent } from './format.js';\n\n/** Write a run log to stdout and persist it to disk. */\nfunction writeRunLog(log: RunLog, logDir: string): void {\n const json = JSON.stringify(log, null, 2);\n mkdirSync(logDir, { recursive: true });\n const safeTimestamp = log.started_at.replace(/:/g, '-');\n const logFile = join(logDir, `${log.workflow}-${safeTimestamp}.json`);\n writeFileSync(logFile, json + '\\n', 'utf-8');\n console.error(`Run log written to ${logFile}`);\n console.log(json);\n}\n\nexport async function runCommand(\n file: string,\n options: { input?: string; logDir?: string },\n): Promise<void> {\n const logDir = options.logDir ?? 'runs';\n const workflowName = basename(file, '.md');\n\n let content: string;\n try {\n content = readFileSync(file, 'utf-8');\n } catch (err) {\n console.error(`Error: Cannot read file \"${file}\": ${err instanceof Error ? err.message : String(err)}`);\n process.exit(1);\n }\n\n // Parse inputs\n let inputs: Record<string, unknown> = {};\n if (options.input) {\n try {\n inputs = JSON.parse(options.input) as Record<string, unknown>;\n } catch {\n console.error('Error: --input must be valid JSON');\n process.exit(1);\n }\n }\n\n // Load config and create adapters\n const config = loadConfig();\n const toolAdapter = await BuiltinToolAdapter.create();\n let llmAdapter: LLMAdapter;\n if (config.anthropicApiKey) {\n llmAdapter = new AnthropicLLMAdapter(config.anthropicApiKey);\n } else {\n // No API key — create an adapter that fails with a clear error on first use.\n // Workflows without LLM steps (e.g., hello-world.md) still work.\n llmAdapter = {\n call(): Promise<LLMResult> {\n throw new Error(\n 'ANTHROPIC_API_KEY not set. This workflow has LLM steps that require it.\\n' +\n 'Set it in runtime/.env or export it in your shell: export ANTHROPIC_API_KEY=sk-ant-...',\n );\n },\n };\n }\n\n const log = await runWorkflowSkill({\n content,\n inputs,\n toolAdapter,\n llmAdapter,\n workflowName,\n onEvent: renderRuntimeEvent,\n });\n\n writeRunLog(log, logDir);\n process.exit(log.status === 'success' ? 0 : 1);\n}\n","#!/usr/bin/env node\n// WorkflowSkill CLI — validate and run workflows.\n\nimport { Command } from 'commander';\nimport { validateCommand } from './validate.js';\nimport { runCommand } from './run.js';\n\nconst program = new Command();\n\nprogram\n .name('workflowskill')\n .description('WorkflowSkill runtime CLI')\n .version('0.1.0');\n\nprogram\n .command('validate')\n .description('Validate one or more workflow SKILL.md files without executing')\n .argument('<files...>', 'Workflow files to validate')\n .action(validateCommand);\n\nprogram\n .command('run <file>')\n .description('Execute a workflow SKILL.md file')\n .option('-i, --input <json>', 'Workflow inputs as JSON string', '{}')\n .option('-l, --log-dir <dir>', 'Directory to write run logs', 'runs')\n .action(runCommand);\n\nprogram.parse();\n"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -451,17 +451,23 @@ declare class AnthropicLLMAdapter implements LLMAdapter {
451
451
  call(model: string | undefined, prompt: string, responseFormat?: Record<string, unknown>): Promise<LLMResult>;
452
452
  }
453
453
  //#endregion
454
- //#region src/config/index.d.ts
455
- /** Google OAuth2 credentials for Gmail/Sheets tools. */
456
- interface GoogleCredentials {
457
- clientId: string;
458
- clientSecret: string;
459
- refreshToken: string;
454
+ //#region src/tools/builtin-tool-adapter.d.ts
455
+ declare class BuiltinToolAdapter implements ToolAdapter {
456
+ private tools;
457
+ private register;
458
+ has(toolName: string): boolean;
459
+ list(): ToolDescriptor[];
460
+ invoke(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
461
+ /**
462
+ * Create a BuiltinToolAdapter with all bundled tools registered.
463
+ */
464
+ static create(): Promise<BuiltinToolAdapter>;
460
465
  }
466
+ //#endregion
467
+ //#region src/config/index.d.ts
461
468
  /** WorkflowSkill configuration. */
462
469
  interface WorkflowSkillConfig {
463
470
  anthropicApiKey?: string;
464
- googleCredentials?: GoogleCredentials;
465
471
  }
466
472
  /**
467
473
  * Load configuration from environment variables, with .env fallback.
@@ -474,20 +480,6 @@ interface WorkflowSkillConfig {
474
480
  */
475
481
  declare function loadConfig(cwd?: string): WorkflowSkillConfig;
476
482
  //#endregion
477
- //#region src/dev-tools/dev-tool-adapter.d.ts
478
- declare class DevToolAdapter implements ToolAdapter {
479
- private tools;
480
- private register;
481
- has(toolName: string): boolean;
482
- list(): ToolDescriptor[];
483
- invoke(toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
484
- /**
485
- * Create a DevToolAdapter with all available tools registered.
486
- * Google tools are only registered if credentials are provided.
487
- */
488
- static create(config: WorkflowSkillConfig): Promise<DevToolAdapter>;
489
- }
490
- //#endregion
491
483
  //#region src/executor/types.d.ts
492
484
  /** Additional context attached to a step execution error. */
493
485
  interface StepErrorContext {
@@ -633,5 +625,5 @@ declare function runWorkflowSkill(options: RunWorkflowSkillOptions): Promise<Run
633
625
  //#region src/skill/index.d.ts
634
626
  declare const AUTHORING_SKILL: string;
635
627
  //#endregion
636
- export { AUTHORING_SKILL, AnthropicLLMAdapter, type ConditionalOutput, ConditionalStep, DevToolAdapter, type DispatchResult, EvalError, type ExitOutput, ExitStatus, ExitStep, FieldSchema, type GoogleCredentials, JsonSchema, LLMAdapter, type LLMHandler, LLMResult, LLMStep, LexError, MockLLMAdapter, MockToolAdapter, OnError, ParseError, type ParseErrorDetail, ParseExprError, ParsedSkill, RetryPolicy, RetryRecord, RunLog, RunLogError, type RunOptions, RunStatus, RunSummary, type RunWorkflowSkillOptions, RuntimeContext, RuntimeEvent, SchemaType, SkillFrontmatter, SortDirection, Step, StepBase, type StepErrorContext, StepExecutionError, StepInput, type StepOutput, StepRecord, StepRunStatus, StepType, TokenUsage, ToolAdapter, ToolDescriptor, type ToolHandler, ToolResult, ToolStep, TransformFilterStep, TransformMapStep, TransformOperation, TransformSortStep, TransformStep, type ValidateWorkflowSkillOptions, type ValidateWorkflowSkillResult, ValidationError, ValidationResult, WorkflowDefinition, WorkflowExecutionError, WorkflowInput, WorkflowOutput, type WorkflowSkillConfig, buildFailedRunLog, dispatch, executeConditional, executeExit, executeLLM, executeTool, executeTransform, interpolatePrompt, loadConfig, parseSkillMd, parseWorkflowFromMd, parseWorkflowYaml, resolveExpression, runWorkflow, runWorkflowSkill, validateWorkflow, validateWorkflowSkill };
628
+ export { AUTHORING_SKILL, AnthropicLLMAdapter, BuiltinToolAdapter, type ConditionalOutput, ConditionalStep, type DispatchResult, EvalError, type ExitOutput, ExitStatus, ExitStep, FieldSchema, JsonSchema, LLMAdapter, type LLMHandler, LLMResult, LLMStep, LexError, MockLLMAdapter, MockToolAdapter, OnError, ParseError, type ParseErrorDetail, ParseExprError, ParsedSkill, RetryPolicy, RetryRecord, RunLog, RunLogError, type RunOptions, RunStatus, RunSummary, type RunWorkflowSkillOptions, RuntimeContext, RuntimeEvent, SchemaType, SkillFrontmatter, SortDirection, Step, StepBase, type StepErrorContext, StepExecutionError, StepInput, type StepOutput, StepRecord, StepRunStatus, StepType, TokenUsage, ToolAdapter, ToolDescriptor, type ToolHandler, ToolResult, ToolStep, TransformFilterStep, TransformMapStep, TransformOperation, TransformSortStep, TransformStep, type ValidateWorkflowSkillOptions, type ValidateWorkflowSkillResult, ValidationError, ValidationResult, WorkflowDefinition, WorkflowExecutionError, WorkflowInput, WorkflowOutput, type WorkflowSkillConfig, buildFailedRunLog, dispatch, executeConditional, executeExit, executeLLM, executeTool, executeTransform, interpolatePrompt, loadConfig, parseSkillMd, parseWorkflowFromMd, parseWorkflowYaml, resolveExpression, runWorkflow, runWorkflowSkill, validateWorkflow, validateWorkflowSkill };
637
629
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/parser/index.ts","../src/expression/lexer.ts","../src/expression/parser.ts","../src/expression/evaluator.ts","../src/expression/index.ts","../src/validator/index.ts","../src/adapters/mock-tool-adapter.ts","../src/adapters/mock-llm-adapter.ts","../src/adapters/anthropic-llm-adapter.ts","../src/config/index.ts","../src/dev-tools/dev-tool-adapter.ts","../src/executor/types.ts","../src/executor/transform.ts","../src/executor/conditional.ts","../src/executor/exit.ts","../src/executor/tool.ts","../src/executor/llm.ts","../src/executor/index.ts","../src/runtime/index.ts","../src/skill/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/index.ts","../src/parser/index.ts","../src/expression/lexer.ts","../src/expression/parser.ts","../src/expression/evaluator.ts","../src/expression/index.ts","../src/validator/index.ts","../src/adapters/mock-tool-adapter.ts","../src/adapters/mock-llm-adapter.ts","../src/adapters/anthropic-llm-adapter.ts","../src/tools/builtin-tool-adapter.ts","../src/config/index.ts","../src/executor/types.ts","../src/executor/transform.ts","../src/executor/conditional.ts","../src/executor/exit.ts","../src/executor/tool.ts","../src/executor/llm.ts","../src/executor/index.ts","../src/runtime/index.ts","../src/skill/index.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { C as parseSkillMd, S as ParseError, T as parseWorkflowYaml, _ as interpolatePrompt, a as dispatch, b as ParseExprError, c as StepExecutionError, d as executeTransform, f as loadConfig, g as validateWorkflowSkill, h as validateWorkflow, i as runWorkflowSkill, l as executeExit, m as AnthropicLLMAdapter, n as buildFailedRunLog, o as executeLLM, p as DevToolAdapter, r as runWorkflow, s as executeTool, t as WorkflowExecutionError, u as executeConditional, v as resolveExpression, w as parseWorkflowFromMd, x as LexError, y as EvalError } from "./runtime-BY1CFnew.mjs";
1
+ import { C as parseSkillMd, S as ParseError, T as parseWorkflowYaml, _ as interpolatePrompt, a as dispatch, b as ParseExprError, c as StepExecutionError, d as executeTransform, f as loadConfig, g as validateWorkflowSkill, h as validateWorkflow, i as runWorkflowSkill, l as executeExit, m as AnthropicLLMAdapter, n as buildFailedRunLog, o as executeLLM, p as BuiltinToolAdapter, r as runWorkflow, s as executeTool, t as WorkflowExecutionError, u as executeConditional, v as resolveExpression, w as parseWorkflowFromMd, x as LexError, y as EvalError } from "./runtime-CD81H1bx.mjs";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
 
@@ -57,5 +57,5 @@ var MockLLMAdapter = class {
57
57
  const AUTHORING_SKILL = readFileSync(join(import.meta.dirname, "../../skill/SKILL.md"), "utf-8");
58
58
 
59
59
  //#endregion
60
- export { AUTHORING_SKILL, AnthropicLLMAdapter, DevToolAdapter, EvalError, LexError, MockLLMAdapter, MockToolAdapter, ParseError, ParseExprError, StepExecutionError, WorkflowExecutionError, buildFailedRunLog, dispatch, executeConditional, executeExit, executeLLM, executeTool, executeTransform, interpolatePrompt, loadConfig, parseSkillMd, parseWorkflowFromMd, parseWorkflowYaml, resolveExpression, runWorkflow, runWorkflowSkill, validateWorkflow, validateWorkflowSkill };
60
+ export { AUTHORING_SKILL, AnthropicLLMAdapter, BuiltinToolAdapter, EvalError, LexError, MockLLMAdapter, MockToolAdapter, ParseError, ParseExprError, StepExecutionError, WorkflowExecutionError, buildFailedRunLog, dispatch, executeConditional, executeExit, executeLLM, executeTool, executeTransform, interpolatePrompt, loadConfig, parseSkillMd, parseWorkflowFromMd, parseWorkflowYaml, resolveExpression, runWorkflow, runWorkflowSkill, validateWorkflow, validateWorkflowSkill };
61
61
  //# sourceMappingURL=index.mjs.map
@@ -1113,8 +1113,8 @@ var AnthropicLLMAdapter = class {
1113
1113
  };
1114
1114
 
1115
1115
  //#endregion
1116
- //#region src/dev-tools/dev-tool-adapter.ts
1117
- var DevToolAdapter = class DevToolAdapter {
1116
+ //#region src/tools/builtin-tool-adapter.ts
1117
+ var BuiltinToolAdapter = class BuiltinToolAdapter {
1118
1118
  tools = /* @__PURE__ */ new Map();
1119
1119
  register(descriptor, handler) {
1120
1120
  this.tools.set(descriptor.name, {
@@ -1137,30 +1137,12 @@ var DevToolAdapter = class DevToolAdapter {
1137
1137
  return entry.handler(args);
1138
1138
  }
1139
1139
  /**
1140
- * Create a DevToolAdapter with all available tools registered.
1141
- * Google tools are only registered if credentials are provided.
1140
+ * Create a BuiltinToolAdapter with all bundled tools registered.
1142
1141
  */
1143
- static async create(config) {
1144
- const adapter = new DevToolAdapter();
1145
- const httpMod = await import("./http-request-k9bp5joL.mjs");
1146
- adapter.register(httpMod.descriptor, httpMod.handler);
1147
- const htmlMod = await import("./html-select-BZPYAr6k.mjs");
1148
- adapter.register(htmlMod.descriptor, htmlMod.handler);
1149
- if (config.googleCredentials) {
1150
- const { OAuth2Client } = await import("google-auth-library");
1151
- const auth = new OAuth2Client(config.googleCredentials.clientId, config.googleCredentials.clientSecret);
1152
- auth.setCredentials({ refresh_token: config.googleCredentials.refreshToken });
1153
- const gmailMod = await import("./gmail-CYBJ6Dxa.mjs");
1154
- const gmailHandlers = gmailMod.createHandlers(auth);
1155
- adapter.register(gmailMod.searchDescriptor, gmailHandlers.search);
1156
- adapter.register(gmailMod.readDescriptor, gmailHandlers.read);
1157
- adapter.register(gmailMod.sendDescriptor, gmailHandlers.send);
1158
- const sheetsMod = await import("./sheets-CGy8JvVz.mjs");
1159
- const sheetsHandlers = sheetsMod.createHandlers(auth);
1160
- adapter.register(sheetsMod.readDescriptor, sheetsHandlers.read);
1161
- adapter.register(sheetsMod.writeDescriptor, sheetsHandlers.write);
1162
- adapter.register(sheetsMod.appendDescriptor, sheetsHandlers.append);
1163
- }
1142
+ static async create() {
1143
+ const adapter = new BuiltinToolAdapter();
1144
+ const scrapeMod = await import("./web-scrape-GeEM_JNl.mjs");
1145
+ adapter.register(scrapeMod.descriptor, scrapeMod.handler);
1164
1146
  return adapter;
1165
1147
  }
1166
1148
  };
@@ -1219,14 +1201,6 @@ function loadConfig(cwd) {
1219
1201
  const config = {};
1220
1202
  const anthropicKey = get("ANTHROPIC_API_KEY");
1221
1203
  if (anthropicKey) config.anthropicApiKey = anthropicKey;
1222
- const clientId = get("GOOGLE_CLIENT_ID");
1223
- const clientSecret = get("GOOGLE_CLIENT_SECRET");
1224
- const refreshToken = get("GOOGLE_REFRESH_TOKEN");
1225
- if (clientId && clientSecret && refreshToken) config.googleCredentials = {
1226
- clientId,
1227
- clientSecret,
1228
- refreshToken
1229
- };
1230
1204
  return config;
1231
1205
  }
1232
1206
 
@@ -1999,5 +1973,5 @@ function sleep(ms) {
1999
1973
  }
2000
1974
 
2001
1975
  //#endregion
2002
- export { parseSkillMd as C, ParseError as S, parseWorkflowYaml as T, interpolatePrompt as _, dispatch as a, ParseExprError as b, StepExecutionError as c, executeTransform as d, loadConfig as f, validateWorkflowSkill as g, validateWorkflow as h, runWorkflowSkill as i, executeExit as l, AnthropicLLMAdapter as m, buildFailedRunLog as n, executeLLM as o, DevToolAdapter as p, runWorkflow as r, executeTool as s, WorkflowExecutionError as t, executeConditional as u, resolveExpression as v, parseWorkflowFromMd as w, LexError as x, EvalError as y };
2003
- //# sourceMappingURL=runtime-BY1CFnew.mjs.map
1976
+ export { parseSkillMd as C, ParseError as S, parseWorkflowYaml as T, interpolatePrompt as _, dispatch as a, ParseExprError as b, StepExecutionError as c, executeTransform as d, loadConfig as f, validateWorkflowSkill as g, validateWorkflow as h, runWorkflowSkill as i, executeExit as l, AnthropicLLMAdapter as m, buildFailedRunLog as n, executeLLM as o, BuiltinToolAdapter as p, runWorkflow as r, executeTool as s, WorkflowExecutionError as t, executeConditional as u, resolveExpression as v, parseWorkflowFromMd as w, LexError as x, EvalError as y };
1977
+ //# sourceMappingURL=runtime-CD81H1bx.mjs.map