@controllerai/cli 0.2.9 → 0.2.10
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/dist/api/client.js +20 -5
- package/dist/api/client.js.map +1 -1
- package/dist/argv.js +330 -29
- package/dist/argv.js.map +1 -1
- package/dist/commands/agent.js +208 -8
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/auth.js +21 -5
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/doctor.js +63 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/exec.js +161 -49
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/expr.js +284 -53
- package/dist/commands/expr.js.map +1 -1
- package/dist/commands/flow.js +58 -14
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/node.js +746 -173
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/organize.js +1 -1
- package/dist/commands/organize.js.map +1 -1
- package/dist/commands/run.js +165 -33
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/schema.js +8 -7
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/workflow.js +151 -24
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config.js +152 -6
- package/dist/config.js.map +1 -1
- package/dist/context.js +66 -5
- package/dist/context.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/nodeProps.js +333 -10
- package/dist/nodeProps.js.map +1 -1
- package/dist/output.js +6 -1
- package/dist/output.js.map +1 -1
- package/package.json +1 -1
- package/skills/controllerai-agents/SKILL.md +27 -9
- package/skills/controllerai-agents/references/instructions-and-versioning.md +1 -1
- package/skills/controllerai-data/SKILL.md +17 -0
- package/skills/controllerai-data/references/data-rails.md +1 -1
- package/skills/controllerai-expressions/SKILL.md +7 -3
- package/skills/controllerai-flow-control/SKILL.md +2 -0
- package/skills/controllerai-node-config/SKILL.md +33 -6
- package/skills/controllerai-node-config/references/prop-and-readiness.md +34 -0
- package/skills/controllerai-runs/SKILL.md +14 -4
- package/skills/controllerai-runs/references/debugging.md +1 -1
- package/skills/controllerai-start/SKILL.md +1 -0
- package/skills/controllerai-workflows/SKILL.md +13 -8
- package/skills/controllerai-workflows/references/command-map.md +3 -2
- package/skills/manifest.json +58 -58
package/dist/config.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { homedir } from 'node:os';
|
|
2
2
|
import { dirname, join, resolve } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
5
|
+
import { userError } from './errors.js';
|
|
4
6
|
export const DEFAULT_API_URL = 'https://api.app.getcontroller.ai';
|
|
5
7
|
const defaultConfigDirectory = () => join(homedir(), '.config', 'cai');
|
|
6
8
|
const defaultConfigPath = () => join(defaultConfigDirectory(), 'config.json');
|
|
@@ -38,9 +40,10 @@ const readFile = () => {
|
|
|
38
40
|
* work wins over the machine-global pin; credentials stay global-only.
|
|
39
41
|
*/
|
|
40
42
|
const LOCAL_PIN_FILE = '.cai.json';
|
|
43
|
+
export const localPinPath = () => resolve(process.cwd(), LOCAL_PIN_FILE);
|
|
41
44
|
const readLocalPin = () => {
|
|
42
45
|
try {
|
|
43
|
-
const raw = JSON.parse(readFileSync(
|
|
46
|
+
const raw = JSON.parse(readFileSync(localPinPath(), 'utf8'));
|
|
44
47
|
const id = Number(raw.workflowId);
|
|
45
48
|
return Number.isInteger(id) && id > 0 ? { workflowId: id } : {};
|
|
46
49
|
}
|
|
@@ -49,21 +52,52 @@ const readLocalPin = () => {
|
|
|
49
52
|
}
|
|
50
53
|
};
|
|
51
54
|
export const saveLocalPin = (workflowId) => {
|
|
52
|
-
const path =
|
|
55
|
+
const path = localPinPath();
|
|
53
56
|
writeFileSync(path, `${JSON.stringify({ workflowId }, null, 2)}\n`);
|
|
54
57
|
return path;
|
|
55
58
|
};
|
|
59
|
+
const numericPin = (value) => {
|
|
60
|
+
if (value === undefined || value === null || value === '')
|
|
61
|
+
return undefined;
|
|
62
|
+
return Number(value);
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the effective workflow pin and its provenance. Keep this order in
|
|
66
|
+
* lockstep with the public CLI contract: flag > env > exact-cwd local > config.
|
|
67
|
+
* CAI_CONFIG chooses the config pathname; it is never itself a workflow pin.
|
|
68
|
+
*/
|
|
69
|
+
export const resolveWorkflowPin = (flag, file = readFile()) => {
|
|
70
|
+
if (flag !== undefined && flag !== null) {
|
|
71
|
+
return { workflowId: numericPin(flag), source: 'flag', path: null };
|
|
72
|
+
}
|
|
73
|
+
if (process.env.CAI_WORKFLOW) {
|
|
74
|
+
return {
|
|
75
|
+
workflowId: numericPin(process.env.CAI_WORKFLOW),
|
|
76
|
+
source: 'env',
|
|
77
|
+
path: null,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const localPin = readLocalPin();
|
|
81
|
+
if (localPin.workflowId !== undefined) {
|
|
82
|
+
return { workflowId: localPin.workflowId, source: 'local', path: localPinPath() };
|
|
83
|
+
}
|
|
84
|
+
const configuredId = numericPin(file.workflowId);
|
|
85
|
+
if (configuredId !== undefined) {
|
|
86
|
+
return { workflowId: configuredId, source: 'config', path: resolve(configPath()) };
|
|
87
|
+
}
|
|
88
|
+
return { workflowId: undefined, source: 'none', path: null };
|
|
89
|
+
};
|
|
56
90
|
/** File config overlaid with the local project pin, then env. Env always wins. */
|
|
57
91
|
export const loadConfig = () => {
|
|
58
92
|
const file = readFile();
|
|
59
|
-
const
|
|
60
|
-
const envWorkflow = process.env.CAI_WORKFLOW ? Number(process.env.CAI_WORKFLOW) : undefined;
|
|
93
|
+
const pin = resolveWorkflowPin(undefined, file);
|
|
61
94
|
return {
|
|
62
95
|
apiUrl: (process.env.CAI_API_URL ?? file.apiUrl ?? DEFAULT_API_URL).replace(/\/+$/, ''),
|
|
63
96
|
appUrl: file.appUrl,
|
|
64
97
|
token: process.env.CAI_TOKEN ?? file.token,
|
|
65
98
|
tokenKind: process.env.CAI_TOKEN ? detectTokenKind(process.env.CAI_TOKEN) : file.tokenKind,
|
|
66
|
-
|
|
99
|
+
expiresAt: process.env.CAI_TOKEN === undefined && file.tokenKind === 'cli' ? file.expiresAt : undefined,
|
|
100
|
+
workflowId: pin.workflowId,
|
|
67
101
|
headStateId: file.headStateId,
|
|
68
102
|
};
|
|
69
103
|
};
|
|
@@ -76,6 +110,118 @@ export const saveConfig = (patch) => {
|
|
|
76
110
|
chmodSync(path, 0o600);
|
|
77
111
|
return next;
|
|
78
112
|
};
|
|
113
|
+
const readJsonObjectStrict = (path, label) => {
|
|
114
|
+
if (!existsSync(path))
|
|
115
|
+
return null;
|
|
116
|
+
try {
|
|
117
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
118
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
119
|
+
throw new Error('expected a JSON object');
|
|
120
|
+
}
|
|
121
|
+
return parsed;
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
125
|
+
throw userError(`Refusing to reset ${label} pin because ${path} is malformed: ${reason}`, 'MALFORMED_CONFIG');
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
const readLocalJsonForReset = (path) => {
|
|
129
|
+
if (!existsSync(path))
|
|
130
|
+
return { file: null, malformed: false };
|
|
131
|
+
try {
|
|
132
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
133
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
134
|
+
throw new Error('expected a JSON object');
|
|
135
|
+
}
|
|
136
|
+
return { file: parsed, malformed: false };
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
return { file: null, malformed: true };
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const writeJsonAtomic = (path, value) => {
|
|
143
|
+
ensureConfigParent(path);
|
|
144
|
+
const tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
|
|
145
|
+
try {
|
|
146
|
+
writeFileSync(tempPath, `${JSON.stringify(value, null, 2)}\n`, {
|
|
147
|
+
mode: 0o600,
|
|
148
|
+
flag: 'wx',
|
|
149
|
+
});
|
|
150
|
+
chmodSync(tempPath, 0o600);
|
|
151
|
+
renameSync(tempPath, path);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
if (existsSync(tempPath))
|
|
155
|
+
unlinkSync(tempPath);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Clear workflow pins without touching credentials or unrelated settings.
|
|
160
|
+
* The credential-bearing global file remains strict: it is parsed before any
|
|
161
|
+
* requested local cleanup, so a malformed global config cannot half-apply a
|
|
162
|
+
* two-file reset. A malformed cwd-local file is removed as an unusable pin.
|
|
163
|
+
*/
|
|
164
|
+
export const resetWorkflowPins = (opts = {}) => {
|
|
165
|
+
if (opts.local && opts.global) {
|
|
166
|
+
throw userError('Choose only one of --local or --global.', 'CONFLICTING_RESET_SCOPE');
|
|
167
|
+
}
|
|
168
|
+
const resetLocal = opts.local || !opts.global;
|
|
169
|
+
const resetGlobal = opts.global || !opts.local;
|
|
170
|
+
const localPath = localPinPath();
|
|
171
|
+
const globalPath = resolve(configPath());
|
|
172
|
+
// Validate the credential-bearing target before any local unlink. The local
|
|
173
|
+
// filename can be owned by another tool, so malformed local JSON is cleanup,
|
|
174
|
+
// not grounds to block a safe global reset.
|
|
175
|
+
const globalFile = resetGlobal ? readJsonObjectStrict(globalPath, 'configured-file') : null;
|
|
176
|
+
const localRead = resetLocal
|
|
177
|
+
? readLocalJsonForReset(localPath)
|
|
178
|
+
: { file: null, malformed: false };
|
|
179
|
+
const localFile = localRead.file;
|
|
180
|
+
let localCleared = false;
|
|
181
|
+
let malformedRemoved = false;
|
|
182
|
+
if (resetLocal && localRead.malformed) {
|
|
183
|
+
unlinkSync(localPath);
|
|
184
|
+
localCleared = true;
|
|
185
|
+
malformedRemoved = true;
|
|
186
|
+
}
|
|
187
|
+
else if (resetLocal && localFile) {
|
|
188
|
+
localCleared = Object.prototype.hasOwnProperty.call(localFile, 'workflowId');
|
|
189
|
+
if (localCleared) {
|
|
190
|
+
const next = { ...localFile };
|
|
191
|
+
delete next.workflowId;
|
|
192
|
+
if (Object.keys(next).length === 0)
|
|
193
|
+
unlinkSync(localPath);
|
|
194
|
+
else
|
|
195
|
+
writeFileSync(localPath, `${JSON.stringify(next, null, 2)}\n`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
let globalCleared = false;
|
|
199
|
+
if (resetGlobal && globalFile) {
|
|
200
|
+
const hadWorkflowId = Object.prototype.hasOwnProperty.call(globalFile, 'workflowId');
|
|
201
|
+
const hadHeadStateId = Object.prototype.hasOwnProperty.call(globalFile, 'headStateId');
|
|
202
|
+
globalCleared = hadWorkflowId || hadHeadStateId;
|
|
203
|
+
if (globalCleared) {
|
|
204
|
+
const next = { ...globalFile };
|
|
205
|
+
delete next.workflowId;
|
|
206
|
+
delete next.headStateId;
|
|
207
|
+
writeJsonAtomic(globalPath, next);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
scopes: [
|
|
212
|
+
...(resetLocal ? ['local'] : []),
|
|
213
|
+
...(resetGlobal ? ['global'] : []),
|
|
214
|
+
],
|
|
215
|
+
local: resetLocal
|
|
216
|
+
? {
|
|
217
|
+
path: localPath,
|
|
218
|
+
cleared: localCleared,
|
|
219
|
+
...(malformedRemoved ? { malformedRemoved: true } : {}),
|
|
220
|
+
}
|
|
221
|
+
: null,
|
|
222
|
+
global: resetGlobal ? { path: globalPath, cleared: globalCleared } : null,
|
|
223
|
+
};
|
|
224
|
+
};
|
|
79
225
|
export const clearToken = () => {
|
|
80
226
|
const current = readFile();
|
|
81
227
|
const next = { ...current };
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiClient } from './api/client.js';
|
|
2
|
-
import { loadConfig } from './config.js';
|
|
2
|
+
import { loadConfig, resetWorkflowPins, resolveWorkflowPin, } from './config.js';
|
|
3
3
|
import { userError } from './errors.js';
|
|
4
|
+
import { emit, printKeyValues, warn } from './output.js';
|
|
4
5
|
export const buildClient = (command) => {
|
|
5
6
|
const config = loadConfig();
|
|
6
7
|
const overrideUrl = globalOpt(command, 'apiUrl');
|
|
@@ -20,10 +21,9 @@ export const globalOpt = (command, name) => {
|
|
|
20
21
|
}
|
|
21
22
|
return undefined;
|
|
22
23
|
};
|
|
23
|
-
export const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
if (raw === undefined || raw === null || raw === '') {
|
|
24
|
+
export const workflowIdFromPin = (pin) => {
|
|
25
|
+
const raw = pin.workflowId;
|
|
26
|
+
if (raw === undefined) {
|
|
27
27
|
throw userError('No workflow selected. Pass --workflow <id>, set CAI_WORKFLOW, or run `cai use <id>`.', 'NO_WORKFLOW');
|
|
28
28
|
}
|
|
29
29
|
const id = Number(raw);
|
|
@@ -32,8 +32,69 @@ export const resolveWorkflowId = (command, config) => {
|
|
|
32
32
|
}
|
|
33
33
|
return id;
|
|
34
34
|
};
|
|
35
|
+
export const resolveWorkflowId = (command, config) => {
|
|
36
|
+
const flag = globalOpt(command, 'workflow');
|
|
37
|
+
const pin = flag === undefined || flag === null
|
|
38
|
+
? { workflowId: config.workflowId, source: 'none', path: null }
|
|
39
|
+
: resolveWorkflowPin(flag);
|
|
40
|
+
return workflowIdFromPin(pin);
|
|
41
|
+
};
|
|
35
42
|
export const requireContext = (command) => {
|
|
36
43
|
const { config, api } = buildClient(command);
|
|
37
44
|
return { config, api, workflowId: resolveWorkflowId(command, config) };
|
|
38
45
|
};
|
|
46
|
+
export const registerConfig = (program) => {
|
|
47
|
+
const config = program.command('config').description('Inspect and reset CLI configuration');
|
|
48
|
+
config
|
|
49
|
+
.command('reset')
|
|
50
|
+
.description('Clear workflow pins while preserving credentials and other settings')
|
|
51
|
+
.option('--local', 'clear only the exact-cwd .cai.json workflow pin')
|
|
52
|
+
.option('--global', 'clear only the workflow pin in the configured config file')
|
|
53
|
+
.action(async (opts, command) => {
|
|
54
|
+
const result = resetWorkflowPins(opts);
|
|
55
|
+
if (result.local?.malformedRemoved) {
|
|
56
|
+
warn(`Removed malformed cwd-local ${result.local.path}; it could not be treated as a ` +
|
|
57
|
+
'Controller AI workflow pin, so reset continued instead of refusing the command.');
|
|
58
|
+
}
|
|
59
|
+
const effective = resolveWorkflowPin(globalOpt(command, 'workflow'));
|
|
60
|
+
const environmentPinRemains = Boolean(process.env.CAI_WORKFLOW);
|
|
61
|
+
if (environmentPinRemains) {
|
|
62
|
+
warn('CAI_WORKFLOW remains set in the parent environment; this child process cannot ' +
|
|
63
|
+
'unset it. It will keep overriding file pins unless --workflow is passed.');
|
|
64
|
+
}
|
|
65
|
+
const payload = {
|
|
66
|
+
...result,
|
|
67
|
+
effectiveWorkflowId: effective.workflowId ?? null,
|
|
68
|
+
pinSource: effective.source,
|
|
69
|
+
pinPath: effective.path,
|
|
70
|
+
environmentPinRemains,
|
|
71
|
+
};
|
|
72
|
+
emit(payload, () => printKeyValues([
|
|
73
|
+
['reset scopes', result.scopes.join(' + ')],
|
|
74
|
+
[
|
|
75
|
+
'local pin',
|
|
76
|
+
result.local
|
|
77
|
+
? `${result.local.path} (${result.local.cleared ? 'cleared' : 'already clear'})`
|
|
78
|
+
: 'not requested',
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
'config pin',
|
|
82
|
+
result.global
|
|
83
|
+
? `${result.global.path} (${result.global.cleared ? 'cleared' : 'already clear'})`
|
|
84
|
+
: 'not requested',
|
|
85
|
+
],
|
|
86
|
+
[
|
|
87
|
+
'effective workflow',
|
|
88
|
+
effective.source === 'none'
|
|
89
|
+
? '(none)'
|
|
90
|
+
: `${String(effective.workflowId)} (${effective.source})`,
|
|
91
|
+
],
|
|
92
|
+
['effective pin path', effective.path ?? '(none)'],
|
|
93
|
+
[
|
|
94
|
+
'CAI_WORKFLOW',
|
|
95
|
+
environmentPinRemains ? 'still set in the parent environment' : '(not set)',
|
|
96
|
+
],
|
|
97
|
+
]));
|
|
98
|
+
});
|
|
99
|
+
};
|
|
39
100
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { realpathSync } from 'node:fs';
|
|
|
3
3
|
import { pathToFileURL } from 'node:url';
|
|
4
4
|
import { Command } from 'commander';
|
|
5
5
|
import { addGlobalOptions, applyExitOverride, collectFlags, explainUnknownOptions, normalizeArgv, } from './argv.js';
|
|
6
|
-
import { globalOpt } from './context.js';
|
|
6
|
+
import { globalOpt, registerConfig } from './context.js';
|
|
7
7
|
import { CaiError, EXIT } from './errors.js';
|
|
8
8
|
import { emitError, setCommandPath, setJsonMode } from './output.js';
|
|
9
9
|
import { registerAuth } from './commands/auth.js';
|
|
@@ -46,6 +46,7 @@ export const buildProgram = () => {
|
|
|
46
46
|
registerAuth(program);
|
|
47
47
|
registerConnect(program);
|
|
48
48
|
registerSkills(program);
|
|
49
|
+
registerConfig(program);
|
|
49
50
|
registerDoctor(program);
|
|
50
51
|
registerAgent(program);
|
|
51
52
|
registerUse(program);
|
|
@@ -53,6 +54,15 @@ export const buildProgram = () => {
|
|
|
53
54
|
registerFlow(program);
|
|
54
55
|
registerIntegration(program);
|
|
55
56
|
registerNode(program);
|
|
57
|
+
// `node type` was a dominant invented command in the eval corpus. Keep the
|
|
58
|
+
// established `status` name canonical, while making the semantic correction
|
|
59
|
+
// `cai node output <nodeId>` directly executable.
|
|
60
|
+
const nodeStatus = program.commands
|
|
61
|
+
.find(command => command.name() === 'node')
|
|
62
|
+
?.commands.find(command => command.name() === 'status');
|
|
63
|
+
if (!nodeStatus)
|
|
64
|
+
throw new Error('Expected the registered `cai node status` command.');
|
|
65
|
+
nodeStatus.alias('output');
|
|
56
66
|
registerExpr(program);
|
|
57
67
|
registerRun(program);
|
|
58
68
|
registerExec(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|