refactor: rename CLI command 'inkreach' -> 'inkreach-teable'

Rename the command (and its config namespace) to match the project name:

- bin:          inkreach        -> inkreach-teable
- program name: inkreach        -> inkreach-teable
- config dir:   ~/.inkreach/    -> ~/.inkreach-teable/
- env vars:     INKREACH_*      -> INKREACH_TEABLE_*
- all docs (SKILL.md, guides, api-reference, AGENTS.md, design doc, install.sh)

Unchanged (intentional):
- npm package name: @inkreach/teable-cli
- package directory: packages/inkreach-cli/
- skill name: inkreach-teable-ops
- organization/authors: 'inkreach' (npm scope @inkreach)

Existing config auto-migrated (~/.inkreach -> ~/.inkreach-teable). Verified
end-to-end: auth status, workflow list (636), build clean.
This commit is contained in:
yeuimu
2026-08-05 10:14:26 +08:00
parent 5fa843df05
commit 3810c33d69
16 changed files with 64 additions and 64 deletions
Vendored
+3 -3
View File
@@ -2,7 +2,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* inkreach — CLI for operating inkreach-teable.
* inkreach-teable — CLI for operating inkreach-teable.
*
* Entry point. Sets up the global commander program and mounts command groups.
*/
@@ -14,10 +14,10 @@ const resources_1 = require("./commands/resources");
const extras_1 = require("./commands/extras");
const program = new commander_1.Command();
program
.name('inkreach')
.name('inkreach-teable')
.description('Operate inkreach-teable: tables, fields, records, views, and the self-built automation engine (8 triggers + 6 actions).\n' +
'Use --json for machine-readable output (agent parsing).')
.version(`inkreach ${package_json_1.version}`, '-v, --version');
.version(`inkreach-teable ${package_json_1.version}`, '-v, --version');
// Global options (highest precedence over config file + env).
program
.option('--endpoint <url>', 'Backend URL (default http://localhost:3000)')
+2 -2
View File
@@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.authCommand = void 0;
/**
* `inkreach auth` — authentication & config commands.
* `inkreach-teable auth` — authentication & config commands.
*/
const commander_1 = require("commander");
const ctx_1 = require("../lib/ctx");
@@ -115,7 +115,7 @@ function authCommand() {
['token', created.token],
['', ''],
['note', 'Save this token now — it cannot be retrieved again.'],
['use', 'inkreach auth login --token <above>'],
['use', 'inkreach-teable auth login --token <above>'],
]);
}
}));
+4 -4
View File
@@ -2,10 +2,10 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.sqlCommand = exports.fireCommand = exports.runsCommand = exports.secretCommand = void 0;
/**
* `inkreach secret` — manage workflow automation secrets.
* `inkreach runs` — execution history.
* `inkreach fire` — manual trigger testing (button-click / webhook).
* `inkreach sql` — read-only SQL queries.
* `inkreach-teable secret` — manage workflow automation secrets.
* `inkreach-teable runs` — execution history.
* `inkreach-teable fire` — manual trigger testing (button-click / webhook).
* `inkreach-teable sql` — read-only SQL queries.
*/
const commander_1 = require("commander");
const ctx_1 = require("../lib/ctx");
+1 -1
View File
@@ -2,7 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.baseResourceCommands = void 0;
/**
* `inkreach base|table|field|record|view` — resource CRUD commands.
* `inkreach-teable base|table|field|record|view` — resource CRUD commands.
*
* These endpoints are compatible with official teable open-api.
*/
+6 -6
View File
@@ -2,9 +2,9 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildActionConfig = exports.actionCommand = exports.buildTriggerConfig = exports.triggerCommand = exports.workflowCommand = void 0;
/**
* `inkreach workflow` — workflow CRUD + lifecycle.
* `inkreach trigger` — set the trigger node's type & config.
* `inkreach action` — add/update/delete action nodes.
* `inkreach-teable workflow` — workflow CRUD + lifecycle.
* `inkreach-teable trigger` — set the trigger node's type & config.
* `inkreach-teable action` — add/update/delete action nodes.
*
* All node-mutating commands operate via PUT /node (whole-graph replacement),
* so they internally GET the full graph, mutate, then PUT it back.
@@ -109,7 +109,7 @@ function workflowCommand() {
['name', wf.name],
['baseId', wf.baseId],
['', ''],
['next', `inkreach trigger set ${wf.id} --type <T> ...`],
['next', `inkreach-teable trigger set ${wf.id} --type <T> ...`],
]);
}
}));
@@ -264,7 +264,7 @@ function triggerCommand() {
['triggerType', opts.type],
['config', JSON.stringify(config)],
['', ''],
['next', `inkreach action add ${workflowId} --type script ...`],
['next', `inkreach-teable action add ${workflowId} --type script ...`],
]);
}
}));
@@ -400,7 +400,7 @@ function actionCommand() {
['type', opts.type],
['config', JSON.stringify(config)],
['', ''],
['next', `inkreach workflow activate ${workflowId}`],
['next', `inkreach-teable workflow activate ${workflowId}`],
]);
}
}));
+7 -7
View File
@@ -25,16 +25,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.configPath = exports.resolveConfig = exports.writeConfigFile = exports.readConfigFile = exports.DEFAULT_ENDPOINT = void 0;
/**
* Config storage for inkreach CLI.
* Config storage for inkreach-teable CLI.
*
* Stores endpoint + token at ~/.inkreach/config.json, with environment variable
* overrides INKREACH_ENDPOINT / INKREACH_TOKEN. The --endpoint / --token / --base-id
* Stores endpoint + token at ~/.inkreach-teable/config.json, with environment variable
* overrides INKREACH_TEABLE_ENDPOINT / INKREACH_TEABLE_TOKEN. The --endpoint / --token / --base-id
* global flags take the highest precedence (handled by resolveOptions()).
*/
const fs = __importStar(require("node:fs"));
const path = __importStar(require("node:path"));
const os = __importStar(require("node:os"));
const CONFIG_DIR = path.join(os.homedir(), '.inkreach');
const CONFIG_DIR = path.join(os.homedir(), '.inkreach-teable');
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
exports.DEFAULT_ENDPOINT = 'http://localhost:3000';
function readConfigFile() {
@@ -59,11 +59,11 @@ function resolveConfig(overrides) {
const file = readConfigFile();
return {
endpoint: overrides?.endpoint ||
process.env.INKREACH_ENDPOINT ||
process.env.INKREACH_TEABLE_ENDPOINT ||
file.endpoint ||
exports.DEFAULT_ENDPOINT,
token: overrides?.token || process.env.INKREACH_TOKEN || file.token || '',
baseId: overrides?.baseId || process.env.INKREACH_BASE_ID || file.baseId,
token: overrides?.token || process.env.INKREACH_TEABLE_TOKEN || file.token || '',
baseId: overrides?.baseId || process.env.INKREACH_TEABLE_BASE_ID || file.baseId,
};
}
exports.resolveConfig = resolveConfig;
+1 -1
View File
@@ -65,7 +65,7 @@ function findRoot(cmd) {
function requireBaseId(ctx, flagVal) {
const baseId = flagVal || ctx.baseId;
if (!baseId) {
throw new client_1.ApiError(0, 'MISSING_BASE_ID', 'No base id. Pass --base-id <id>, set a default with `inkreach auth login --base-id <id>`, or export INKREACH_BASE_ID.');
throw new client_1.ApiError(0, 'MISSING_BASE_ID', 'No base id. Pass --base-id <id>, set a default with `inkreach-teable auth login --base-id <id>`, or export INKREACH_TEABLE_BASE_ID.');
}
return baseId;
}