arcrun 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/auth-recipe.d.ts +11 -0
- package/dist/commands/auth-recipe.d.ts.map +1 -0
- package/dist/commands/auth-recipe.js +180 -0
- package/dist/commands/auth-recipe.js.map +1 -0
- package/dist/commands/creds.d.ts.map +1 -1
- package/dist/commands/creds.js +51 -24
- package/dist/commands/creds.js.map +1 -1
- package/dist/commands/init.js +14 -20
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/parts.d.ts.map +1 -1
- package/dist/commands/parts.js +322 -151
- package/dist/commands/parts.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +70 -42
- package/dist/commands/push.js.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +2 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/push.js
CHANGED
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* acr push <workflow.yaml>
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* 解析 workflow.yaml,透過 /cypher/search 取得執行圖,
|
|
5
|
+
* 然後 POST 至 cypher.arcrun.dev/webhooks/named(帶 X-Arcrun-API-Key)。
|
|
6
|
+
* Server 以 {api_key}:wf:{name} 為 KV key 存入 WEBHOOKS KV。
|
|
7
|
+
*
|
|
8
|
+
* 不再需要用戶的 CF API Token 或 KV Namespace ID。
|
|
4
9
|
*/
|
|
5
10
|
import chalk from 'chalk';
|
|
6
11
|
import ora from 'ora';
|
|
7
12
|
import { loadConfig, getCypherExecutorUrl } from '../lib/config.js';
|
|
8
|
-
import { CfKvClient } from '../lib/cf-api.js';
|
|
9
13
|
import { loadWorkflowYaml, parseTriplets, validateRelations } from '../lib/yaml-parser.js';
|
|
10
14
|
export async function cmdPush(filePath) {
|
|
11
15
|
const config = loadConfig();
|
|
16
|
+
if (config.mode === 'local') {
|
|
17
|
+
console.error(chalk.red('Local 模式不支援 acr push(Webhook 部署需要 Standard 模式)。'));
|
|
18
|
+
console.log(chalk.gray('請執行 acr init 取得 API Key,或直接用 acr run 本機測試。'));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
if (!config.api_key) {
|
|
22
|
+
console.error(chalk.red('缺少 api_key,請重新執行 acr init。'));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
// 解析 YAML
|
|
12
26
|
const spinner = ora('解析 workflow.yaml').start();
|
|
13
27
|
let workflow;
|
|
14
28
|
try {
|
|
15
29
|
workflow = loadWorkflowYaml(filePath);
|
|
16
|
-
spinner.text = `驗證三元組(${workflow.flow.length} 條)`;
|
|
17
30
|
const triplets = parseTriplets(workflow.flow);
|
|
18
31
|
validateRelations(triplets);
|
|
19
32
|
spinner.succeed(`解析完成:${workflow.name}(${triplets.length} 條三元組)`);
|
|
@@ -22,15 +35,15 @@ export async function cmdPush(filePath) {
|
|
|
22
35
|
spinner.fail(chalk.red(`解析失敗:${e instanceof Error ? e.message : e}`));
|
|
23
36
|
process.exit(1);
|
|
24
37
|
}
|
|
25
|
-
// POST 到 cypher-executor 取得執行圖
|
|
26
38
|
const executorUrl = getCypherExecutorUrl(config);
|
|
27
|
-
const
|
|
28
|
-
|
|
39
|
+
const headers = {
|
|
40
|
+
'Content-Type': 'application/json',
|
|
41
|
+
'X-Arcrun-API-Key': config.api_key,
|
|
42
|
+
};
|
|
43
|
+
// 向 /cypher/search 取得執行圖
|
|
44
|
+
const searchSpinner = ora('取得執行圖').start();
|
|
29
45
|
let graph;
|
|
30
46
|
try {
|
|
31
|
-
const headers = { 'Content-Type': 'application/json' };
|
|
32
|
-
if (config.api_key)
|
|
33
|
-
headers['X-Arcrun-API-Key'] = config.api_key;
|
|
34
47
|
const res = await fetch(`${executorUrl}/cypher/search`, {
|
|
35
48
|
method: 'POST',
|
|
36
49
|
headers,
|
|
@@ -42,52 +55,67 @@ export async function cmdPush(filePath) {
|
|
|
42
55
|
process.exit(1);
|
|
43
56
|
}
|
|
44
57
|
const data = await res.json();
|
|
45
|
-
if (data.missing
|
|
58
|
+
if (data.missing?.length > 0) {
|
|
46
59
|
searchSpinner.fail(chalk.red(`以下零件不存在:${data.missing.join(', ')}\n執行 acr parts 查看可用零件。`));
|
|
47
60
|
process.exit(1);
|
|
48
61
|
}
|
|
49
|
-
|
|
62
|
+
// 附上 id / name,並將 workflow.config 套入節點(componentId + data)
|
|
63
|
+
const rawGraph = data.cypher;
|
|
64
|
+
const cfg = (workflow.config ?? {});
|
|
65
|
+
const nodes = rawGraph.nodes.map(node => {
|
|
66
|
+
const nodeCfg = cfg[node.id];
|
|
67
|
+
if (!nodeCfg)
|
|
68
|
+
return node;
|
|
69
|
+
const { component, ...params } = nodeCfg;
|
|
70
|
+
return {
|
|
71
|
+
...node,
|
|
72
|
+
componentId: typeof component === 'string' ? component : node.componentId,
|
|
73
|
+
data: Object.keys(params).length > 0 ? { ...(node.data ?? {}), ...params } : node.data,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
graph = { id: workflow.name, name: workflow.name, nodes, edges: rawGraph.edges };
|
|
50
77
|
searchSpinner.succeed('執行圖解析完成');
|
|
51
78
|
}
|
|
52
79
|
catch (e) {
|
|
53
80
|
searchSpinner.fail(chalk.red(`網路錯誤:${e instanceof Error ? e.message : e}`));
|
|
54
81
|
process.exit(1);
|
|
55
82
|
}
|
|
56
|
-
//
|
|
57
|
-
const
|
|
58
|
-
? config.user_kv_namespace_id
|
|
59
|
-
: config.webhooks_kv_namespace_id;
|
|
60
|
-
if (!namespaceId || !config.cloudflare_account_id || !config.cf_api_token) {
|
|
61
|
-
console.error(chalk.red('缺少 KV 設定,請執行 acr init'));
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
const kv = new CfKvClient({
|
|
65
|
-
accountId: config.cloudflare_account_id,
|
|
66
|
-
namespaceId,
|
|
67
|
-
apiToken: config.cf_api_token,
|
|
68
|
-
});
|
|
69
|
-
const kvSpinner = ora('寫入 workflow 至 CF KV').start();
|
|
83
|
+
// POST 至 /webhooks/named
|
|
84
|
+
const deploySpinner = ora(`部署 "${workflow.name}" 至 ${executorUrl}`).start();
|
|
70
85
|
try {
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
const res = await fetch(`${executorUrl}/webhooks/named`, {
|
|
87
|
+
method: 'POST',
|
|
88
|
+
headers,
|
|
89
|
+
body: JSON.stringify({
|
|
90
|
+
name: workflow.name,
|
|
91
|
+
graph,
|
|
92
|
+
config: workflow.config ?? {},
|
|
93
|
+
description: workflow.description ?? '',
|
|
94
|
+
}),
|
|
95
|
+
});
|
|
96
|
+
if (!res.ok) {
|
|
97
|
+
const err = await res.text();
|
|
98
|
+
deploySpinner.fail(chalk.red(`部署失敗(${res.status}):${err.slice(0, 200)}`));
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
const data = await res.json();
|
|
102
|
+
deploySpinner.succeed(chalk.green(`✓ "${workflow.name}" 已部署`));
|
|
103
|
+
console.log(chalk.bold(`\n Webhook URL:${chalk.cyan(data.webhook_url)}`));
|
|
104
|
+
console.log(chalk.gray(` 需帶 Header:X-Arcrun-API-Key: ${config.api_key.slice(0, 8)}...`));
|
|
105
|
+
console.log('');
|
|
106
|
+
console.log(chalk.gray(' 測試執行:'));
|
|
107
|
+
console.log(` ${chalk.cyan(`acr run ${workflow.name}`)}`);
|
|
108
|
+
console.log('');
|
|
109
|
+
console.log(chalk.gray(' curl 觸發範例:'));
|
|
110
|
+
console.log(` ${chalk.cyan(`curl -X POST ${data.webhook_url} \\`)}`);
|
|
111
|
+
console.log(` ${chalk.cyan(` -H 'X-Arcrun-API-Key: ${config.api_key}' \\`)}`);
|
|
112
|
+
console.log(` ${chalk.cyan(` -H 'Content-Type: application/json' \\`)}`);
|
|
113
|
+
console.log(` ${chalk.cyan(` -d '{"key": "value"}'`)}`);
|
|
114
|
+
console.log('');
|
|
80
115
|
}
|
|
81
116
|
catch (e) {
|
|
82
|
-
|
|
117
|
+
deploySpinner.fail(chalk.red(`部署失敗:${e instanceof Error ? e.message : e}`));
|
|
83
118
|
process.exit(1);
|
|
84
119
|
}
|
|
85
|
-
const executorBase = getCypherExecutorUrl(config);
|
|
86
|
-
const webhookUrl = `${executorBase}/webhooks/${workflow.name}`;
|
|
87
|
-
console.log(chalk.bold(`\n Webhook URL:${chalk.cyan(webhookUrl)}`));
|
|
88
|
-
if (config.api_key) {
|
|
89
|
-
console.log(chalk.gray(` (使用時需帶 X-Arcrun-API-Key: ${config.api_key.slice(0, 8)}...)\n`));
|
|
90
|
-
}
|
|
91
|
-
console.log(` 執行:${chalk.cyan(`acr run ${workflow.name}`)}\n`);
|
|
92
120
|
}
|
|
93
121
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,11 +16,12 @@ import { cmdParts, cmdPartsScaffold, cmdPartsPublish } from './commands/parts.js
|
|
|
16
16
|
import { cmdRecipePush, cmdRecipeList, cmdRecipeDelete } from './commands/recipe.js';
|
|
17
17
|
import { cmdList } from './commands/list.js';
|
|
18
18
|
import { cmdLogs } from './commands/logs.js';
|
|
19
|
+
import { cmdAuthRecipeList, cmdAuthRecipeInfo, cmdAuthRecipeScaffold } from './commands/auth-recipe.js';
|
|
19
20
|
const program = new Command();
|
|
20
21
|
program
|
|
21
22
|
.name('acr')
|
|
22
23
|
.description('arcrun — AI Workflow CLI for Cloudflare Workers + WASM')
|
|
23
|
-
.version('1.0
|
|
24
|
+
.version('1.1.0');
|
|
24
25
|
// acr init [--self-hosted]
|
|
25
26
|
program
|
|
26
27
|
.command('init')
|
|
@@ -80,6 +81,20 @@ recipeCmd
|
|
|
80
81
|
.command('delete <id>')
|
|
81
82
|
.description('刪除 recipe(canonical_id 或 rec_hash)')
|
|
82
83
|
.action((id) => cmdRecipeDelete(id));
|
|
84
|
+
// acr auth-recipe list / info / scaffold
|
|
85
|
+
const authRecipeCmd = program.command('auth-recipe').description('第三方服務認證 Recipe(新增服務整合)');
|
|
86
|
+
authRecipeCmd
|
|
87
|
+
.command('list')
|
|
88
|
+
.description('列出所有平台預建的服務整合(Notion、Slack、GitHub 等)')
|
|
89
|
+
.action(() => cmdAuthRecipeList());
|
|
90
|
+
authRecipeCmd
|
|
91
|
+
.command('info <service>')
|
|
92
|
+
.description('顯示服務 recipe 詳情(需要哪些 credential)')
|
|
93
|
+
.action((service) => cmdAuthRecipeInfo(service));
|
|
94
|
+
authRecipeCmd
|
|
95
|
+
.command('scaffold <service>')
|
|
96
|
+
.description('輸出 credentials.yaml 範本 + workflow.yaml 使用範例')
|
|
97
|
+
.action((service) => cmdAuthRecipeScaffold(service));
|
|
83
98
|
// acr list
|
|
84
99
|
program
|
|
85
100
|
.command('list')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export interface ArcrunConfig {
|
|
2
2
|
mode: 'local' | 'standard' | 'self-hosted';
|
|
3
|
+
api_key?: string;
|
|
4
|
+
encryption_key?: string;
|
|
3
5
|
cloudflare_account_id?: string;
|
|
4
6
|
user_kv_namespace_id?: string;
|
|
5
7
|
cf_api_token?: string;
|
|
6
|
-
api_key?: string;
|
|
7
8
|
cypher_executor_url?: string;
|
|
8
9
|
credentials_kv_namespace_id?: string;
|
|
9
10
|
webhooks_kv_namespace_id?: string;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;IAE3C,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;IAE3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAKD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,YAAY,CAOzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGrD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAKjE"}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,SAAS,CAAC;AAmB3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,uDAAuD;QACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACpC,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC"}
|