@agentled/cli 0.7.6 → 0.7.8
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 +44 -1
- package/dist/commands/do.js +1 -1
- package/dist/commands/do.js.map +1 -1
- package/dist/commands/examples.d.ts +5 -5
- package/dist/commands/examples.js +8 -2
- package/dist/commands/examples.js.map +1 -1
- package/dist/commands/executions.js +56 -0
- package/dist/commands/executions.js.map +1 -1
- package/dist/commands/onboarding.js +45 -17
- package/dist/commands/onboarding.js.map +1 -1
- package/dist/commands/skills.js +67 -2
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/workspace.js +41 -0
- package/dist/commands/workspace.js.map +1 -1
- package/dist/utils/agentled-home-content.d.ts +1 -1
- package/dist/utils/agentled-home-content.js +6 -3
- package/dist/utils/agentled-home-content.js.map +1 -1
- package/dist/utils/browser-auth.d.ts +1 -0
- package/dist/utils/browser-auth.js +3 -3
- package/dist/utils/browser-auth.js.map +1 -1
- package/dist/utils/pipeline-lint.js +3 -1
- package/dist/utils/pipeline-lint.js.map +1 -1
- package/dist/utils/skills.d.ts +65 -4
- package/dist/utils/skills.js +147 -5
- package/dist/utils/skills.js.map +1 -1
- package/dist/utils/workspace-folder.d.ts +2 -0
- package/dist/utils/workspace-folder.js +26 -3
- package/dist/utils/workspace-folder.js.map +1 -1
- package/dist/utils/workspace-meta.d.ts +7 -5
- package/dist/utils/workspace-meta.js +30 -7
- package/dist/utils/workspace-meta.js.map +1 -1
- package/llms-full.txt +9 -2
- package/llms.txt +18 -0
- package/package.json +2 -2
- package/patterns/v1/00-design-principles.md +161 -0
- package/patterns/v1/13-entity-pipeline-lifecycle.md +319 -0
- package/scaffolds/README.md +7 -1
- package/scaffolds/child-with-return.json +71 -0
- package/scaffolds/funnel-orchestrator.json +134 -0
- package/scaffolds/kg-process-update.json +88 -0
- package/scaffolds/orchestrator-kg-loop.json +96 -0
- package/scaffolds/source-from-platform.json +78 -0
- package/scaffolds/source-to-kg.json +88 -0
- package/skills/agentled/SKILL.md +66 -737
- package/skills/agentled/references/credits-apps-and-errors.md +40 -0
- package/skills/agentled/references/editing-workflows.md +109 -0
- package/skills/agentled/references/email-workflows.md +122 -0
- package/skills/agentled/references/entity-pipeline.md +106 -0
- package/skills/agentled/references/outreach-and-scale.md +43 -0
- package/skills/agentled/references/persistent-memory.md +106 -0
- package/skills/agentled/references/step-schemas.md +148 -0
- package/skills/agentled/references/workspace-folder.md +74 -0
|
@@ -105,6 +105,47 @@ export function registerWorkspaceCommands(program) {
|
|
|
105
105
|
printError(e.message);
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
|
+
workspace
|
|
109
|
+
.command('pinned-outputs')
|
|
110
|
+
.description('List output pages pinned to the workspace home/sidebar')
|
|
111
|
+
.option('--format <fmt>', 'Output format', 'json')
|
|
112
|
+
.action(async (opts) => {
|
|
113
|
+
try {
|
|
114
|
+
const client = new AgentledClient();
|
|
115
|
+
const result = await client.listPinnedOutputs();
|
|
116
|
+
printOutput(result, opts.format);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
printError(e.message);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
workspace
|
|
123
|
+
.command('set-output-pin <workflowId> <outputPagePathname>')
|
|
124
|
+
.description('Pin or unpin a workflow output page on the workspace home/sidebar')
|
|
125
|
+
.option('--pin', 'Pin the output page (default)')
|
|
126
|
+
.option('--unpin', 'Unpin the output page')
|
|
127
|
+
.option('--label <label>', 'Optional custom sidebar label when pinning')
|
|
128
|
+
.option('--icon-name <name>', 'Optional lucide icon name when pinning')
|
|
129
|
+
.option('--format <fmt>', 'Output format', 'json')
|
|
130
|
+
.action(async (workflowId, outputPagePathname, opts) => {
|
|
131
|
+
try {
|
|
132
|
+
if (opts.pin && opts.unpin) {
|
|
133
|
+
throw new Error('Use either --pin or --unpin, not both');
|
|
134
|
+
}
|
|
135
|
+
const client = new AgentledClient();
|
|
136
|
+
const result = await client.setOutputPagePin({
|
|
137
|
+
workflowId,
|
|
138
|
+
outputPagePathname,
|
|
139
|
+
pinned: opts.unpin ? false : true,
|
|
140
|
+
label: opts.label,
|
|
141
|
+
iconName: opts.iconName,
|
|
142
|
+
});
|
|
143
|
+
printOutput(result, opts.format);
|
|
144
|
+
}
|
|
145
|
+
catch (e) {
|
|
146
|
+
printError(e.message);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
108
149
|
// --- Branding ---
|
|
109
150
|
workspace
|
|
110
151
|
.command('branding')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,4 @@ export declare const HOME_README_MD = "# AgentLed\n\nYou've installed the AgentL
|
|
|
27
27
|
export declare const WORKFLOW_SHAPE_MD = "# Workflow shape \u2014 source \u2192 list \u2192 orchestrator \u2192 outreach\n\nThe canonical AgentLed workflow shape, optimized for re-runnable, dedup-safe pipelines.\n\n## The list is the spine\n\nA KG list (e.g. `kg.list.leads`) holds every entity your business cares about. Multiple sourcing workflows write into the same list. One orchestrator workflow reads from it, processes, and transitions row state.\n\nTwo indexes make this efficient:\n\n1. **`userKey`** \u2014 caller-supplied dedup index. Use a stable identifier per row (domain, LinkedIn URL, email hash). `kg.upsert-rows` with the same `userKey` writes to the same row, every time, forever. No table scan, no duplicate explosion.\n2. **`status`** \u2014 the queue marker. New rows start at `status: \"new\"`. The orchestrator filters by status, processes only rows in the relevant state, and transitions status as it goes (`scored`, `qualified`, `contacted`, `rejected`).\n\n## Sourcing workflows (1+)\n\nEach sourcing workflow has one job: find entities, write them with a `userKey` and `status: \"new\"`. Use `mergeStrategy: \"merge\"` so downstream-added fields (scores, notes) survive a re-source. Many sourcing workflows can write to the same list.\n\n```json\n{\n \"id\": \"save-to-list\",\n \"type\": \"appAction\",\n \"app\": { \"id\": \"kg\", \"actionId\": \"kg.upsert-rows\", \"source\": \"native\" },\n \"stepInputData\": {\n \"listKey\": \"leads\",\n \"rows\": \"{{steps.extract.items}}\",\n \"mergeStrategy\": \"merge\",\n \"status\": \"new\"\n }\n}\n```\n\n> Note: pass `rows` directly as the template variable \u2014 do NOT wrap it in `JSON.stringify` or quote-escape the array. The serializer inlines the raw value (see GOTCHAS.md #12). The `filters` field on `kg.read-list` (below) is the exception \u2014 it expects a JSON-string body, not an array, so the escaped object literal is correct there.\n\n## Orchestrator workflow (1)\n\nSchedule trigger \u2192 `kg.read-list` filtered by `status: \"new\"` \u2192 loop \u2192 score / qualify / route \u2192 `kg.update-rows` to transition status.\n\n```json\n// Step 1: read pending rows\n{\n \"id\": \"read-pending\",\n \"type\": \"appAction\",\n \"app\": { \"id\": \"kg\", \"actionId\": \"kg.read-list\", \"source\": \"native\" },\n \"stepInputData\": { \"listKey\": \"leads\", \"filters\": \"{\\\"status\\\": \\\"new\\\"}\", \"limit\": \"50\" }\n}\n\n// Step N: transition status\n{\n \"id\": \"mark-scored\",\n \"type\": \"appAction\",\n \"app\": { \"id\": \"kg\", \"actionId\": \"kg.update-rows\", \"source\": \"native\" },\n \"stepInputData\": {\n \"listKey\": \"leads\",\n \"rowIds\": \"{{steps.score.processedIds}}\",\n \"fieldUpdates\": \"{\\\"status\\\": \\\"scored\\\"}\"\n }\n}\n```\n\n## Outreach workflow (1, optional)\n\nOften folded into the orchestrator. When separate: schedule trigger \u2192 `kg.read-list` filtered by `status: \"qualified\"` \u2192 compose email (with approval gate) \u2192 `schedule-email` \u2192 mark `status: \"contacted\"`.\n\nWhy separate: outreach has different cadence (e.g. daily, batch-limited) than scoring (continuous), and you may want different approval gates per channel.\n\n## Status conventions\n\n| Value | Meaning |\n|-------|---------|\n| `new` | Sourced, not yet processed |\n| `scored` | Enriched + scored, awaiting routing |\n| `qualified` | Passes ICP / threshold, ready for outreach |\n| `rejected` | Failed scoring criteria |\n| `contacted` | Outreach sent |\n| `replied` | Reply received (set by an inbound workflow) |\n\nUse whatever values fit your domain. The pattern is: sourcing always sets one status, the orchestrator transitions through \u22651 status, reads always filter by status.\n\n## Why the spine matters\n\n- Multiple sourcing channels converge \u2014 one canonical list, no fan-out logic in each producer.\n- Re-running a source is idempotent \u2014 `userKey` dedup.\n- Re-running the orchestrator is idempotent \u2014 status filter excludes done rows.\n- Each phase has its own cadence \u2014 sourcing daily, orchestrator hourly, outreach business hours.\n- Failures are scoped \u2014 a bad source doesn't pollute scoring; a bad scorer doesn't break sourcing.\n\n## Pausing for human input \u2014 decouple via the list\n\nWhen a workflow needs human input partway through (e.g., \"meeting done, capture the outcome and transcript URL, then continue scoring\"), **don't try to pause inside one workflow**. Split it across the KG list spine \u2014 same shape as everything else.\n\n```\nWorkflow A (the producer)\n \u2026 reaches the point that needs human input \u2026\n \u2192 kg.update-rows: status = \"needs-meeting-outcome\"\n \u2192 milestone (A is done; row sits in the list)\n\nWorkflow B (user-triggered, manual)\n \u2192 trigger: manual, with input page asking for:\n - meeting_outcome (text)\n - transcript_url (url)\n \u2192 kg.update-rows: status = \"input-received\", fieldUpdates = { outcome, transcript }\n \u2192 milestone\n\nWorkflow C (the consumer, scheduled)\n \u2192 kg.read-list filtered by status = \"input-received\"\n \u2192 \u2026 continue scoring / qualifying using outcome + transcript \u2026\n \u2192 kg.update-rows: status = \"scored\"\n```\n\nWhy decouple:\n- Each workflow has its own cadence and trigger \u2014 the producer runs on schedule, the user-triggered B runs whenever the user has the data, the consumer runs on schedule. None blocks the other.\n- The KG row carries the state. If the user fills in the form a week later, it just works \u2014 nothing was hanging in memory waiting.\n- A new agent (or a teammate) can act on rows in any state at any time \u2014 the substrate is shared.\n- You can have multiple producers, multiple human-input forms (different roles, different channels), and one consumer. Or any other shape that fits.\n\nIn-workflow pause-with-input is possible in some cases via `milestone` with a configured input page, but the AgentLed-native approach for human-in-the-loop is the decoupled pattern above. Reach for it first.\n\n## Where to put what\n\n| You want to\u2026 | Use |\n|--------------|-----|\n| Capture per-execution input from a user | `context.inputPages` on the workflow |\n| Capture per-execution input from a public form / unauthed user | a workflow with a public form trigger and a public-form share configuration |\n| Reference workspace-wide context (ICP, tone, products, brand voice) | `knowledge.* text` (read via `kg.read-text`, written via `kg.upsert-text`) \u2014 shared across workflows and agents |\n| Hand a result back to the user as a viewable report | `aiAction` (structured output) \u2192 renderer config on that step \u2192 `share` step (creates URL) \u2192 email notification with the URL |\n| Pause one workflow until a human provides extra data | Split into two workflows + a status transition on the KG row (see \"Pausing for human input\" above) |\n| Track business value once a workflow is validated | `metadata.roi` + `eventSummary` per run + an `entryConditions` gate that skips the run when inputs wouldn't move the needle |\n\n### Report-and-share-back sequence\n\nThe canonical \"give me a report and email me a link\" sequence:\n\n```json\n// Step 1: aiAction with structured output the renderer can read\n{\n \"id\": \"compose-report\",\n \"type\": \"aiAction\",\n \"pipelineStepPrompt\": {\n \"template\": \"\u2026 build the report here \u2026\",\n \"responseStructure\": { \"title\": \"string\", \"sections\": [{ \"heading\": \"string\", \"body\": \"string\" }] }\n },\n \"renderer\": { \"type\": \"Config\", \"config\": { \"layout\": \"report\" } },\n \"creditCost\": 20,\n \"next\": { \"stepId\": \"make-share\" }\n}\n\n// Step 2: share step \u2192 mints a public URL pointing at compose-report's output\n{\n \"id\": \"make-share\",\n \"type\": \"share\",\n \"shareConfig\": { \"outputSteps\": [\"compose-report\"], \"visibility\": \"link\" },\n \"next\": { \"stepId\": \"notify\" }\n}\n\n// Step 3: email notification with the share URL inlined\n{\n \"id\": \"notify\",\n \"type\": \"aiAction\",\n \"pipelineStepPrompt\": {\n \"type\": \"email\",\n \"template\": \"Draft a 2-line email letting the user know their report is ready. Include the link.\",\n \"responseStructure\": {\n \"email\": {\n \"from\": \"{{context.outreachProfile.fromEmail}}\",\n \"to\": \"{{input.recipient_email}}\",\n \"subject\": \"Your report is ready\",\n \"body\": \"<p>Your report: <a href=\\\"{{steps.make-share.url}}\\\">view it here</a>.</p>\",\n \"bodyType\": \"html\"\n }\n }\n },\n \"onApproval\": { \"action\": \"schedule-email\" },\n \"next\": { \"stepId\": \"done\" }\n}\n```\n\n### Public input pattern\n\nFor workflows triggered by user-submitted forms (no auth required), use a public-form trigger and a share configuration that exposes the form at a stable slug. The form's submission payload becomes the workflow input. Same workflow shape applies; only the trigger differs.\n\n### Post-validation: ROI + business metrics\n\nOnce a workflow is validated and running:\n\n1. **ROI tracking** \u2014 add an `metadata.roi` block with hours saved per run, dollar value, conversion lift. Surfaces in the workflow header and the workspace metrics dashboard.\n2. **Per-run `eventSummary`** \u2014 emit a small structured log: count processed, count qualified, total credits, success rate. Powers the metrics dashboard and lets agents reason about workflow health from the KG.\n3. **`entryConditions` gate** \u2014 skip the run when its inputs wouldn't actually move the needle (e.g., `kg.read-list` returned 0 new rows, or upstream signal is below threshold). Avoids credit waste on no-op runs and produces cleaner ROI numbers.\n\nFull pattern reference (step types, schemas, all gotchas) is in the AgentLed skill loaded into your AI agent on session start.\n";
|
|
28
28
|
export declare const GETTING_STARTED_MD = "# Your first end-to-end workflow\n\nFive minutes from \"I have an idea\" to \"my agent built it\".\n\n## 1. Describe intent in one sentence\n\nGood prompts look like:\n\n- \"Source 50 fintech startups in Europe via search, write them to a leads list, score by ICP fit, and email me the top 10 weekly.\"\n- \"When a form is submitted, qualify against my ICP knowledge and post the high-score ones to #sales-qualified in Slack.\"\n\nBad prompts look like:\n\n- \"Build me a CRM.\" (Too broad \u2014 the agent doesn't know what to start with.)\n- \"Use aiAction with workspace_memory tool.\" (Too prescriptive \u2014 you're authoring the pipeline, not the agent.)\n\n## 2. Let the agent orient\n\nThe agent will run `workspace inspect` (or the equivalent MCP tools) to look at:\n\n- Your existing KG lists (so it can reuse rather than create duplicates).\n- Connected apps (LinkedIn, Hunter, Gmail, Slack \u2014 only what's authed will work).\n- Existing workflows (it won't recreate one you already have).\n- Existing agents and routines.\n\nThis usually triggers 1-3 short questions back. Answer them and move on.\n\n## 3. Build incrementally\n\nThe agent will start from a scaffold (one of `~/.agentled/examples/scaffolds/*.json`), adapt it to your intent, and add steps one at a time. Per-step validation catches type mismatches, bad model IDs, and template-variable typos before the full workflow is saved.\n\nDo not ask the agent to dump a 30-step JSON in one shot. The skill explains why.\n\n## 4. Validate, then run small\n\n```\nagentled workflows validate <workflowId> # graph-level checks\nagentled workflows lint <file.json> # static gotcha catches\n```\n\nFirst execution: feed it 3-5 sample inputs, not 500. Watch the credit count. If something is wrong, fix it cheap.\n\n## 5. Promote to production\n\n```\nagentled workflows publish <workflowId> --status live\n```\n\nThen schedule it (or trigger it manually, or wire it to a webhook). Iterate.\n\n## What good looks like\n\n- Sourcing on its own schedule, writing to a list with `userKey` dedup.\n- An orchestrator that filters by `status` so it never re-processes done rows.\n- Every branch terminates (`milestone` for top-level workflows, `return` for child workflows, or no `next.stepId`). `milestone` is a labeled endpoint, not a required step \u2014 a workflow with no `next` is already terminal.\n- Human-in-the-loop steps decoupled across workflows via the KG list (see WORKFLOW-SHAPE.md \"Pausing for human input\").\n- An outreach step (or workflow) gated on approval before sending.\n- ROI metadata + `eventSummary` + an `entryConditions` gate \u2014 added once the workflow is validated.\n\nFor the canonical shape and the \"where to put what\" reference, see `WORKFLOW-SHAPE.md` in this folder. For silent failure modes see `GOTCHAS.md`.\n";
|
|
29
29
|
export declare const GOTCHAS_MD = "# AgentLed \u2014 documented silent failure modes\n\nThese pass JSON syntax validation but silently misbehave at runtime.\nRun `agentled workflows lint <file>` to catch them statically before deploying.\n\n---\n\n## 1. `criteria` not `conditions` in entryConditions\n\n**Wrong:** `{ \"entryConditions\": { \"conditions\": [...] } }`\n**Correct:** `{ \"entryConditions\": { \"criteria\": [...] } }`\n\nThe executor reads `entryConditions.criteria`. The key `conditions` is silently ignored.\n\n## 2. `variable` not `field` in criteria items\n\n**Wrong:** `{ \"field\": \"{{steps.x.score}}\", \"operator\": \">\", \"value\": 70 }`\n**Correct:** `{ \"variable\": \"{{steps.x.score}}\", \"operator\": \">\", \"value\": 70 }`\n\nUsing `field` causes the criterion to be silently skipped.\n\n## 3. Gmail label_id must be the internal Label_XXXX ID\n\nGmail's API requires `Label_XXXXXXXXXX` IDs, not display names. Add a `GMAIL_CREATE_LABEL` step before and use `{{steps.ensure-label.id}}`.\n\n## 4. `aiActionWithTools` with no tools\n\nA step with `type: \"aiActionWithTools\"` must have at least one tool in `step.tools` or `step.agent.tools`. Valid `builtinType` values: `web_search`, `file_search`, `code_interpreter`, `fetch_website_content`, `kg_search`, `kg_traverse`, `kg_nodes`, `kg_write`, `workspace_memory`.\n\n## 5. Email steps need type + approval action + outreachProfile\n\nThree required pieces:\n- `pipelineStepPrompt.type: \"email\"`\n- `onApproval.action: \"schedule-email\"`\n- `outreachProfile` input page in `context.inputPages`\n\nMissing the schedule-email action means the email is drafted but never sent.\n\n## 6. Only the first step in a loop gets `loopConfig`\n\n`loopConfig` must be on the first step in the loop chain only. Subsequent steps inside the loop iterate automatically.\n\n## 7. Don't pass raw `{{input.*}}` directly to search APIs\n\nAdd an aiAction step before the search that generates optimized queries. Raw user input makes poor search queries.\n\n## 8. Child workflows use `return`; `internal: true` is for child-only workflows\n\nIf a workflow is called via `agentled.call-workflow` (i.e., a **child workflow** invoked by another workflow rather than a user), use `type: \"return\"` instead of `milestone`. `milestone` produces no return data \u2014 the parent receives nothing.\n\nAlso set `context.executionInputConfig.internal: true` on the **child** workflow \u2014 this hides it from the user-triggered list.\n\n**Top-level workflows** triggered directly by users (manual, schedule, webhook, public form, app event) keep `milestone` and **do NOT** set `internal: true`. Setting `internal: true` on a user-facing workflow hides it from its intended caller.\n\n## 9. Model IDs are internal format, not Anthropic format\n\nWrong: `claude-sonnet-4-6`. Correct: `claude-4-6-sonnet`. Run `agentled models list` for valid internal IDs.\n\n## 10. Native app actionId must include appId prefix\n\nWrong: `{ \"id\": \"kg\", \"actionId\": \"read-list\" }`\nCorrect: `{ \"id\": \"kg\", \"actionId\": \"kg.read-list\" }`\n\n## 11. `loop_completion` criteria requires `onCriteriaFail: \"wait\"`\n\nWithout `onCriteriaFail: \"wait\"`, the step skips instead of blocking until the loop finishes. The `stepId` field is also required.\n\n## 12. Arrays in JSON template strings \u2014 don't JSON.stringify\n\nThe serializer detects when a template variable is the sole content of a JSON field and inlines the raw value. Pass `{ \"items\": \"{{steps.x.items}}\" }` directly \u2014 no stringify needed. (Note: `kg.read-list` `filters` is the exception \u2014 it expects a JSON-string body, see WORKFLOW-SHAPE.md.)\n\n## 13. `kg.upsert-rows` needs `userKey` for dedup; `kg.add-rows` always inserts\n\n`kg.upsert-rows` with `userKey`: same key = same row, cross-run dedup O(1).\n`kg.add-rows`: always inserts a new row, duplicates accumulate.\nUse `mergeStrategy: \"merge\"` to preserve downstream-added fields.\n";
|
|
30
|
-
export declare const PATTERNS_MD = "# Pattern index \u2014 `~/.agentled/examples/scaffolds/`\n\nPreflight-clean pipeline templates. Pick the closest match to your intent and adapt \u2014 don't author from scratch.\n\n| Scaffold | Shape | Use when |\n|----------|-------|----------|\n| `minimal.json` | trigger \u2192 milestone | smoke-testing the pipeline runner |\n| `email-polling-dedup.json` | schedule \u2192 fetch emails (label dedup) \u2192 loop \u2192 add label | inbound email triage / processing without double-handling |\n| `lead-scoring-kg.json` | trigger \u2192 `kg.read-list` \u2192 AI scoring loop \u2192 `knowledgeSync` | the orchestrator phase of source \u2192 list \u2192 orchestrator |\n| `list-match-email.json` | trigger \u2192 `kg.read-list` \u2192 AI match \u2192 composed email (approval gate) \u2192 `knowledgeSync` | outreach phase: pull qualified rows, draft email, gate on approval |\n| `extract-threshold-alert.json` | trigger \u2192 AI extract \u2192 threshold check \u2192 external update \u2192 conditional Slack \u2192 `knowledgeSync` | conditional routing on AI-extracted scores |\n| `ai-with-tools.json` | trigger \u2192 `aiActionWithTools` (web_search + workspace_memory) \u2192 milestone | starter for agentic steps that need to call runtime tools |\n\n## Mapping to the canonical shape\n\nThe `source \u2192 list \u2192
|
|
30
|
+
export declare const PATTERNS_MD = "# Pattern index \u2014 `~/.agentled/examples/scaffolds/`\n\nPreflight-clean pipeline templates. Pick the closest match to your intent and adapt \u2014 don't author from scratch.\n\n| Scaffold | Shape | Use when |\n|----------|-------|----------|\n| `minimal.json` | trigger \u2192 milestone | smoke-testing the pipeline runner |\n| `email-polling-dedup.json` | schedule \u2192 fetch emails (label dedup) \u2192 loop \u2192 add label | inbound email triage / processing without double-handling |\n| `source-from-platform.json` | schedule \u2192 source app \u2192 normalize \u2192 `kg.upsert-rows(status:new)` | first stage of a sourcing / lead / candidate funnel |\n| `lead-scoring-kg.json` | trigger \u2192 `kg.read-list` \u2192 AI scoring loop \u2192 `knowledgeSync` | the orchestrator phase of source \u2192 list \u2192 orchestrator |\n| `list-match-email.json` | trigger \u2192 `kg.read-list` \u2192 AI match \u2192 composed email (approval gate) \u2192 `knowledgeSync` | outreach phase: pull qualified rows, draft email, gate on approval |\n| `funnel-orchestrator.json` | schedule \u2192 read KG statuses \u2192 call child workflows \u2192 digest | daily / weekly coordinator after child workflows are validated |\n| `extract-threshold-alert.json` | trigger \u2192 AI extract \u2192 threshold check \u2192 external update \u2192 conditional Slack \u2192 `knowledgeSync` | conditional routing on AI-extracted scores |\n| `ai-with-tools.json` | trigger \u2192 `aiActionWithTools` (web_search + workspace_memory) \u2192 milestone | starter for agentic steps that need to call runtime tools |\n\n## Mapping to the canonical shape\n\nThe `source \u2192 list \u2192 score/qualify \u2192 contact discovery \u2192 outreach \u2192 orchestrator` flow uses these scaffolds in combination:\n\n- **Sourcing** (1+ workflows feeding the same list): start from `source-from-platform` and keep the `kg.upsert-rows` handoff with `userKey`, `mergeStrategy: \"merge\"`, and `status: \"new\"`.\n- **Orchestrator** (reads pending status, processes, transitions): start from `lead-scoring-kg` and add a final `kg.update-rows` step that sets `status: \"scored\"` (or `qualified` / `rejected`).\n- **Outreach** (reads qualified, sends with approval): start from `list-match-email`, then add the `kg.update-rows` to mark `status: \"contacted\"`.\n- **Daily / weekly coordinator** (runs the validated children): start from `funnel-orchestrator` only after the source, scoring, contact, and outreach workflows each work manually.\n- **Reports** (generate output, share, notify): see the \"Report-and-share-back sequence\" section in `WORKFLOW-SHAPE.md` \u2014 `aiAction` \u2192 `share` step \u2192 email notification.\n- **Human-in-the-loop** (workflow needs human input partway through): see \"Pausing for human input\" in `WORKFLOW-SHAPE.md` \u2014 split into producer + manual-trigger input form + consumer, all keyed on a status transition in the KG row.\n\nFor the full pattern shape and why `userKey` + `status` matter as indexes, run `agentled examples 13-entity-pipeline-lifecycle` and see `WORKFLOW-SHAPE.md` in this folder.\n";
|
|
@@ -394,21 +394,24 @@ Preflight-clean pipeline templates. Pick the closest match to your intent and ad
|
|
|
394
394
|
|----------|-------|----------|
|
|
395
395
|
| \`minimal.json\` | trigger → milestone | smoke-testing the pipeline runner |
|
|
396
396
|
| \`email-polling-dedup.json\` | schedule → fetch emails (label dedup) → loop → add label | inbound email triage / processing without double-handling |
|
|
397
|
+
| \`source-from-platform.json\` | schedule → source app → normalize → \`kg.upsert-rows(status:new)\` | first stage of a sourcing / lead / candidate funnel |
|
|
397
398
|
| \`lead-scoring-kg.json\` | trigger → \`kg.read-list\` → AI scoring loop → \`knowledgeSync\` | the orchestrator phase of source → list → orchestrator |
|
|
398
399
|
| \`list-match-email.json\` | trigger → \`kg.read-list\` → AI match → composed email (approval gate) → \`knowledgeSync\` | outreach phase: pull qualified rows, draft email, gate on approval |
|
|
400
|
+
| \`funnel-orchestrator.json\` | schedule → read KG statuses → call child workflows → digest | daily / weekly coordinator after child workflows are validated |
|
|
399
401
|
| \`extract-threshold-alert.json\` | trigger → AI extract → threshold check → external update → conditional Slack → \`knowledgeSync\` | conditional routing on AI-extracted scores |
|
|
400
402
|
| \`ai-with-tools.json\` | trigger → \`aiActionWithTools\` (web_search + workspace_memory) → milestone | starter for agentic steps that need to call runtime tools |
|
|
401
403
|
|
|
402
404
|
## Mapping to the canonical shape
|
|
403
405
|
|
|
404
|
-
The \`source → list →
|
|
406
|
+
The \`source → list → score/qualify → contact discovery → outreach → orchestrator\` flow uses these scaffolds in combination:
|
|
405
407
|
|
|
406
|
-
- **Sourcing** (1+ workflows feeding the same list): start from
|
|
408
|
+
- **Sourcing** (1+ workflows feeding the same list): start from \`source-from-platform\` and keep the \`kg.upsert-rows\` handoff with \`userKey\`, \`mergeStrategy: "merge"\`, and \`status: "new"\`.
|
|
407
409
|
- **Orchestrator** (reads pending status, processes, transitions): start from \`lead-scoring-kg\` and add a final \`kg.update-rows\` step that sets \`status: "scored"\` (or \`qualified\` / \`rejected\`).
|
|
408
410
|
- **Outreach** (reads qualified, sends with approval): start from \`list-match-email\`, then add the \`kg.update-rows\` to mark \`status: "contacted"\`.
|
|
411
|
+
- **Daily / weekly coordinator** (runs the validated children): start from \`funnel-orchestrator\` only after the source, scoring, contact, and outreach workflows each work manually.
|
|
409
412
|
- **Reports** (generate output, share, notify): see the "Report-and-share-back sequence" section in \`WORKFLOW-SHAPE.md\` — \`aiAction\` → \`share\` step → email notification.
|
|
410
413
|
- **Human-in-the-loop** (workflow needs human input partway through): see "Pausing for human input" in \`WORKFLOW-SHAPE.md\` — split into producer + manual-trigger input form + consumer, all keyed on a status transition in the KG row.
|
|
411
414
|
|
|
412
|
-
For the full pattern shape and why \`userKey\` + \`status\` matter as indexes, see \`WORKFLOW-SHAPE.md\` in this folder.
|
|
415
|
+
For the full pattern shape and why \`userKey\` + \`status\` matter as indexes, run \`agentled examples 13-entity-pipeline-lifecycle\` and see \`WORKFLOW-SHAPE.md\` in this folder.
|
|
413
416
|
`;
|
|
414
417
|
//# sourceMappingURL=agentled-home-content.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentled-home-content.js","sourceRoot":"","sources":["../../src/utils/agentled-home-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6LhC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DjC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EzB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG
|
|
1
|
+
{"version":3,"file":"agentled-home-content.js","sourceRoot":"","sources":["../../src/utils/agentled-home-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC7B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6LhC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DjC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EzB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1B,CAAC"}
|
|
@@ -19,6 +19,7 @@ export interface BrowserLoginResult {
|
|
|
19
19
|
isNewUser: boolean;
|
|
20
20
|
baseUrl: string;
|
|
21
21
|
}
|
|
22
|
+
export declare const SUCCESS_HTML = "<!DOCTYPE html>\n<html>\n<head><meta charset=\"utf-8\"><title>Agentled CLI</title></head>\n<body style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background: #f9fafb;\">\n<div style=\"text-align: center; padding: 2rem;\">\n <div style=\"width: 48px; height: 48px; margin: 0 auto 1rem; background: #d1fae5; border-radius: 50%; display: flex; align-items: center; justify-content: center;\">\n <svg width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"#059669\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5 13l4 4L19 7\"/></svg>\n </div>\n <h1 style=\"font-size: 1.25rem; font-weight: 600; color: #111827; margin: 0 0 0.5rem;\">Connected</h1>\n <p style=\"color: #6b7280; font-size: 0.875rem; margin: 0 0 1rem;\">You can close this tab and go back to your terminal — the CLI is connected and ready to use.</p>\n <div style=\"background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 6px; padding: 0.75rem; text-align: left; max-width: 360px; margin: 0 auto; font-size: 0.8125rem; color: #374151;\">\n <strong style=\"color: #111827; display: block; margin-bottom: 0.25rem;\">Next step</strong>\n Return to your command line — your CLI session is now authenticated. Run <code style=\"background:#e5e7eb;padding:1px 4px;border-radius:3px;font-family:ui-monospace,Menlo,monospace;\">agentled auth status</code> to confirm.<br><br><strong style=\"color:#111827;\">Then restart your MCP client</strong> (Claude Code / Codex / Cursor) so it picks up this workspace — until you do, MCP tools stay on the previous workspace.\n </div>\n</div>\n</body>\n</html>";
|
|
22
23
|
/**
|
|
23
24
|
* Run the browser-based login flow.
|
|
24
25
|
*/
|
|
@@ -62,7 +62,7 @@ function openBrowser(targetUrl) {
|
|
|
62
62
|
// Silently fail — the URL is printed to the terminal as fallback
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
|
-
const SUCCESS_HTML = `<!DOCTYPE html>
|
|
65
|
+
export const SUCCESS_HTML = `<!DOCTYPE html>
|
|
66
66
|
<html>
|
|
67
67
|
<head><meta charset="utf-8"><title>Agentled CLI</title></head>
|
|
68
68
|
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background: #f9fafb;">
|
|
@@ -71,10 +71,10 @@ const SUCCESS_HTML = `<!DOCTYPE html>
|
|
|
71
71
|
<svg width="24" height="24" fill="none" viewBox="0 0 24 24" stroke="#059669" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg>
|
|
72
72
|
</div>
|
|
73
73
|
<h1 style="font-size: 1.25rem; font-weight: 600; color: #111827; margin: 0 0 0.5rem;">Connected</h1>
|
|
74
|
-
<p style="color: #6b7280; font-size: 0.875rem; margin: 0 0 1rem;">You can close this tab and go back to your terminal
|
|
74
|
+
<p style="color: #6b7280; font-size: 0.875rem; margin: 0 0 1rem;">You can close this tab and go back to your terminal — the CLI is connected and ready to use.</p>
|
|
75
75
|
<div style="background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 6px; padding: 0.75rem; text-align: left; max-width: 360px; margin: 0 auto; font-size: 0.8125rem; color: #374151;">
|
|
76
76
|
<strong style="color: #111827; display: block; margin-bottom: 0.25rem;">Next step</strong>
|
|
77
|
-
Return to your command line
|
|
77
|
+
Return to your command line — your CLI session is now authenticated. Run <code style="background:#e5e7eb;padding:1px 4px;border-radius:3px;font-family:ui-monospace,Menlo,monospace;">agentled auth status</code> to confirm.<br><br><strong style="color:#111827;">Then restart your MCP client</strong> (Claude Code / Codex / Cursor) so it picks up this workspace — until you do, MCP tools stay on the previous workspace.
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
80
|
</body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/utils/browser-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+BAA+B;AAE/B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAchC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;GAEG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,GAAW;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;YAC7B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,SAAiB;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,GAAW,CAAC;IAChB,IAAI,IAAc,CAAC;IAEnB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,GAAG,GAAG,MAAM,CAAC;QACb,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC9B,GAAG,GAAG,KAAK,CAAC;QACZ,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,UAAU,CAAC;QACjB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,iEAAiE;IACrE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/utils/browser-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -180,7 +180,9 @@ function ruleLoopConfigOnlyFirst(pipeline) {
|
|
|
180
180
|
const s = stepById.get(cursor);
|
|
181
181
|
if (!s)
|
|
182
182
|
break;
|
|
183
|
-
if (s.loopConfig
|
|
183
|
+
if (!s.loopConfig)
|
|
184
|
+
break;
|
|
185
|
+
if (String(s.id) !== loopStartId) {
|
|
184
186
|
issues.push({
|
|
185
187
|
severity: 'warning',
|
|
186
188
|
code: 'LOOP_CONFIG_MULTIPLE_STEPS',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-lint.js","sourceRoot":"","sources":["../../src/utils/pipeline-lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline-lint.js","sourceRoot":"","sources":["../../src/utils/pipeline-lint.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/skills.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* Targets:
|
|
17
17
|
* - Claude Code / Claude Desktop → `~/.claude/skills/` (global) or
|
|
18
18
|
* `./.claude/skills/` (project) via the `global` option.
|
|
19
|
-
* - Codex → `~/.codex/
|
|
19
|
+
* - Codex → `~/.codex/skills/` via `targetDir` override (set by the
|
|
20
20
|
* `agentled setup` orchestrator after detecting a Codex install).
|
|
21
21
|
* - Cursor / Windsurf → not auto-installed (no native skills surface);
|
|
22
22
|
* the orchestrator skips this step and prints a hint.
|
|
@@ -36,15 +36,23 @@ export interface InstallSkillsOptions {
|
|
|
36
36
|
force?: boolean;
|
|
37
37
|
/**
|
|
38
38
|
* Override the target directory entirely. Used by the orchestrator to
|
|
39
|
-
* route Codex installs to `~/.codex/
|
|
39
|
+
* route Codex installs to `~/.codex/skills/` and (in future) any
|
|
40
40
|
* other client-specific skill location.
|
|
41
41
|
*/
|
|
42
42
|
targetDir?: string;
|
|
43
43
|
}
|
|
44
44
|
export declare function resolveBundledSkillsDir(): string;
|
|
45
45
|
export declare function getSkillsTargetDir(global: boolean): string;
|
|
46
|
-
/** Codex's skill
|
|
47
|
-
export declare function
|
|
46
|
+
/** Codex's skill directory — separate from Claude's. */
|
|
47
|
+
export declare function getCodexSkillsDir(): string;
|
|
48
|
+
/** OpenClaw's managed/local skills directory (`~/.openclaw/skills/<skill>/SKILL.md`). */
|
|
49
|
+
export declare function getOpenClawSkillsDir(): string;
|
|
50
|
+
/**
|
|
51
|
+
* Hermes Agent's user skills directory. Hermes nests skills by category
|
|
52
|
+
* (`~/.hermes/skills/<category>/<skill>/SKILL.md`), so we install under an
|
|
53
|
+
* `automation` category.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getHermesSkillsDir(): string;
|
|
48
56
|
export declare function installSkills(options?: InstallSkillsOptions): SkillInstallResult[];
|
|
49
57
|
export declare function describeSkillsInstall(results: SkillInstallResult[], targetDir: string): string;
|
|
50
58
|
/**
|
|
@@ -55,3 +63,56 @@ export declare function describeSkillsInstall(results: SkillInstallResult[], tar
|
|
|
55
63
|
* Returns null if there is nothing worth showing.
|
|
56
64
|
*/
|
|
57
65
|
export declare function summarizeForLoginBanner(results: SkillInstallResult[], targetDir: string): string | null;
|
|
66
|
+
export type SkillExportTarget = 'claude' | 'codex' | 'openclaw' | 'hermes' | 'cursor' | 'agents' | 'gemini' | 'codex-plugin';
|
|
67
|
+
/**
|
|
68
|
+
* Targets that read a directory of `SKILL.md` files (multi-file bundle: router
|
|
69
|
+
* + references/). We install the full bundle here, same as Claude/Codex.
|
|
70
|
+
*/
|
|
71
|
+
export declare const SKILL_DIR_TARGETS: SkillExportTarget[];
|
|
72
|
+
/**
|
|
73
|
+
* Targets that read a single markdown context file. We flatten the router +
|
|
74
|
+
* every reference into one self-contained file for these.
|
|
75
|
+
*/
|
|
76
|
+
export declare const NON_NATIVE_TARGETS: SkillExportTarget[];
|
|
77
|
+
/**
|
|
78
|
+
* Build one self-contained markdown document from a skill directory: the
|
|
79
|
+
* SKILL.md router body followed by every references/*.md, concatenated under
|
|
80
|
+
* dividers. No path resolution needed at read time — everything is inline.
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildCombinedSkillMarkdown(skillDir: string): string;
|
|
83
|
+
interface SkillModuleInfo {
|
|
84
|
+
file: string;
|
|
85
|
+
title: string;
|
|
86
|
+
loadWhen: string;
|
|
87
|
+
}
|
|
88
|
+
/** Enumerate the composable reference modules of a skill for `agentled skills list`. */
|
|
89
|
+
export declare function listSkillModules(skillDir: string): SkillModuleInfo[];
|
|
90
|
+
export interface SkillExportResult {
|
|
91
|
+
target: SkillExportTarget;
|
|
92
|
+
path: string;
|
|
93
|
+
action: 'written' | 'written-sidecar' | 'skipped-exists';
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Export the combined skill markdown for a non-native target. Non-destructive:
|
|
97
|
+
* if a conventional file (AGENTS.md / GEMINI.md) already exists, write a
|
|
98
|
+
* sidecar (`agentled.AGENTS.md`) and report it rather than clobbering the
|
|
99
|
+
* user's file. Cursor rules are agentled-owned, so they're always (re)written.
|
|
100
|
+
*/
|
|
101
|
+
export declare function exportSkillToTarget(target: SkillExportTarget, skillDir: string, projectDir: string, opts?: {
|
|
102
|
+
force?: boolean;
|
|
103
|
+
}): SkillExportResult;
|
|
104
|
+
export interface CodexPluginResult {
|
|
105
|
+
pluginDir: string;
|
|
106
|
+
manifestPath: string;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Scaffold a Codex *plugin* package (distinct from a bare `~/.codex/skills`
|
|
110
|
+
* drop): a directory with `.codex-plugin/plugin.json` and the full skill bundle
|
|
111
|
+
* under `skills/<name>/`. The manifest's `description` drives Codex's implicit
|
|
112
|
+
* skill invocation. The result is a local plugin the user installs via Codex's
|
|
113
|
+
* "Install plugin" flow or a local marketplace.
|
|
114
|
+
*
|
|
115
|
+
* Schema: https://developers.openai.com/codex/plugins/build
|
|
116
|
+
*/
|
|
117
|
+
export declare function buildCodexPlugin(skillDir: string, outDir: string): CodexPluginResult;
|
|
118
|
+
export {};
|
package/dist/utils/skills.js
CHANGED
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
* Targets:
|
|
17
17
|
* - Claude Code / Claude Desktop → `~/.claude/skills/` (global) or
|
|
18
18
|
* `./.claude/skills/` (project) via the `global` option.
|
|
19
|
-
* - Codex → `~/.codex/
|
|
19
|
+
* - Codex → `~/.codex/skills/` via `targetDir` override (set by the
|
|
20
20
|
* `agentled setup` orchestrator after detecting a Codex install).
|
|
21
21
|
* - Cursor / Windsurf → not auto-installed (no native skills surface);
|
|
22
22
|
* the orchestrator skips this step and prints a hint.
|
|
23
23
|
*/
|
|
24
|
-
import { existsSync, readFileSync, mkdirSync, readdirSync, statSync, cpSync } from 'node:fs';
|
|
24
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync, statSync, cpSync } from 'node:fs';
|
|
25
25
|
import { join, dirname, resolve } from 'node:path';
|
|
26
26
|
import { fileURLToPath } from 'node:url';
|
|
27
27
|
import { homedir } from 'node:os';
|
|
@@ -35,9 +35,21 @@ export function getSkillsTargetDir(global) {
|
|
|
35
35
|
? join(homedir(), '.claude', 'skills')
|
|
36
36
|
: join(process.cwd(), '.claude', 'skills');
|
|
37
37
|
}
|
|
38
|
-
/** Codex's skill
|
|
39
|
-
export function
|
|
40
|
-
return join(homedir(), '.codex', '
|
|
38
|
+
/** Codex's skill directory — separate from Claude's. */
|
|
39
|
+
export function getCodexSkillsDir() {
|
|
40
|
+
return join(homedir(), '.codex', 'skills');
|
|
41
|
+
}
|
|
42
|
+
/** OpenClaw's managed/local skills directory (`~/.openclaw/skills/<skill>/SKILL.md`). */
|
|
43
|
+
export function getOpenClawSkillsDir() {
|
|
44
|
+
return join(homedir(), '.openclaw', 'skills');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Hermes Agent's user skills directory. Hermes nests skills by category
|
|
48
|
+
* (`~/.hermes/skills/<category>/<skill>/SKILL.md`), so we install under an
|
|
49
|
+
* `automation` category.
|
|
50
|
+
*/
|
|
51
|
+
export function getHermesSkillsDir() {
|
|
52
|
+
return join(homedir(), '.hermes', 'skills', 'automation');
|
|
41
53
|
}
|
|
42
54
|
function parseSkillVersion(skillMdPath) {
|
|
43
55
|
try {
|
|
@@ -197,4 +209,134 @@ export function summarizeForLoginBanner(results, targetDir) {
|
|
|
197
209
|
}
|
|
198
210
|
return null;
|
|
199
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Targets that read a directory of `SKILL.md` files (multi-file bundle: router
|
|
214
|
+
* + references/). We install the full bundle here, same as Claude/Codex.
|
|
215
|
+
*/
|
|
216
|
+
export const SKILL_DIR_TARGETS = ['claude', 'codex', 'openclaw', 'hermes'];
|
|
217
|
+
/**
|
|
218
|
+
* Targets that read a single markdown context file. We flatten the router +
|
|
219
|
+
* every reference into one self-contained file for these.
|
|
220
|
+
*/
|
|
221
|
+
export const NON_NATIVE_TARGETS = ['cursor', 'agents', 'gemini'];
|
|
222
|
+
function parseFrontmatterField(skillMd, field) {
|
|
223
|
+
const fm = skillMd.match(/^---\n([\s\S]*?)\n---/);
|
|
224
|
+
if (!fm)
|
|
225
|
+
return null;
|
|
226
|
+
const m = fm[1].match(new RegExp(`^${field}:\\s*(.+)$`, 'm'));
|
|
227
|
+
return m ? m[1].trim() : null;
|
|
228
|
+
}
|
|
229
|
+
function stripFrontmatter(skillMd) {
|
|
230
|
+
return skillMd.replace(/^---\n[\s\S]*?\n---\n?/, '').trimStart();
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Build one self-contained markdown document from a skill directory: the
|
|
234
|
+
* SKILL.md router body followed by every references/*.md, concatenated under
|
|
235
|
+
* dividers. No path resolution needed at read time — everything is inline.
|
|
236
|
+
*/
|
|
237
|
+
export function buildCombinedSkillMarkdown(skillDir) {
|
|
238
|
+
const skillMdPath = join(skillDir, 'SKILL.md');
|
|
239
|
+
if (!existsSync(skillMdPath)) {
|
|
240
|
+
throw new Error(`No SKILL.md found in ${skillDir}`);
|
|
241
|
+
}
|
|
242
|
+
const router = readFileSync(skillMdPath, 'utf-8');
|
|
243
|
+
const parts = [stripFrontmatter(router)];
|
|
244
|
+
const refsDir = join(skillDir, 'references');
|
|
245
|
+
if (existsSync(refsDir)) {
|
|
246
|
+
const refs = readdirSync(refsDir).filter(f => f.endsWith('.md')).sort();
|
|
247
|
+
for (const ref of refs) {
|
|
248
|
+
parts.push(`\n\n---\n\n<!-- reference: references/${ref} -->\n\n` + readFileSync(join(refsDir, ref), 'utf-8').trim());
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return parts.join('\n').trimEnd() + '\n';
|
|
252
|
+
}
|
|
253
|
+
/** Enumerate the composable reference modules of a skill for `agentled skills list`. */
|
|
254
|
+
export function listSkillModules(skillDir) {
|
|
255
|
+
const refsDir = join(skillDir, 'references');
|
|
256
|
+
if (!existsSync(refsDir))
|
|
257
|
+
return [];
|
|
258
|
+
const out = [];
|
|
259
|
+
for (const f of readdirSync(refsDir).filter(n => n.endsWith('.md')).sort()) {
|
|
260
|
+
const body = readFileSync(join(refsDir, f), 'utf-8');
|
|
261
|
+
const title = body.match(/^#\s+(.+)$/m)?.[1]?.trim() ?? f;
|
|
262
|
+
// Grab the first contiguous blockquote block (the "> Loaded on demand…" blurb)
|
|
263
|
+
// and strip the per-line "> " prefixes.
|
|
264
|
+
const loadWhen = body.match(/(?:^>.*\n?)+/m)?.[0]
|
|
265
|
+
?.replace(/^>\s?/gm, '')
|
|
266
|
+
.replace(/\s+/g, ' ')
|
|
267
|
+
.trim() ?? '';
|
|
268
|
+
out.push({ file: `references/${f}`, title, loadWhen });
|
|
269
|
+
}
|
|
270
|
+
return out;
|
|
271
|
+
}
|
|
272
|
+
/** Where each non-native target's context file lives (project-relative). */
|
|
273
|
+
function targetExportPath(target, projectDir) {
|
|
274
|
+
switch (target) {
|
|
275
|
+
case 'cursor': return join(projectDir, '.cursor', 'rules', 'agentled.mdc');
|
|
276
|
+
case 'agents': return join(projectDir, 'AGENTS.md');
|
|
277
|
+
case 'gemini': return join(projectDir, 'GEMINI.md');
|
|
278
|
+
default: throw new Error(`Target ${target} is not a single-file export target`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Export the combined skill markdown for a non-native target. Non-destructive:
|
|
283
|
+
* if a conventional file (AGENTS.md / GEMINI.md) already exists, write a
|
|
284
|
+
* sidecar (`agentled.AGENTS.md`) and report it rather than clobbering the
|
|
285
|
+
* user's file. Cursor rules are agentled-owned, so they're always (re)written.
|
|
286
|
+
*/
|
|
287
|
+
export function exportSkillToTarget(target, skillDir, projectDir, opts = {}) {
|
|
288
|
+
const combined = buildCombinedSkillMarkdown(skillDir);
|
|
289
|
+
const description = parseFrontmatterField(readFileSync(join(skillDir, 'SKILL.md'), 'utf-8'), 'description')
|
|
290
|
+
?? 'Agentled workflow automation skill.';
|
|
291
|
+
if (target === 'cursor') {
|
|
292
|
+
const path = targetExportPath('cursor', projectDir);
|
|
293
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
294
|
+
const mdc = `---\ndescription: ${description}\nalwaysApply: false\n---\n\n${combined}`;
|
|
295
|
+
writeFileSync(path, mdc);
|
|
296
|
+
return { target, path, action: 'written' };
|
|
297
|
+
}
|
|
298
|
+
// agents / gemini — conventional shared files; don't clobber.
|
|
299
|
+
const path = targetExportPath(target, projectDir);
|
|
300
|
+
const heading = `<!-- agentled-skill:start -->\n# Agentled\n\n${combined}\n<!-- agentled-skill:end -->\n`;
|
|
301
|
+
if (existsSync(path) && !opts.force) {
|
|
302
|
+
const sidecar = join(projectDir, `agentled.${target === 'agents' ? 'AGENTS' : 'GEMINI'}.md`);
|
|
303
|
+
writeFileSync(sidecar, heading);
|
|
304
|
+
return { target, path: sidecar, action: 'written-sidecar' };
|
|
305
|
+
}
|
|
306
|
+
writeFileSync(path, heading);
|
|
307
|
+
return { target, path, action: 'written' };
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Scaffold a Codex *plugin* package (distinct from a bare `~/.codex/skills`
|
|
311
|
+
* drop): a directory with `.codex-plugin/plugin.json` and the full skill bundle
|
|
312
|
+
* under `skills/<name>/`. The manifest's `description` drives Codex's implicit
|
|
313
|
+
* skill invocation. The result is a local plugin the user installs via Codex's
|
|
314
|
+
* "Install plugin" flow or a local marketplace.
|
|
315
|
+
*
|
|
316
|
+
* Schema: https://developers.openai.com/codex/plugins/build
|
|
317
|
+
*/
|
|
318
|
+
export function buildCodexPlugin(skillDir, outDir) {
|
|
319
|
+
const skillMd = readFileSync(join(skillDir, 'SKILL.md'), 'utf-8');
|
|
320
|
+
const version = parseFrontmatterField(skillMd, 'version') ?? '0.0.0';
|
|
321
|
+
const description = parseFrontmatterField(skillMd, 'description')
|
|
322
|
+
?? 'Agentled workflow automation skill.';
|
|
323
|
+
const pluginDir = join(outDir, 'agentled-codex-plugin');
|
|
324
|
+
const manifestDir = join(pluginDir, '.codex-plugin');
|
|
325
|
+
mkdirSync(manifestDir, { recursive: true });
|
|
326
|
+
const manifest = {
|
|
327
|
+
name: 'agentled',
|
|
328
|
+
version,
|
|
329
|
+
description,
|
|
330
|
+
author: { name: 'Agentled', url: 'https://www.agentled.ai' },
|
|
331
|
+
homepage: 'https://www.agentled.ai',
|
|
332
|
+
repository: 'https://github.com/agentled/agentsled-front',
|
|
333
|
+
keywords: ['workflow', 'automation', 'agents', 'lead-enrichment', 'crm'],
|
|
334
|
+
skills: './skills/',
|
|
335
|
+
};
|
|
336
|
+
const manifestPath = join(manifestDir, 'plugin.json');
|
|
337
|
+
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
338
|
+
// Copy the full skill bundle (SKILL.md + references/) into skills/agentled/.
|
|
339
|
+
cpSync(skillDir, join(pluginDir, 'skills', 'agentled'), { recursive: true, force: true });
|
|
340
|
+
return { pluginDir, manifestPath };
|
|
341
|
+
}
|
|
200
342
|
//# sourceMappingURL=skills.js.map
|