arcrun 1.0.9 → 1.3.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/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +39 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +5 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +147 -19
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-harness.d.ts +2 -0
- package/dist/commands/install-harness.d.ts.map +1 -0
- package/dist/commands/install-harness.js +122 -0
- package/dist/commands/install-harness.js.map +1 -0
- package/dist/commands/mcp-setup.d.ts +12 -0
- package/dist/commands/mcp-setup.d.ts.map +1 -0
- package/dist/commands/mcp-setup.js +42 -0
- package/dist/commands/mcp-setup.js.map +1 -0
- package/dist/commands/parts.d.ts.map +1 -1
- package/dist/commands/parts.js +48 -2
- package/dist/commands/parts.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +13 -0
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/recipe.d.ts.map +1 -1
- package/dist/commands/recipe.js +63 -1
- package/dist/commands/recipe.js.map +1 -1
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +89 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.js +2 -2
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.js +58 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api-recipe-seeds.d.ts +32 -0
- package/dist/lib/api-recipe-seeds.d.ts.map +1 -0
- package/dist/lib/api-recipe-seeds.js +108 -0
- package/dist/lib/api-recipe-seeds.js.map +1 -0
- package/dist/lib/cf-api.d.ts +22 -0
- package/dist/lib/cf-api.d.ts.map +1 -1
- package/dist/lib/cf-api.js +58 -0
- package/dist/lib/cf-api.js.map +1 -1
- package/dist/lib/config.d.ts +34 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +123 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/deploy.d.ts +56 -0
- package/dist/lib/deploy.d.ts.map +1 -0
- package/dist/lib/deploy.js +239 -0
- package/dist/lib/deploy.js.map +1 -0
- package/dist/lib/exposure-warning.d.ts +25 -0
- package/dist/lib/exposure-warning.d.ts.map +1 -0
- package/dist/lib/exposure-warning.js +92 -0
- package/dist/lib/exposure-warning.js.map +1 -0
- package/dist/lib/yaml-parser.d.ts.map +1 -1
- package/dist/lib/yaml-parser.js +7 -1
- package/dist/lib/yaml-parser.js.map +1 -1
- package/harness/CLAUDE.block.md +15 -0
- package/harness/commands/arcrun.md +29 -0
- package/harness/hooks/arcrun-guard.sh +54 -0
- package/harness/settings.fragment.json +16 -0
- package/harness/skills/arcrun-mindset/SKILL.md +78 -0
- package/package.json +5 -4
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* acr update — 拉新 GitHub release,重新部署零件/引擎到用戶自己的 Cloudflare。
|
|
3
|
+
*
|
|
4
|
+
* 與 acr init --self-hosted 走同一條「下載 release → 注入 KV id → wrangler deploy」的路,
|
|
5
|
+
* 差別只在:init 是首次(建 KV/R2 + 寫 config),update 是沿用既有 config 重部署變動的 Worker。
|
|
6
|
+
*
|
|
7
|
+
* 對應 SDD:.agents/specs/arcrun/sdk-and-website/self-hosted-init.md §3「acr update」
|
|
8
|
+
*
|
|
9
|
+
* 誠實限制(mindset §7 / SDD §6):部署依賴 GitHub release(含預編譯 wasm),
|
|
10
|
+
* release 產製管道補上前,誠實回報未實作,不假裝更新成功。
|
|
11
|
+
*/
|
|
12
|
+
import chalk from 'chalk';
|
|
13
|
+
import { loadConfig } from '../lib/config.js';
|
|
14
|
+
import { CfAccountClient } from '../lib/cf-api.js';
|
|
15
|
+
import { wranglerAvailable, downloadAndDeploy, REQUIRED_KV_NAMESPACES, } from '../lib/deploy.js';
|
|
16
|
+
export async function cmdUpdate() {
|
|
17
|
+
const config = loadConfig();
|
|
18
|
+
if (config.mode !== 'self-hosted') {
|
|
19
|
+
console.log(chalk.yellow('\n acr update 只用於 self-hosted 模式(部署在你自己的 Cloudflare)。'));
|
|
20
|
+
console.log(chalk.gray(' 目前模式:' + config.mode + '。如要 self-host,先跑 acr init --self-hosted。\n'));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
if (!config.cloudflare_account_id || !config.cf_api_token) {
|
|
24
|
+
console.log(chalk.yellow('\n config 缺 cloudflare_account_id / cf_api_token,無法部署。'));
|
|
25
|
+
console.log(chalk.gray(' 請重新跑 acr init --self-hosted。\n'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
if (!wranglerAvailable()) {
|
|
29
|
+
console.log(chalk.yellow('\n ✗ 找不到 wrangler(Cloudflare CLI)。請先 npm i -g wrangler。\n'));
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
console.log(chalk.bold('\n acr update — 拉新 release 並重新部署\n'));
|
|
33
|
+
// 重新解析「全部」KV namespace id(冪等:已存在則重用),不只 config 存的兩個。
|
|
34
|
+
// 壓測 §4.1.3:舊版 update 只注入 WEBHOOKS+CREDENTIALS_KV,其餘 6 個注入成空字串 →
|
|
35
|
+
// 重部署反而可能弄壞需要 RECIPES/EXEC_CONTEXT/... 的 worker。改為與 init 同樣全建妥。
|
|
36
|
+
const cf = new CfAccountClient(config.cloudflare_account_id, config.cf_api_token);
|
|
37
|
+
const kvNamespaceIds = {};
|
|
38
|
+
try {
|
|
39
|
+
const existing = await cf.listKvNamespaces();
|
|
40
|
+
for (const title of REQUIRED_KV_NAMESPACES) {
|
|
41
|
+
kvNamespaceIds[title] = await cf.ensureKvNamespace(title, existing);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.log(chalk.yellow(`\n ✗ 解析 KV namespace 失敗:${e instanceof Error ? e.message : e}\n`));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
const ctx = {
|
|
49
|
+
accountId: config.cloudflare_account_id,
|
|
50
|
+
apiToken: config.cf_api_token,
|
|
51
|
+
workerSubdomain: extractSubdomain(config.cypher_executor_url),
|
|
52
|
+
kvNamespaceIds,
|
|
53
|
+
};
|
|
54
|
+
const result = await downloadAndDeploy(ctx);
|
|
55
|
+
if (result.implemented) {
|
|
56
|
+
console.log(chalk.green('\n ✓ 部署完成'));
|
|
57
|
+
// 重跑 seed(薄殼:呼叫 API /init/seed;冪等,覆寫既有)。
|
|
58
|
+
// 修壓測 §4.1.3「update 不做 seed,但 init 提示說 update 會重試 seed」的矛盾。
|
|
59
|
+
const cypherUrl = config.cypher_executor_url
|
|
60
|
+
?? result.cypherExecutorUrl
|
|
61
|
+
?? (ctx.workerSubdomain ? `https://arcrun-cypher-executor.${ctx.workerSubdomain}.workers.dev` : '');
|
|
62
|
+
if (cypherUrl) {
|
|
63
|
+
process.stdout.write(chalk.gray(' → 重新 seed recipe(API + auth,由 API 灌入)...'));
|
|
64
|
+
try {
|
|
65
|
+
const res = await fetch(`${cypherUrl}/init/seed`, { method: 'POST' });
|
|
66
|
+
const body = await res.json().catch(() => null);
|
|
67
|
+
console.log(res.ok && body?.success
|
|
68
|
+
? chalk.green(` ✓ ${body.message ?? ''}`)
|
|
69
|
+
: chalk.yellow(` ⚠ ${body?.message ?? `HTTP ${res.status}`}`));
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
console.log(chalk.yellow(` ⚠ seed 失敗(${e instanceof Error ? e.message : e})`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
console.log('');
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(chalk.yellow(' ⚠ 更新尚未自動化:'));
|
|
79
|
+
console.log(chalk.gray(' ' + result.message.split('\n').join('\n ')) + '\n');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/** 從 cypher_executor_url(https://arcrun-cypher-executor.<sub>.workers.dev)抽 subdomain。*/
|
|
83
|
+
function extractSubdomain(url) {
|
|
84
|
+
if (!url)
|
|
85
|
+
return '';
|
|
86
|
+
const m = url.match(/arcrun-cypher-executor\.([^.]+)\.workers\.dev/);
|
|
87
|
+
return m?.[1] ?? '';
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,11 +78,11 @@ export async function cmdValidate(filePath, options = {}) {
|
|
|
78
78
|
if (res.ok) {
|
|
79
79
|
const data = await res.json();
|
|
80
80
|
if (data.missing.length > 0) {
|
|
81
|
-
check('零件存在性', false, `
|
|
81
|
+
check('零件存在性', false, `registry 中找不到零件:${data.missing.join(', ')}`);
|
|
82
82
|
allPassed = false;
|
|
83
83
|
}
|
|
84
84
|
else {
|
|
85
|
-
check('零件存在性', true, '所有零件均已在
|
|
85
|
+
check('零件存在性', true, '所有零件均已在 registry');
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
* 使用:acr <指令>
|
|
8
8
|
*/
|
|
9
9
|
import { Command } from 'commander';
|
|
10
|
+
import { readFileSync } from 'node:fs';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { dirname, join } from 'node:path';
|
|
10
13
|
import { cmdInit } from './commands/init.js';
|
|
14
|
+
import { cmdConfig } from './commands/config.js';
|
|
11
15
|
import { cmdCredsPush } from './commands/creds.js';
|
|
12
16
|
import { cmdPush } from './commands/push.js';
|
|
13
17
|
import { cmdRun } from './commands/run.js';
|
|
@@ -16,18 +20,41 @@ import { cmdParts, cmdPartsScaffold, cmdPartsPublish } from './commands/parts.js
|
|
|
16
20
|
import { cmdRecipePush, cmdRecipeList, cmdRecipeDelete } from './commands/recipe.js';
|
|
17
21
|
import { cmdList } from './commands/list.js';
|
|
18
22
|
import { cmdLogs } from './commands/logs.js';
|
|
23
|
+
import { cmdUpdate } from './commands/update.js';
|
|
24
|
+
import { cmdInstallHarness } from './commands/install-harness.js';
|
|
25
|
+
import { cmdMcpSetup } from './commands/mcp-setup.js';
|
|
26
|
+
import { cmdAuthRecipeList, cmdAuthRecipeInfo, cmdAuthRecipeScaffold } from './commands/auth-recipe.js';
|
|
19
27
|
const program = new Command();
|
|
28
|
+
// 版本從 package.json 動態讀(dist/index.js 旁的 ../package.json),不 hardcode → 永不漂移。
|
|
29
|
+
// 之前 hardcode '1.1.0' 與 package.json '1.2.0' 不一致,正是「忘了改」的反例。
|
|
30
|
+
function readVersion() {
|
|
31
|
+
try {
|
|
32
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
33
|
+
return JSON.parse(readFileSync(join(here, '..', 'package.json'), 'utf8')).version ?? '0.0.0';
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return '0.0.0';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
20
39
|
program
|
|
21
40
|
.name('acr')
|
|
22
41
|
.description('arcrun — AI Workflow CLI for Cloudflare Workers + WASM')
|
|
23
|
-
.version(
|
|
24
|
-
// acr init [--self-hosted]
|
|
42
|
+
.version(readVersion());
|
|
43
|
+
// acr init [--self-hosted] [--account-id <id>] [--api-token <token>]
|
|
25
44
|
program
|
|
26
45
|
.command('init')
|
|
27
46
|
.description('互動式初始化設定(建立 ~/.arcrun/config.yaml)')
|
|
28
47
|
.option('--local', '本機模式:不需要 Cloudflare 帳號,直接在本機測試 workflow')
|
|
29
48
|
.option('--self-hosted', '完全 Self-hosted 模式:自行部署所有 Cloudflare Worker')
|
|
49
|
+
.option('--account-id <id>', 'self-hosted:CF Account ID(非互動;亦可用 CLOUDFLARE_ACCOUNT_ID env)')
|
|
50
|
+
.option('--api-token <token>', 'self-hosted:CF API Token(非互動;亦可用 CLOUDFLARE_API_TOKEN env)')
|
|
30
51
|
.action((options) => cmdInit(options));
|
|
52
|
+
// acr config [--where]:印出目前生效的設定與每個值的來源層(env / 專案層 / 全域)
|
|
53
|
+
program
|
|
54
|
+
.command('config')
|
|
55
|
+
.description('顯示目前生效的設定與來源層(避免在錯的資料夾用錯帳號)')
|
|
56
|
+
.option('--where', '顯示每個設定值來自哪一層(env > 專案層 .arcrun.yaml > 全域)')
|
|
57
|
+
.action((options) => cmdConfig(options));
|
|
31
58
|
// acr creds push [credentials.yaml]
|
|
32
59
|
const credsCmd = program.command('creds').description('Credential 管理');
|
|
33
60
|
credsCmd
|
|
@@ -80,6 +107,20 @@ recipeCmd
|
|
|
80
107
|
.command('delete <id>')
|
|
81
108
|
.description('刪除 recipe(canonical_id 或 rec_hash)')
|
|
82
109
|
.action((id) => cmdRecipeDelete(id));
|
|
110
|
+
// acr auth-recipe list / info / scaffold
|
|
111
|
+
const authRecipeCmd = program.command('auth-recipe').description('第三方服務認證 Recipe(新增服務整合)');
|
|
112
|
+
authRecipeCmd
|
|
113
|
+
.command('list')
|
|
114
|
+
.description('列出所有平台預建的服務整合(Notion、Slack、GitHub 等)')
|
|
115
|
+
.action(() => cmdAuthRecipeList());
|
|
116
|
+
authRecipeCmd
|
|
117
|
+
.command('info <service>')
|
|
118
|
+
.description('顯示服務 recipe 詳情(需要哪些 credential)')
|
|
119
|
+
.action((service) => cmdAuthRecipeInfo(service));
|
|
120
|
+
authRecipeCmd
|
|
121
|
+
.command('scaffold <service>')
|
|
122
|
+
.description('輸出 credentials.yaml 範本 + workflow.yaml 使用範例')
|
|
123
|
+
.action((service) => cmdAuthRecipeScaffold(service));
|
|
83
124
|
// acr list
|
|
84
125
|
program
|
|
85
126
|
.command('list')
|
|
@@ -90,5 +131,20 @@ program
|
|
|
90
131
|
.command('logs <workflow>')
|
|
91
132
|
.description('顯示 workflow 最近執行記錄')
|
|
92
133
|
.action((workflow) => cmdLogs(workflow));
|
|
134
|
+
// acr update(self-hosted:拉新 release 重新部署零件/引擎)
|
|
135
|
+
program
|
|
136
|
+
.command('update')
|
|
137
|
+
.description('self-hosted:拉新 release 並重新部署到你的 Cloudflare')
|
|
138
|
+
.action(() => cmdUpdate());
|
|
139
|
+
// acr install-harness(把 arcrun 的 CC harness 裝進當前專案)
|
|
140
|
+
program
|
|
141
|
+
.command('install-harness')
|
|
142
|
+
.description('把 arcrun 的 CC harness(mindset/提醒/防做歪 hook/指令)裝進當前專案')
|
|
143
|
+
.action(() => cmdInstallHarness());
|
|
144
|
+
// acr mcp-setup(依 config 解析的 mcp_url 寫專案 .mcp.json,讓 Claude Code 連對的 MCP)
|
|
145
|
+
program
|
|
146
|
+
.command('mcp-setup')
|
|
147
|
+
.description('在目前資料夾寫 .mcp.json 連對的 arcrun MCP(依 config 的 mcp_url;接案切資料夾自動切)')
|
|
148
|
+
.action(() => cmdMcpSetup());
|
|
93
149
|
program.parse(process.argv);
|
|
94
150
|
//# sourceMappingURL=index.js.map
|
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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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api-recipe-seeds.ts
|
|
3
|
+
*
|
|
4
|
+
* 現役 API recipe 的種子定義。self-host 新帳號 init 時把這些灌進空的 RECIPES KV
|
|
5
|
+
* (透過 cypher-executor 的 POST /recipes,或 CF KV REST API 直接寫)。
|
|
6
|
+
*
|
|
7
|
+
* API recipe = http_request + 固定設定(endpoint/method 模板)。
|
|
8
|
+
* 不需 deploy Worker,cypher-executor 執行時直接 fetch(見 cypher-executor/src/routes/recipes.ts)。
|
|
9
|
+
*
|
|
10
|
+
* 放在 CLI 端而非 cypher-executor/src:
|
|
11
|
+
* - seed 資料是「installer 要灌進用戶 KV 的種子」,本就屬 CLI 職責(SDD self-hosted-init.md §4)。
|
|
12
|
+
* - rule 02 §2.2 hook 擋 cypher-executor TS hard-code API endpoint;seed 的 endpoint 是資料欄位,
|
|
13
|
+
* 放 CLI 端避開誤判,也更符合職責切分。
|
|
14
|
+
*
|
|
15
|
+
* 來源:2026-06-01 從 prod cypher.arcrun.dev/recipes 逐一查得的現役定義。
|
|
16
|
+
* 對應 SDD:.agents/specs/arcrun/sdk-and-website/self-hosted-init.md §5
|
|
17
|
+
*
|
|
18
|
+
* KBDB recipe(kbdb_*)採 Supabase 模式(richblack 2026-06-02):
|
|
19
|
+
* 進 seed = 展示能力(引子)。使用者要用 → 去 arcrun 取統一 API Key 當 credential。
|
|
20
|
+
* FOLLOW-UP(KBDB 端):endpoint 現為 kbdb.finally.click,KBDB 應改用統一對外網址;
|
|
21
|
+
* KBDB 改網址後同步更新此處。seed 先照現況進。
|
|
22
|
+
*/
|
|
23
|
+
export interface ApiRecipeSeed {
|
|
24
|
+
canonical_id: string;
|
|
25
|
+
display_name: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
endpoint: string;
|
|
28
|
+
method: string;
|
|
29
|
+
auth_service?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare const API_RECIPE_SEEDS: ApiRecipeSeed[];
|
|
32
|
+
//# sourceMappingURL=api-recipe-seeds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-recipe-seeds.d.ts","sourceRoot":"","sources":["../../src/lib/api-recipe-seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAsF3C,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* api-recipe-seeds.ts
|
|
3
|
+
*
|
|
4
|
+
* 現役 API recipe 的種子定義。self-host 新帳號 init 時把這些灌進空的 RECIPES KV
|
|
5
|
+
* (透過 cypher-executor 的 POST /recipes,或 CF KV REST API 直接寫)。
|
|
6
|
+
*
|
|
7
|
+
* API recipe = http_request + 固定設定(endpoint/method 模板)。
|
|
8
|
+
* 不需 deploy Worker,cypher-executor 執行時直接 fetch(見 cypher-executor/src/routes/recipes.ts)。
|
|
9
|
+
*
|
|
10
|
+
* 放在 CLI 端而非 cypher-executor/src:
|
|
11
|
+
* - seed 資料是「installer 要灌進用戶 KV 的種子」,本就屬 CLI 職責(SDD self-hosted-init.md §4)。
|
|
12
|
+
* - rule 02 §2.2 hook 擋 cypher-executor TS hard-code API endpoint;seed 的 endpoint 是資料欄位,
|
|
13
|
+
* 放 CLI 端避開誤判,也更符合職責切分。
|
|
14
|
+
*
|
|
15
|
+
* 來源:2026-06-01 從 prod cypher.arcrun.dev/recipes 逐一查得的現役定義。
|
|
16
|
+
* 對應 SDD:.agents/specs/arcrun/sdk-and-website/self-hosted-init.md §5
|
|
17
|
+
*
|
|
18
|
+
* KBDB recipe(kbdb_*)採 Supabase 模式(richblack 2026-06-02):
|
|
19
|
+
* 進 seed = 展示能力(引子)。使用者要用 → 去 arcrun 取統一 API Key 當 credential。
|
|
20
|
+
* FOLLOW-UP(KBDB 端):endpoint 現為 kbdb.finally.click,KBDB 應改用統一對外網址;
|
|
21
|
+
* KBDB 改網址後同步更新此處。seed 先照現況進。
|
|
22
|
+
*/
|
|
23
|
+
export const API_RECIPE_SEEDS = [
|
|
24
|
+
// ── KBDB(Supabase 模式,auth_service=kbdb static_key)──
|
|
25
|
+
{
|
|
26
|
+
canonical_id: 'kbdb_get',
|
|
27
|
+
display_name: 'KBDB Get',
|
|
28
|
+
description: 'GET 讀取 block / 查詢。_path 帶查詢路徑。auth: kbdb static_key。',
|
|
29
|
+
endpoint: 'https://kbdb.finally.click{{_path}}',
|
|
30
|
+
method: 'GET',
|
|
31
|
+
auth_service: 'kbdb',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
canonical_id: 'kbdb_create_block',
|
|
35
|
+
display_name: 'KBDB Create Block',
|
|
36
|
+
description: 'POST /blocks 建立 block。body 帶 block 欄位(content/type/page_name/source/user_id 等)。auth: kbdb static_key。',
|
|
37
|
+
endpoint: 'https://kbdb.finally.click/blocks',
|
|
38
|
+
method: 'POST',
|
|
39
|
+
auth_service: 'kbdb',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
canonical_id: 'kbdb_patch_block',
|
|
43
|
+
display_name: 'KBDB Patch Block',
|
|
44
|
+
description: 'PATCH /blocks/:id 局部更新。_path 帶 /blocks/{id},body 帶要改的欄位。auth: kbdb static_key。',
|
|
45
|
+
endpoint: 'https://kbdb.finally.click{{_path}}',
|
|
46
|
+
method: 'PATCH',
|
|
47
|
+
auth_service: 'kbdb',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
canonical_id: 'kbdb_delete',
|
|
51
|
+
display_name: 'KBDB Delete',
|
|
52
|
+
description: 'DELETE /blocks/:id 刪除 block。_path 帶 /blocks/{id}。auth: kbdb static_key。',
|
|
53
|
+
endpoint: 'https://kbdb.finally.click{{_path}}',
|
|
54
|
+
method: 'DELETE',
|
|
55
|
+
auth_service: 'kbdb',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
canonical_id: 'kbdb_ingest',
|
|
59
|
+
display_name: 'KBDB Ingest',
|
|
60
|
+
description: 'POST /blocks/ingest 批次寫入。body 帶 input。auth: kbdb static_key。',
|
|
61
|
+
endpoint: 'https://kbdb.finally.click/blocks/ingest',
|
|
62
|
+
method: 'POST',
|
|
63
|
+
auth_service: 'kbdb',
|
|
64
|
+
},
|
|
65
|
+
// ── Google(service_account)──
|
|
66
|
+
{
|
|
67
|
+
canonical_id: 'gmail_send',
|
|
68
|
+
display_name: 'Gmail Send',
|
|
69
|
+
description: '寄 Gmail。POST messages/send,body 帶 raw(base64url MIME)。auth: google service_account。',
|
|
70
|
+
endpoint: 'https://gmail.googleapis.com/gmail/v1/users/me/messages/send',
|
|
71
|
+
method: 'POST',
|
|
72
|
+
auth_service: 'google_gmail_sa',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
canonical_id: 'google_sheets_append',
|
|
76
|
+
display_name: 'Google Sheets Append',
|
|
77
|
+
description: '寫 Sheets。PUT values?valueInputOption=RAW,body 帶 values。auth: google service_account。',
|
|
78
|
+
endpoint: 'https://sheets.googleapis.com{{_path}}',
|
|
79
|
+
method: 'PUT',
|
|
80
|
+
auth_service: 'google_sheets_sa',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
canonical_id: 'google_sheets_read',
|
|
84
|
+
display_name: 'Google Sheets Read',
|
|
85
|
+
description: '讀 Sheets。GET values。_path 帶完整路徑。auth: google service_account。',
|
|
86
|
+
endpoint: 'https://sheets.googleapis.com{{_path}}',
|
|
87
|
+
method: 'GET',
|
|
88
|
+
auth_service: 'google_sheets_sa',
|
|
89
|
+
},
|
|
90
|
+
// ── 訊息(static_key)──
|
|
91
|
+
{
|
|
92
|
+
canonical_id: 'telegram_send',
|
|
93
|
+
display_name: 'Telegram Send',
|
|
94
|
+
description: 'Telegram sendMessage。token 在 URL path({{auth.bot_token}}),body 帶 chat_id+text。auth: static_key path 注入。',
|
|
95
|
+
endpoint: 'https://api.telegram.org/bot{{auth.bot_token}}/sendMessage',
|
|
96
|
+
method: 'POST',
|
|
97
|
+
auth_service: 'telegram',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
canonical_id: 'line_notify_send',
|
|
101
|
+
display_name: 'LINE Notify',
|
|
102
|
+
description: 'LINE Notify 推訊息。POST notify,body 帶 message(form-urlencoded)。auth: static_key Bearer line token。',
|
|
103
|
+
endpoint: 'https://notify-api.line.me/api/notify',
|
|
104
|
+
method: 'POST',
|
|
105
|
+
auth_service: 'line_notify',
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
//# sourceMappingURL=api-recipe-seeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-recipe-seeds.js","sourceRoot":"","sources":["../../src/lib/api-recipe-seeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,sDAAsD;IACtD;QACE,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,sDAAsD;QACnE,QAAQ,EAAE,qCAAqC;QAC/C,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,MAAM;KACrB;IACD;QACE,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,uGAAuG;QACpH,QAAQ,EAAE,mCAAmC;QAC7C,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,MAAM;KACrB;IACD;QACE,YAAY,EAAE,kBAAkB;QAChC,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,gFAAgF;QAC7F,QAAQ,EAAE,qCAAqC;QAC/C,MAAM,EAAE,OAAO;QACf,YAAY,EAAE,MAAM;KACrB;IACD;QACE,YAAY,EAAE,aAAa;QAC3B,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,yEAAyE;QACtF,QAAQ,EAAE,qCAAqC;QAC/C,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,MAAM;KACrB;IACD;QACE,YAAY,EAAE,aAAa;QAC3B,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,8DAA8D;QAC3E,QAAQ,EAAE,0CAA0C;QACpD,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,MAAM;KACrB;IAED,+BAA+B;IAC/B;QACE,YAAY,EAAE,YAAY;QAC1B,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,qFAAqF;QAClG,QAAQ,EAAE,8DAA8D;QACxE,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,iBAAiB;KAChC;IACD;QACE,YAAY,EAAE,sBAAsB;QACpC,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE,sFAAsF;QACnG,QAAQ,EAAE,wCAAwC;QAClD,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,kBAAkB;KACjC;IACD;QACE,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,oBAAoB;QAClC,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE,wCAAwC;QAClD,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,kBAAkB;KACjC;IAED,sBAAsB;IACtB;QACE,YAAY,EAAE,eAAe;QAC7B,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,yGAAyG;QACtH,QAAQ,EAAE,4DAA4D;QACtE,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,UAAU;KACzB;IACD;QACE,YAAY,EAAE,kBAAkB;QAChC,YAAY,EAAE,aAAa;QAC3B,WAAW,EAAE,iGAAiG;QAC9G,QAAQ,EAAE,uCAAuC;QACjD,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,aAAa;KAC5B;CACF,CAAC"}
|
package/dist/lib/cf-api.d.ts
CHANGED
|
@@ -20,6 +20,28 @@ export declare class CfKvClient {
|
|
|
20
20
|
}>>;
|
|
21
21
|
delete(key: string): Promise<void>;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Cloudflare Account-level API wrapper(self-hosted installer 用)。
|
|
25
|
+
*
|
|
26
|
+
* 負責 acr init --self-hosted 的資源建立:驗 token、建/列 KV namespace、查 workers.dev subdomain。
|
|
27
|
+
* (不建 R2:R2 是 dead storage 且綁卡違背開源免費;見 init.ts step 2 + registry-canon Phase 1.5。)
|
|
28
|
+
* 與 CfKvClient(綁單一 namespace 的 KV 操作)職責不同——這個是帳號層級的資源管理。
|
|
29
|
+
* 對應 SDD:.agents/specs/arcrun/sdk-and-website/self-hosted-init.md §3 step 1-2
|
|
30
|
+
*/
|
|
31
|
+
export declare class CfAccountClient {
|
|
32
|
+
private accountBase;
|
|
33
|
+
private headers;
|
|
34
|
+
constructor(accountId: string, apiToken: string);
|
|
35
|
+
private cf;
|
|
36
|
+
/** 驗證 token 能存取此 account(權限不足會在後續建立操作報錯,這裡先確認 account 可達)。*/
|
|
37
|
+
verifyAccess(): Promise<void>;
|
|
38
|
+
/** 列出現有 KV namespace(冪等用:已存在就重用,不重建)。回傳 title → id 對照。*/
|
|
39
|
+
listKvNamespaces(): Promise<Map<string, string>>;
|
|
40
|
+
/** 建立 KV namespace(若同名已存在則回傳既有 id,冪等)。*/
|
|
41
|
+
ensureKvNamespace(title: string, existing?: Map<string, string>): Promise<string>;
|
|
42
|
+
/** 查 workers.dev subdomain(cypher-executor WORKER_SUBDOMAIN 用,組對內 component URL)。*/
|
|
43
|
+
getWorkersSubdomain(): Promise<string>;
|
|
44
|
+
}
|
|
23
45
|
/** AES-GCM 加密 credential(與 cypher-executor credential-injector 解密邏輯對應)*/
|
|
24
46
|
export declare function encryptCredential(value: string, encryptionKey: string): Promise<string>;
|
|
25
47
|
//# sourceMappingURL=cf-api.d.ts.map
|
package/dist/lib/cf-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-api.d.ts","sourceRoot":"","sources":["../../src/lib/cf-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,iBAAiB;IAQ7D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAgBhG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUzC;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB7F"}
|
|
1
|
+
{"version":3,"file":"cf-api.d.ts","sourceRoot":"","sources":["../../src/lib/cf-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,iBAAiB;IAQ7D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAgBhG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUzC;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAyB;gBAE5B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;YAQjC,EAAE;IAehB,6DAA6D;IACvD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC,yDAAyD;IACnD,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAStD,yCAAyC;IACnC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAYvF,oFAAoF;IAC9E,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;CAI7C;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB7F"}
|
package/dist/lib/cf-api.js
CHANGED
|
@@ -60,6 +60,64 @@ export class CfKvClient {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Cloudflare Account-level API wrapper(self-hosted installer 用)。
|
|
65
|
+
*
|
|
66
|
+
* 負責 acr init --self-hosted 的資源建立:驗 token、建/列 KV namespace、查 workers.dev subdomain。
|
|
67
|
+
* (不建 R2:R2 是 dead storage 且綁卡違背開源免費;見 init.ts step 2 + registry-canon Phase 1.5。)
|
|
68
|
+
* 與 CfKvClient(綁單一 namespace 的 KV 操作)職責不同——這個是帳號層級的資源管理。
|
|
69
|
+
* 對應 SDD:.agents/specs/arcrun/sdk-and-website/self-hosted-init.md §3 step 1-2
|
|
70
|
+
*/
|
|
71
|
+
export class CfAccountClient {
|
|
72
|
+
accountBase;
|
|
73
|
+
headers;
|
|
74
|
+
constructor(accountId, apiToken) {
|
|
75
|
+
this.accountBase = `${CF_API_BASE}/accounts/${accountId}`;
|
|
76
|
+
this.headers = {
|
|
77
|
+
'Authorization': `Bearer ${apiToken}`,
|
|
78
|
+
'Content-Type': 'application/json',
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async cf(path, init) {
|
|
82
|
+
const res = await fetch(`${this.accountBase}${path}`, {
|
|
83
|
+
...init,
|
|
84
|
+
headers: { ...this.headers, ...(init?.headers ?? {}) },
|
|
85
|
+
});
|
|
86
|
+
const data = await res.json().catch(() => null);
|
|
87
|
+
if (!res.ok || !data?.success) {
|
|
88
|
+
const msg = data?.errors?.map(e => e.message).join('; ') ?? `HTTP ${res.status}`;
|
|
89
|
+
throw new Error(`CF API ${path} 失敗:${msg}`);
|
|
90
|
+
}
|
|
91
|
+
return data.result;
|
|
92
|
+
}
|
|
93
|
+
/** 驗證 token 能存取此 account(權限不足會在後續建立操作報錯,這裡先確認 account 可達)。*/
|
|
94
|
+
async verifyAccess() {
|
|
95
|
+
// GET /accounts/{id} 能通 = token 有此 account 的基本讀權限
|
|
96
|
+
await this.cf('');
|
|
97
|
+
}
|
|
98
|
+
/** 列出現有 KV namespace(冪等用:已存在就重用,不重建)。回傳 title → id 對照。*/
|
|
99
|
+
async listKvNamespaces() {
|
|
100
|
+
const result = await this.cf('/storage/kv/namespaces?per_page=100');
|
|
101
|
+
const map = new Map();
|
|
102
|
+
for (const ns of result)
|
|
103
|
+
map.set(ns.title, ns.id);
|
|
104
|
+
return map;
|
|
105
|
+
}
|
|
106
|
+
/** 建立 KV namespace(若同名已存在則回傳既有 id,冪等)。*/
|
|
107
|
+
async ensureKvNamespace(title, existing) {
|
|
108
|
+
const known = existing ?? (await this.listKvNamespaces());
|
|
109
|
+
const found = known.get(title);
|
|
110
|
+
if (found)
|
|
111
|
+
return found;
|
|
112
|
+
const result = await this.cf('/storage/kv/namespaces', { method: 'POST', body: JSON.stringify({ title }) });
|
|
113
|
+
return result.id;
|
|
114
|
+
}
|
|
115
|
+
/** 查 workers.dev subdomain(cypher-executor WORKER_SUBDOMAIN 用,組對內 component URL)。*/
|
|
116
|
+
async getWorkersSubdomain() {
|
|
117
|
+
const result = await this.cf('/workers/subdomain');
|
|
118
|
+
return result.subdomain;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
63
121
|
/** AES-GCM 加密 credential(與 cypher-executor credential-injector 解密邏輯對應)*/
|
|
64
122
|
export async function encryptCredential(value, encryptionKey) {
|
|
65
123
|
if (!encryptionKey || encryptionKey.length < 64) {
|
package/dist/lib/cf-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-api.js","sourceRoot":"","sources":["../../src/lib/cf-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cf-api.js","sourceRoot":"","sources":["../../src/lib/cf-api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -8,11 +8,44 @@ export interface ArcrunConfig {
|
|
|
8
8
|
cypher_executor_url?: string;
|
|
9
9
|
credentials_kv_namespace_id?: string;
|
|
10
10
|
webhooks_kv_namespace_id?: string;
|
|
11
|
-
|
|
11
|
+
mcp_url?: string;
|
|
12
12
|
multi_tenant?: boolean;
|
|
13
|
+
exposure_consented?: Record<string, {
|
|
14
|
+
confirmed_at: string;
|
|
15
|
+
suppress_future?: boolean;
|
|
16
|
+
}>;
|
|
13
17
|
}
|
|
18
|
+
/** 專案層設定檔名(就近往上找)。含憑證 → 必須 gitignore(見 createCredentialsYamlIfMissing)。*/
|
|
19
|
+
export declare const PROJECT_CONFIG_NAME = ".arcrun.yaml";
|
|
20
|
+
/** 設定來源層級(acr config --where 用,讓使用者知道每個值來自哪一層,避免用錯帳號)。*/
|
|
21
|
+
export type ConfigSource = 'env' | 'project' | 'global' | 'default';
|
|
22
|
+
/**
|
|
23
|
+
* 平台預設 MCP URL(mcp_url 未設時的 fallback,SaaS 用戶用)。
|
|
24
|
+
* MCP 搬進 arcrun 主庫後改用 arcrun.dev zone(mcp/wrangler.toml route = mcp.arcrun.dev)。
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_MCP_URL = "https://mcp.arcrun.dev";
|
|
14
27
|
export declare function configExists(): boolean;
|
|
28
|
+
/** 從 startDir 就近往上逐層找專案層 .arcrun.yaml,回傳第一個命中的路徑(停在檔案系統根)。*/
|
|
29
|
+
export declare function findProjectConfig(startDir?: string): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* 三層分層解析:全域 → 疊專案層 → 疊 env(欄位級 merge,高層只覆蓋它提供的欄位)。
|
|
32
|
+
* 任一層都沒有 mode 時 fallback 'local',讓 validate --offline 等在無設定下可運作。
|
|
33
|
+
*/
|
|
15
34
|
export declare function loadConfig(): ArcrunConfig;
|
|
35
|
+
/** 解析每個關鍵欄位的最終值與來源層(acr config --where 用)。*/
|
|
36
|
+
export declare function resolveConfigSources(): Array<{
|
|
37
|
+
field: keyof ArcrunConfig;
|
|
38
|
+
value: string;
|
|
39
|
+
source: ConfigSource;
|
|
40
|
+
}>;
|
|
41
|
+
/** 回傳本次解析實際採用的專案層設定檔路徑(無則 undefined)。acr config --where 顯示用。*/
|
|
42
|
+
export declare function activeProjectConfigPath(): string | undefined;
|
|
16
43
|
export declare function saveConfig(config: ArcrunConfig): void;
|
|
17
44
|
export declare function getCypherExecutorUrl(config: ArcrunConfig): string;
|
|
45
|
+
/**
|
|
46
|
+
* 取得 MCP server URL(薄殼原則:與 cypher_url 同一份 config 解析)。
|
|
47
|
+
* config 有 mcp_url(env/專案/全域 任一層)→ 用它;否則 fallback 平台預設。
|
|
48
|
+
* acr mcp-setup 用此決定要寫進專案 .mcp.json 的 URL → 切資料夾自動切 MCP。
|
|
49
|
+
*/
|
|
50
|
+
export declare function getMcpUrl(config: ArcrunConfig): string;
|
|
18
51
|
//# sourceMappingURL=config.d.ts.map
|
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":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAUA,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;IAOlC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1F;AAKD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAapE;;;GAGG;AACH,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAExD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CAatF;AA4BD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAQzC;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,CAoBhH;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAE5D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAGrD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAKjE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEtD"}
|