@thinkingai/ae-cli 6.0.53 → 6.0.55
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 +28 -9
- package/README.zh.md +25 -9
- package/bin/ae-cli.js +6 -1
- package/cli-installation-guide.md +91 -0
- package/dist/{auth-LHM7NQPR.js → auth-RQBO6MTY.js} +9 -11
- package/dist/automation-VAAQBM7Y.js +459 -0
- package/dist/{capability-F2RIR5DS.js → capability-JRIFC4AJ.js} +6 -6
- package/dist/{chunk-647BRKZK.js → chunk-374V5R6N.js} +3 -3
- package/dist/{chunk-KJDOTPYU.js → chunk-3YVEAZUN.js} +59 -26
- package/dist/{chunk-KS4DE3MX.js → chunk-5XJYLEVC.js} +4 -4
- package/dist/{chunk-BW7JUDEI.js → chunk-6VNIR4AP.js} +514 -213
- package/dist/{chunk-5XRQ3CZR.js → chunk-7KU2WNQE.js} +43 -8
- package/dist/{chunk-7WZACOAI.js → chunk-AP7YP2NX.js} +2 -2
- package/dist/chunk-CI24BDR2.js +43 -0
- package/dist/{chunk-SO5LKIWP.js → chunk-CT7QDJS6.js} +2 -2
- package/dist/{chunk-DU72X2IO.js → chunk-GHXZK54S.js} +22 -10
- package/dist/{chunk-N4BLPJC7.js → chunk-OP44TT4H.js} +1 -1
- package/dist/chunk-Q5US7JC5.js +133 -0
- package/dist/{chunk-PGCIKZRE.js → chunk-RGYPSEYD.js} +3 -3
- package/dist/chunk-RK6GLDGI.js +27 -0
- package/dist/chunk-RPBOAQQQ.js +56 -0
- package/dist/{chunk-GK7WDY7E.js → chunk-S6M42KND.js} +1 -1
- package/dist/{chunk-QYXDJOLA.js → chunk-VZZNLV3I.js} +19 -11
- package/dist/{chunk-YVGXGTD6.js → chunk-WNGFSIOB.js} +7 -1
- package/dist/{chunk-IG3DYEIR.js → chunk-ZL7SGNIA.js} +5 -3
- package/dist/{community-report-client-6VJDDMJJ.js → community-report-client-PEERQCX2.js} +1 -1
- package/dist/{config-XQWOPDHN.js → config-SICKWZ2A.js} +8 -8
- package/dist/context-NGVFPCBK.js +136 -0
- package/dist/{data-integration-XBTCGXQT.js → data-integration-BCLQFTGU.js} +6 -6
- package/dist/index.js +125 -48
- package/dist/{local-data-upload-client-3P7NIVQ4.js → local-data-upload-client-TWMHFLUA.js} +1 -1
- package/dist/memory-CQKH2JAV.js +580 -0
- package/dist/{metadata-V5ZDTKWZ.js → metadata-EMFGUI2W.js} +7 -7
- package/dist/{model-ZS7HVGKN.js → model-VX5M2CJ6.js} +9 -5
- package/dist/{personal-semantic-preference-2XANU3F6.js → personal-semantic-preference-SLWVVYZ4.js} +117 -11
- package/dist/{project-semantic-LP3LY7QP.js → project-semantic-DPSZBKQD.js} +6 -6
- package/dist/{sync-EQLSTUS7.js → sync-RZIAV37C.js} +12 -8
- package/dist/{te-agent-Z3HCTKR7.js → te-agent-AORRE2FM.js} +90 -454
- package/dist/{te-analysis-3EVYQ3IO.js → te-analysis-ISXKJKRT.js} +297 -20
- package/dist/{te-community-Z7JACGF3.js → te-community-42M7ICDO.js} +3 -3
- package/dist/{te-dataops-F7GQOIS6.js → te-dataops-BNKNZ4F2.js} +5 -5
- package/dist/{te-engage-LFBU6WWH.js → te-engage-BZE3MBKT.js} +6 -6
- package/dist/{te-kb-QJLJEX5K.js → te-kb-ULATOTQ3.js} +494 -214
- package/dist/{te-system-IXC43QHZ.js → te-system-UGHVKBVV.js} +10 -9
- package/dist/{te-team-BIZIKIHZ.js → te-team-YA6SNOJ3.js} +6 -6
- package/dist/things-DTCOQIQB.js +1091 -0
- package/dist/{update-W2SGQNKT.js → update-ESNYKUVR.js} +59 -51
- package/dist/workspace-JEOHKFPX.js +554 -0
- package/package.json +21 -9
- package/skills/ae-agent/SKILL.md +91 -139
- package/skills/ae-agent/references/add-model.md +1 -1
- package/skills/ae-agent/references/create-agent.md +1 -1
- package/skills/ae-agent/references/find-archived-conversations.md +12 -5
- package/skills/ae-agent/references/get-agent.md +1 -1
- package/skills/ae-agent/references/list-agents.md +2 -2
- package/skills/ae-agent/references/list-models.md +2 -2
- package/skills/ae-agent/references/restore-conversation.md +3 -1
- package/skills/ae-analysis/SKILL.md +15 -6
- package/skills/ae-analysis/references/ai_models/funnel.md +5 -3
- package/skills/ae-analysis/references/ai_models.md +27 -0
- package/skills/ae-analysis/references/command_index.md +12 -4
- package/skills/ae-analysis/references/dashboard_move.md +21 -0
- package/skills/ae-analysis/references/dashboard_report_add.md +2 -0
- package/skills/ae-analysis/references/dashboard_report_get.md +19 -0
- package/skills/ae-analysis/references/dashboard_report_update.md +27 -0
- package/skills/ae-analysis/references/dashboard_update.md +1 -1
- package/skills/ae-analysis/references/event_report_presentation.md +76 -0
- package/skills/ae-analysis/references/feedback_submit.md +37 -0
- package/skills/ae-analysis/references/metadata_resolution.md +15 -0
- package/skills/ae-analysis/references/personal_semantic_preference_review.md +9 -0
- package/skills/ae-analysis/references/personal_semantic_preference_review_list.md +7 -0
- package/skills/ae-analysis/references/personal_semantic_preference_submit.md +7 -0
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki.md +90 -31
- package/skills/ae-analysis/references/project_semantic_knowledge_wiki_plan_schema.md +99 -1
- package/skills/ae-analysis/references/report_create.md +13 -3
- package/skills/ae-analysis/references/report_get.md +5 -1
- package/skills/ae-analysis/references/report_update.md +15 -4
- package/skills/ae-analysis/references/system_query_monitor_overview.md +2 -0
- package/skills/ae-analysis/references/system_query_task_cancel.md +2 -0
- package/skills/ae-analysis/references/system_query_task_export.md +6 -2
- package/skills/ae-analysis/references/system_query_task_get.md +2 -0
- package/skills/ae-analysis/references/system_query_task_list.md +7 -3
- package/skills/ae-analysis/references/system_query_task_options.md +2 -2
- package/skills/ae-analysis/references/system_query_task_realtime_list.md +15 -0
- package/skills/ae-analysis/references/user_tag_models.md +2 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-empty-skeleton.mjs +105 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/build-project-semantic-wiki.mjs +669 -29
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/company-kb.mjs +21 -8
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-rules.md +28 -10
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/default-compile-schema.md +66 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/generate-build-ir.mjs +285 -24
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/package-wiki-source-zip.mjs +262 -30
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/plan-kb-source-sync.mjs +1 -1
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/precompiled-source.mjs +46 -2
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/prepare-compile-schema.mjs +64 -0
- package/skills/ae-analysis/scripts/project-semantic-knowledge-wiki/refresh-state-parts.mjs +91 -0
- package/skills/ae-automation/SKILL.md +16 -0
- package/skills/ae-automation/references/cli.md +53 -0
- package/skills/ae-automation/references/command_index.md +17 -0
- package/skills/ae-capability/SKILL.md +15 -6
- package/skills/ae-current-context/SKILL.md +3 -2
- package/skills/ae-kb/SKILL.md +62 -12
- package/skills/ae-kb/references/analysis-workflow.md +73 -36
- package/skills/ae-kb/references/query-workflow.md +67 -33
- package/skills/ae-kb/references/schema-import.md +5 -3
- package/skills/ae-kb/references/source-mutations.md +6 -4
- package/skills/ae-kb/references/text-sources.md +53 -0
- package/skills/ae-kb-discovery/SKILL.md +1 -1
- package/skills/ae-team/SKILL.md +23 -17
- package/skills/ae-things/SKILL.md +85 -0
- package/skills/ae-things/references/cli.md +103 -0
- package/skills/ae-things-progress/SKILL.md +43 -0
- package/skills/ae-things-review/SKILL.md +42 -0
- package/skills/ae-workspace/SKILL.md +43 -0
- package/skills/ae-workspace/references/commands.md +51 -0
- package/dist/chunk-E2JKXMVO.js +0 -29
- package/dist/context-M3HDGEIR.js +0 -46
- package/dist/memory-6APEB2JB.js +0 -892
- package/skills/ae-agent/references/create-automation.md +0 -125
- package/skills/ae-agent/references/list-automations.md +0 -56
- package/skills/ae-agent/references/update-automation.md +0 -107
package/dist/{personal-semantic-preference-2XANU3F6.js → personal-semantic-preference-SLWVVYZ4.js}
RENAMED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
createCapabilityCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-374V5R6N.js";
|
|
5
5
|
import {
|
|
6
6
|
registerCapabilityGatewayRoute
|
|
7
7
|
} from "./chunk-KPQY44JQ.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-VZZNLV3I.js";
|
|
9
|
+
import "./chunk-6VNIR4AP.js";
|
|
10
10
|
import "./chunk-Y74WTIKJ.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-GHXZK54S.js";
|
|
12
|
+
import "./chunk-ZL7SGNIA.js";
|
|
13
|
+
import "./chunk-WNGFSIOB.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/personal-semantic-preference/shared.ts
|
|
16
16
|
function createPersonalSemanticPreferenceCommand(config) {
|
|
@@ -24,16 +24,22 @@ function optionalString(ctx, name) {
|
|
|
24
24
|
const value = ctx.str(name);
|
|
25
25
|
return value === "" ? void 0 : value;
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
27
|
+
function optionalNumber(ctx, name) {
|
|
28
|
+
return ctx.optionalNum(name);
|
|
29
|
+
}
|
|
30
|
+
function optionalJsonStringArray(ctx, name, flag) {
|
|
31
|
+
if (ctx.str(name) === "") {
|
|
29
32
|
return void 0;
|
|
30
33
|
}
|
|
31
|
-
const value = ctx.json(
|
|
34
|
+
const value = ctx.json(name);
|
|
32
35
|
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
|
|
33
|
-
throw new Error(
|
|
36
|
+
throw new Error(`${flag} must be a JSON array of strings.`);
|
|
34
37
|
}
|
|
35
38
|
return value;
|
|
36
39
|
}
|
|
40
|
+
function optionalKeywords(ctx) {
|
|
41
|
+
return optionalJsonStringArray(ctx, "keywords", "--keywords");
|
|
42
|
+
}
|
|
37
43
|
function optionalResourceRefs(ctx) {
|
|
38
44
|
if (ctx.str("resource-refs") === "") {
|
|
39
45
|
return void 0;
|
|
@@ -189,6 +195,103 @@ var personalSemanticPreferenceList = createPersonalSemanticPreferenceCommand({
|
|
|
189
195
|
})
|
|
190
196
|
});
|
|
191
197
|
|
|
198
|
+
// src/commands/personal-semantic-preference/review-list.ts
|
|
199
|
+
var REVIEW_STATUSES = ["none", "pending", "adopted", "rejected"];
|
|
200
|
+
var CONTEXT_TYPES = ["preference", "asset_context", "experience", "background"];
|
|
201
|
+
var personalSemanticPreferenceReviewList = createPersonalSemanticPreferenceCommand({
|
|
202
|
+
resource: "",
|
|
203
|
+
command: "review-list",
|
|
204
|
+
capabilityId: "business_semantics.personal_context.review_list",
|
|
205
|
+
description: "List all project personal semantic preferences for admin review.",
|
|
206
|
+
flags: [
|
|
207
|
+
{ name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p", min: 1 },
|
|
208
|
+
{ name: "project-review-status", type: "string", desc: "none | pending | adopted | rejected." },
|
|
209
|
+
{ name: "owner", type: "string", desc: "Owner selector: user name, login name, or user ID. open_id is not accepted." },
|
|
210
|
+
{ name: "context-type", type: "string", desc: "preference | asset_context | experience | background." },
|
|
211
|
+
{ name: "keyword", type: "string", desc: "Match title, summary, content, or keywords." },
|
|
212
|
+
{ name: "limit", type: "number", desc: "Page size. Defaults to 50.", min: 1, max: 200 },
|
|
213
|
+
{ name: "offset", type: "number", desc: "Zero-based page offset.", min: 0 }
|
|
214
|
+
],
|
|
215
|
+
risk: "read",
|
|
216
|
+
validate: (ctx) => {
|
|
217
|
+
const status = ctx.str("project-review-status");
|
|
218
|
+
if (status !== "" && !REVIEW_STATUSES.includes(status)) {
|
|
219
|
+
throw new Error(`--project-review-status must be one of: ${REVIEW_STATUSES.join(", ")}.`);
|
|
220
|
+
}
|
|
221
|
+
const contextType = ctx.str("context-type");
|
|
222
|
+
if (contextType !== "" && !CONTEXT_TYPES.includes(contextType)) {
|
|
223
|
+
throw new Error(`--context-type must be one of: ${CONTEXT_TYPES.join(", ")}.`);
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
buildInput: (ctx) => compactInput({
|
|
227
|
+
project_id: ctx.num("project-id"),
|
|
228
|
+
project_review_status: optionalString(ctx, "project-review-status"),
|
|
229
|
+
owner: optionalString(ctx, "owner"),
|
|
230
|
+
context_type: optionalString(ctx, "context-type"),
|
|
231
|
+
keyword: optionalString(ctx, "keyword"),
|
|
232
|
+
limit: optionalNumber(ctx, "limit"),
|
|
233
|
+
offset: optionalNumber(ctx, "offset")
|
|
234
|
+
})
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
// src/commands/personal-semantic-preference/review.ts
|
|
238
|
+
var ACTIONS = ["adopt", "reject"];
|
|
239
|
+
var personalSemanticPreferenceReview = createPersonalSemanticPreferenceCommand({
|
|
240
|
+
resource: "",
|
|
241
|
+
command: "review",
|
|
242
|
+
capabilityId: "business_semantics.personal_context.review",
|
|
243
|
+
description: "Adopt or reject personal semantic preferences, including unsubmitted ones, for future project KB refresh.",
|
|
244
|
+
flags: [
|
|
245
|
+
{ name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p", min: 1 },
|
|
246
|
+
{ name: "ids", type: "json", required: true, desc: "JSON array of preference IDs from review-list." },
|
|
247
|
+
{ name: "action", type: "string", required: true, desc: "adopt | reject." },
|
|
248
|
+
{ name: "project-review-note", type: "string", desc: "Optional reviewer note.", maxLength: 1e3 },
|
|
249
|
+
{ name: "request-id", type: "string", desc: "Optional idempotency key; generated when omitted.", maxLength: 128 }
|
|
250
|
+
],
|
|
251
|
+
risk: "write",
|
|
252
|
+
validate: (ctx) => {
|
|
253
|
+
const action = ctx.str("action");
|
|
254
|
+
if (!ACTIONS.includes(action)) {
|
|
255
|
+
throw new Error(`--action must be one of: ${ACTIONS.join(", ")}.`);
|
|
256
|
+
}
|
|
257
|
+
const ids = optionalJsonStringArray(ctx, "ids", "--ids");
|
|
258
|
+
if (!ids || ids.length === 0) {
|
|
259
|
+
throw new Error("--ids must contain at least one preference ID.");
|
|
260
|
+
}
|
|
261
|
+
if (ids.length > 100) {
|
|
262
|
+
throw new Error("--ids must contain at most 100 preference IDs.");
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
buildInput: (ctx) => compactInput({
|
|
266
|
+
project_id: ctx.num("project-id"),
|
|
267
|
+
ids: optionalJsonStringArray(ctx, "ids", "--ids"),
|
|
268
|
+
action: ctx.str("action"),
|
|
269
|
+
project_review_note: optionalString(ctx, "project-review-note"),
|
|
270
|
+
request_id: optionalString(ctx, "request-id")
|
|
271
|
+
})
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
// src/commands/personal-semantic-preference/submit.ts
|
|
275
|
+
var personalSemanticPreferenceSubmit = createPersonalSemanticPreferenceCommand({
|
|
276
|
+
resource: "",
|
|
277
|
+
command: "submit",
|
|
278
|
+
capabilityId: "business_semantics.personal_context.submit",
|
|
279
|
+
description: "Submit one personal semantic preference for project semantic review.",
|
|
280
|
+
flags: [
|
|
281
|
+
{ name: "project-id", type: "number", required: true, desc: "Numeric project ID.", alias: "p", min: 1 },
|
|
282
|
+
{ name: "id", type: "string", required: true, desc: "Preference ID returned by list/add." },
|
|
283
|
+
{ name: "project-review-note", type: "string", desc: "Optional note for the reviewer.", maxLength: 1e3 },
|
|
284
|
+
{ name: "request-id", type: "string", desc: "Optional idempotency key; generated when omitted.", maxLength: 128 }
|
|
285
|
+
],
|
|
286
|
+
risk: "write",
|
|
287
|
+
buildInput: (ctx) => compactInput({
|
|
288
|
+
project_id: ctx.num("project-id"),
|
|
289
|
+
id: ctx.str("id"),
|
|
290
|
+
project_review_note: optionalString(ctx, "project-review-note"),
|
|
291
|
+
request_id: optionalString(ctx, "request-id")
|
|
292
|
+
})
|
|
293
|
+
});
|
|
294
|
+
|
|
192
295
|
// src/commands/personal-semantic-preference/update.ts
|
|
193
296
|
var personalSemanticPreferenceUpdate = createPersonalSemanticPreferenceCommand({
|
|
194
297
|
resource: "",
|
|
@@ -235,7 +338,10 @@ var commands = [
|
|
|
235
338
|
personalSemanticPreferenceGet,
|
|
236
339
|
personalSemanticPreferenceAdd,
|
|
237
340
|
personalSemanticPreferenceUpdate,
|
|
238
|
-
personalSemanticPreferenceDelete
|
|
341
|
+
personalSemanticPreferenceDelete,
|
|
342
|
+
personalSemanticPreferenceSubmit,
|
|
343
|
+
personalSemanticPreferenceReviewList,
|
|
344
|
+
personalSemanticPreferenceReview
|
|
239
345
|
];
|
|
240
346
|
var personal_semantic_preference_default = commands;
|
|
241
347
|
export {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
assertOutputPathAvailable,
|
|
4
4
|
downloadAnalysisArtifact,
|
|
5
5
|
withAsyncArtifactLifecycle
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RGYPSEYD.js";
|
|
7
7
|
import {
|
|
8
8
|
registerCapabilityGatewayRoute,
|
|
9
9
|
resolveGatewayDomain
|
|
@@ -13,12 +13,12 @@ import {
|
|
|
13
13
|
dryRunCapability,
|
|
14
14
|
executeCapabilityWithEnvelope,
|
|
15
15
|
validateCapability
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-VZZNLV3I.js";
|
|
17
|
+
import "./chunk-6VNIR4AP.js";
|
|
18
18
|
import "./chunk-Y74WTIKJ.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-GHXZK54S.js";
|
|
20
|
+
import "./chunk-ZL7SGNIA.js";
|
|
21
|
+
import "./chunk-WNGFSIOB.js";
|
|
22
22
|
|
|
23
23
|
// src/commands/project-semantic/asset-package/materializer.ts
|
|
24
24
|
import { createHash, randomBytes } from "crypto";
|
|
@@ -19,10 +19,13 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
assertSkillDocumentSize
|
|
21
21
|
} from "./chunk-T6OSFQZD.js";
|
|
22
|
+
import {
|
|
23
|
+
assertLegacyWorkspaceCommand
|
|
24
|
+
} from "./chunk-RK6GLDGI.js";
|
|
22
25
|
import {
|
|
23
26
|
require_lib
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
27
|
+
} from "./chunk-CT7QDJS6.js";
|
|
28
|
+
import "./chunk-S6M42KND.js";
|
|
26
29
|
import {
|
|
27
30
|
TeAgentApiError,
|
|
28
31
|
TeAgentCredentialsError,
|
|
@@ -30,16 +33,16 @@ import {
|
|
|
30
33
|
postSandboxSyncPull,
|
|
31
34
|
postToMainApp,
|
|
32
35
|
uploadToMainApp
|
|
33
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3YVEAZUN.js";
|
|
34
37
|
import {
|
|
35
38
|
printError
|
|
36
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-6VNIR4AP.js";
|
|
37
40
|
import "./chunk-Y74WTIKJ.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-GHXZK54S.js";
|
|
42
|
+
import "./chunk-ZL7SGNIA.js";
|
|
40
43
|
import {
|
|
41
44
|
__toESM
|
|
42
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-WNGFSIOB.js";
|
|
43
46
|
|
|
44
47
|
// src/commands/sync/index.ts
|
|
45
48
|
var import_jszip = __toESM(require_lib(), 1);
|
|
@@ -488,8 +491,9 @@ async function runPull(kind) {
|
|
|
488
491
|
renderResults(pullResultRows(resp));
|
|
489
492
|
}
|
|
490
493
|
function registerSync(program) {
|
|
491
|
-
program.command("sync").description("Sync Skills / MCPs between
|
|
494
|
+
program.command("sync").description("Sync Skills / MCPs between a legacy sandbox workspace and te-claude main app").option("--direction <direction>", "push | pull (skip interactive direction picker)").option("--include-secrets", "Include MCP env secrets (TOKEN/SECRET/KEY) in push", false).option("--kind <kind>", "skill | mcp | both (skip interactive picker)").action(async (opts) => {
|
|
492
495
|
try {
|
|
496
|
+
assertLegacyWorkspaceCommand("sync");
|
|
493
497
|
const direction = await selectDirection(opts.direction);
|
|
494
498
|
const kind = await selectKind(opts.kind);
|
|
495
499
|
if (direction === "push") await runPush(kind, !!opts.includeSecrets);
|