thinkwork-cli 0.12.5 → 0.12.6
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/cli.js
CHANGED
|
@@ -4643,6 +4643,8 @@ var CliScheduledJobsDocument = { "kind": "Document", "definitions": [{ "kind": "
|
|
|
4643
4643
|
var CliScheduledJobDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "CliScheduledJob" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "scheduledJob" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "name" } }, { "kind": "Field", "name": { "kind": "Name", "value": "description" } }, { "kind": "Field", "name": { "kind": "Name", "value": "triggerType" } }, { "kind": "Field", "name": { "kind": "Name", "value": "agentId" } }, { "kind": "Field", "name": { "kind": "Name", "value": "routineId" } }, { "kind": "Field", "name": { "kind": "Name", "value": "prompt" } }, { "kind": "Field", "name": { "kind": "Name", "value": "scheduleType" } }, { "kind": "Field", "name": { "kind": "Name", "value": "scheduleExpression" } }, { "kind": "Field", "name": { "kind": "Name", "value": "timezone" } }, { "kind": "Field", "name": { "kind": "Name", "value": "enabled" } }, { "kind": "Field", "name": { "kind": "Name", "value": "ebScheduleName" } }, { "kind": "Field", "name": { "kind": "Name", "value": "lastRunAt" } }, { "kind": "Field", "name": { "kind": "Name", "value": "nextRunAt" } }, { "kind": "Field", "name": { "kind": "Name", "value": "createdAt" } }, { "kind": "Field", "name": { "kind": "Name", "value": "updatedAt" } }] } }] } }] };
|
|
4644
4644
|
var CliCreateScheduledJobDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "mutation", "name": { "kind": "Name", "value": "CliCreateScheduledJob" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "input" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "CreateScheduledJobInput" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "createScheduledJob" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "input" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "input" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "name" } }, { "kind": "Field", "name": { "kind": "Name", "value": "enabled" } }, { "kind": "Field", "name": { "kind": "Name", "value": "scheduleExpression" } }, { "kind": "Field", "name": { "kind": "Name", "value": "timezone" } }] } }] } }] };
|
|
4645
4645
|
var CliDeleteScheduledJobDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "mutation", "name": { "kind": "Name", "value": "CliDeleteScheduledJob" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "deleteScheduledJob" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "ok" } }] } }] } }] };
|
|
4646
|
+
var CliRunScheduledJobDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "mutation", "name": { "kind": "Name", "value": "CliRunScheduledJob" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "runScheduledJob" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "dispatched" } }, { "kind": "Field", "name": { "kind": "Name", "value": "statusCode" } }, { "kind": "Field", "name": { "kind": "Name", "value": "errorMessage" } }] } }] } }] };
|
|
4647
|
+
var CliUpdateScheduledJobDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "mutation", "name": { "kind": "Name", "value": "CliUpdateScheduledJob" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }, { "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "input" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "UpdateScheduledJobInput" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "updateScheduledJob" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "id" } } }, { "kind": "Argument", "name": { "kind": "Name", "value": "input" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "input" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "name" } }, { "kind": "Field", "name": { "kind": "Name", "value": "enabled" } }, { "kind": "Field", "name": { "kind": "Name", "value": "scheduleType" } }, { "kind": "Field", "name": { "kind": "Name", "value": "scheduleExpression" } }, { "kind": "Field", "name": { "kind": "Name", "value": "timezone" } }, { "kind": "Field", "name": { "kind": "Name", "value": "nextRunAt" } }, { "kind": "Field", "name": { "kind": "Name", "value": "updatedAt" } }] } }] } }] };
|
|
4646
4648
|
var CliSchedJobTenantBySlugDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "CliSchedJobTenantBySlug" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "slug" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "String" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "tenantBySlug" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "slug" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "slug" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }] } }] } }] };
|
|
4647
4649
|
var CliSkillCatalogDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "CliSkillCatalog" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "skillCatalog" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }, { "kind": "Field", "name": { "kind": "Name", "value": "skillId" } }, { "kind": "Field", "name": { "kind": "Name", "value": "displayName" } }, { "kind": "Field", "name": { "kind": "Name", "value": "description" } }, { "kind": "Field", "name": { "kind": "Name", "value": "category" } }, { "kind": "Field", "name": { "kind": "Name", "value": "icon" } }, { "kind": "Field", "name": { "kind": "Name", "value": "source" } }, { "kind": "Field", "name": { "kind": "Name", "value": "enabled" } }] } }] } }] };
|
|
4648
4650
|
var CliSkillTenantBySlugDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "CliSkillTenantBySlug" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "slug" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "String" } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "tenantBySlug" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "slug" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "slug" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "id" } }] } }] } }] };
|
|
@@ -4820,6 +4822,8 @@ var documents = {
|
|
|
4820
4822
|
"\n query CliScheduledJob($id: ID!) {\n scheduledJob(id: $id) {\n id\n name\n description\n triggerType\n agentId\n routineId\n prompt\n scheduleType\n scheduleExpression\n timezone\n enabled\n ebScheduleName\n lastRunAt\n nextRunAt\n createdAt\n updatedAt\n }\n }\n": CliScheduledJobDocument,
|
|
4821
4823
|
"\n mutation CliCreateScheduledJob($input: CreateScheduledJobInput!) {\n createScheduledJob(input: $input) {\n id\n name\n enabled\n scheduleExpression\n timezone\n }\n }\n": CliCreateScheduledJobDocument,
|
|
4822
4824
|
"\n mutation CliDeleteScheduledJob($id: ID!) {\n deleteScheduledJob(id: $id) {\n id\n ok\n }\n }\n": CliDeleteScheduledJobDocument,
|
|
4825
|
+
"\n mutation CliRunScheduledJob($id: ID!) {\n runScheduledJob(id: $id) {\n id\n dispatched\n statusCode\n errorMessage\n }\n }\n": CliRunScheduledJobDocument,
|
|
4826
|
+
"\n mutation CliUpdateScheduledJob($id: ID!, $input: UpdateScheduledJobInput!) {\n updateScheduledJob(id: $id, input: $input) {\n id\n name\n enabled\n scheduleType\n scheduleExpression\n timezone\n nextRunAt\n updatedAt\n }\n }\n": CliUpdateScheduledJobDocument,
|
|
4823
4827
|
"\n query CliSchedJobTenantBySlug($slug: String!) {\n tenantBySlug(slug: $slug) {\n id\n }\n }\n": CliSchedJobTenantBySlugDocument,
|
|
4824
4828
|
"\n query CliSkillCatalog {\n skillCatalog {\n id\n skillId\n displayName\n description\n category\n icon\n source\n enabled\n }\n }\n": CliSkillCatalogDocument,
|
|
4825
4829
|
"\n query CliSkillTenantBySlug($slug: String!) {\n tenantBySlug(slug: $slug) {\n id\n }\n }\n": CliSkillTenantBySlugDocument,
|
|
@@ -9941,6 +9945,30 @@ var DeleteScheduledJobDoc = graphql(`
|
|
|
9941
9945
|
}
|
|
9942
9946
|
}
|
|
9943
9947
|
`);
|
|
9948
|
+
var RunScheduledJobDoc = graphql(`
|
|
9949
|
+
mutation CliRunScheduledJob($id: ID!) {
|
|
9950
|
+
runScheduledJob(id: $id) {
|
|
9951
|
+
id
|
|
9952
|
+
dispatched
|
|
9953
|
+
statusCode
|
|
9954
|
+
errorMessage
|
|
9955
|
+
}
|
|
9956
|
+
}
|
|
9957
|
+
`);
|
|
9958
|
+
var UpdateScheduledJobDoc = graphql(`
|
|
9959
|
+
mutation CliUpdateScheduledJob($id: ID!, $input: UpdateScheduledJobInput!) {
|
|
9960
|
+
updateScheduledJob(id: $id, input: $input) {
|
|
9961
|
+
id
|
|
9962
|
+
name
|
|
9963
|
+
enabled
|
|
9964
|
+
scheduleType
|
|
9965
|
+
scheduleExpression
|
|
9966
|
+
timezone
|
|
9967
|
+
nextRunAt
|
|
9968
|
+
updatedAt
|
|
9969
|
+
}
|
|
9970
|
+
}
|
|
9971
|
+
`);
|
|
9944
9972
|
var SchedJobTenantBySlugDoc = graphql(`
|
|
9945
9973
|
query CliSchedJobTenantBySlug($slug: String!) {
|
|
9946
9974
|
tenantBySlug(slug: $slug) {
|
|
@@ -10134,13 +10162,74 @@ async function runSchedDelete(id, opts) {
|
|
|
10134
10162
|
);
|
|
10135
10163
|
}
|
|
10136
10164
|
}
|
|
10137
|
-
function
|
|
10138
|
-
|
|
10139
|
-
|
|
10140
|
-
|
|
10141
|
-
|
|
10165
|
+
async function runSchedUpdate(id, opts) {
|
|
10166
|
+
const ctx = await resolveSchedContext(opts);
|
|
10167
|
+
const input20 = {};
|
|
10168
|
+
if (opts.name !== void 0) input20.name = opts.name;
|
|
10169
|
+
if (opts.description !== void 0) input20.description = opts.description;
|
|
10170
|
+
if (opts.prompt !== void 0) input20.prompt = opts.prompt;
|
|
10171
|
+
if (opts.schedule !== void 0) {
|
|
10172
|
+
input20.scheduleExpression = opts.schedule;
|
|
10173
|
+
input20.scheduleType = opts.schedule.trim().startsWith("cron(") ? "cron" : "rate";
|
|
10174
|
+
}
|
|
10175
|
+
if (opts.timezone !== void 0) input20.timezone = opts.timezone;
|
|
10176
|
+
if (opts.payload !== void 0) {
|
|
10177
|
+
try {
|
|
10178
|
+
input20.config = JSON.stringify(JSON.parse(opts.payload));
|
|
10179
|
+
} catch (err) {
|
|
10180
|
+
printError(`--payload is not valid JSON: ${err.message}`);
|
|
10181
|
+
process.exit(1);
|
|
10182
|
+
}
|
|
10183
|
+
}
|
|
10184
|
+
if (opts.enable && opts.disable) {
|
|
10185
|
+
printError("--enable and --disable are mutually exclusive.");
|
|
10186
|
+
process.exit(1);
|
|
10187
|
+
}
|
|
10188
|
+
if (opts.enable) input20.enabled = true;
|
|
10189
|
+
if (opts.disable) input20.enabled = false;
|
|
10190
|
+
if (Object.keys(input20).length === 0) {
|
|
10191
|
+
printError(
|
|
10192
|
+
"Nothing to update. Pass at least one of --schedule, --timezone, --payload, --enable/--disable, --name, --description, --prompt."
|
|
10193
|
+
);
|
|
10194
|
+
process.exit(1);
|
|
10195
|
+
}
|
|
10196
|
+
const data = await gqlMutate(ctx.client, UpdateScheduledJobDoc, {
|
|
10197
|
+
id,
|
|
10198
|
+
input: input20
|
|
10199
|
+
});
|
|
10200
|
+
if (isJsonMode()) {
|
|
10201
|
+
printJson(data.updateScheduledJob);
|
|
10202
|
+
return;
|
|
10203
|
+
}
|
|
10204
|
+
const job = data.updateScheduledJob;
|
|
10205
|
+
printSuccess(
|
|
10206
|
+
`Updated scheduled job ${job.id} \u2014 ${job.name} (${job.scheduleExpression}, ${job.timezone}, ${job.enabled ? "enabled" : "disabled"}).`
|
|
10142
10207
|
);
|
|
10143
|
-
|
|
10208
|
+
}
|
|
10209
|
+
async function runSchedRun(id, opts) {
|
|
10210
|
+
const ctx = await resolveSchedContext(opts);
|
|
10211
|
+
const data = await gqlMutate(ctx.client, RunScheduledJobDoc, { id });
|
|
10212
|
+
const result = data.runScheduledJob;
|
|
10213
|
+
if (isJsonMode()) {
|
|
10214
|
+
printJson(result);
|
|
10215
|
+
if (!result.dispatched) process.exit(1);
|
|
10216
|
+
return;
|
|
10217
|
+
}
|
|
10218
|
+
if (result.dispatched) {
|
|
10219
|
+
printSuccess(
|
|
10220
|
+
`Dispatched scheduled job ${result.id} (status ${result.statusCode ?? "\u2014"}). Downstream side effects run asynchronously.`
|
|
10221
|
+
);
|
|
10222
|
+
if (opts.wait) {
|
|
10223
|
+
console.log(
|
|
10224
|
+
` --wait is not yet implemented on the API side; check ${result.id}'s last_run_at via \`scheduled-job get\`.`
|
|
10225
|
+
);
|
|
10226
|
+
}
|
|
10227
|
+
} else {
|
|
10228
|
+
printError(
|
|
10229
|
+
`Dispatch failed: ${result.errorMessage ?? "unknown reason"} (status ${result.statusCode ?? "\u2014"}).`
|
|
10230
|
+
);
|
|
10231
|
+
process.exit(1);
|
|
10232
|
+
}
|
|
10144
10233
|
}
|
|
10145
10234
|
function registerScheduledJobCommand(program2) {
|
|
10146
10235
|
const job = program2.command("scheduled-job").alias("cron").description("Manage AWS-Scheduler-backed recurring agent jobs (wakeups on a cadence).");
|
|
@@ -10157,11 +10246,15 @@ Examples:
|
|
|
10157
10246
|
$ thinkwork scheduled-job create "Hourly check" --agent agt-check --schedule "rate(1 hour)"
|
|
10158
10247
|
`
|
|
10159
10248
|
).action(runSchedCreate);
|
|
10160
|
-
job.command("update <id>").description(
|
|
10249
|
+
job.command("update <id>").description(
|
|
10250
|
+
"Update a scheduled job. Changes the EventBridge schedule when --schedule / --timezone / --enable / --disable are passed; partial-update otherwise."
|
|
10251
|
+
).option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--schedule <expr>", "EventBridge schedule (cron(\u2026) or rate(\u2026))").option("--timezone <tz>").option("--payload <json>", "Payload to pass to the agent/routine").option("--enable", "Re-enable a paused job").option("--disable", "Pause without deleting").option("--name <text>").option("--description <text>").option("--prompt <text>").action(runSchedUpdate);
|
|
10161
10252
|
job.command("delete <id>").description(
|
|
10162
10253
|
"Delete a scheduled job. Deprovisions the EventBridge schedule first, then removes the row."
|
|
10163
10254
|
).option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("-y, --yes", "Skip confirmation").action(runSchedDelete);
|
|
10164
|
-
job.command("run <id>").description(
|
|
10255
|
+
job.command("run <id>").description(
|
|
10256
|
+
"Fire a scheduled job once, immediately. Bypasses the EventBridge schedule; downstream side effects (thread turn, routine run) remain async."
|
|
10257
|
+
).option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--wait", "(not yet supported server-side; reserved for future)").action(runSchedRun);
|
|
10165
10258
|
}
|
|
10166
10259
|
|
|
10167
10260
|
// src/commands/turn.ts
|
|
@@ -10918,7 +11011,7 @@ async function runWebhookDeliveries(id, opts) {
|
|
|
10918
11011
|
]
|
|
10919
11012
|
);
|
|
10920
11013
|
}
|
|
10921
|
-
function
|
|
11014
|
+
function notYetImplementedAtApi(verb) {
|
|
10922
11015
|
printError(
|
|
10923
11016
|
`\`webhook ${verb}\` is not yet implemented at the GraphQL API.
|
|
10924
11017
|
Use admin UI for now; CLI parity is tracked as a Phase-3 follow-up.`
|
|
@@ -10938,7 +11031,7 @@ Examples:
|
|
|
10938
11031
|
).action(runWebhookCreate);
|
|
10939
11032
|
wh.command("update <id>").description("Update a webhook's target, rate limit, or enabled state.").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--target-type <t>").option("--target-id <id>").option("--rate-limit <rpm>").option("--allowed-ips <csv>").option("--enable").option("--disable").action(runWebhookUpdate);
|
|
10940
11033
|
wh.command("delete <id>").description("Delete a webhook (its URL stops working immediately).").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("-y, --yes", "Skip confirmation").action(runWebhookDelete);
|
|
10941
|
-
wh.command("test <id>").description("Send a synthetic payload to the webhook. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--payload <json>").action(() =>
|
|
11034
|
+
wh.command("test <id>").description("Send a synthetic payload to the webhook. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--payload <json>").action(() => notYetImplementedAtApi("test"));
|
|
10942
11035
|
wh.command("rotate <id>").description("Generate a new token for an existing webhook.").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("-y, --yes", "Skip confirmation").action(runWebhookRotate);
|
|
10943
11036
|
wh.command("deliveries <id>").description(
|
|
10944
11037
|
"Show recent delivery attempts for a webhook (newest first). Default 25, max 500."
|
|
@@ -11246,7 +11339,7 @@ async function runSkillList(opts) {
|
|
|
11246
11339
|
]
|
|
11247
11340
|
);
|
|
11248
11341
|
}
|
|
11249
|
-
function
|
|
11342
|
+
function notYetImplementedAtApi2(verb) {
|
|
11250
11343
|
printError(
|
|
11251
11344
|
`\`skill ${verb}\` is not yet implemented at the GraphQL API.
|
|
11252
11345
|
The current schema exposes skillCatalog (read), per-computer enableSkill/disableSkill,
|
|
@@ -11262,11 +11355,11 @@ function registerSkillCommand(program2) {
|
|
|
11262
11355
|
);
|
|
11263
11356
|
skill.command("catalog").description("Browse the skill catalog. Client-side filters --search and --tag are applied locally.").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--search <q>", "Filter by keyword").option("--tag <t>", "Filter by category").action(runSkillCatalog);
|
|
11264
11357
|
skill.command("list").alias("ls").description("List skills available to the tenant.").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--custom-only", "Only show tenant-owned custom skills (source=tenant)").action(runSkillList);
|
|
11265
|
-
skill.command("install <slug>").description("Install a public skill. (API surface pending \u2014 toggle per-agent via `agent skills set`.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--version <v>", "Pin to a specific version").action(() =>
|
|
11266
|
-
skill.command("upgrade <slug>").description("Upgrade an installed skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").action(() =>
|
|
11267
|
-
skill.command("create [slug]").description("Publish a custom tenant-scoped skill. (Use `skill push <folder>` for now.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--name <n>").option("--description <text>").option("--manifest-file <path>", "Path to the MCP server manifest JSON").option("--endpoint <url>", "MCP server HTTP/SSE endpoint").action(() =>
|
|
11268
|
-
skill.command("update <slug>").description("Update a custom skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--name <n>").option("--description <text>").option("--manifest-file <path>").option("--endpoint <url>").action(() =>
|
|
11269
|
-
skill.command("delete <slug>").description("Delete a custom skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("-y, --yes", "Skip confirmation").action(() =>
|
|
11358
|
+
skill.command("install <slug>").description("Install a public skill. (API surface pending \u2014 toggle per-agent via `agent skills set`.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--version <v>", "Pin to a specific version").action(() => notYetImplementedAtApi2("install"));
|
|
11359
|
+
skill.command("upgrade <slug>").description("Upgrade an installed skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").action(() => notYetImplementedAtApi2("upgrade"));
|
|
11360
|
+
skill.command("create [slug]").description("Publish a custom tenant-scoped skill. (Use `skill push <folder>` for now.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--name <n>").option("--description <text>").option("--manifest-file <path>", "Path to the MCP server manifest JSON").option("--endpoint <url>", "MCP server HTTP/SSE endpoint").action(() => notYetImplementedAtApi2("create"));
|
|
11361
|
+
skill.command("update <slug>").description("Update a custom skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("--name <n>").option("--description <text>").option("--manifest-file <path>").option("--endpoint <url>").action(() => notYetImplementedAtApi2("update"));
|
|
11362
|
+
skill.command("delete <slug>").description("Delete a custom skill. (API surface pending.)").option("-s, --stage <name>", "Deployment stage").option("-t, --tenant <slug>", "Tenant slug").option("-y, --yes", "Skip confirmation").action(() => notYetImplementedAtApi2("delete"));
|
|
11270
11363
|
skill.command("push <folder>").description(
|
|
11271
11364
|
"Zip a local plugin folder and upload it to the tenant as a pending plugin."
|
|
11272
11365
|
).option("-s, --stage <name>", "Deployment stage").option("--region <name>", "AWS region", "us-east-1").addHelpText(
|
|
@@ -231,7 +231,8 @@ locals {
|
|
|
231
231
|
ROUTINE_TASK_PYTHON_FUNCTION_NAME = "thinkwork-${var.stage}-api-routine-task-python"
|
|
232
232
|
ADMIN_OPS_MCP_FUNCTION_NAME = "thinkwork-${var.stage}-api-admin-ops-mcp"
|
|
233
233
|
SLACK_SEND_FUNCTION_NAME = "thinkwork-${var.stage}-api-slack-send"
|
|
234
|
-
|
|
234
|
+
# requester idle memory learning defaults on in API code so this
|
|
235
|
+
# env-heavy Lambda can stay below AWS's 4 KB environment limit.
|
|
235
236
|
# Phase 3 U10 — compliance read resolvers (complianceEvents,
|
|
236
237
|
# complianceEvent, complianceEventByHash) connect to Aurora as
|
|
237
238
|
# the compliance_reader role. The existing lambda_secrets policy
|