mcoda 0.1.37 → 0.1.40
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/CHANGELOG.md +1 -0
- package/MSWARM_DATA_COLLECTION_TERMS.md +65 -0
- package/README.md +3 -0
- package/dist/bin/McodaEntrypoint.d.ts.map +1 -1
- package/dist/bin/McodaEntrypoint.js +126 -89
- package/dist/commands/cloud/CloudCommands.d.ts +4 -0
- package/dist/commands/cloud/CloudCommands.d.ts.map +1 -0
- package/dist/commands/cloud/CloudCommands.js +274 -0
- package/dist/commands/config/ConfigCommands.d.ts +4 -0
- package/dist/commands/config/ConfigCommands.d.ts.map +1 -0
- package/dist/commands/config/ConfigCommands.js +34 -0
- package/dist/commands/consent/ConsentCommands.d.ts +12 -0
- package/dist/commands/consent/ConsentCommands.d.ts.map +1 -0
- package/dist/commands/consent/ConsentCommands.js +170 -0
- package/dist/commands/consent/MswarmConsentFlow.d.ts +10 -0
- package/dist/commands/consent/MswarmConsentFlow.d.ts.map +1 -0
- package/dist/commands/consent/MswarmConsentFlow.js +60 -0
- package/dist/commands/setup/SetupCommand.d.ts +10 -0
- package/dist/commands/setup/SetupCommand.d.ts.map +1 -0
- package/dist/commands/setup/SetupCommand.js +78 -0
- package/dist/index.d.ts +26 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -22
- package/dist/install/MswarmConsentBootstrap.d.ts +30 -0
- package/dist/install/MswarmConsentBootstrap.d.ts.map +1 -0
- package/dist/install/MswarmConsentBootstrap.js +125 -0
- package/package.json +8 -5
- package/scripts/postinstall.js +46 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Mswarm Data Collection Terms And Consent
|
|
2
|
+
|
|
3
|
+
Version: 2026-03-18
|
|
4
|
+
|
|
5
|
+
By using Docdex or mcoda with mswarm-backed services, you agree to the following terms.
|
|
6
|
+
|
|
7
|
+
## What We Collect
|
|
8
|
+
|
|
9
|
+
We may collect and process:
|
|
10
|
+
|
|
11
|
+
- product installation and client identity metadata
|
|
12
|
+
- consent records, including acceptance time, source IP address, and user agent
|
|
13
|
+
- web search queries and web search results generated by the product
|
|
14
|
+
- fetched webpage content and ai-digested summaries generated from that content
|
|
15
|
+
- local delegation failures and related error diagnostics
|
|
16
|
+
- mcoda local and cloud agent ratings, evaluations, and performance signals
|
|
17
|
+
- package integrity metadata such as signatures, checksums, and upload timestamps
|
|
18
|
+
|
|
19
|
+
## Why We Collect It
|
|
20
|
+
|
|
21
|
+
We use this data to:
|
|
22
|
+
|
|
23
|
+
- operate and improve mswarm-backed search, cache, and cloud features
|
|
24
|
+
- measure quality, reliability, performance, and cost
|
|
25
|
+
- detect abuse, fraud, tampering, or manipulated uploads
|
|
26
|
+
- validate user consent and maintain compliance records
|
|
27
|
+
- improve model ratings and answer-cache quality across the product ecosystem
|
|
28
|
+
|
|
29
|
+
## Required Consent
|
|
30
|
+
|
|
31
|
+
- Consent is required to use the product.
|
|
32
|
+
- If you do not accept these terms, installation and setup cannot continue.
|
|
33
|
+
- Your consent is recorded server-side together with the acceptance timestamp and source IP address.
|
|
34
|
+
|
|
35
|
+
## Local Storage
|
|
36
|
+
|
|
37
|
+
Before upload, the product stores telemetry locally under `~/.docdex` or `~/.mcoda`.
|
|
38
|
+
Local packages may include search, fetch, answer, error, and rating data until they are uploaded or purged.
|
|
39
|
+
|
|
40
|
+
## Upload And Retention
|
|
41
|
+
|
|
42
|
+
- Telemetry packages are compressed, checksummed, and signed before upload.
|
|
43
|
+
- The product retries failed uploads automatically.
|
|
44
|
+
- Uploaded packages are deleted locally after successful transfer.
|
|
45
|
+
- Unsent local packages older than 30 days are deleted.
|
|
46
|
+
|
|
47
|
+
## Security And Integrity
|
|
48
|
+
|
|
49
|
+
- Packages are signed to reduce the risk of tampering or malware injection.
|
|
50
|
+
- Checksums are verified before ingestion.
|
|
51
|
+
- mswarm may reject packages that fail integrity or policy checks.
|
|
52
|
+
|
|
53
|
+
## Your Rights
|
|
54
|
+
|
|
55
|
+
Subject to applicable law, you may:
|
|
56
|
+
|
|
57
|
+
- withdraw consent for future collection
|
|
58
|
+
- request deletion of your stored data
|
|
59
|
+
- ask for a summary of data associated with your client identity
|
|
60
|
+
|
|
61
|
+
Withdrawing consent stops future uploads but may also limit or disable product functionality that depends on mswarm.
|
|
62
|
+
|
|
63
|
+
## Contact And Updates
|
|
64
|
+
|
|
65
|
+
These terms may be updated. The product may require renewed acceptance when the policy version changes.
|
package/README.md
CHANGED
|
@@ -5,10 +5,13 @@ mcoda is a local-first CLI for planning, documentation, and execution workflows
|
|
|
5
5
|
## Install
|
|
6
6
|
- Requires Node.js >= 20.
|
|
7
7
|
- Global install: `npm i -g mcoda`
|
|
8
|
+
- Interactive installs show the bundled mswarm data collection terms and require acceptance before setup can continue.
|
|
9
|
+
- If install cannot prompt, complete the same mandatory consent flow with `mcoda setup` before other commands.
|
|
8
10
|
- Verify: `mcoda --version`
|
|
9
11
|
|
|
10
12
|
## Quick start
|
|
11
13
|
```sh
|
|
14
|
+
mcoda setup
|
|
12
15
|
mcoda set-workspace --workspace-root .
|
|
13
16
|
mcoda docs pdr generate --workspace-root . --project WEB --rfp-path docs/rfp/web.md --agent codex
|
|
14
17
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McodaEntrypoint.d.ts","sourceRoot":"","sources":["../../src/bin/McodaEntrypoint.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"McodaEntrypoint.d.ts","sourceRoot":"","sources":["../../src/bin/McodaEntrypoint.ts"],"names":[],"mappings":";AAoCA,qBAAa,eAAe;WACb,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;CA6OxE"}
|
|
@@ -1,53 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { realpathSync } from
|
|
3
|
-
import { fileURLToPath } from
|
|
4
|
-
import packageJson from
|
|
5
|
-
import { AgentsCommands } from
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
2
|
+
import { realpathSync } from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
5
|
+
import { AgentsCommands } from '../commands/agents/AgentsCommands.js';
|
|
6
|
+
import { CloudCommands } from '../commands/cloud/CloudCommands.js';
|
|
7
|
+
import { ConfigCommands } from '../commands/config/ConfigCommands.js';
|
|
8
|
+
import { ConsentCommands } from '../commands/consent/ConsentCommands.js';
|
|
9
|
+
import { GatewayAgentCommand } from '../commands/agents/GatewayAgentCommand.js';
|
|
10
|
+
import { DocsCommands } from '../commands/docs/DocsCommands.js';
|
|
11
|
+
import { JobsCommands } from '../commands/jobs/JobsCommands.js';
|
|
12
|
+
import { OpenapiCommands } from '../commands/openapi/OpenapiCommands.js';
|
|
13
|
+
import { CreateTasksCommand } from '../commands/planning/CreateTasksCommand.js';
|
|
14
|
+
import { RefineTasksCommand } from '../commands/planning/RefineTasksCommand.js';
|
|
15
|
+
import { TaskSufficiencyAuditCommand } from '../commands/planning/TaskSufficiencyAuditCommand.js';
|
|
16
|
+
import { SdsPreflightCommand } from '../commands/planning/SdsPreflightCommand.js';
|
|
17
|
+
import { BacklogCommands } from '../commands/backlog/BacklogCommands.js';
|
|
18
|
+
import { TaskShowCommands } from '../commands/backlog/TaskShowCommands.js';
|
|
19
|
+
import { OrderTasksCommand } from '../commands/backlog/OrderTasksCommand.js';
|
|
20
|
+
import { EstimateCommands } from '../commands/estimate/EstimateCommands.js';
|
|
21
|
+
import { TelemetryCommands } from '../commands/telemetry/TelemetryCommands.js';
|
|
22
|
+
import { WorkOnTasksCommand } from '../commands/work/WorkOnTasksCommand.js';
|
|
23
|
+
import { GatewayTrioCommand } from '../commands/work/GatewayTrioCommand.js';
|
|
24
|
+
import { AddTestsCommand } from '../commands/work/AddTestsCommand.js';
|
|
25
|
+
import { CodeReviewCommand } from '../commands/review/CodeReviewCommand.js';
|
|
26
|
+
import { QaTasksCommand } from '../commands/planning/QaTasksCommand.js';
|
|
27
|
+
import { MigrateTasksCommand } from '../commands/planning/MigrateTasksCommand.js';
|
|
28
|
+
import { UpdateCommands } from '../commands/update/UpdateCommands.js';
|
|
29
|
+
import { RoutingCommands } from '../commands/routing/RoutingCommands.js';
|
|
30
|
+
import { SetupCommand } from '../commands/setup/SetupCommand.js';
|
|
31
|
+
import { TestAgentCommand } from '../commands/agents/TestAgentCommand.js';
|
|
32
|
+
import { AgentRunCommand } from '../commands/agents/AgentRunCommand.js';
|
|
33
|
+
import { SetWorkspaceCommand } from '../commands/workspace/SetWorkspaceCommand.js';
|
|
34
|
+
import { ProjectGuidanceCommand } from '../commands/workspace/ProjectGuidanceCommand.js';
|
|
35
|
+
import { MswarmConfigStore } from '@mcoda/core';
|
|
31
36
|
export class McodaEntrypoint {
|
|
32
37
|
static async run(argv = process.argv.slice(2)) {
|
|
33
38
|
const applyCodexNoSandboxFlag = (value) => {
|
|
34
|
-
if (value === undefined || value ===
|
|
35
|
-
process.env.MCODA_CODEX_NO_SANDBOX =
|
|
39
|
+
if (value === undefined || value === '') {
|
|
40
|
+
process.env.MCODA_CODEX_NO_SANDBOX = '1';
|
|
36
41
|
return;
|
|
37
42
|
}
|
|
38
43
|
const normalized = value.trim().toLowerCase();
|
|
39
|
-
if ([
|
|
40
|
-
process.env.MCODA_CODEX_NO_SANDBOX =
|
|
44
|
+
if (['0', 'false', 'off', 'no'].includes(normalized)) {
|
|
45
|
+
process.env.MCODA_CODEX_NO_SANDBOX = '0';
|
|
41
46
|
return;
|
|
42
47
|
}
|
|
43
|
-
process.env.MCODA_CODEX_NO_SANDBOX =
|
|
48
|
+
process.env.MCODA_CODEX_NO_SANDBOX = '1';
|
|
44
49
|
};
|
|
45
50
|
const filteredArgs = [];
|
|
46
51
|
for (let i = 0; i < argv.length; i += 1) {
|
|
47
52
|
const arg = argv[i];
|
|
48
|
-
if (arg ===
|
|
53
|
+
if (arg === '--codex-no-sandbox') {
|
|
49
54
|
const next = argv[i + 1];
|
|
50
|
-
if (next && !next.startsWith(
|
|
55
|
+
if (next && !next.startsWith('--')) {
|
|
51
56
|
applyCodexNoSandboxFlag(next);
|
|
52
57
|
i += 1;
|
|
53
58
|
}
|
|
@@ -56,170 +61,202 @@ export class McodaEntrypoint {
|
|
|
56
61
|
}
|
|
57
62
|
continue;
|
|
58
63
|
}
|
|
59
|
-
if (arg.startsWith(
|
|
60
|
-
const [, raw] = arg.split(
|
|
64
|
+
if (arg.startsWith('--codex-no-sandbox=')) {
|
|
65
|
+
const [, raw] = arg.split('=', 2);
|
|
61
66
|
applyCodexNoSandboxFlag(raw);
|
|
62
67
|
continue;
|
|
63
68
|
}
|
|
64
69
|
filteredArgs.push(arg);
|
|
65
70
|
}
|
|
66
71
|
const [command, ...rest] = filteredArgs;
|
|
67
|
-
const wantsJson = argv.some((arg) => arg ===
|
|
68
|
-
const wantsQuiet = argv.some((arg) => arg ===
|
|
72
|
+
const wantsJson = argv.some((arg) => arg === '--json' || arg.startsWith('--json='));
|
|
73
|
+
const wantsQuiet = argv.some((arg) => arg === '--quiet' || arg.startsWith('--quiet='));
|
|
69
74
|
if (wantsJson || wantsQuiet) {
|
|
70
|
-
process.env.MCODA_STREAM_IO =
|
|
71
|
-
process.env.MCODA_STREAM_IO_PROMPT =
|
|
75
|
+
process.env.MCODA_STREAM_IO = '0';
|
|
76
|
+
process.env.MCODA_STREAM_IO_PROMPT = '0';
|
|
72
77
|
}
|
|
73
78
|
else if (process.env.MCODA_STREAM_IO === undefined) {
|
|
74
|
-
process.env.MCODA_STREAM_IO =
|
|
79
|
+
process.env.MCODA_STREAM_IO = '0';
|
|
75
80
|
if (process.env.MCODA_STREAM_IO_PROMPT === undefined) {
|
|
76
|
-
process.env.MCODA_STREAM_IO_PROMPT =
|
|
81
|
+
process.env.MCODA_STREAM_IO_PROMPT = '0';
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
|
-
if (command ===
|
|
84
|
+
if (command === '--version' || command === '-v' || command === 'version') {
|
|
80
85
|
// Keep this simple so `mcoda --version` works even in thin installs.
|
|
81
86
|
// eslint-disable-next-line no-console
|
|
82
|
-
console.log(packageJson.version ??
|
|
87
|
+
console.log(packageJson.version ?? 'dev');
|
|
83
88
|
return;
|
|
84
89
|
}
|
|
85
90
|
if (!command) {
|
|
86
|
-
throw new Error(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
throw new Error('Usage: mcoda <agent|cloud|cloud-agent|config|consent|setup|gateway-agent|test-agent|agent-run|routing|docs|openapi|job|jobs|tokens|telemetry|create-tasks|migrate-tasks|refine-tasks|task-sufficiency-audit|sds-preflight|order-tasks|tasks|add-tests|work-on-tasks|gateway-trio|code-review|qa-tasks|backlog|task|task-detail|estimate|update|set-workspace|project-guidance|pdr|sds> [...args]\n' +
|
|
92
|
+
'Setup: use `mcoda setup` after installation (or accept the postinstall prompt) to complete the mandatory mswarm telemetry consent flow.\n' +
|
|
93
|
+
'Config: use `mcoda config set mswarm-api-key <KEY>` to persist an encrypted mswarm API key in the resolved global mcoda config file.\n' +
|
|
94
|
+
'Consent: use `mcoda consent accept` before other commands if you need to complete consent outside the guided setup flow.\n' +
|
|
95
|
+
'Routing: use `mcoda routing defaults` to view/update workspace/global defaults, `mcoda routing preview|explain` to inspect agent selection/provenance (override → workspace_default → global_default).\n' +
|
|
96
|
+
'Cloud agents: use `mcoda cloud agent list|details|sync` to discover and materialize mswarm-managed remote agents.\n' +
|
|
97
|
+
'Aliases: `tasks order-by-deps` forwards to `order-tasks` (dependency-aware ordering), `task`/`task-detail` show a single task.\n' +
|
|
98
|
+
'Job commands (mcoda job --help for details): list|status|watch|logs|inspect|resume|cancel|tokens\n' +
|
|
99
|
+
'Jobs API required for job commands (set MCODA_API_BASE_URL/MCODA_JOBS_API_URL or workspace api.baseUrl). status/watch/logs exit non-zero on failed/cancelled jobs per SDS.');
|
|
100
|
+
}
|
|
101
|
+
if (!['config', 'consent', 'setup'].includes(command)) {
|
|
102
|
+
const consentState = await new MswarmConfigStore().readState();
|
|
103
|
+
const consentAccepted = Boolean(consentState.consentAccepted);
|
|
104
|
+
const consentTokenSet = Boolean(consentState.consentToken?.trim());
|
|
105
|
+
if (!consentAccepted || !consentTokenSet) {
|
|
106
|
+
throw new Error('Telemetry consent is required before using mcoda. Review the mswarm data collection terms and run `mcoda setup` or `mcoda consent accept`.');
|
|
107
|
+
}
|
|
91
108
|
}
|
|
92
|
-
if (command ===
|
|
109
|
+
if (command === 'agent') {
|
|
93
110
|
await AgentsCommands.run(rest);
|
|
94
111
|
return;
|
|
95
112
|
}
|
|
96
|
-
if (command ===
|
|
113
|
+
if (command === 'cloud') {
|
|
114
|
+
await CloudCommands.run(rest);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (command === 'config') {
|
|
118
|
+
await ConfigCommands.run(rest);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (command === 'consent') {
|
|
122
|
+
await ConsentCommands.run(rest);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (command === 'setup') {
|
|
126
|
+
await SetupCommand.run(rest);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (command === 'cloud-agent') {
|
|
130
|
+
await CloudCommands.run(['agent', ...rest]);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (command === 'gateway-agent') {
|
|
97
134
|
await GatewayAgentCommand.run(rest);
|
|
98
135
|
return;
|
|
99
136
|
}
|
|
100
|
-
if (command ===
|
|
137
|
+
if (command === 'test-agent') {
|
|
101
138
|
await TestAgentCommand.run(rest);
|
|
102
139
|
return;
|
|
103
140
|
}
|
|
104
|
-
if (command ===
|
|
141
|
+
if (command === 'agent-run') {
|
|
105
142
|
await AgentRunCommand.run(rest);
|
|
106
143
|
return;
|
|
107
144
|
}
|
|
108
|
-
if (command ===
|
|
145
|
+
if (command === 'routing') {
|
|
109
146
|
await RoutingCommands.run(rest);
|
|
110
147
|
return;
|
|
111
148
|
}
|
|
112
|
-
if (command ===
|
|
149
|
+
if (command === 'docs') {
|
|
113
150
|
await DocsCommands.run(rest);
|
|
114
151
|
return;
|
|
115
152
|
}
|
|
116
|
-
if (command ===
|
|
153
|
+
if (command === 'openapi-from-docs' || command === 'openapi') {
|
|
117
154
|
await OpenapiCommands.run(rest);
|
|
118
155
|
return;
|
|
119
156
|
}
|
|
120
|
-
if (command ===
|
|
157
|
+
if (command === 'job' || command === 'jobs') {
|
|
121
158
|
await JobsCommands.run(rest);
|
|
122
159
|
return;
|
|
123
160
|
}
|
|
124
|
-
if (command ===
|
|
161
|
+
if (command === 'tokens') {
|
|
125
162
|
await TelemetryCommands.runTokens(rest);
|
|
126
163
|
return;
|
|
127
164
|
}
|
|
128
|
-
if (command ===
|
|
165
|
+
if (command === 'telemetry') {
|
|
129
166
|
await TelemetryCommands.runTelemetry(rest);
|
|
130
167
|
return;
|
|
131
168
|
}
|
|
132
|
-
if (command ===
|
|
133
|
-
await DocsCommands.run([
|
|
169
|
+
if (command === 'pdr' || command === 'mcoda:pdr') {
|
|
170
|
+
await DocsCommands.run(['pdr', 'generate', ...rest]);
|
|
134
171
|
return;
|
|
135
172
|
}
|
|
136
|
-
if (command ===
|
|
173
|
+
if (command === 'sds' || command === 'mcoda:sds') {
|
|
137
174
|
const [subcommand, ...tail] = rest;
|
|
138
|
-
if (subcommand ===
|
|
139
|
-
await DocsCommands.run([
|
|
175
|
+
if (subcommand === 'generate' || subcommand === 'suggestions') {
|
|
176
|
+
await DocsCommands.run(['sds', subcommand, ...tail]);
|
|
140
177
|
}
|
|
141
178
|
else {
|
|
142
|
-
await DocsCommands.run([
|
|
179
|
+
await DocsCommands.run(['sds', 'generate', ...rest]);
|
|
143
180
|
}
|
|
144
181
|
return;
|
|
145
182
|
}
|
|
146
|
-
if (command ===
|
|
183
|
+
if (command === 'create-tasks') {
|
|
147
184
|
await CreateTasksCommand.run(rest);
|
|
148
185
|
return;
|
|
149
186
|
}
|
|
150
|
-
if (command ===
|
|
187
|
+
if (command === 'migrate-tasks') {
|
|
151
188
|
await MigrateTasksCommand.run(rest);
|
|
152
189
|
return;
|
|
153
190
|
}
|
|
154
|
-
if (command ===
|
|
191
|
+
if (command === 'refine-tasks') {
|
|
155
192
|
await RefineTasksCommand.run(rest);
|
|
156
193
|
return;
|
|
157
194
|
}
|
|
158
|
-
if (command ===
|
|
195
|
+
if (command === 'task-sufficiency-audit') {
|
|
159
196
|
await TaskSufficiencyAuditCommand.run(rest);
|
|
160
197
|
return;
|
|
161
198
|
}
|
|
162
|
-
if (command ===
|
|
199
|
+
if (command === 'sds-preflight') {
|
|
163
200
|
await SdsPreflightCommand.run(rest);
|
|
164
201
|
return;
|
|
165
202
|
}
|
|
166
|
-
if (command ===
|
|
167
|
-
if (rest.includes(
|
|
203
|
+
if (command === 'qa-tasks') {
|
|
204
|
+
if (rest.includes('--help') || rest.includes('-h')) {
|
|
168
205
|
// eslint-disable-next-line no-console
|
|
169
|
-
console.log(
|
|
206
|
+
console.log('Usage: mcoda qa-tasks [--workspace-root <path>] --project <PROJECT_KEY> [--task <TASK_KEY> ... | --epic <EPIC_KEY> | --story <STORY_KEY>] [--status <STATUS_FILTER>] [--limit N] [--mode auto|manual] [--profile <PROFILE_NAME>] [--level unit|integration|acceptance] [--test-command "<CMD>"] [--agent <NAME>] [--agent-stream true|false] [--resume <JOB_ID>] [--create-followup-tasks auto|none|prompt] [--result pass|fail] [--notes "<text>"] [--evidence-url "<url>"] [--dry-run] [--json]');
|
|
170
207
|
return;
|
|
171
208
|
}
|
|
172
209
|
await QaTasksCommand.run(rest);
|
|
173
210
|
return;
|
|
174
211
|
}
|
|
175
|
-
if (command ===
|
|
212
|
+
if (command === 'order-tasks') {
|
|
176
213
|
await OrderTasksCommand.run(rest);
|
|
177
214
|
return;
|
|
178
215
|
}
|
|
179
|
-
if (command ===
|
|
216
|
+
if (command === 'tasks') {
|
|
180
217
|
const [sub, ...tail] = rest;
|
|
181
|
-
if (sub ===
|
|
218
|
+
if (sub === 'order-by-deps' || sub === 'order-by-dependencies') {
|
|
182
219
|
await OrderTasksCommand.run(tail);
|
|
183
220
|
return;
|
|
184
221
|
}
|
|
185
222
|
}
|
|
186
|
-
if (command ===
|
|
223
|
+
if (command === 'work-on-tasks') {
|
|
187
224
|
await WorkOnTasksCommand.run(rest);
|
|
188
225
|
return;
|
|
189
226
|
}
|
|
190
|
-
if (command ===
|
|
227
|
+
if (command === 'add-tests') {
|
|
191
228
|
await AddTestsCommand.run(rest);
|
|
192
229
|
return;
|
|
193
230
|
}
|
|
194
|
-
if (command ===
|
|
231
|
+
if (command === 'gateway-trio') {
|
|
195
232
|
await GatewayTrioCommand.run(rest);
|
|
196
233
|
return;
|
|
197
234
|
}
|
|
198
|
-
if (command ===
|
|
235
|
+
if (command === 'code-review') {
|
|
199
236
|
await CodeReviewCommand.run(rest);
|
|
200
237
|
return;
|
|
201
238
|
}
|
|
202
|
-
if (command ===
|
|
239
|
+
if (command === 'backlog') {
|
|
203
240
|
await BacklogCommands.run(rest);
|
|
204
241
|
return;
|
|
205
242
|
}
|
|
206
|
-
if (command ===
|
|
243
|
+
if (command === 'task' || command === 'task-detail') {
|
|
207
244
|
await TaskShowCommands.run(rest);
|
|
208
245
|
return;
|
|
209
246
|
}
|
|
210
|
-
if (command ===
|
|
247
|
+
if (command === 'estimate') {
|
|
211
248
|
await EstimateCommands.run(rest);
|
|
212
249
|
return;
|
|
213
250
|
}
|
|
214
|
-
if (command ===
|
|
251
|
+
if (command === 'update') {
|
|
215
252
|
await UpdateCommands.run(rest);
|
|
216
253
|
return;
|
|
217
254
|
}
|
|
218
|
-
if (command ===
|
|
255
|
+
if (command === 'set-workspace') {
|
|
219
256
|
await SetWorkspaceCommand.run(rest);
|
|
220
257
|
return;
|
|
221
258
|
}
|
|
222
|
-
if (command ===
|
|
259
|
+
if (command === 'project-guidance') {
|
|
223
260
|
await ProjectGuidanceCommand.run(rest);
|
|
224
261
|
return;
|
|
225
262
|
}
|
|
@@ -227,7 +264,7 @@ export class McodaEntrypoint {
|
|
|
227
264
|
}
|
|
228
265
|
}
|
|
229
266
|
const isDirectRun = (() => {
|
|
230
|
-
if (typeof process.argv[1] !==
|
|
267
|
+
if (typeof process.argv[1] !== 'string') {
|
|
231
268
|
return false;
|
|
232
269
|
}
|
|
233
270
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloudCommands.d.ts","sourceRoot":"","sources":["../../../src/commands/cloud/CloudCommands.ts"],"names":[],"mappings":"AAkNA,qBAAa,aAAa;WACX,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA4FhD"}
|