@skrr-ai/cli 0.1.22 → 0.1.23
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 +83 -73
- package/bin/dev-fallback.js +221 -0
- package/bin/run.js +43 -0
- package/dist/base-command.d.ts +15 -0
- package/dist/base-command.js +71 -10
- package/dist/commands/agents/attach-harness.d.ts +37 -0
- package/dist/commands/agents/attach-harness.js +102 -3
- package/dist/commands/agents/chat.d.ts +69 -1
- package/dist/commands/agents/chat.js +202 -22
- package/dist/commands/agents/create.d.ts +38 -0
- package/dist/commands/agents/create.js +95 -2
- package/dist/commands/agents/schedule-trace.js +11 -0
- package/dist/commands/agents/show.js +29 -1
- package/dist/commands/api-keys/create.d.ts +24 -0
- package/dist/commands/api-keys/create.js +80 -0
- package/dist/commands/api-keys/list.d.ts +11 -0
- package/dist/commands/api-keys/list.js +42 -0
- package/dist/commands/api-keys/revoke.d.ts +14 -0
- package/dist/commands/api-keys/revoke.js +33 -0
- package/dist/commands/api-keys/rotate.d.ts +19 -0
- package/dist/commands/api-keys/rotate.js +42 -0
- package/dist/commands/balance/index.d.ts +18 -0
- package/dist/commands/balance/index.js +29 -0
- package/dist/commands/balance/show.d.ts +25 -0
- package/dist/commands/balance/show.js +60 -0
- package/dist/commands/balance/statement.d.ts +19 -0
- package/dist/commands/balance/statement.js +52 -0
- package/dist/commands/browser/doctor.d.ts +11 -0
- package/dist/commands/browser/doctor.js +11 -0
- package/dist/commands/code/jobs/approve.d.ts +25 -0
- package/dist/commands/code/jobs/approve.js +52 -0
- package/dist/commands/code/jobs/cancel.d.ts +12 -0
- package/dist/commands/code/jobs/cancel.js +39 -0
- package/dist/commands/code/jobs/index.d.ts +19 -0
- package/dist/commands/code/jobs/index.js +38 -0
- package/dist/commands/code/jobs/list.d.ts +12 -0
- package/dist/commands/code/jobs/list.js +87 -0
- package/dist/commands/code/jobs/run.d.ts +32 -0
- package/dist/commands/code/jobs/run.js +151 -0
- package/dist/commands/code/jobs/show.d.ts +12 -0
- package/dist/commands/code/jobs/show.js +86 -0
- package/dist/commands/commitments/preflight.js +18 -4
- package/dist/commands/commitments/receipt-metrics.d.ts +39 -0
- package/dist/commands/commitments/receipt-metrics.js +78 -0
- package/dist/commands/convos/search.js +5 -5
- package/dist/commands/harnesses/leases/list.d.ts +3 -0
- package/dist/commands/harnesses/leases/list.js +59 -12
- package/dist/commands/harnesses/leases/show.js +36 -0
- package/dist/commands/harnesses/list.d.ts +18 -0
- package/dist/commands/harnesses/list.js +30 -0
- package/dist/commands/harnesses/products.js +48 -3
- package/dist/commands/harnesses/quota.d.ts +16 -0
- package/dist/commands/harnesses/quota.js +26 -1
- package/dist/commands/harnesses/usage.js +17 -0
- package/dist/commands/inbox/index.d.ts +2 -1
- package/dist/commands/inbox/index.js +27 -4
- package/dist/commands/login.js +4 -1
- package/dist/commands/machines/list.d.ts +1 -0
- package/dist/commands/machines/list.js +33 -5
- package/dist/commands/memory/approvals/issue.d.ts +18 -0
- package/dist/commands/memory/approvals/issue.js +63 -0
- package/dist/commands/memory/commit.js +5 -2
- package/dist/commands/memory/context.d.ts +3 -2
- package/dist/commands/memory/context.js +9 -11
- package/dist/commands/memory/delete.d.ts +1 -1
- package/dist/commands/memory/list.d.ts +1 -1
- package/dist/commands/memory/list.js +1 -1
- package/dist/commands/memory/mounts/resolve.d.ts +10 -0
- package/dist/commands/memory/mounts/resolve.js +27 -0
- package/dist/commands/memory/proposals/commit.d.ts +18 -0
- package/dist/commands/memory/proposals/commit.js +32 -0
- package/dist/commands/memory/proposals/create.d.ts +18 -0
- package/dist/commands/memory/proposals/create.js +56 -0
- package/dist/commands/memory/proposals/list.d.ts +13 -0
- package/dist/commands/memory/proposals/list.js +31 -0
- package/dist/commands/memory/proposals/promote.d.ts +22 -0
- package/dist/commands/memory/proposals/promote.js +33 -0
- package/dist/commands/memory/proposals/reject.d.ts +16 -0
- package/dist/commands/memory/proposals/reject.js +28 -0
- package/dist/commands/memory/rebuild-index.d.ts +20 -0
- package/dist/commands/memory/rebuild-index.js +25 -0
- package/dist/commands/memory/save.d.ts +1 -1
- package/dist/commands/memory/save.js +1 -1
- package/dist/commands/memory/search.d.ts +6 -3
- package/dist/commands/memory/search.js +27 -3
- package/dist/commands/memory/show.d.ts +1 -1
- package/dist/commands/memory/stores/archive.d.ts +14 -0
- package/dist/commands/memory/stores/archive.js +31 -0
- package/dist/commands/memory/stores/create.d.ts +12 -0
- package/dist/commands/memory/stores/create.js +30 -0
- package/dist/commands/memory/stores/delete.d.ts +15 -0
- package/dist/commands/memory/stores/delete.js +38 -0
- package/dist/commands/memory/stores/list.d.ts +10 -0
- package/dist/commands/memory/stores/list.js +29 -0
- package/dist/commands/memory/stores/show.d.ts +12 -0
- package/dist/commands/memory/stores/show.js +14 -0
- package/dist/commands/memory/stores/update.d.ts +15 -0
- package/dist/commands/memory/stores/update.js +39 -0
- package/dist/commands/memory/sync/delete.d.ts +13 -0
- package/dist/commands/memory/sync/delete.js +35 -0
- package/dist/commands/memory/sync/pull.d.ts +19 -0
- package/dist/commands/memory/sync/pull.js +52 -0
- package/dist/commands/memory/sync/push.d.ts +18 -0
- package/dist/commands/memory/sync/push.js +115 -0
- package/dist/commands/memory/sync/resolve.d.ts +23 -0
- package/dist/commands/memory/sync/resolve.js +27 -0
- package/dist/commands/memory/sync/status.d.ts +9 -0
- package/dist/commands/memory/sync/status.js +22 -0
- package/dist/commands/memory/topics/archive.d.ts +20 -0
- package/dist/commands/memory/topics/archive.js +29 -0
- package/dist/commands/memory/topics/create.d.ts +23 -0
- package/dist/commands/memory/topics/create.js +46 -0
- package/dist/commands/memory/topics/delete.d.ts +22 -0
- package/dist/commands/memory/topics/delete.js +30 -0
- package/dist/commands/memory/topics/forget.d.ts +22 -0
- package/dist/commands/memory/topics/forget.js +29 -0
- package/dist/commands/memory/topics/list.d.ts +13 -0
- package/dist/commands/memory/topics/list.js +22 -0
- package/dist/commands/memory/topics/move.d.ts +22 -0
- package/dist/commands/memory/topics/move.js +26 -0
- package/dist/commands/memory/topics/show.d.ts +17 -0
- package/dist/commands/memory/topics/show.js +21 -0
- package/dist/commands/memory/topics/update.d.ts +23 -0
- package/dist/commands/memory/topics/update.js +27 -0
- package/dist/commands/memory/tree.d.ts +5 -2
- package/dist/commands/memory/tree.js +20 -2
- package/dist/commands/memory/update.d.ts +1 -1
- package/dist/commands/memory/versions/list.d.ts +16 -0
- package/dist/commands/memory/versions/list.js +22 -0
- package/dist/commands/memory/versions/redact.d.ts +21 -0
- package/dist/commands/memory/versions/redact.js +22 -0
- package/dist/commands/memory/versions/restore.d.ts +20 -0
- package/dist/commands/memory/versions/restore.js +16 -0
- package/dist/commands/memory/versions/show.d.ts +15 -0
- package/dist/commands/memory/versions/show.js +17 -0
- package/dist/commands/messages/list.js +25 -8
- package/dist/commands/messages/show.js +10 -0
- package/dist/commands/store/install.js +5 -1
- package/dist/commands/store/releases.js +1 -1
- package/dist/commands/store/update.js +5 -1
- package/dist/commands/subscriptions/cancel.js +5 -1
- package/dist/commands/subscriptions/health.js +5 -1
- package/dist/commands/subscriptions/status.js +5 -1
- package/dist/commands/subscriptions/subscribe.js +5 -1
- package/dist/commands/tasks/activity.d.ts +2 -3
- package/dist/commands/tasks/activity.js +15 -5
- package/dist/commands/tasks/complete.d.ts +18 -150
- package/dist/commands/tasks/complete.js +161 -600
- package/dist/commands/tasks/create.d.ts +5 -0
- package/dist/commands/tasks/create.js +107 -4
- package/dist/commands/tasks/deliverable/add.d.ts +8 -0
- package/dist/commands/tasks/deliverable/add.js +41 -8
- package/dist/commands/tasks/deliverable/confirm.d.ts +5 -5
- package/dist/commands/tasks/deliverable/confirm.js +9 -18
- package/dist/commands/tasks/deliverable/list.d.ts +12 -0
- package/dist/commands/tasks/deliverable/list.js +37 -0
- package/dist/commands/tasks/events/append.d.ts +2 -0
- package/dist/commands/tasks/events/append.js +11 -4
- package/dist/commands/tasks/events/list.d.ts +1 -0
- package/dist/commands/tasks/events/list.js +1 -0
- package/dist/commands/tasks/events/tail.d.ts +1 -0
- package/dist/commands/tasks/events/tail.js +1 -0
- package/dist/commands/tasks/expectations/assess.d.ts +21 -0
- package/dist/commands/tasks/expectations/assess.js +77 -0
- package/dist/commands/tasks/expectations.js +14 -18
- package/dist/commands/tasks/judge.d.ts +1 -0
- package/dist/commands/tasks/judge.js +2 -1
- package/dist/commands/tasks/output.d.ts +2 -11
- package/dist/commands/tasks/output.js +64 -145
- package/dist/commands/tasks/report.d.ts +3 -3
- package/dist/commands/tasks/report.js +64 -41
- package/dist/commands/tasks/resource/add.d.ts +23 -0
- package/dist/commands/tasks/resource/add.js +76 -0
- package/dist/commands/tasks/resource/list.d.ts +13 -0
- package/dist/commands/tasks/resource/list.js +41 -0
- package/dist/commands/tasks/result/show.d.ts +13 -0
- package/dist/commands/tasks/result/show.js +46 -0
- package/dist/commands/tasks/result/submit.d.ts +26 -0
- package/dist/commands/tasks/result/submit.js +134 -0
- package/dist/commands/tasks/resume/save.d.ts +16 -0
- package/dist/commands/tasks/resume/save.js +59 -0
- package/dist/commands/tasks/resume/show.d.ts +13 -0
- package/dist/commands/tasks/resume/show.js +35 -0
- package/dist/commands/tasks/review.d.ts +17 -0
- package/dist/commands/tasks/review.js +54 -0
- package/dist/commands/tasks/runs.js +5 -0
- package/dist/commands/tasks/timeline.d.ts +2 -2
- package/dist/commands/tasks/timeline.js +10 -23
- package/dist/commands/tasks/updates/add.d.ts +22 -0
- package/dist/commands/tasks/updates/add.js +101 -0
- package/dist/commands/tasks/updates/list.d.ts +15 -0
- package/dist/commands/tasks/updates/list.js +57 -0
- package/dist/commands/tasks/waive.d.ts +1 -0
- package/dist/commands/tasks/waive.js +2 -1
- package/dist/lib/agentic-stream.d.ts +257 -0
- package/dist/lib/agentic-stream.js +490 -33
- package/dist/lib/balance.d.ts +8 -0
- package/dist/lib/commitment-product.d.ts +10 -1
- package/dist/lib/commitment-product.js +66 -2
- package/dist/lib/commitments.d.ts +2 -1
- package/dist/lib/commitments.js +1 -0
- package/dist/lib/conversation-search.d.ts +3 -0
- package/dist/lib/conversation-search.js +75 -0
- package/dist/lib/execution-target.d.ts +21 -0
- package/dist/lib/execution-target.js +22 -6
- package/dist/lib/harnesses.d.ts +82 -6
- package/dist/lib/harnesses.js +30 -2
- package/dist/lib/hosted-machines.js +9 -0
- package/dist/lib/inbox.d.ts +2 -1
- package/dist/lib/machines.d.ts +17 -0
- package/dist/lib/machines.js +29 -0
- package/dist/lib/managed-agent-keys.d.ts +104 -0
- package/dist/lib/managed-agent-keys.js +50 -0
- package/dist/lib/memory-scope.d.ts +4 -3
- package/dist/lib/memory-scope.js +9 -9
- package/dist/lib/memory-sync.d.ts +114 -0
- package/dist/lib/memory-sync.js +730 -0
- package/dist/lib/message-provenance.d.ts +42 -0
- package/dist/lib/message-provenance.js +89 -0
- package/dist/lib/scoped-memory-command.d.ts +68 -0
- package/dist/lib/scoped-memory-command.js +183 -0
- package/dist/lib/session-task-endpoints.d.ts +1 -1
- package/dist/lib/session-task-endpoints.js +7 -0
- package/dist/lib/sky-code-broker.d.ts +47 -0
- package/dist/lib/sky-code-broker.js +50 -0
- package/dist/lib/sky-code-doctor.js +10 -1
- package/dist/lib/task-artifact-flags.d.ts +2 -0
- package/dist/lib/task-artifact-flags.js +7 -0
- package/dist/lib/task-execution.d.ts +4 -5
- package/dist/lib/task-execution.js +4 -5
- package/dist/lib/task-extras.d.ts +1 -5
- package/dist/lib/task-extras.js +1 -5
- package/dist/lib/task-transcript.d.ts +5 -7
- package/dist/lib/task-transcript.js +8 -16
- package/dist/lib/tasks.d.ts +7 -21
- package/dist/lib/tasks.js +17 -20
- package/dist/lib/triggers.d.ts +39 -1
- package/dist/lib/triggers.js +70 -2
- package/dist/lib/usage-discovery.d.ts +17 -1
- package/dist/lib/usage-discovery.js +17 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +3733 -3618
- package/oclif.manifest.json +16201 -10377
- package/package.json +26 -5
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const prompt_1 = require("../../../lib/prompt");
|
|
5
|
+
const scoped_memory_command_1 = require("../../../lib/scoped-memory-command");
|
|
6
|
+
class MemoryVersionsRedact extends scoped_memory_command_1.ScopedMemoryCommand {
|
|
7
|
+
static description = 'Irreversibly redact the content of an exact historical MemoryVersion';
|
|
8
|
+
static args = { id: core_1.Args.string({ required: true, ignoreStdin: true }) };
|
|
9
|
+
static flags = { ...scoped_memory_command_1.mutationFlags, yes: core_1.Flags.boolean({ char: 'y' }) };
|
|
10
|
+
async run() {
|
|
11
|
+
this.requireAuth();
|
|
12
|
+
const { args, flags } = await this.parse(MemoryVersionsRedact);
|
|
13
|
+
if (!flags['dry-run']) {
|
|
14
|
+
const ok = await (0, prompt_1.confirmDestructive)(`Irreversibly redact MemoryVersion ${args.id}?`, flags.yes).catch((error) => this.error(error.message, { exit: error.exit || 7 }));
|
|
15
|
+
if (!ok)
|
|
16
|
+
return this.log('Cancelled.');
|
|
17
|
+
}
|
|
18
|
+
const result = await this.mutation('redact', flags, { versionId: args.id });
|
|
19
|
+
this.print(result, flags.json, flags['dry-run'] ? 'Dry run: no version redacted.' : `Redacted MemoryVersion ${args.id}.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.default = MemoryVersionsRedact;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ScopedMemoryCommand } from '../../../lib/scoped-memory-command';
|
|
2
|
+
export default class MemoryVersionsRestore extends ScopedMemoryCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
'expected-version': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
'authorization-generation': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
'idempotency-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
'privacy-approval': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
agent: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
|
+
store: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
scope: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
17
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
};
|
|
19
|
+
run(): Promise<void>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const scoped_memory_command_1 = require("../../../lib/scoped-memory-command");
|
|
5
|
+
class MemoryVersionsRestore extends scoped_memory_command_1.ScopedMemoryCommand {
|
|
6
|
+
static description = 'Restore an old version by appending a new current version';
|
|
7
|
+
static args = { id: core_1.Args.string({ required: true, ignoreStdin: true }) };
|
|
8
|
+
static flags = scoped_memory_command_1.versionedMutationFlags;
|
|
9
|
+
async run() {
|
|
10
|
+
this.requireAuth();
|
|
11
|
+
const { args, flags } = await this.parse(MemoryVersionsRestore);
|
|
12
|
+
const result = await this.mutation('restore', flags, { versionId: args.id });
|
|
13
|
+
this.print(result, flags.json, flags['dry-run'] ? 'Dry run: no version restored.' : `Restored MemoryVersion ${args.id}.`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.default = MemoryVersionsRestore;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ScopedMemoryCommand } from '../../../lib/scoped-memory-command';
|
|
2
|
+
export default class MemoryVersionsShow extends ScopedMemoryCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
agent: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
9
|
+
space: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
store: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
scope: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
};
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const scoped_memory_command_1 = require("../../../lib/scoped-memory-command");
|
|
5
|
+
class MemoryVersionsShow extends scoped_memory_command_1.ScopedMemoryCommand {
|
|
6
|
+
static description = 'Show one immutable MemoryVersion';
|
|
7
|
+
static args = { id: core_1.Args.string({ required: true, ignoreStdin: true }) };
|
|
8
|
+
static flags = scoped_memory_command_1.scopedMemoryFlags;
|
|
9
|
+
async run() {
|
|
10
|
+
this.requireAuth();
|
|
11
|
+
const { args, flags } = await this.parse(MemoryVersionsShow);
|
|
12
|
+
const store = await this.resolveStore(flags);
|
|
13
|
+
const result = await this.memoryApi(flags.agent, `/stores/${store.id}/versions/${encodeURIComponent(args.id)}${this.query(flags)}`);
|
|
14
|
+
this.print(result, flags.json, `${result.id} ${result.operation}\n${JSON.stringify(result.payloadSnapshot, null, 2)}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = MemoryVersionsShow;
|
|
@@ -6,6 +6,7 @@ const data_provider_1 = require("@skrr-ai/data-provider");
|
|
|
6
6
|
const base_command_1 = require("../../base-command");
|
|
7
7
|
const format_1 = require("../../lib/format");
|
|
8
8
|
const task_transcript_1 = require("../../lib/task-transcript");
|
|
9
|
+
const message_provenance_1 = require("../../lib/message-provenance");
|
|
9
10
|
/**
|
|
10
11
|
* OSK-2058 — resolve the conversation id from either calling convention.
|
|
11
12
|
*
|
|
@@ -114,20 +115,36 @@ class MessagesList extends base_command_1.BaseCommand {
|
|
|
114
115
|
}
|
|
115
116
|
// TMessage has historically varied its shape across versions — accept
|
|
116
117
|
// multiple field names and coerce to strings.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
118
|
+
// OSK-7708 — an unattended run's answer arrives with no question above it,
|
|
119
|
+
// so the row itself has to say what caused it. Without this a scheduled
|
|
120
|
+
// thread reads as an agent volunteering five answers to nothing.
|
|
121
|
+
let unattended = 0;
|
|
122
|
+
const rows = selected.map((m) => {
|
|
123
|
+
const provenance = (0, message_provenance_1.messageProvenance)(m);
|
|
124
|
+
if (provenance)
|
|
125
|
+
unattended += 1;
|
|
126
|
+
return {
|
|
127
|
+
when: m.createdAt ? new Date(String(m.createdAt)).toISOString().slice(11, 19) : '-',
|
|
128
|
+
role: String(m.sender ?? m.role ?? (m.isCreatedByUser ? 'user' : 'assistant')),
|
|
129
|
+
via: provenance ? (0, message_provenance_1.provenanceLabel)(provenance) : '-',
|
|
130
|
+
text: String(m.text ?? m.content ?? '')
|
|
131
|
+
.replace(/\s+/g, ' ')
|
|
132
|
+
.trim(),
|
|
133
|
+
id: String(m.messageId ?? m._id ?? m.id ?? '-'),
|
|
134
|
+
};
|
|
135
|
+
});
|
|
125
136
|
(0, format_1.renderTable)(rows, [
|
|
126
137
|
{ key: 'when', header: 'TIME' },
|
|
127
138
|
{ key: 'role', header: 'ROLE', maxWidth: 12 },
|
|
139
|
+
{ key: 'via', header: 'VIA', maxWidth: 10 },
|
|
128
140
|
{ key: 'text', header: 'TEXT', maxWidth: 80 },
|
|
129
141
|
{ key: 'id', header: 'ID' },
|
|
130
142
|
], (line) => this.log(line));
|
|
143
|
+
if (unattended > 0) {
|
|
144
|
+
this.log('');
|
|
145
|
+
this.log(`${unattended} message${unattended === 1 ? '' : 's'} came from an unattended run, so no prompt precedes ${unattended === 1 ? 'it' : 'them'} here.`);
|
|
146
|
+
this.log(` skrr messages show ${convoId} <message-id> # what the run was asked`);
|
|
147
|
+
}
|
|
131
148
|
// Never let a cap read as "this is the whole transcript".
|
|
132
149
|
if (truncated) {
|
|
133
150
|
this.log('');
|
|
@@ -4,6 +4,7 @@ exports.firstMessageFromDetailResponse = firstMessageFromDetailResponse;
|
|
|
4
4
|
const core_1 = require("@oclif/core");
|
|
5
5
|
const data_provider_1 = require("@skrr-ai/data-provider");
|
|
6
6
|
const base_command_1 = require("../../base-command");
|
|
7
|
+
const message_provenance_1 = require("../../lib/message-provenance");
|
|
7
8
|
/** The detail endpoint preserves the legacy raw-array response while the list
|
|
8
9
|
* endpoint returns an envelope. Accept both so an ID emitted by messages list
|
|
9
10
|
* is always usable by messages show. */
|
|
@@ -63,6 +64,15 @@ class MessagesShow extends base_command_1.BaseCommand {
|
|
|
63
64
|
this.log(`Updated: ${formatTime(msg.updatedAt)}`);
|
|
64
65
|
if (msg.tokenCount !== undefined)
|
|
65
66
|
this.log(`Tokens: ${msg.tokenCount}`);
|
|
67
|
+
// OSK-7682 — an unattended run persists no user message, so this row is the
|
|
68
|
+
// only place its instruction can be read. Print the question before the
|
|
69
|
+
// answer, which is the order a reader needs them in.
|
|
70
|
+
const provenance = (0, message_provenance_1.messageProvenance)(msg);
|
|
71
|
+
if (provenance) {
|
|
72
|
+
for (const line of (0, message_provenance_1.provenanceLines)(provenance)) {
|
|
73
|
+
this.log(line);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
66
76
|
this.log('');
|
|
67
77
|
this.log('Text:');
|
|
68
78
|
this.log(String(msg.text ?? msg.content ?? ''));
|
|
@@ -11,7 +11,11 @@ class StoreInstall extends base_command_1.BaseCommand {
|
|
|
11
11
|
'<%= config.bin %> store install agent_abc123 --json',
|
|
12
12
|
];
|
|
13
13
|
static args = {
|
|
14
|
-
agentId: core_1.Args.string({
|
|
14
|
+
agentId: core_1.Args.string({
|
|
15
|
+
description: 'The store agent to install',
|
|
16
|
+
required: true,
|
|
17
|
+
ignoreStdin: true,
|
|
18
|
+
}),
|
|
15
19
|
};
|
|
16
20
|
static flags = {
|
|
17
21
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -18,7 +18,7 @@ class StoreReleases extends base_command_1.BaseCommand {
|
|
|
18
18
|
'<%= config.bin %> store releases agent_abc123 --json',
|
|
19
19
|
];
|
|
20
20
|
static args = {
|
|
21
|
-
agentId: core_1.Args.string({ description: 'The store agent', required: true }),
|
|
21
|
+
agentId: core_1.Args.string({ description: 'The store agent', required: true, ignoreStdin: true }),
|
|
22
22
|
};
|
|
23
23
|
static flags = {
|
|
24
24
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -11,7 +11,11 @@ class StoreUpdate extends base_command_1.BaseCommand {
|
|
|
11
11
|
'<%= config.bin %> store update agent_abc123 --strategy replace',
|
|
12
12
|
];
|
|
13
13
|
static args = {
|
|
14
|
-
agentId: core_1.Args.string({
|
|
14
|
+
agentId: core_1.Args.string({
|
|
15
|
+
description: 'The store agent you installed',
|
|
16
|
+
required: true,
|
|
17
|
+
ignoreStdin: true,
|
|
18
|
+
}),
|
|
15
19
|
};
|
|
16
20
|
static flags = {
|
|
17
21
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -11,7 +11,11 @@ class SubscriptionsCancel extends base_command_1.BaseCommand {
|
|
|
11
11
|
'<%= config.bin %> subscriptions cancel agent_abc123 --expected-version 3',
|
|
12
12
|
];
|
|
13
13
|
static args = {
|
|
14
|
-
agentId: core_1.Args.string({
|
|
14
|
+
agentId: core_1.Args.string({
|
|
15
|
+
description: 'The service to unsubscribe from',
|
|
16
|
+
required: true,
|
|
17
|
+
ignoreStdin: true,
|
|
18
|
+
}),
|
|
15
19
|
};
|
|
16
20
|
static flags = {
|
|
17
21
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -22,7 +22,11 @@ class SubscriptionsHealth extends base_command_1.BaseCommand {
|
|
|
22
22
|
'<%= config.bin %> subscriptions health agent_abc123 --json',
|
|
23
23
|
];
|
|
24
24
|
static args = {
|
|
25
|
-
agentId: core_1.Args.string({
|
|
25
|
+
agentId: core_1.Args.string({
|
|
26
|
+
description: 'The service to check',
|
|
27
|
+
required: true,
|
|
28
|
+
ignoreStdin: true,
|
|
29
|
+
}),
|
|
26
30
|
};
|
|
27
31
|
static flags = {
|
|
28
32
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -10,7 +10,11 @@ class SubscriptionsStatus extends base_command_1.BaseCommand {
|
|
|
10
10
|
'<%= config.bin %> subscriptions status agent_abc123 --json',
|
|
11
11
|
];
|
|
12
12
|
static args = {
|
|
13
|
-
agentId: core_1.Args.string({
|
|
13
|
+
agentId: core_1.Args.string({
|
|
14
|
+
description: 'The service to check',
|
|
15
|
+
required: true,
|
|
16
|
+
ignoreStdin: true,
|
|
17
|
+
}),
|
|
14
18
|
};
|
|
15
19
|
static flags = {
|
|
16
20
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -11,7 +11,11 @@ class SubscriptionsSubscribe extends base_command_1.BaseCommand {
|
|
|
11
11
|
'<%= config.bin %> subscriptions subscribe agent_abc123 --space space_xyz --json',
|
|
12
12
|
];
|
|
13
13
|
static args = {
|
|
14
|
-
agentId: core_1.Args.string({
|
|
14
|
+
agentId: core_1.Args.string({
|
|
15
|
+
description: 'The published service to subscribe to',
|
|
16
|
+
required: true,
|
|
17
|
+
ignoreStdin: true,
|
|
18
|
+
}),
|
|
15
19
|
};
|
|
16
20
|
static flags = {
|
|
17
21
|
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { BaseCommand } from '../../base-command';
|
|
2
2
|
/**
|
|
3
|
-
* One row of
|
|
4
|
-
*
|
|
5
|
-
* (packages/data-schemas/src/types/task.ts:162, api/models/Task.js:2239).
|
|
3
|
+
* One row of the canonical Activity endpoint. Field fallbacks remain so this
|
|
4
|
+
* CLI can still read an older deployment's embedded Task activity entries.
|
|
6
5
|
*
|
|
7
6
|
* OSK-2044: this renderer read `event` / `actorId` / `createdAt`, none of which
|
|
8
7
|
* that document has, so EVENT and ACTOR were `-` on every row while `details`
|
|
@@ -7,11 +7,21 @@ const data_provider_1 = require("@skrr-ai/data-provider");
|
|
|
7
7
|
const base_command_1 = require("../../base-command");
|
|
8
8
|
const format_1 = require("../../lib/format");
|
|
9
9
|
function activityRow(entry) {
|
|
10
|
+
const actor = entry.actor;
|
|
11
|
+
const actorText = actor
|
|
12
|
+
? actor.kind === 'agent'
|
|
13
|
+
? `agent:${actor.agentId}`
|
|
14
|
+
: actor.kind === 'human'
|
|
15
|
+
? `human:${actor.userId}`
|
|
16
|
+
: actor.kind === 'integration'
|
|
17
|
+
? `integration:${actor.provider}`
|
|
18
|
+
: `system:${actor.service}`
|
|
19
|
+
: (entry.userId ?? entry.actorId);
|
|
10
20
|
return {
|
|
11
|
-
time: formatTime(entry.timestamp ?? entry.createdAt),
|
|
21
|
+
time: formatTime(entry.occurredAt ?? entry.timestamp ?? entry.createdAt),
|
|
12
22
|
event: (0, format_1.formatCell)(entry.action ?? entry.event ?? entry.type),
|
|
13
|
-
actor: (0, format_1.formatCell)(
|
|
14
|
-
details: (0, format_1.formatCell)(entry.details ?? entry.metadata),
|
|
23
|
+
actor: (0, format_1.formatCell)(actorText),
|
|
24
|
+
details: (0, format_1.formatCell)(entry.data ?? entry.details ?? entry.metadata),
|
|
15
25
|
};
|
|
16
26
|
}
|
|
17
27
|
/**
|
|
@@ -70,7 +80,7 @@ function formatTime(value) {
|
|
|
70
80
|
return date.toISOString().slice(0, 19).replace('T', ' ');
|
|
71
81
|
}
|
|
72
82
|
class TasksActivity extends base_command_1.BaseCommand {
|
|
73
|
-
static description = 'Show
|
|
83
|
+
static description = 'Show the immutable, multi-actor Activity ledger for a Task';
|
|
74
84
|
static examples = [
|
|
75
85
|
'<%= config.bin %> tasks activity <task-id>',
|
|
76
86
|
'<%= config.bin %> tasks activity <task-id> --limit 50',
|
|
@@ -88,7 +98,7 @@ class TasksActivity extends base_command_1.BaseCommand {
|
|
|
88
98
|
const { args, flags } = await this.parse(TasksActivity);
|
|
89
99
|
let response;
|
|
90
100
|
try {
|
|
91
|
-
response = await data_provider_1.dataService.
|
|
101
|
+
response = await data_provider_1.dataService.listTaskActivityEvents(args.id, { limit: flags.limit });
|
|
92
102
|
}
|
|
93
103
|
catch (err) {
|
|
94
104
|
this.handleApiError(err);
|
|
@@ -1,144 +1,10 @@
|
|
|
1
|
-
import { dataService } from '@skrr-ai/data-provider';
|
|
2
|
-
import type { TaskReport } from '@skrr-ai/data-provider';
|
|
3
1
|
import { BaseCommand } from '../../base-command';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
type TaskCommentResult = Awaited<ReturnType<typeof dataService.addTaskComment>>;
|
|
7
|
-
type MovedTaskResult = Awaited<ReturnType<typeof dataService.moveTask>>;
|
|
8
|
-
/** Wire shape of POST /api/tasks/:taskId/complete (OSK-1969). */
|
|
9
|
-
/** One thing a completion did not have. Never a refusal — `done` has none. */
|
|
10
|
-
export interface CompletionAdvisory {
|
|
11
|
-
code: string;
|
|
12
|
-
message: string;
|
|
13
|
-
}
|
|
14
|
-
export interface CompleteEndpointResponse {
|
|
15
|
-
task: MovedTaskResult | null;
|
|
16
|
-
comment: TaskCommentResult | null;
|
|
17
|
-
commentFailed?: boolean;
|
|
18
|
-
/** What the completion was missing. `done` has no preconditions, so every
|
|
19
|
-
* condition that used to refuse one now travels with it instead. The task
|
|
20
|
-
* reached the requested terminal state regardless. */
|
|
21
|
-
advisories?: CompletionAdvisory[];
|
|
22
|
-
}
|
|
23
|
-
export interface CompleteTransport {
|
|
24
|
-
/** POST /api/tasks/:taskId/complete — atomic move + TASK_OUTPUT comment. */
|
|
25
|
-
postComplete: (taskId: string, payload: {
|
|
26
|
-
status: CompletionStatus;
|
|
27
|
-
summary: string;
|
|
28
|
-
deliverables: string;
|
|
29
|
-
verdict: string;
|
|
30
|
-
report?: TaskReport;
|
|
31
|
-
deliveryReceipt?: TaskDeliveryReceipt;
|
|
32
|
-
}) => Promise<CompleteEndpointResponse>;
|
|
33
|
-
/** Legacy step 1 — POST /api/tasks/:taskId/comments. */
|
|
34
|
-
addComment: (taskId: string, body: string) => Promise<TaskCommentResult>;
|
|
35
|
-
/** Legacy step 2 — PATCH /api/tasks/:taskId/move. */
|
|
36
|
-
moveTask: (taskId: string, status: 'done' | 'failed') => Promise<MovedTaskResult>;
|
|
37
|
-
/** Session credentials must never fall back to broad user-grain endpoints. */
|
|
38
|
-
allowLegacyFallback?: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface DurableCompletionResult {
|
|
41
|
-
comment: TaskCommentResult | null;
|
|
42
|
-
movedTask: MovedTaskResult | null;
|
|
43
|
-
moved: boolean;
|
|
44
|
-
commentFailed: boolean;
|
|
45
|
-
advisories?: CompletionAdvisory[];
|
|
46
|
-
/** true when the atomic /complete endpoint handled the finalization. */
|
|
47
|
-
usedAtomicEndpoint: boolean;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Mutation endpoints require the task's canonical UUID even though the CLI
|
|
51
|
-
* accepts human-readable refs and titles. Resolve the display reference before
|
|
52
|
-
* writing anything so a 404 from `POST /complete` cannot be mistaken for an
|
|
53
|
-
* old server and fall through to the legacy comment-first path.
|
|
54
|
-
*/
|
|
55
|
-
export declare function resolveCanonicalCompletionTaskId(taskRef: string, lookup: (taskRef: string) => Promise<unknown>): Promise<string>;
|
|
56
|
-
/**
|
|
57
|
-
* The canonical id AND the status it is in.
|
|
58
|
-
*
|
|
59
|
-
* The status comes free: this lookup already happens on the user path, so the
|
|
60
|
-
* re-completion guard below costs no extra round trip on the common case. It is
|
|
61
|
-
* also the only way to make the success line honest — `tasks complete` printed
|
|
62
|
-
* "Moved task X to done" unconditionally, so a task that was ALREADY done got a
|
|
63
|
-
* report of a state transition that did not happen.
|
|
64
|
-
*/
|
|
65
|
-
export declare function resolveCompletionTarget(taskRef: string, lookup: (taskRef: string) => Promise<unknown>): Promise<{
|
|
66
|
-
id: string;
|
|
67
|
-
status: string | null;
|
|
68
|
-
}>;
|
|
69
|
-
/**
|
|
70
|
-
* What a second `tasks complete` on an already-closed task should do.
|
|
71
|
-
*
|
|
72
|
-
* The repo contract calls this "the only terminal closeout", and a task has one
|
|
73
|
-
* canonical outcome — but a second run used to succeed silently, post another
|
|
74
|
-
* TASK_OUTPUT block, and leave `tasks output` rendering the throwaway one as
|
|
75
|
-
* authoritative. The real summary and its deliverables link were still on the task
|
|
76
|
-
* but no longer canonical, which is the worst of the available failures: no
|
|
77
|
-
* error, no warning, exit 0, and a record that now says something different.
|
|
78
|
-
*
|
|
79
|
-
* Refusing outright would break the case that makes retries safe. A completion
|
|
80
|
-
* whose response is lost — a flaky connection, a re-run script — SHOULD be able
|
|
81
|
-
* to run again, and today it collapses server-side on the shared
|
|
82
|
-
* `X-Idempotency-Key`. Turning that into a hard failure would force every
|
|
83
|
-
* caller to write its own is-it-already-done check.
|
|
84
|
-
*
|
|
85
|
-
* So the axis is not "again or not", it is "the SAME again, or something
|
|
86
|
-
* different":
|
|
87
|
-
*
|
|
88
|
-
* - identical report → `noop`, exit 0. Nothing to do, and saying so is more
|
|
89
|
-
* honest than re-posting an identical block.
|
|
90
|
-
* - differing report → `refuse`. Superseding a canonical outcome is a real
|
|
91
|
-
* decision, so it takes `--amend` and says so.
|
|
92
|
-
* - not yet terminal → `proceed`, unchanged.
|
|
93
|
-
*
|
|
94
|
-
* Pure, so the rule is testable without a server.
|
|
95
|
-
*/
|
|
96
|
-
export declare function decideRecompletion(opts: {
|
|
97
|
-
priorStatus: string | null;
|
|
98
|
-
canonicalBody: string | null;
|
|
99
|
-
incomingBody: string;
|
|
100
|
-
amend: boolean;
|
|
101
|
-
}): 'proceed' | 'noop' | 'refuse';
|
|
102
|
-
/** A 404 from the /complete endpoint means an old server without the route. */
|
|
103
|
-
export declare function isCompleteEndpointMissing(err: unknown): boolean;
|
|
104
|
-
/**
|
|
105
|
-
* The server finalized a different task than the one we were asked to finalize.
|
|
106
|
-
*
|
|
107
|
-
* The session-scoped completion endpoint derives its task from the run claim
|
|
108
|
-
* and deliberately ignores any client-supplied id — that is what stops a
|
|
109
|
-
* compromised agent process finishing a sibling task. The corollary is that the
|
|
110
|
-
* id resolved on this side is not necessarily the one that moved, so reporting
|
|
111
|
-
* ours would print a success line (and a `--json` `taskId`) for a task that is
|
|
112
|
-
* still open.
|
|
113
|
-
*/
|
|
114
|
-
export declare class TaskCompletionMismatchError extends Error {
|
|
115
|
-
readonly requestedTaskId: string;
|
|
116
|
-
readonly completedTaskId: string;
|
|
117
|
-
constructor(requestedTaskId: string, completedTaskId: string);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Finalize a task durably (OSK-1969).
|
|
121
|
-
*
|
|
122
|
-
* Prefers the server's atomic POST /:taskId/complete (CAS move first, then
|
|
123
|
-
* the TASK_OUTPUT comment — no half-finished state if this process dies).
|
|
124
|
-
* Falls back to the legacy client-side two-step (comment, then move) when the
|
|
125
|
-
* server predates the endpoint (HTTP 404). `noMove` keeps the historical
|
|
126
|
-
* comment-only behavior and never touches the endpoint. All transport errors
|
|
127
|
-
* other than the endpoint-missing 404 are rethrown for the caller's uniform
|
|
128
|
-
* error handling.
|
|
129
|
-
*/
|
|
130
|
-
export declare function completeTaskDurably(opts: {
|
|
2
|
+
export declare function describePendingReview({ statusType, taskId, resultId, bin, }: {
|
|
3
|
+
statusType: unknown;
|
|
131
4
|
taskId: string;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
deliverables: string;
|
|
136
|
-
verdict: string;
|
|
137
|
-
report?: TaskReport;
|
|
138
|
-
deliveryReceipt?: TaskDeliveryReceipt;
|
|
139
|
-
noMove: boolean;
|
|
140
|
-
transport: CompleteTransport;
|
|
141
|
-
}): Promise<DurableCompletionResult>;
|
|
5
|
+
resultId?: string;
|
|
6
|
+
bin: string;
|
|
7
|
+
}): string | null;
|
|
142
8
|
export default class TasksComplete extends BaseCommand {
|
|
143
9
|
static description: string;
|
|
144
10
|
static examples: string[];
|
|
@@ -146,21 +12,23 @@ export default class TasksComplete extends BaseCommand {
|
|
|
146
12
|
id: import("@oclif/core/lib/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
147
13
|
};
|
|
148
14
|
static flags: {
|
|
149
|
-
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
150
15
|
task: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
151
|
-
|
|
152
|
-
amend: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
153
|
-
status: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
status: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
154
17
|
summary: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
155
|
-
|
|
18
|
+
body: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
19
|
+
'conclusion-type': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
'conclusion-json': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
21
|
+
'structured-schema': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
22
|
+
'structured-json': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
156
23
|
deliverable: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
157
|
-
verdict: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
158
|
-
outcome: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
159
|
-
finding: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
160
24
|
evidence: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
161
|
-
|
|
162
|
-
'
|
|
25
|
+
remaining: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
26
|
+
'source-run': import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
27
|
+
'run-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
28
|
+
'spec-version': import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
29
|
+
'idempotency-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
30
|
+
'from-json': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
31
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
163
32
|
};
|
|
164
33
|
run(): Promise<void>;
|
|
165
34
|
}
|
|
166
|
-
export {};
|