@h-rig/standard-plugin 0.0.6-alpha.143 → 0.0.6-alpha.145
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/src/blocker-classifier.d.ts +1 -0
- package/dist/src/blocker-classifier.js +18 -0
- package/dist/src/bundle.js +47 -181
- package/dist/src/cli-surface.d.ts +3 -3
- package/dist/src/cli-surface.js +9 -11
- package/dist/src/default-lifecycle.d.ts +2 -0
- package/dist/src/default-lifecycle.js +12 -0
- package/dist/src/dependency-graph.d.ts +1 -0
- package/dist/src/dependency-graph.js +22 -0
- package/dist/src/github-issues-source.js +23 -12
- package/dist/src/index.d.ts +6 -1
- package/dist/src/index.js +126 -172
- package/dist/src/planning.d.ts +1 -0
- package/dist/src/planning.js +14 -0
- package/dist/src/plugin.d.ts +2 -1
- package/dist/src/plugin.js +38 -169
- package/dist/src/product-plugin.d.ts +3 -0
- package/dist/src/product-plugin.js +18 -0
- package/dist/src/supervisor.d.ts +1 -0
- package/dist/src/supervisor.js +12 -0
- package/dist/src/task-cli.d.ts +1 -0
- package/dist/src/task-cli.js +14 -0
- package/package.json +38 -16
- package/dist/src/product-entrypoint.d.ts +0 -11
- package/dist/src/product-entrypoint.js +0 -101
package/dist/src/index.js
CHANGED
|
@@ -37,109 +37,6 @@ var init_metadata = __esm(() => {
|
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
// packages/standard-plugin/src/product-entrypoint.ts
|
|
41
|
-
var exports_product_entrypoint = {};
|
|
42
|
-
__export(exports_product_entrypoint, {
|
|
43
|
-
runRigOmpProductCommand: () => runRigOmpProductCommand
|
|
44
|
-
});
|
|
45
|
-
import { resolve as resolve3 } from "path";
|
|
46
|
-
import { runCli } from "@oh-my-pi/pi-coding-agent/cli";
|
|
47
|
-
import { parseArgs } from "@oh-my-pi/pi-coding-agent/cli/args";
|
|
48
|
-
import { resolveCliArgv } from "@oh-my-pi/pi-coding-agent/cli-commands";
|
|
49
|
-
import { prepareAcpTerminalAuthArgs } from "@oh-my-pi/pi-coding-agent/modes/acp/terminal-auth";
|
|
50
|
-
import { runRootCommand } from "@oh-my-pi/pi-coding-agent/main";
|
|
51
|
-
import { createAgentSession } from "@oh-my-pi/pi-coding-agent/sdk";
|
|
52
|
-
import { applyIdentityEnv, identityFilterFromEnv, reconcileRuns } from "@rig/client";
|
|
53
|
-
import rigExtension from "@rig/rig-extension";
|
|
54
|
-
import { resolveRigOmpConfigOverlayPath } from "@rig/runtime/control-plane/remote-config";
|
|
55
|
-
function withRigDefaultConfig(projectRoot, argv) {
|
|
56
|
-
return ["--config", resolveRigOmpConfigOverlayPath(projectRoot), ...argv];
|
|
57
|
-
}
|
|
58
|
-
function createRigAgentSession(options = {}) {
|
|
59
|
-
return createAgentSession({
|
|
60
|
-
...options,
|
|
61
|
-
extensions: [(api) => rigExtension(api), ...options.extensions ?? []]
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function productArgv(input) {
|
|
65
|
-
if (input.command === "launch" && input.args.length === 0)
|
|
66
|
-
return [];
|
|
67
|
-
if (input.command === "launch" && input.args[0]?.startsWith("-"))
|
|
68
|
-
return [...input.args];
|
|
69
|
-
return [input.command, ...input.args];
|
|
70
|
-
}
|
|
71
|
-
async function runRigOmpProductCommand(input) {
|
|
72
|
-
const projectRoot = resolve3(input.projectRoot);
|
|
73
|
-
const previousProjectRoot = process.env.RIG_PROJECT_ROOT;
|
|
74
|
-
const previousCwd = process.cwd();
|
|
75
|
-
const restorePublicIdentityEnv = applyIdentityEnv(projectRoot);
|
|
76
|
-
process.env.RIG_PROJECT_ROOT = projectRoot;
|
|
77
|
-
process.chdir(projectRoot);
|
|
78
|
-
try {
|
|
79
|
-
const argv = productArgv(input);
|
|
80
|
-
if (argv[0]?.startsWith("__omp_worker_") || argv[0] === "--smoke-test") {
|
|
81
|
-
await runCli(argv);
|
|
82
|
-
return { ok: true, group: "product", command: input.command };
|
|
83
|
-
}
|
|
84
|
-
if (process.stdin.isTTY) {
|
|
85
|
-
const reconcile = await reconcileRuns({
|
|
86
|
-
workspaceRoot: projectRoot,
|
|
87
|
-
identityFilter: identityFilterFromEnv()
|
|
88
|
-
}).catch(() => ({ flipped: [], resumable: [] }));
|
|
89
|
-
globalThis.__RIG_RESUMABLE__ = reconcile.resumable;
|
|
90
|
-
}
|
|
91
|
-
const resolved = resolveCliArgv(argv);
|
|
92
|
-
if ("error" in resolved) {
|
|
93
|
-
process.stderr.write(`error: ${resolved.error}
|
|
94
|
-
`);
|
|
95
|
-
process.exitCode = 1;
|
|
96
|
-
return { ok: true, group: "product", command: input.command };
|
|
97
|
-
}
|
|
98
|
-
const [ompCommand, ...ompCommandArgs] = resolved.argv;
|
|
99
|
-
if (ompCommand === "launch") {
|
|
100
|
-
const args = withRigDefaultConfig(projectRoot, ompCommandArgs);
|
|
101
|
-
await runRootCommand(parseArgs(args), args, { createAgentSession: createRigAgentSession });
|
|
102
|
-
} else if (ompCommand === "acp") {
|
|
103
|
-
const { args: preparedArgs, terminalAuth } = prepareAcpTerminalAuthArgs(ompCommandArgs);
|
|
104
|
-
const args = withRigDefaultConfig(projectRoot, preparedArgs);
|
|
105
|
-
const parsed = parseArgs(args);
|
|
106
|
-
if (!terminalAuth)
|
|
107
|
-
parsed.mode = "acp";
|
|
108
|
-
await runRootCommand(parsed, args, { createAgentSession: createRigAgentSession });
|
|
109
|
-
} else if (ompCommand === "join") {
|
|
110
|
-
const link = ompCommandArgs[0]?.trim();
|
|
111
|
-
if (!link) {
|
|
112
|
-
process.stderr.write(`Usage: rig join <link>
|
|
113
|
-
`);
|
|
114
|
-
process.exitCode = 1;
|
|
115
|
-
return { ok: true, group: "product", command: input.command };
|
|
116
|
-
}
|
|
117
|
-
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
118
|
-
process.stderr.write(`rig join requires an interactive terminal
|
|
119
|
-
`);
|
|
120
|
-
process.exitCode = 1;
|
|
121
|
-
return { ok: true, group: "product", command: input.command };
|
|
122
|
-
}
|
|
123
|
-
const args = withRigDefaultConfig(projectRoot, []);
|
|
124
|
-
const parsed = parseArgs(args);
|
|
125
|
-
parsed.join = link;
|
|
126
|
-
await runRootCommand(parsed, args, { createAgentSession: createRigAgentSession });
|
|
127
|
-
} else {
|
|
128
|
-
await runCli(resolved.argv);
|
|
129
|
-
}
|
|
130
|
-
return { ok: true, group: "product", command: input.command };
|
|
131
|
-
} finally {
|
|
132
|
-
restorePublicIdentityEnv();
|
|
133
|
-
process.chdir(previousCwd);
|
|
134
|
-
if (previousProjectRoot === undefined) {
|
|
135
|
-
delete process.env.RIG_PROJECT_ROOT;
|
|
136
|
-
} else {
|
|
137
|
-
process.env.RIG_PROJECT_ROOT = previousProjectRoot;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
var init_product_entrypoint = () => {};
|
|
142
|
-
|
|
143
40
|
// packages/standard-plugin/src/drift/extract-refs.ts
|
|
144
41
|
function stripFenceLines(markdown) {
|
|
145
42
|
const lines = markdown.split(/\r?\n/);
|
|
@@ -272,7 +169,7 @@ __export(exports_detect, {
|
|
|
272
169
|
});
|
|
273
170
|
import { existsSync as existsSync3 } from "fs";
|
|
274
171
|
import { readdir, readFile, stat } from "fs/promises";
|
|
275
|
-
import { basename as basename2, extname, relative, resolve as
|
|
172
|
+
import { basename as basename2, extname, relative, resolve as resolve3 } from "path";
|
|
276
173
|
function globLikeMatch(path, pattern) {
|
|
277
174
|
if (pattern === path)
|
|
278
175
|
return true;
|
|
@@ -299,7 +196,7 @@ async function collectFiles(root, options) {
|
|
|
299
196
|
for (const entry of await readdir(dir, { withFileTypes: true })) {
|
|
300
197
|
if (entry.isDirectory() && DEFAULT_IGNORED_DIRS[entry.name])
|
|
301
198
|
continue;
|
|
302
|
-
const absolute =
|
|
199
|
+
const absolute = resolve3(dir, entry.name);
|
|
303
200
|
const rel = relative(root, absolute).replace(/\\/g, "/");
|
|
304
201
|
if (isIgnored(rel, options.ignore))
|
|
305
202
|
continue;
|
|
@@ -324,13 +221,13 @@ async function collectFiles(root, options) {
|
|
|
324
221
|
}
|
|
325
222
|
async function sourceReferenceCount(projectRoot, reference, docPath) {
|
|
326
223
|
if (reference.kind === "path")
|
|
327
|
-
return existsSync3(
|
|
224
|
+
return existsSync3(resolve3(projectRoot, reference.value)) ? 1 : 0;
|
|
328
225
|
let count = 0;
|
|
329
226
|
const sourceFiles = await collectFiles(projectRoot, { docs: false });
|
|
330
227
|
for (const sourceFile of sourceFiles) {
|
|
331
228
|
if (sourceFile === docPath)
|
|
332
229
|
continue;
|
|
333
|
-
const text = await readFile(
|
|
230
|
+
const text = await readFile(resolve3(projectRoot, sourceFile), "utf8").catch(() => "");
|
|
334
231
|
if (text.includes(reference.value))
|
|
335
232
|
count += 1;
|
|
336
233
|
}
|
|
@@ -357,7 +254,7 @@ function staleAnchorFinding(docPath, reference) {
|
|
|
357
254
|
};
|
|
358
255
|
}
|
|
359
256
|
async function detectDeletedReferences(projectRoot, docPath, git = makeDriftGit(projectRoot)) {
|
|
360
|
-
const markdown = await readFile(
|
|
257
|
+
const markdown = await readFile(resolve3(projectRoot, docPath), "utf8");
|
|
361
258
|
const docCommit = await git.lastCommitTouching(docPath);
|
|
362
259
|
const findings = [];
|
|
363
260
|
for (const reference of extractDriftReferences(markdown)) {
|
|
@@ -370,13 +267,13 @@ async function detectDeletedReferences(projectRoot, docPath, git = makeDriftGit(
|
|
|
370
267
|
return findings;
|
|
371
268
|
}
|
|
372
269
|
async function detectStaleAnchors(projectRoot, docPath, git = makeDriftGit(projectRoot)) {
|
|
373
|
-
const markdown = await readFile(
|
|
270
|
+
const markdown = await readFile(resolve3(projectRoot, docPath), "utf8");
|
|
374
271
|
const docCommit = await git.lastCommitTouching(docPath);
|
|
375
272
|
const findings = [];
|
|
376
273
|
for (const reference of extractDriftReferences(markdown).filter((ref) => ref.kind === "path")) {
|
|
377
|
-
if (!existsSync3(
|
|
274
|
+
if (!existsSync3(resolve3(projectRoot, reference.value)))
|
|
378
275
|
continue;
|
|
379
|
-
const sourceStat = await stat(
|
|
276
|
+
const sourceStat = await stat(resolve3(projectRoot, reference.value)).catch(() => null);
|
|
380
277
|
if (!sourceStat?.isFile())
|
|
381
278
|
continue;
|
|
382
279
|
const sourceCommit = await git.lastCommitTouching(reference.value);
|
|
@@ -646,9 +543,70 @@ var init_plugin = __esm(() => {
|
|
|
646
543
|
DOCS_DRIFT_RUNTIME_CLI_COMMAND = createDocsDriftRuntimeCliCommand();
|
|
647
544
|
});
|
|
648
545
|
|
|
649
|
-
// packages/standard-plugin/src/
|
|
650
|
-
import {
|
|
546
|
+
// packages/standard-plugin/src/bundle.ts
|
|
547
|
+
import { createBlockerClassifierPlugin } from "@rig/blocker-classifier-plugin/plugin";
|
|
548
|
+
import { createDefaultLifecyclePlugin } from "@rig/bundle-default-lifecycle/plugin";
|
|
549
|
+
import { createDependencyGraphPlugin } from "@rig/dependency-graph-plugin/plugin";
|
|
550
|
+
import { createPlanningPlugin } from "@rig/planning-plugin/plugin";
|
|
551
|
+
import { createSupervisorPlugin } from "@rig/supervisor-plugin/plugin";
|
|
552
|
+
|
|
553
|
+
// packages/standard-plugin/src/run-worker-panels.ts
|
|
554
|
+
var RIG_RUN_STOP_PANEL_ACTION = "rig-run:stop";
|
|
555
|
+
var RIG_CAPABILITY_PANEL_SLOT = "capability";
|
|
556
|
+
var RIG_SUPERVISOR_PANEL_ID = "supervisor";
|
|
557
|
+
var RUN_SUPERVISOR_PANEL_REGISTRATION = {
|
|
558
|
+
id: RIG_SUPERVISOR_PANEL_ID,
|
|
559
|
+
slot: RIG_CAPABILITY_PANEL_SLOT,
|
|
560
|
+
title: "Supervisor",
|
|
561
|
+
capabilityId: "run.supervisor",
|
|
562
|
+
description: "Live run status, closeout progress, and operator stop control."
|
|
563
|
+
};
|
|
564
|
+
function buildSupervisorPanelPayload(context) {
|
|
565
|
+
const status = context.folded.status ?? "unknown";
|
|
566
|
+
const taskId = context.folded.record.taskId ?? context.taskIdAtStart;
|
|
567
|
+
const operatorActive = status === "running" || status === "validating" || status === "closing-out" || status === "needs-attention";
|
|
568
|
+
return {
|
|
569
|
+
status,
|
|
570
|
+
currentTask: taskId ? { id: taskId, title: context.runDisplayTitle } : null,
|
|
571
|
+
processed: context.folded.closeoutPhases.length,
|
|
572
|
+
succeeded: context.folded.closeoutPhases.filter((phase) => phase.outcome === "completed").length,
|
|
573
|
+
failed: context.folded.closeoutPhases.filter((phase) => phase.outcome === "failed").length,
|
|
574
|
+
skipped: 0,
|
|
575
|
+
plannedOrder: taskId ? [{ id: taskId, title: context.runDisplayTitle, status }] : [],
|
|
576
|
+
idleReason: operatorActive ? null : status,
|
|
577
|
+
stopActionId: operatorActive ? RIG_RUN_STOP_PANEL_ACTION : null,
|
|
578
|
+
closures: []
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
var RUN_SUPERVISOR_PANEL_PRODUCER = {
|
|
582
|
+
...RUN_SUPERVISOR_PANEL_REGISTRATION,
|
|
583
|
+
produce(context) {
|
|
584
|
+
return buildSupervisorPanelPayload(context);
|
|
585
|
+
}
|
|
586
|
+
};
|
|
587
|
+
var RUN_WORKER_PANEL_PLUGIN = {
|
|
588
|
+
name: "@rig/standard-plugin:run-worker-panels",
|
|
589
|
+
version: "0.0.0-alpha.1",
|
|
590
|
+
contributes: {
|
|
591
|
+
panels: [RUN_SUPERVISOR_PANEL_REGISTRATION]
|
|
592
|
+
},
|
|
593
|
+
__runtime: {
|
|
594
|
+
panels: [RUN_SUPERVISOR_PANEL_PRODUCER]
|
|
595
|
+
}
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
// packages/standard-plugin/src/cli-surface.ts
|
|
651
599
|
import { definePlugin } from "@rig/core/config";
|
|
600
|
+
var STANDARD_CLI_SURFACE_PLUGIN_NAME = "@rig/standard-plugin:cli-surface";
|
|
601
|
+
var standardCliSurfacePlugin = definePlugin({
|
|
602
|
+
name: STANDARD_CLI_SURFACE_PLUGIN_NAME,
|
|
603
|
+
version: "0.0.0-alpha.1",
|
|
604
|
+
contributes: {}
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
// packages/standard-plugin/src/plugin.ts
|
|
608
|
+
import { resolve as resolve4 } from "path";
|
|
609
|
+
import { definePlugin as definePlugin2 } from "@rig/core/config";
|
|
652
610
|
|
|
653
611
|
// packages/standard-plugin/src/github-issues-source.ts
|
|
654
612
|
import { spawnSync } from "child_process";
|
|
@@ -662,7 +620,7 @@ function createEnvGitHubCredentialProvider() {
|
|
|
662
620
|
return {
|
|
663
621
|
async resolveGitHubToken(input) {
|
|
664
622
|
if (input.purpose === "selected-repo") {
|
|
665
|
-
return { token: cleanToken(process.env.RIG_GITHUB_SELECTED_TOKEN ??
|
|
623
|
+
return { token: cleanToken(process.env.RIG_GITHUB_SELECTED_TOKEN ?? null) ?? "", source: "signed-in-user" };
|
|
666
624
|
}
|
|
667
625
|
const token = cleanToken(process.env.RIG_GITHUB_TOKEN ?? process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN ?? null);
|
|
668
626
|
if (!token) {
|
|
@@ -697,11 +655,11 @@ function createStateGitHubCredentialProvider(options = {}) {
|
|
|
697
655
|
const candidates = [];
|
|
698
656
|
addCandidate(candidates, options.stateFile ?? process.env.RIG_GITHUB_AUTH_STATE_FILE);
|
|
699
657
|
addStateDir(candidates, options.stateDir);
|
|
658
|
+
addStateDir(candidates, process.env.RIG_STATE_DIR);
|
|
700
659
|
addProjectStateDir(candidates, process.env.PROJECT_RIG_ROOT);
|
|
701
660
|
addProjectStateDir(candidates, process.env.RIG_PROJECT_ROOT);
|
|
702
661
|
addProjectStateDir(candidates, process.env.RIG_HOST_PROJECT_ROOT);
|
|
703
662
|
addProjectStateDir(candidates, process.cwd());
|
|
704
|
-
addStateDir(candidates, process.env.RIG_STATE_DIR);
|
|
705
663
|
return candidates;
|
|
706
664
|
};
|
|
707
665
|
const readToken = () => {
|
|
@@ -721,7 +679,7 @@ function createStateGitHubCredentialProvider(options = {}) {
|
|
|
721
679
|
async resolveGitHubToken(input) {
|
|
722
680
|
const token = readToken();
|
|
723
681
|
if (input.purpose === "selected-repo") {
|
|
724
|
-
return { token: token ?? cleanToken(process.env.RIG_GITHUB_SELECTED_TOKEN ??
|
|
682
|
+
return { token: token ?? cleanToken(process.env.RIG_GITHUB_SELECTED_TOKEN ?? null) ?? "", source: "signed-in-user" };
|
|
725
683
|
}
|
|
726
684
|
if (token) {
|
|
727
685
|
return { token, source: "signed-in-user" };
|
|
@@ -793,9 +751,12 @@ function parseMetadataList(body, keys) {
|
|
|
793
751
|
}
|
|
794
752
|
return [...new Set(values)];
|
|
795
753
|
}
|
|
754
|
+
function bodyWithoutRigMetadataBlock(body) {
|
|
755
|
+
return body.replace(/<!-- rig:metadata:start -->\s*[\s\S]*?\s*<!-- rig:metadata:end -->/g, "");
|
|
756
|
+
}
|
|
796
757
|
function parseBodyKeyRefs(body, keys) {
|
|
797
758
|
const keyPattern = metadataKeyPattern(keys);
|
|
798
|
-
const values = body.split(/\r?\n/).flatMap((line) => {
|
|
759
|
+
const values = bodyWithoutRigMetadataBlock(body).split(/\r?\n/).flatMap((line) => {
|
|
799
760
|
const match = line.match(keyPattern);
|
|
800
761
|
return match?.[1] ? parseIssueRefs(match[1]) : [];
|
|
801
762
|
});
|
|
@@ -900,21 +861,29 @@ function isRigStickyStatusComment(body) {
|
|
|
900
861
|
return body.includes(RIG_STATUS_COMMENT_MARKER);
|
|
901
862
|
}
|
|
902
863
|
function ghSpawnOptions(extraEnv, timeoutMs) {
|
|
864
|
+
const env = {
|
|
865
|
+
...process.env,
|
|
866
|
+
...process.env.GH_TOKEN !== undefined ? { GH_TOKEN: process.env.GH_TOKEN } : {},
|
|
867
|
+
...process.env.GITHUB_TOKEN !== undefined ? { GITHUB_TOKEN: process.env.GITHUB_TOKEN } : {},
|
|
868
|
+
...process.env.RIG_GITHUB_TOKEN !== undefined ? { RIG_GITHUB_TOKEN: process.env.RIG_GITHUB_TOKEN } : {}
|
|
869
|
+
};
|
|
870
|
+
for (const [key, value] of Object.entries(extraEnv ?? {})) {
|
|
871
|
+
if (value === undefined)
|
|
872
|
+
delete env[key];
|
|
873
|
+
else
|
|
874
|
+
env[key] = value;
|
|
875
|
+
}
|
|
903
876
|
return {
|
|
904
877
|
encoding: "utf-8",
|
|
905
878
|
timeout: timeoutMs,
|
|
906
|
-
env
|
|
907
|
-
...process.env,
|
|
908
|
-
...process.env.GH_TOKEN !== undefined ? { GH_TOKEN: process.env.GH_TOKEN } : {},
|
|
909
|
-
...process.env.GITHUB_TOKEN !== undefined ? { GITHUB_TOKEN: process.env.GITHUB_TOKEN } : {},
|
|
910
|
-
...process.env.RIG_GITHUB_TOKEN !== undefined ? { RIG_GITHUB_TOKEN: process.env.RIG_GITHUB_TOKEN } : {},
|
|
911
|
-
...extraEnv ?? {}
|
|
912
|
-
}
|
|
879
|
+
env
|
|
913
880
|
};
|
|
914
881
|
}
|
|
915
882
|
function credentialEnv(token) {
|
|
916
883
|
const clean = token?.trim() ?? "";
|
|
917
|
-
|
|
884
|
+
if (clean)
|
|
885
|
+
return { GH_TOKEN: clean, GITHUB_TOKEN: clean, RIG_GITHUB_TOKEN: clean };
|
|
886
|
+
return { GH_TOKEN: undefined, GITHUB_TOKEN: undefined, RIG_GITHUB_TOKEN: undefined };
|
|
918
887
|
}
|
|
919
888
|
async function resolveCredentialEnv(opts, purpose) {
|
|
920
889
|
if (!opts.credentialProvider)
|
|
@@ -1663,40 +1632,9 @@ function createFilesTaskSource(opts) {
|
|
|
1663
1632
|
// packages/standard-plugin/src/plugin.ts
|
|
1664
1633
|
init_metadata();
|
|
1665
1634
|
init_metadata();
|
|
1635
|
+
import { createStandardProductEntrypointPlugin, standardProductEntrypointPlugin } from "@rig/product-entrypoint-plugin/plugin";
|
|
1636
|
+
import { createStandardTaskCliPlugin, standardTaskCliPlugin } from "@rig/task-cli-plugin/plugin";
|
|
1666
1637
|
var DOCS_HEALTH_PANEL_ID = "docs-health";
|
|
1667
|
-
var STANDARD_PRODUCT_COMMANDS = [
|
|
1668
|
-
{ command: "launch", description: "Open the Rig Cockpit through the OMP collaboration substrate.", usage: "rig [launch] [args...]" },
|
|
1669
|
-
{ command: "join", description: "Join an encrypted Rig/OMP collaborative session.", usage: "rig join <link>" },
|
|
1670
|
-
{ command: "acp", description: "Start the Rig product in OMP ACP mode.", usage: "rig acp [args...]" },
|
|
1671
|
-
{ command: "models", description: "Delegate model management to the Rig product substrate.", usage: "rig models [args...]" },
|
|
1672
|
-
{ command: "mcp", description: "Delegate MCP management to the Rig product substrate.", usage: "rig mcp [args...]" },
|
|
1673
|
-
{ command: "update", description: "Delegate product update handling to the Rig product substrate.", usage: "rig update [args...]" }
|
|
1674
|
-
];
|
|
1675
|
-
function standardProductCliCommandId(command) {
|
|
1676
|
-
return `@rig/standard-plugin:product-entrypoint:${command}`;
|
|
1677
|
-
}
|
|
1678
|
-
function standardProductCliCommandMetadata(descriptor) {
|
|
1679
|
-
return {
|
|
1680
|
-
id: standardProductCliCommandId(descriptor.command),
|
|
1681
|
-
family: descriptor.command,
|
|
1682
|
-
description: descriptor.description,
|
|
1683
|
-
usage: descriptor.usage,
|
|
1684
|
-
projectRequired: false
|
|
1685
|
-
};
|
|
1686
|
-
}
|
|
1687
|
-
function createStandardProductCliCommand(descriptor) {
|
|
1688
|
-
return {
|
|
1689
|
-
...standardProductCliCommandMetadata(descriptor),
|
|
1690
|
-
run: async (context, args) => {
|
|
1691
|
-
const { runRigOmpProductCommand: runRigOmpProductCommand2 } = await Promise.resolve().then(() => (init_product_entrypoint(), exports_product_entrypoint));
|
|
1692
|
-
return runRigOmpProductCommand2({
|
|
1693
|
-
projectRoot: context.projectRoot,
|
|
1694
|
-
command: descriptor.command,
|
|
1695
|
-
args
|
|
1696
|
-
});
|
|
1697
|
-
}
|
|
1698
|
-
};
|
|
1699
|
-
}
|
|
1700
1638
|
function requireStringField(config, field, kind) {
|
|
1701
1639
|
const value = config[field];
|
|
1702
1640
|
if (!value) {
|
|
@@ -1806,7 +1744,7 @@ function createLazyDocsDriftRuntimeCliCommand(options = {}) {
|
|
|
1806
1744
|
};
|
|
1807
1745
|
}
|
|
1808
1746
|
function createStandardDocsDriftPlugin(opts = {}) {
|
|
1809
|
-
return
|
|
1747
|
+
return definePlugin2({
|
|
1810
1748
|
name: "@rig/standard-plugin:docs-drift",
|
|
1811
1749
|
version: "0.1.0",
|
|
1812
1750
|
contributes: {
|
|
@@ -1840,19 +1778,8 @@ function createStandardDocsDriftPlugin(opts = {}) {
|
|
|
1840
1778
|
cliCommands: [createLazyDocsDriftRuntimeCliCommand(opts)]
|
|
1841
1779
|
});
|
|
1842
1780
|
}
|
|
1843
|
-
function createStandardProductEntrypointPlugin() {
|
|
1844
|
-
return definePlugin({
|
|
1845
|
-
name: "@rig/standard-plugin:product-entrypoint",
|
|
1846
|
-
version: "0.1.0",
|
|
1847
|
-
contributes: {
|
|
1848
|
-
cliCommands: STANDARD_PRODUCT_COMMANDS.map(standardProductCliCommandMetadata)
|
|
1849
|
-
}
|
|
1850
|
-
}, {
|
|
1851
|
-
cliCommands: STANDARD_PRODUCT_COMMANDS.map(createStandardProductCliCommand)
|
|
1852
|
-
});
|
|
1853
|
-
}
|
|
1854
1781
|
function createStandardTaskSourcesPlugin(opts = {}) {
|
|
1855
|
-
return
|
|
1782
|
+
return definePlugin2({
|
|
1856
1783
|
name: "@rig/standard-plugin:task-sources",
|
|
1857
1784
|
version: "0.1.0",
|
|
1858
1785
|
contributes: {
|
|
@@ -1880,7 +1807,7 @@ function createStandardTaskSourcesPlugin(opts = {}) {
|
|
|
1880
1807
|
owner: requireStringField(config, "owner", "github-issues"),
|
|
1881
1808
|
repo: requireStringField(config, "repo", "github-issues")
|
|
1882
1809
|
};
|
|
1883
|
-
const credentialProviderOptions = context?.projectRoot ? { stateDir:
|
|
1810
|
+
const credentialProviderOptions = context?.projectRoot ? { stateDir: resolve4(context.projectRoot, ".rig", "state") } : {};
|
|
1884
1811
|
options.credentialProvider = opts.githubCredentialProvider ?? createStateGitHubCredentialProvider(credentialProviderOptions);
|
|
1885
1812
|
if (opts.githubWorkspaceId)
|
|
1886
1813
|
options.workspaceId = opts.githubWorkspaceId;
|
|
@@ -1926,14 +1853,41 @@ function createStandardTaskSourcesPlugin(opts = {}) {
|
|
|
1926
1853
|
]
|
|
1927
1854
|
});
|
|
1928
1855
|
}
|
|
1856
|
+
|
|
1857
|
+
// packages/standard-plugin/src/bundle.ts
|
|
1858
|
+
function standardPlugins(options = {}) {
|
|
1859
|
+
return [
|
|
1860
|
+
createDefaultLifecyclePlugin(),
|
|
1861
|
+
createDependencyGraphPlugin(),
|
|
1862
|
+
createBlockerClassifierPlugin(),
|
|
1863
|
+
createPlanningPlugin(),
|
|
1864
|
+
createSupervisorPlugin(),
|
|
1865
|
+
standardCliSurfacePlugin,
|
|
1866
|
+
RUN_WORKER_PANEL_PLUGIN,
|
|
1867
|
+
createStandardTaskSourcesPlugin(options.taskSources),
|
|
1868
|
+
createStandardTaskCliPlugin(),
|
|
1869
|
+
createStandardDocsDriftPlugin(options.drift),
|
|
1870
|
+
createStandardProductEntrypointPlugin()
|
|
1871
|
+
];
|
|
1872
|
+
}
|
|
1929
1873
|
export {
|
|
1874
|
+
standardTaskCliPlugin,
|
|
1875
|
+
standardProductEntrypointPlugin,
|
|
1876
|
+
standardPlugins,
|
|
1930
1877
|
createStateGitHubCredentialProvider,
|
|
1931
1878
|
createStandardTaskSourcesPlugin,
|
|
1879
|
+
createStandardTaskCliPlugin,
|
|
1932
1880
|
createStandardProductEntrypointPlugin,
|
|
1933
1881
|
createStandardDocsDriftPlugin,
|
|
1934
1882
|
createGitHubIssuesTaskSource,
|
|
1935
1883
|
createFilesTaskSource,
|
|
1936
1884
|
createEnvGitHubCredentialProvider,
|
|
1885
|
+
RUN_WORKER_PANEL_PLUGIN,
|
|
1886
|
+
RUN_SUPERVISOR_PANEL_REGISTRATION,
|
|
1887
|
+
RUN_SUPERVISOR_PANEL_PRODUCER,
|
|
1888
|
+
RIG_SUPERVISOR_PANEL_ID,
|
|
1889
|
+
RIG_RUN_STOP_PANEL_ACTION,
|
|
1890
|
+
RIG_CAPABILITY_PANEL_SLOT,
|
|
1937
1891
|
DOCS_HEALTH_PANEL_ID,
|
|
1938
1892
|
DOCS_DRIFT_VALIDATOR_ID,
|
|
1939
1893
|
DOCS_DRIFT_VALIDATOR,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PLANNING_PLAN_PANEL_ID, PLANNING_PLUGIN_NAME, createPlanningPlugin, planningPlugin, } from "@rig/planning-plugin/plugin";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// packages/standard-plugin/src/planning.ts
|
|
3
|
+
import {
|
|
4
|
+
PLANNING_PLAN_PANEL_ID,
|
|
5
|
+
PLANNING_PLUGIN_NAME,
|
|
6
|
+
createPlanningPlugin,
|
|
7
|
+
planningPlugin
|
|
8
|
+
} from "@rig/planning-plugin/plugin";
|
|
9
|
+
export {
|
|
10
|
+
planningPlugin,
|
|
11
|
+
createPlanningPlugin,
|
|
12
|
+
PLANNING_PLUGIN_NAME,
|
|
13
|
+
PLANNING_PLAN_PANEL_ID
|
|
14
|
+
};
|
package/dist/src/plugin.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export type { DriftJudgeInput, DriftJudgeMismatch, DriftJudgeProvider } from "./
|
|
|
10
10
|
export type { GitHubIssuesOptions } from "./github-issues-source";
|
|
11
11
|
export type { FilesTaskSourceOptions } from "./files-source";
|
|
12
12
|
export type { DocsDriftPluginOptions } from "./drift/metadata";
|
|
13
|
+
export { createStandardProductEntrypointPlugin, standardProductEntrypointPlugin } from "@rig/product-entrypoint-plugin/plugin";
|
|
14
|
+
export { createStandardTaskCliPlugin, standardTaskCliPlugin } from "@rig/task-cli-plugin/plugin";
|
|
13
15
|
export declare const DOCS_HEALTH_PANEL_ID = "docs-health";
|
|
14
16
|
export interface StandardTaskSourcesPluginOptions {
|
|
15
17
|
githubCredentialProvider?: GitHubCredentialProvider;
|
|
@@ -19,5 +21,4 @@ export interface StandardTaskSourcesPluginOptions {
|
|
|
19
21
|
onGitHubTaskChanged?: GitHubIssuesOptions["onTaskChanged"];
|
|
20
22
|
}
|
|
21
23
|
export declare function createStandardDocsDriftPlugin(opts?: DocsDriftPluginOptions): RigPluginWithRuntime;
|
|
22
|
-
export declare function createStandardProductEntrypointPlugin(): RigPluginWithRuntime;
|
|
23
24
|
export declare function createStandardTaskSourcesPlugin(opts?: StandardTaskSourcesPluginOptions): RigPluginWithRuntime;
|