@controllerai/cli 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.
Files changed (96) hide show
  1. package/README.md +180 -0
  2. package/dist/api/client.js +330 -0
  3. package/dist/api/client.js.map +1 -0
  4. package/dist/appLinks.js +99 -0
  5. package/dist/appLinks.js.map +1 -0
  6. package/dist/argv.js +124 -0
  7. package/dist/argv.js.map +1 -0
  8. package/dist/commands/agent.js +813 -0
  9. package/dist/commands/agent.js.map +1 -0
  10. package/dist/commands/auth.js +327 -0
  11. package/dist/commands/auth.js.map +1 -0
  12. package/dist/commands/branch.js +441 -0
  13. package/dist/commands/branch.js.map +1 -0
  14. package/dist/commands/connect.js +148 -0
  15. package/dist/commands/connect.js.map +1 -0
  16. package/dist/commands/connection.js +148 -0
  17. package/dist/commands/connection.js.map +1 -0
  18. package/dist/commands/data.js +441 -0
  19. package/dist/commands/data.js.map +1 -0
  20. package/dist/commands/deps.js +63 -0
  21. package/dist/commands/deps.js.map +1 -0
  22. package/dist/commands/doctor.js +102 -0
  23. package/dist/commands/doctor.js.map +1 -0
  24. package/dist/commands/events.js +72 -0
  25. package/dist/commands/events.js.map +1 -0
  26. package/dist/commands/exec.js +306 -0
  27. package/dist/commands/exec.js.map +1 -0
  28. package/dist/commands/expr.js +346 -0
  29. package/dist/commands/expr.js.map +1 -0
  30. package/dist/commands/flow.js +447 -0
  31. package/dist/commands/flow.js.map +1 -0
  32. package/dist/commands/integration.js +102 -0
  33. package/dist/commands/integration.js.map +1 -0
  34. package/dist/commands/node.js +885 -0
  35. package/dist/commands/node.js.map +1 -0
  36. package/dist/commands/organize.js +234 -0
  37. package/dist/commands/organize.js.map +1 -0
  38. package/dist/commands/run.js +437 -0
  39. package/dist/commands/run.js.map +1 -0
  40. package/dist/commands/schema.js +269 -0
  41. package/dist/commands/schema.js.map +1 -0
  42. package/dist/commands/skills.js +1156 -0
  43. package/dist/commands/skills.js.map +1 -0
  44. package/dist/commands/trigger.js +992 -0
  45. package/dist/commands/trigger.js.map +1 -0
  46. package/dist/commands/workflow.js +503 -0
  47. package/dist/commands/workflow.js.map +1 -0
  48. package/dist/config.js +74 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/context.js +39 -0
  51. package/dist/context.js.map +1 -0
  52. package/dist/errors.js +59 -0
  53. package/dist/errors.js.map +1 -0
  54. package/dist/index.js +125 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/jsSource.js +32 -0
  57. package/dist/jsSource.js.map +1 -0
  58. package/dist/nodeProps.js +177 -0
  59. package/dist/nodeProps.js.map +1 -0
  60. package/dist/output.js +85 -0
  61. package/dist/output.js.map +1 -0
  62. package/dist/version.js +7 -0
  63. package/dist/version.js.map +1 -0
  64. package/package.json +41 -0
  65. package/skills/controllerai-agents/SKILL.md +169 -0
  66. package/skills/controllerai-agents/agents/openai.yaml +4 -0
  67. package/skills/controllerai-agents/references/instructions-and-versioning.md +76 -0
  68. package/skills/controllerai-ai-nodes/SKILL.md +83 -0
  69. package/skills/controllerai-ai-nodes/agents/openai.yaml +4 -0
  70. package/skills/controllerai-ai-nodes/references/selection-and-testing.md +46 -0
  71. package/skills/controllerai-data/SKILL.md +121 -0
  72. package/skills/controllerai-data/agents/openai.yaml +4 -0
  73. package/skills/controllerai-data/references/data-rails.md +46 -0
  74. package/skills/controllerai-expressions/SKILL.md +115 -0
  75. package/skills/controllerai-expressions/agents/openai.yaml +4 -0
  76. package/skills/controllerai-expressions/references/dsl-and-recipes.md +120 -0
  77. package/skills/controllerai-flow-control/SKILL.md +132 -0
  78. package/skills/controllerai-flow-control/agents/openai.yaml +4 -0
  79. package/skills/controllerai-flow-control/references/patterns.md +61 -0
  80. package/skills/controllerai-integration-actions/SKILL.md +95 -0
  81. package/skills/controllerai-integration-actions/agents/openai.yaml +4 -0
  82. package/skills/controllerai-node-config/SKILL.md +138 -0
  83. package/skills/controllerai-node-config/agents/openai.yaml +4 -0
  84. package/skills/controllerai-node-config/references/prop-and-readiness.md +72 -0
  85. package/skills/controllerai-runs/SKILL.md +109 -0
  86. package/skills/controllerai-runs/agents/openai.yaml +4 -0
  87. package/skills/controllerai-runs/references/debugging.md +53 -0
  88. package/skills/controllerai-start/SKILL.md +44 -0
  89. package/skills/controllerai-start/agents/openai.yaml +4 -0
  90. package/skills/controllerai-triggers/SKILL.md +174 -0
  91. package/skills/controllerai-triggers/agents/openai.yaml +4 -0
  92. package/skills/controllerai-triggers/references/lifecycle.md +54 -0
  93. package/skills/controllerai-workflows/SKILL.md +86 -0
  94. package/skills/controllerai-workflows/agents/openai.yaml +4 -0
  95. package/skills/controllerai-workflows/references/command-map.md +64 -0
  96. package/skills/manifest.json +248 -0
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: controllerai-workflows
3
+ description: Build, inspect, edit, test, recover, and publish Controller AI workflows through the cai CLI. Use when a user asks to create or change an automation, workflow, flow, or workflow release, or when another Controller AI skill needs the shared lifecycle and safety rules.
4
+ ---
5
+
6
+ # Controller AI workflows
7
+
8
+ Use `cai` as the control surface. Do not call Controller AI REST or MCP routes directly unless the CLI reports that a required capability is absent.
9
+
10
+ ## Establish context
11
+
12
+ ```bash
13
+ cai auth status --json
14
+ cai workflow list --json
15
+ cai use <workflowId>
16
+ cai workflow status --json
17
+ ```
18
+
19
+ If no workflow exists, create and pin one:
20
+
21
+ ```bash
22
+ cai workflow create --name "<clear outcome-oriented name>" --json
23
+ ```
24
+
25
+ Use IDs returned by the CLI. Never invent workflow, flow, node, prop, event, field, route, or connection identifiers.
26
+
27
+ ## Build protocol
28
+
29
+ 1. Translate the request into inputs, steps, outputs, trigger, integrations, failure behavior, and publish intent.
30
+ 2. Inspect the current workflow before editing: `cai workflow get`, `cai flow list`, then `cai flow get <flowId>`.
31
+ 3. Create or select a flow. Define flow inputs and outputs before nodes that derive props from them.
32
+ 4. Build in execution order. After each material change, read it back with the corresponding `get`, `props`, `status`, or `list` command.
33
+ 5. Test on the development rail. Debug every failed or suspicious node; a green top-level status alone is insufficient.
34
+ 6. Re-read `cai workflow status`. Publish only when the user asked for a live change or clearly authorized deployment.
35
+
36
+ For multi-domain work, read [references/command-map.md](references/command-map.md) before editing.
37
+
38
+ ## Route specialized work
39
+
40
+ Load the narrow skill when the task reaches that surface:
41
+
42
+ - Node discovery, initialization, connections, props, or wiring: `controllerai-node-config`
43
+ - Dynamic values or conditions: `controllerai-expressions`
44
+ - Router, If/Else, loops, joins, or subflows: `controllerai-flow-control`
45
+ - Test execution or debugging: `controllerai-runs`
46
+ - Scheduled, webhook, or integration events: `controllerai-triggers`
47
+ - Schemas or records: `controllerai-data`
48
+ - Ask AI or Agent nodes: `controllerai-ai-nodes`
49
+ - User-facing agents and their workflow tools: `controllerai-agents`
50
+
51
+ ## Lifecycle rules
52
+
53
+ - All graph edits target development. Live remains unchanged until `cai workflow publish`.
54
+ - Prefer `--json` for decisions and IDs; human tables are for presentation.
55
+ - A workflow contains flows; a flow is one canvas. Do not confuse their IDs.
56
+ - For flow inputs, pass a human `--display` label and capture the returned `jsBinding`. The server derives, deduplicates, and then freezes that binding; `--name` is only a legacy display alias and renaming the label does not rename expressions.
57
+ - Name nodes after the data they produce. Downstream input bindings are seeded from that name when wired.
58
+ - Use `cai workflow save --name "<checkpoint>"` before a risky rewrite when version history is available.
59
+ - **Edit the graph with git-like freedom.** Every save is a version state — `cai workflow history` lists them, `cai workflow restore <stateId>` is the undo. Duplicate, delete, and refactor boldly; nothing inside the graph is unrecoverable. Restore rolls back the DEFINITION (graph and schemas) only — record data is unversioned and stays as it is. External side effects (sent messages, provider calls) are equally outside the undo.
60
+ - **Validate after structural edits, don't ask permission before them.** After deleting a flow, deleting a type, or a large refactor — and before publish — run `cai workflow validate` and fix what it lists: unlinked subflow callers, dangling type references, branch problems, trigger issues. Deleting a flow deletes its nodes, edges, inputs/outputs, and attached triggers, and breaks callers in other flows — exactly like deleting a function breaks its call sites; validate shows every break.
61
+ - On a conflict, re-read current state and reapply intent. Do not replay stale IDs or whole documents.
62
+ - Never delete a workflow without the user's explicit intent; the CLI requires `--yes` but that is not a substitute for authorization. `cai workflow delete` tears down deployed triggers and soft-deletes the workflow row. Historical workflow/version data remains stored, but there is currently no CLI restore command for the deleted row.
63
+ - **Know the dependency graph before deleting or refactoring shared resources.** `cai deps` shows which agents attach this workflow as a tool (LIVE or draft), which workflows call it, and which connections it uses; `cai deps --account` maps the whole account. Deleting a workflow that agents depend on is refused with the dependents named — bring that list to the user, then `--force` only on their informed choice (a LIVE agent changes behavior immediately).
64
+ - **Check the account feed when recent activity matters.** `cai events` lists what happened in the account, newest first: connections created, workflow edits/publishes/runs, agents created/published, members added. Filter with `--type` (comma-separated), `--since 30m|2h|7d|<ISO>`, `--for-workflow <id>`; page with `--cursor`. Typical uses: `cai events --type connection.created --since 10m` to see whether the user finished connecting, `cai events --since 24h` to catch up at session start, `cai events --for-workflow <id> --type workflow.run` for recent run activity. The feed cannot show connection deletions, settings changes, or member removals — absence there proves nothing.
65
+ - **Share the platform, not just text.** At the right moments, hand the user the real product page — command outputs include `appUrl` when the app origin is known: after `workflow publish` (the live builder view), after `run flow`/`run node` (the run page, to follow along), after `agent publish`/`test` (agent and conversation pages), and `connection connect` prints the connect link (use `--wait` to continue automatically once they connect). When you cannot perform something (settings, product-only surfaces), give the link instead of apologizing.
66
+ - Never silently weaken the request to make a test pass. Report an unsupported capability or ask about a real product decision.
67
+
68
+ ## Completion gate
69
+
70
+ Before claiming success, verify all of the following:
71
+
72
+ ```bash
73
+ cai workflow status --json
74
+ cai flow get <flowId> --json
75
+ cai run flow <flowId> --inputs <values.json> --json
76
+ ```
77
+
78
+ Then confirm:
79
+
80
+ - Required node connections and props are complete.
81
+ - Expressions compiled and their resolved configs are non-null.
82
+ - Expected branch or error paths were exercised where practical.
83
+ - Flow outputs contain the promised values.
84
+ - The reported live/dev state matches what the user asked for.
85
+
86
+ State what was built, what was tested, whether it was published, and any user-owned connection or product choice still pending.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Controller AI Workflows"
3
+ short_description: "Build and edit Controller AI workflows safely"
4
+ default_prompt: "Use Controller AI to build or edit this workflow, verify it, and keep live unchanged until I ask to publish."
@@ -0,0 +1,64 @@
1
+ # Workflow command map
2
+
3
+ Read only the sections relevant to the requested work. Use `cai <domain> --help` as the authoritative flag reference.
4
+
5
+ ## Setup and workflow lifecycle
6
+
7
+ ```text
8
+ cai connect
9
+ cai doctor
10
+ cai auth status
11
+ cai workflow list|create|get|rename|describe|duplicate|delete
12
+ cai workflow state|status|versions|releases|history|save|restore|publish
13
+ cai use <workflowId>
14
+ ```
15
+
16
+ `workflow save` creates a named development checkpoint. `workflow publish` promotes development to live. Version history may be plan-gated. `workflow delete --yes` undeploys triggers and soft-deletes the workflow row; it is not a permanent history purge, and deleted rows currently have no CLI restore command.
17
+
18
+ ## Canvas and graph
19
+
20
+ ```text
21
+ cai flow list|get|create|rename|duplicate|delete|reorder
22
+ cai flow input add|update|delete
23
+ cai flow output add|update|delete
24
+ cai node find|search|components|component
25
+ cai node init|status|get|props|set|connect|disconnect|delete
26
+ ```
27
+
28
+ Declare flow outputs before adding a Return response node. Its props are derived from those outputs.
29
+
30
+ `cai flow input add <flowId> --display "<human label>" --type <type>` returns the exact frozen `jsBinding`. Copy it or re-read expression context; never infer it from the label after deduplication.
31
+
32
+ ## Conditions and composition
33
+
34
+ ```text
35
+ cai node only-when
36
+ cai branch list|add|update|delete|connect|reorder
37
+ cai flow for-each
38
+ cai node set-flow
39
+ ```
40
+
41
+ Use branch-specific connection commands for Router and If/Else outputs. Generic `node connect` supports only `main` and `error` outputs.
42
+
43
+ ## Verification
44
+
45
+ ```text
46
+ cai run inputs|node|flow|discover
47
+ cai exec list|get|flow|node|ports|tree
48
+ ```
49
+
50
+ `run discover` executes the real integration action in a scratch flow and can incur third-party effects or usage. Do not use it casually for mutating actions.
51
+
52
+ ## Product surfaces
53
+
54
+ ```text
55
+ cai connection list|connect
56
+ cai trigger list|get|search|props|options|create|events|event|select-event|replay|toggle|rename|delete
57
+ cai schema list|get|resolve|create|update|delete
58
+ cai data collections|fields|query|get|create|update|delete|delete-many|import|copy-to-live
59
+ cai agent list|get|create|update|add-workflow|remove-tool|add-file|tools|publish-preflight|publish|versions|visibility
60
+ cai agent conversation list|create|status|history|send|approve|deny
61
+ ```
62
+
63
+ Connections are authorized in a browser. The CLI returns and opens the Controller AI connection URL.
64
+ Agent visibility supports only `private` and `organization`; organization is an explicit live access change after agent publish.
@@ -0,0 +1,248 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "skillSetVersion": "2026.08.09.13",
4
+ "minCliVersion": "0.2.0",
5
+ "skills": [
6
+ {
7
+ "name": "controllerai-start",
8
+ "files": [
9
+ {
10
+ "path": "controllerai-start/SKILL.md",
11
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-start/SKILL.md",
12
+ "sha256": "e84ff628653b9dddec3237c838f41b8f41f62bb8f0611741fa02ebbd81bcc60b",
13
+ "size": 3157
14
+ },
15
+ {
16
+ "path": "controllerai-start/agents/openai.yaml",
17
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-start/agents/openai.yaml",
18
+ "sha256": "3240c24df8ba5ebfb67bc3e9dbce97f4a78384c352123210197a2dbf27c51150",
19
+ "size": 226
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "name": "controllerai-workflows",
25
+ "files": [
26
+ {
27
+ "path": "controllerai-workflows/SKILL.md",
28
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-workflows/SKILL.md",
29
+ "sha256": "cd63ceabd6f6ecf51b40131cfe3c837efb55f038fe2ccf6474579bf32fcba18f",
30
+ "size": 6842
31
+ },
32
+ {
33
+ "path": "controllerai-workflows/agents/openai.yaml",
34
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-workflows/agents/openai.yaml",
35
+ "sha256": "6fb00a93a5f83fc2664679eb633ab07b477105472f8790fcf6dbcca913921a84",
36
+ "size": 251
37
+ },
38
+ {
39
+ "path": "controllerai-workflows/references/command-map.md",
40
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-workflows/references/command-map.md",
41
+ "sha256": "d46f772188150f9058c62d84178bf454a4fceff62a03cb05e683bef6c3720587",
42
+ "size": 2530
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "name": "controllerai-node-config",
48
+ "files": [
49
+ {
50
+ "path": "controllerai-node-config/SKILL.md",
51
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-node-config/SKILL.md",
52
+ "sha256": "3f8d59b12090ed4ad2211c71f482c145ef2afe2bc0331cb06200fdd40f74ca4c",
53
+ "size": 5494
54
+ },
55
+ {
56
+ "path": "controllerai-node-config/agents/openai.yaml",
57
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-node-config/agents/openai.yaml",
58
+ "sha256": "7fbd6f0c1f9ea40c41051d532736a4718895cfa397608a2c716300bcf4256df1",
59
+ "size": 242
60
+ },
61
+ {
62
+ "path": "controllerai-node-config/references/prop-and-readiness.md",
63
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-node-config/references/prop-and-readiness.md",
64
+ "sha256": "76094190732f07a2f636a8dce77f2209928496852f99e242df4dcce8b1ed4630",
65
+ "size": 4287
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "name": "controllerai-expressions",
71
+ "files": [
72
+ {
73
+ "path": "controllerai-expressions/SKILL.md",
74
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-expressions/SKILL.md",
75
+ "sha256": "aee4184b982dd8aea3f2234133671f7791d1c0873e2de13a587bb7e3412bcdab",
76
+ "size": 6300
77
+ },
78
+ {
79
+ "path": "controllerai-expressions/agents/openai.yaml",
80
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-expressions/agents/openai.yaml",
81
+ "sha256": "280d1f4d0a44cb5cfd3e5649e0a123b91b57b1484dcbc3a02ace988233234bc3",
82
+ "size": 249
83
+ },
84
+ {
85
+ "path": "controllerai-expressions/references/dsl-and-recipes.md",
86
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-expressions/references/dsl-and-recipes.md",
87
+ "sha256": "2bfb219a5e3e0f2bc6d4407ff509d4df5a4b3ba1e6f90c02fa4398142f815757",
88
+ "size": 3677
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "name": "controllerai-flow-control",
94
+ "files": [
95
+ {
96
+ "path": "controllerai-flow-control/SKILL.md",
97
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-flow-control/SKILL.md",
98
+ "sha256": "5e92e266a28a906e280d3c54783eefcf16cf56f525b15f956b477a0b0b1bf135",
99
+ "size": 7619
100
+ },
101
+ {
102
+ "path": "controllerai-flow-control/agents/openai.yaml",
103
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-flow-control/agents/openai.yaml",
104
+ "sha256": "164adf3b887bf9f67bba9cd210b5b49935c29ea0f52f76325fe5df517d279592",
105
+ "size": 229
106
+ },
107
+ {
108
+ "path": "controllerai-flow-control/references/patterns.md",
109
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-flow-control/references/patterns.md",
110
+ "sha256": "a3bb4c02fd431c29393a8172713eb9bce0b4042df11725489c923fd97ef9296b",
111
+ "size": 2877
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "name": "controllerai-runs",
117
+ "files": [
118
+ {
119
+ "path": "controllerai-runs/SKILL.md",
120
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-runs/SKILL.md",
121
+ "sha256": "14b9844d3ee6b383beafcd0ad3883fcec980d85acab5bfbad2760f7f8879394d",
122
+ "size": 6174
123
+ },
124
+ {
125
+ "path": "controllerai-runs/agents/openai.yaml",
126
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-runs/agents/openai.yaml",
127
+ "sha256": "63180f12974e19ce7b714695944608760e4132bfb88947543e52616098a88f5c",
128
+ "size": 234
129
+ },
130
+ {
131
+ "path": "controllerai-runs/references/debugging.md",
132
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-runs/references/debugging.md",
133
+ "sha256": "080a178c8c653342c193fa262945296579d5a805f342968d09b37e3bb6d0fe5d",
134
+ "size": 2058
135
+ }
136
+ ]
137
+ },
138
+ {
139
+ "name": "controllerai-triggers",
140
+ "files": [
141
+ {
142
+ "path": "controllerai-triggers/SKILL.md",
143
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-triggers/SKILL.md",
144
+ "sha256": "33ed7bcb2613b3902394f32d35b7ebf22101fa428c43abf1023e36c8c966efc0",
145
+ "size": 7326
146
+ },
147
+ {
148
+ "path": "controllerai-triggers/agents/openai.yaml",
149
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-triggers/agents/openai.yaml",
150
+ "sha256": "56aa1bd33e54045d88002ade0c420be7bca37ac39433e6eedccef2e22bbd9515",
151
+ "size": 239
152
+ },
153
+ {
154
+ "path": "controllerai-triggers/references/lifecycle.md",
155
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-triggers/references/lifecycle.md",
156
+ "sha256": "06e0edcd5c36d7f4f005831f08b2c9f44898f075a911a2bbd471b6c9c00986e8",
157
+ "size": 1890
158
+ }
159
+ ]
160
+ },
161
+ {
162
+ "name": "controllerai-data",
163
+ "files": [
164
+ {
165
+ "path": "controllerai-data/SKILL.md",
166
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-data/SKILL.md",
167
+ "sha256": "97d9a12897b7cfeb49988ff00b71780c3d0d8448fe35e272a5f891dbf5d1d887",
168
+ "size": 7020
169
+ },
170
+ {
171
+ "path": "controllerai-data/agents/openai.yaml",
172
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-data/agents/openai.yaml",
173
+ "sha256": "5c54b0a714086088213c679fb904a69a599374847f9aa1d6c0756172c2a2f227",
174
+ "size": 219
175
+ },
176
+ {
177
+ "path": "controllerai-data/references/data-rails.md",
178
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-data/references/data-rails.md",
179
+ "sha256": "61cd1207eb65a9b7c8b908fb294718b67dd951070eb9ec0537028b928ee7ec70",
180
+ "size": 1597
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "name": "controllerai-ai-nodes",
186
+ "files": [
187
+ {
188
+ "path": "controllerai-ai-nodes/SKILL.md",
189
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-ai-nodes/SKILL.md",
190
+ "sha256": "fcb2406e8b55a3ba657d8952daa28bb86a106e6bb2acea5837670d16eed971d2",
191
+ "size": 3961
192
+ },
193
+ {
194
+ "path": "controllerai-ai-nodes/agents/openai.yaml",
195
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-ai-nodes/agents/openai.yaml",
196
+ "sha256": "3ba8b8bb6f0cd4b0d5675ebda0af10bb79dc7a42e394eb98479343c83da92599",
197
+ "size": 256
198
+ },
199
+ {
200
+ "path": "controllerai-ai-nodes/references/selection-and-testing.md",
201
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-ai-nodes/references/selection-and-testing.md",
202
+ "sha256": "12fb32c422f9cec34c5830ce7dc2cf4f482b9d8b200bb11c45581a108ee81abe",
203
+ "size": 1639
204
+ }
205
+ ]
206
+ },
207
+ {
208
+ "name": "controllerai-integration-actions",
209
+ "files": [
210
+ {
211
+ "path": "controllerai-integration-actions/SKILL.md",
212
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-integration-actions/SKILL.md",
213
+ "sha256": "a6a5ec228ddfd5c7b734c0b3959a5f8d817c872213d36c1745f74adb373a4bf4",
214
+ "size": 4955
215
+ },
216
+ {
217
+ "path": "controllerai-integration-actions/agents/openai.yaml",
218
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-integration-actions/agents/openai.yaml",
219
+ "sha256": "82ee62aa48a644e658c9bb6a78c417dc15eb4f3ec9f4abc9081b6d24d16fe92d",
220
+ "size": 262
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "name": "controllerai-agents",
226
+ "files": [
227
+ {
228
+ "path": "controllerai-agents/SKILL.md",
229
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-agents/SKILL.md",
230
+ "sha256": "dfdc083d0eb1b37d6e88ec7dc44bc24668f8e26261f70eebdc5f778c03a35d54",
231
+ "size": 11209
232
+ },
233
+ {
234
+ "path": "controllerai-agents/agents/openai.yaml",
235
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-agents/agents/openai.yaml",
236
+ "sha256": "f4684ec904f3ebb051bb48460375756899c3316fbb16304aad5fff3d89692b09",
237
+ "size": 293
238
+ },
239
+ {
240
+ "path": "controllerai-agents/references/instructions-and-versioning.md",
241
+ "url": "https://getcontroller.ai/skills/2026.08.09.13/controllerai-agents/references/instructions-and-versioning.md",
242
+ "sha256": "b8bc2c02806d75ee48b1fd6618d6fd8532605240442840efb0199e15dd0fcad6",
243
+ "size": 4939
244
+ }
245
+ ]
246
+ }
247
+ ]
248
+ }