@openreef/cli 0.2.0 → 0.3.1
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 +3 -3
- package/dist/commands/install.d.ts +2 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +75 -10
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/logs.d.ts +8 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +118 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/repair.d.ts +10 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.js +328 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -27
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts +1 -0
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +94 -60
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +12 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +531 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/core/config-patcher.d.ts.map +1 -1
- package/dist/core/config-patcher.js +10 -1
- package/dist/core/config-patcher.js.map +1 -1
- package/dist/core/gateway-client.js +1 -1
- package/dist/core/log-reader.d.ts +28 -0
- package/dist/core/log-reader.d.ts.map +1 -0
- package/dist/core/log-reader.js +69 -0
- package/dist/core/log-reader.js.map +1 -0
- package/dist/core/migration-planner.d.ts +37 -0
- package/dist/core/migration-planner.d.ts.map +1 -0
- package/dist/core/migration-planner.js +160 -0
- package/dist/core/migration-planner.js.map +1 -0
- package/dist/core/openclaw-paths.d.ts +6 -0
- package/dist/core/openclaw-paths.d.ts.map +1 -1
- package/dist/core/openclaw-paths.js +14 -0
- package/dist/core/openclaw-paths.js.map +1 -1
- package/dist/core/state-differ.d.ts +15 -0
- package/dist/core/state-differ.d.ts.map +1 -0
- package/dist/core/state-differ.js +135 -0
- package/dist/core/state-differ.js.map +1 -0
- package/dist/index.js +63 -1
- package/dist/index.js.map +1 -1
- package/dist/types/state.d.ts +14 -0
- package/dist/types/state.d.ts.map +1 -1
- package/dist/utils/identifiers.d.ts +18 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +50 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/tarball.d.ts +12 -0
- package/dist/utils/tarball.d.ts.map +1 -0
- package/dist/utils/tarball.js +23 -0
- package/dist/utils/tarball.js.map +1 -0
- package/package.json +1 -1
- package/template/reef.json +6 -6
package/dist/index.js
CHANGED
|
@@ -8,11 +8,14 @@ import { install } from './commands/install.js';
|
|
|
8
8
|
import { uninstall } from './commands/uninstall.js';
|
|
9
9
|
import { list } from './commands/list.js';
|
|
10
10
|
import { status } from './commands/status.js';
|
|
11
|
+
import { repair } from './commands/repair.js';
|
|
12
|
+
import { update } from './commands/update.js';
|
|
13
|
+
import { logs } from './commands/logs.js';
|
|
11
14
|
const program = new Command();
|
|
12
15
|
program
|
|
13
16
|
.name('reef')
|
|
14
17
|
.description('OpenReef CLI — package and deploy multi-agent formations')
|
|
15
|
-
.version('0.
|
|
18
|
+
.version('0.3.1');
|
|
16
19
|
program
|
|
17
20
|
.command('init [name]')
|
|
18
21
|
.description('Scaffold a new formation from the bundled template')
|
|
@@ -78,6 +81,7 @@ program
|
|
|
78
81
|
.option('--merge', 'Update files only, preserve agent config')
|
|
79
82
|
.option('--yes', 'Skip confirmation prompts')
|
|
80
83
|
.option('--no-env', 'Skip loading .env file')
|
|
84
|
+
.option('--dry-run', 'Preview changes without applying them')
|
|
81
85
|
.option('--gateway-url <url>', 'Gateway WebSocket URL')
|
|
82
86
|
.option('--gateway-token <token>', 'Gateway auth token')
|
|
83
87
|
.option('--gateway-password <password>', 'Gateway auth password')
|
|
@@ -94,6 +98,7 @@ program
|
|
|
94
98
|
.command('uninstall <identifier>')
|
|
95
99
|
.description('Remove an installed formation (namespace/name or name)')
|
|
96
100
|
.option('--yes', 'Skip confirmation')
|
|
101
|
+
.option('--dry-run', 'Preview changes without applying them')
|
|
97
102
|
.option('--gateway-url <url>', 'Gateway WebSocket URL')
|
|
98
103
|
.option('--gateway-token <token>', 'Gateway auth token')
|
|
99
104
|
.option('--gateway-password <password>', 'Gateway auth password')
|
|
@@ -106,6 +111,63 @@ program
|
|
|
106
111
|
process.exit(1);
|
|
107
112
|
}
|
|
108
113
|
});
|
|
114
|
+
program
|
|
115
|
+
.command('update <path>')
|
|
116
|
+
.description('Update an installed formation from a new manifest')
|
|
117
|
+
.option('--set <key=value...>', 'Set variable values')
|
|
118
|
+
.option('--namespace <ns>', 'Override namespace')
|
|
119
|
+
.option('--yes', 'Skip confirmation')
|
|
120
|
+
.option('--no-env', 'Skip loading .env file')
|
|
121
|
+
.option('--dry-run', 'Preview changes without applying them')
|
|
122
|
+
.option('--gateway-url <url>', 'Gateway WebSocket URL')
|
|
123
|
+
.option('--gateway-token <token>', 'Gateway auth token')
|
|
124
|
+
.option('--gateway-password <password>', 'Gateway auth password')
|
|
125
|
+
.action(async (path, options) => {
|
|
126
|
+
try {
|
|
127
|
+
await update(path, options);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
console.error(err instanceof Error ? err.message : err);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
program
|
|
135
|
+
.command('repair <identifier>')
|
|
136
|
+
.description('Detect and fix discrepancies in an installed formation')
|
|
137
|
+
.option('--source <path>', 'Formation source for file re-deployment')
|
|
138
|
+
.option('--yes', 'Skip confirmation')
|
|
139
|
+
.option('--dry-run', 'Preview changes without applying them')
|
|
140
|
+
.option('--gateway-url <url>', 'Gateway WebSocket URL')
|
|
141
|
+
.option('--gateway-token <token>', 'Gateway auth token')
|
|
142
|
+
.option('--gateway-password <password>', 'Gateway auth password')
|
|
143
|
+
.action(async (identifier, options) => {
|
|
144
|
+
try {
|
|
145
|
+
await repair(identifier, options);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
console.error(err instanceof Error ? err.message : err);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
program
|
|
153
|
+
.command('logs <identifier>')
|
|
154
|
+
.description('View session logs for a formation')
|
|
155
|
+
.option('--agent <slug>', 'Filter by agent slug or ID')
|
|
156
|
+
.option('--lines <n>', 'Number of lines to show', '50')
|
|
157
|
+
.option('--follow', 'Follow log output (tail -f)')
|
|
158
|
+
.option('--path <path>', 'Read from a specific log file')
|
|
159
|
+
.action(async (identifier, options) => {
|
|
160
|
+
try {
|
|
161
|
+
await logs(identifier, {
|
|
162
|
+
...options,
|
|
163
|
+
lines: parseInt(options.lines, 10),
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
console.error(err instanceof Error ? err.message : err);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
109
171
|
program
|
|
110
172
|
.command('list')
|
|
111
173
|
.description('List installed formations')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/state.d.ts
CHANGED
|
@@ -12,17 +12,31 @@ export interface FormationState {
|
|
|
12
12
|
wasEnabled: boolean;
|
|
13
13
|
allowAdded: boolean;
|
|
14
14
|
};
|
|
15
|
+
sourcePath?: string;
|
|
16
|
+
updatedAt?: string;
|
|
17
|
+
agentToAgentEdges?: Record<string, string[]>;
|
|
15
18
|
}
|
|
16
19
|
export interface AgentState {
|
|
17
20
|
id: string;
|
|
18
21
|
slug: string;
|
|
19
22
|
workspace: string;
|
|
20
23
|
files: string[];
|
|
24
|
+
model?: string | {
|
|
25
|
+
primary?: string;
|
|
26
|
+
fallbacks?: string[];
|
|
27
|
+
};
|
|
28
|
+
configTools?: Record<string, unknown>;
|
|
29
|
+
configSandbox?: Record<string, unknown>;
|
|
30
|
+
configIdentity?: Record<string, unknown>;
|
|
31
|
+
configSkills?: string[];
|
|
21
32
|
}
|
|
22
33
|
export interface CronJobState {
|
|
23
34
|
id: string;
|
|
24
35
|
name: string;
|
|
25
36
|
agentSlug: string;
|
|
37
|
+
schedule?: string;
|
|
38
|
+
timezone?: string;
|
|
39
|
+
prompt?: string;
|
|
26
40
|
}
|
|
27
41
|
export interface OpenClawBinding {
|
|
28
42
|
agentId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FormationState } from '../types/state.js';
|
|
2
|
+
export declare class FormationNotFoundError extends Error {
|
|
3
|
+
constructor(identifier: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class AmbiguousFormationError extends Error {
|
|
6
|
+
matches: FormationState[];
|
|
7
|
+
constructor(name: string, matches: FormationState[]);
|
|
8
|
+
}
|
|
9
|
+
export declare function parseIdentifier(identifier: string): {
|
|
10
|
+
namespace?: string;
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Resolve an identifier (namespace/name or bare name) to a FormationState.
|
|
15
|
+
* Throws FormationNotFoundError if no match, AmbiguousFormationError if >1 match.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveFormationState(identifier: string, env?: NodeJS.ProcessEnv): Promise<FormationState>;
|
|
18
|
+
//# sourceMappingURL=identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,OAAO,EAAE,cAAc,EAAE,CAAC;gBACd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;CAKpD;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,GACjB;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAStC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,OAAO,CAAC,cAAc,CAAC,CAuBzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { loadState, listStates } from '../core/state-manager.js';
|
|
2
|
+
export class FormationNotFoundError extends Error {
|
|
3
|
+
constructor(identifier) {
|
|
4
|
+
super(`Formation "${identifier}" not found.`);
|
|
5
|
+
this.name = 'FormationNotFoundError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export class AmbiguousFormationError extends Error {
|
|
9
|
+
matches;
|
|
10
|
+
constructor(name, matches) {
|
|
11
|
+
super(`Multiple formations named "${name}" found.`);
|
|
12
|
+
this.name = 'AmbiguousFormationError';
|
|
13
|
+
this.matches = matches;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function parseIdentifier(identifier) {
|
|
17
|
+
const slash = identifier.indexOf('/');
|
|
18
|
+
if (slash !== -1) {
|
|
19
|
+
return {
|
|
20
|
+
namespace: identifier.slice(0, slash),
|
|
21
|
+
name: identifier.slice(slash + 1),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return { name: identifier };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve an identifier (namespace/name or bare name) to a FormationState.
|
|
28
|
+
* Throws FormationNotFoundError if no match, AmbiguousFormationError if >1 match.
|
|
29
|
+
*/
|
|
30
|
+
export async function resolveFormationState(identifier, env) {
|
|
31
|
+
const parsed = parseIdentifier(identifier);
|
|
32
|
+
if (parsed.namespace) {
|
|
33
|
+
const state = await loadState(parsed.namespace, parsed.name, env);
|
|
34
|
+
if (!state) {
|
|
35
|
+
throw new FormationNotFoundError(identifier);
|
|
36
|
+
}
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
// Search all states for unique match by name
|
|
40
|
+
const allStates = await listStates(env);
|
|
41
|
+
const matches = allStates.filter((s) => s.name === parsed.name);
|
|
42
|
+
if (matches.length === 0) {
|
|
43
|
+
throw new FormationNotFoundError(parsed.name);
|
|
44
|
+
}
|
|
45
|
+
if (matches.length > 1) {
|
|
46
|
+
throw new AmbiguousFormationError(parsed.name, matches);
|
|
47
|
+
}
|
|
48
|
+
return matches[0];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=identifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/utils/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,UAAkB;QAC5B,KAAK,CAAC,cAAc,UAAU,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,OAAO,CAAmB;IAC1B,YAAY,IAAY,EAAE,OAAyB;QACjD,KAAK,CAAC,8BAA8B,IAAI,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO;YACL,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YACrC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAClC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,GAAuB;IAEvB,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE3C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6CAA6C;IAC7C,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* If the given path looks like a tarball (.tar.gz or .tgz), extract it
|
|
3
|
+
* to a temp directory and return the extracted path. Otherwise return
|
|
4
|
+
* the original path unchanged.
|
|
5
|
+
*
|
|
6
|
+
* Caller is responsible for cleaning up the temp directory if one was created.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveFormationPath(inputPath: string): Promise<{
|
|
9
|
+
formationPath: string;
|
|
10
|
+
tempDir: string | null;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=tarball.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarball.d.ts","sourceRoot":"","sources":["../../src/utils/tarball.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQ5D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { mkdtemp } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { extract } from 'tar';
|
|
5
|
+
/**
|
|
6
|
+
* If the given path looks like a tarball (.tar.gz or .tgz), extract it
|
|
7
|
+
* to a temp directory and return the extracted path. Otherwise return
|
|
8
|
+
* the original path unchanged.
|
|
9
|
+
*
|
|
10
|
+
* Caller is responsible for cleaning up the temp directory if one was created.
|
|
11
|
+
*/
|
|
12
|
+
export async function resolveFormationPath(inputPath) {
|
|
13
|
+
if (!isTarball(inputPath)) {
|
|
14
|
+
return { formationPath: inputPath, tempDir: null };
|
|
15
|
+
}
|
|
16
|
+
const tempDir = await mkdtemp(join(tmpdir(), 'reef-install-'));
|
|
17
|
+
await extract({ file: inputPath, cwd: tempDir });
|
|
18
|
+
return { formationPath: tempDir, tempDir };
|
|
19
|
+
}
|
|
20
|
+
function isTarball(path) {
|
|
21
|
+
return path.endsWith('.tar.gz') || path.endsWith('.tgz') || path.endsWith('.reef.tar.gz');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=tarball.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarball.js","sourceRoot":"","sources":["../../src/utils/tarball.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC5F,CAAC"}
|
package/package.json
CHANGED
package/template/reef.json
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
"author": "TODO: Your name or organization",
|
|
8
8
|
"namespace": "my-formation",
|
|
9
9
|
"variables": {
|
|
10
|
-
"
|
|
10
|
+
"ANTHROPIC_API_KEY": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"description": "
|
|
12
|
+
"description": "Anthropic API key for LLM calls",
|
|
13
13
|
"required": true,
|
|
14
14
|
"sensitive": true
|
|
15
15
|
},
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"source": "agents/manager",
|
|
27
27
|
"description": "Coordinates the team, delegates tasks, and synthesizes results",
|
|
28
28
|
"role": "coordinator",
|
|
29
|
-
"model": "
|
|
29
|
+
"model": "anthropic/claude-opus-4-6",
|
|
30
30
|
"tools": {
|
|
31
31
|
"allow": ["web-search", "file-read"]
|
|
32
32
|
},
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"source": "agents/researcher",
|
|
40
40
|
"description": "Conducts deep research on assigned topics and reports findings",
|
|
41
41
|
"role": "researcher",
|
|
42
|
-
"model": "
|
|
42
|
+
"model": "anthropic/claude-sonnet-4-5",
|
|
43
43
|
"tools": {
|
|
44
44
|
"allow": ["web-search"]
|
|
45
45
|
},
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
},
|
|
69
69
|
"services": [
|
|
70
70
|
{
|
|
71
|
-
"name": "
|
|
72
|
-
"url": "https://
|
|
71
|
+
"name": "Anthropic API",
|
|
72
|
+
"url": "https://console.anthropic.com",
|
|
73
73
|
"required": true,
|
|
74
74
|
"description": "LLM provider for all agents"
|
|
75
75
|
}
|