@phamvuhoang/otto-core 0.5.0 → 0.6.0
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/branch.d.ts +20 -0
- package/dist/branch.d.ts.map +1 -1
- package/dist/branch.js +34 -1
- package/dist/branch.js.map +1 -1
- package/dist/cli-help.d.ts +42 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +56 -2
- package/dist/cli-help.js.map +1 -1
- package/dist/gh-main.d.ts.map +1 -1
- package/dist/gh-main.js +1 -0
- package/dist/gh-main.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/linear-api.d.ts +1 -0
- package/dist/linear-api.d.ts.map +1 -1
- package/dist/linear-api.js +6 -1
- package/dist/linear-api.js.map +1 -1
- package/dist/linear-cli.d.ts.map +1 -1
- package/dist/linear-cli.js +11 -3
- package/dist/linear-cli.js.map +1 -1
- package/dist/linear-main.d.ts.map +1 -1
- package/dist/linear-main.js +4 -1
- package/dist/linear-main.js.map +1 -1
- package/dist/run-bin.d.ts +10 -0
- package/dist/run-bin.d.ts.map +1 -1
- package/dist/run-bin.js +116 -0
- package/dist/run-bin.js.map +1 -1
- package/dist/task-key.d.ts +65 -0
- package/dist/task-key.d.ts.map +1 -0
- package/dist/task-key.js +112 -0
- package/dist/task-key.js.map +1 -0
- package/dist/watch.d.ts +26 -4
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +96 -41
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
- package/templates/apply-review.md +16 -3
- package/templates/ghafk-issue.md +4 -2
- package/templates/ghafk.md +2 -2
- package/templates/ghprompt.md +2 -0
- package/templates/linearprompt.md +3 -1
- package/templates/superpowers.md +23 -10
package/dist/linear-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-cli.js","sourceRoot":"","sources":["../src/linear-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GAEf,MAAM,iBAAiB,CAAC;AAqBzB,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,IAAI,EAAE,OAAO,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACd,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,KAAK,GACT,
|
|
1
|
+
{"version":3,"file":"linear-cli.js","sourceRoot":"","sources":["../src/linear-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-main.d.ts","sourceRoot":"","sources":["../src/linear-main.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"linear-main.d.ts","sourceRoot":"","sources":["../src/linear-main.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/linear-main.js
CHANGED
|
@@ -14,11 +14,14 @@ export async function runLinearAfk(argv, opts = {}) {
|
|
|
14
14
|
parseIssue: parseLinearIssueArg,
|
|
15
15
|
mode: "linear",
|
|
16
16
|
supportsWatch: true,
|
|
17
|
+
supportsProjectScope: true,
|
|
17
18
|
// Poll the same labelled set the implementer selects (OTTO_LINEAR_LABEL),
|
|
18
|
-
// narrowed by OTTO_LINEAR_TEAM
|
|
19
|
+
// narrowed by OTTO_LINEAR_TEAM and (single-target watch scope)
|
|
20
|
+
// OTTO_LINEAR_PROJECT. The `label` arg is the resolved watch label.
|
|
19
21
|
watchPoll: (label) => pollLinearIssues({
|
|
20
22
|
label,
|
|
21
23
|
team: process.env.OTTO_LINEAR_TEAM?.trim() || undefined,
|
|
24
|
+
project: process.env.OTTO_LINEAR_PROJECT?.trim() || undefined,
|
|
22
25
|
}),
|
|
23
26
|
watchProvider: { name: "Linear", authCmd: "otto-linear-auth login" },
|
|
24
27
|
resolveWatchLabel: () => process.env.OTTO_LINEAR_LABEL?.trim() || "otto",
|
package/dist/linear-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear-main.js","sourceRoot":"","sources":["../src/linear-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,OAA4B,EAAE;IAE9B,MAAM,MAAM,CAAC,IAAI,EAAE;QACjB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,0CAA0C;QAChD,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC;QACnD,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,MAAM,CAAC,sBAAsB;QACzC,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,IAAI;QACnB,0EAA0E;QAC1E,
|
|
1
|
+
{"version":3,"file":"linear-main.js","sourceRoot":"","sources":["../src/linear-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,OAA4B,EAAE;IAE9B,MAAM,MAAM,CAAC,IAAI,EAAE;QACjB,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,0CAA0C;QAChD,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC;QACnD,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,UAAU,EAAE,MAAM,CAAC,sBAAsB;QACzC,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,IAAI;QACnB,oBAAoB,EAAE,IAAI;QAC1B,0EAA0E;QAC1E,+DAA+D;QAC/D,oEAAoE;QACpE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,gBAAgB,CAAC;YACf,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,SAAS;YACvD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,SAAS;SAC9D,CAAC;QACJ,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACpE,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,MAAM;KACzE,CAAC,CAAC;AACL,CAAC"}
|
package/dist/run-bin.d.ts
CHANGED
|
@@ -31,6 +31,16 @@ export type RunBinConfig = {
|
|
|
31
31
|
* the same labelled set its implementer selects.
|
|
32
32
|
*/
|
|
33
33
|
resolveWatchLabel?: () => string;
|
|
34
|
+
/**
|
|
35
|
+
* Whether this bin accepts `--repo owner/name` / `OTTO_GITHUB_REPO` to confine
|
|
36
|
+
* the run to a single GitHub repo. Only otto-ghafk sets this.
|
|
37
|
+
*/
|
|
38
|
+
supportsRepoScope?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether this bin accepts `--project "Name"` / `OTTO_LINEAR_PROJECT` to
|
|
41
|
+
* narrow the run to a single Linear project. Only otto-linear-afk sets this.
|
|
42
|
+
*/
|
|
43
|
+
supportsProjectScope?: boolean;
|
|
34
44
|
/** Alternate gate stage used when --issue is set. Only otto-ghafk sets this. */
|
|
35
45
|
issueStage?: Stage;
|
|
36
46
|
/** Single read-only gate stage used when --verify is set. Only otto-afk sets this. */
|
package/dist/run-bin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-bin.d.ts","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run-bin.d.ts","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG;IACzB,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7E,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gFAAgF;IAChF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,sFAAsF;IACtF,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CAC/C,CAAC;AAyBF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4W7E"}
|
package/dist/run-bin.js
CHANGED
|
@@ -5,6 +5,7 @@ import { dirtyTreeWarning, ensureTmpIgnored, resolveBranch, } from "./branch.js"
|
|
|
5
5
|
import { parseFlags, parseDurationMs, printConfig, printHelp, printVersion, } from "./cli-help.js";
|
|
6
6
|
import { detachAndExit } from "./detach.js";
|
|
7
7
|
import { runLoop } from "./loop.js";
|
|
8
|
+
import { parseGithubRepo, describeScope, } from "./task-key.js";
|
|
8
9
|
/**
|
|
9
10
|
* Ensure .otto/state.json is listed in the workspace .gitignore.
|
|
10
11
|
* No-op when the workspace has no .git directory (not a git repo).
|
|
@@ -59,6 +60,8 @@ export async function runBin(argv, cfg) {
|
|
|
59
60
|
: undefined);
|
|
60
61
|
const branchPrefixArg = flags.branchPrefix ??
|
|
61
62
|
(process.env.OTTO_BRANCH_PREFIX?.trim() || undefined);
|
|
63
|
+
const branchConventionArg = flags.branchConvention ??
|
|
64
|
+
(process.env.OTTO_BRANCH_CONVENTION?.trim() || undefined);
|
|
62
65
|
const detachLogPath = flags.detach
|
|
63
66
|
? (flags.log ??
|
|
64
67
|
join(workspaceDir, ".otto-tmp", "logs", `detached-${process.pid}.log`))
|
|
@@ -87,6 +90,100 @@ export async function runBin(argv, cfg) {
|
|
|
87
90
|
const watchLabel = cfg.resolveWatchLabel?.() ||
|
|
88
91
|
process.env.OTTO_WATCH_LABEL?.trim() ||
|
|
89
92
|
"otto";
|
|
93
|
+
// Resolve the GitHub single-target scope (--repo / OTTO_GITHUB_REPO) up front
|
|
94
|
+
// so --print-config can report it before any run starts. Validated into a
|
|
95
|
+
// WorkScope; the canonical owner/repo is exported as OTTO_GITHUB_REPO so the
|
|
96
|
+
// ghafk templates confine their `gh` commands (list/view) to it, and passed
|
|
97
|
+
// to runWatch so the poller never sees another repo's issues. parseGithubRepo
|
|
98
|
+
// admits only shell-safe chars, keeping OTTO_GITHUB_REPO safe to interpolate.
|
|
99
|
+
let scope;
|
|
100
|
+
// Multi-target watch: several validated GitHub scopes the daemon rotates
|
|
101
|
+
// through (repeated --repo / OTTO_GITHUB_REPOS). Undefined for the single
|
|
102
|
+
// target path, which keeps using `scope` + the OTTO_GITHUB_REPO env export.
|
|
103
|
+
let scopes;
|
|
104
|
+
let scopeError;
|
|
105
|
+
if (cfg.supportsRepoScope) {
|
|
106
|
+
// Repeated --repo wins; else the comma-list OTTO_GITHUB_REPOS; else the
|
|
107
|
+
// single OTTO_GITHUB_REPO. All go through parseGithubRepo (shell-safe).
|
|
108
|
+
const rawRepos = flags.repos.length > 0
|
|
109
|
+
? flags.repos
|
|
110
|
+
: (process.env.OTTO_GITHUB_REPOS?.split(",")
|
|
111
|
+
.map((s) => s.trim())
|
|
112
|
+
.filter(Boolean) ?? []);
|
|
113
|
+
const raw = rawRepos.length > 0
|
|
114
|
+
? rawRepos
|
|
115
|
+
: process.env.OTTO_GITHUB_REPO?.trim()
|
|
116
|
+
? [process.env.OTTO_GITHUB_REPO.trim()]
|
|
117
|
+
: [];
|
|
118
|
+
try {
|
|
119
|
+
const parsed = raw.map((r) => {
|
|
120
|
+
const { owner, repo } = parseGithubRepo(r);
|
|
121
|
+
return { provider: "github", owner, repo };
|
|
122
|
+
});
|
|
123
|
+
if (parsed.length === 1) {
|
|
124
|
+
scope = parsed[0];
|
|
125
|
+
// Export the canonical owner/repo so the ghafk templates confine their
|
|
126
|
+
// `gh` commands to it (single-target). Multi-target pins it per-cycle
|
|
127
|
+
// inside runWatch instead, so we don't set a single value here.
|
|
128
|
+
process.env.OTTO_GITHUB_REPO = `${parsed[0].owner}/${parsed[0].repo}`;
|
|
129
|
+
}
|
|
130
|
+
else if (parsed.length > 1) {
|
|
131
|
+
scopes = parsed;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
scopeError = err.message;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Resolve the Linear single-target scope (--project / OTTO_LINEAR_PROJECT)
|
|
139
|
+
// alongside the team filter (OTTO_LINEAR_TEAM). Unlike --repo, a project name
|
|
140
|
+
// is free text that only reaches Linear's GraphQL filter (never a host shell),
|
|
141
|
+
// so it needs no charset validation. The resolved project is re-exported as
|
|
142
|
+
// OTTO_LINEAR_PROJECT so the `otto-linear list/dump` template commands and the
|
|
143
|
+
// watch poller (which read it from the inherited env, like team) honor the
|
|
144
|
+
// flag, not just the env var. Scope is reported even with only a team set.
|
|
145
|
+
if (cfg.supportsProjectScope) {
|
|
146
|
+
const team = process.env.OTTO_LINEAR_TEAM?.trim() || undefined;
|
|
147
|
+
// Repeated --project wins; else the comma-list OTTO_LINEAR_PROJECTS; else the
|
|
148
|
+
// single OTTO_LINEAR_PROJECT. No charset validation — a project name only
|
|
149
|
+
// ever reaches Linear's GraphQL filter, never a host shell.
|
|
150
|
+
const rawProjects = flags.projects.length > 0
|
|
151
|
+
? flags.projects
|
|
152
|
+
: (process.env.OTTO_LINEAR_PROJECTS?.split(",")
|
|
153
|
+
.map((s) => s.trim())
|
|
154
|
+
.filter(Boolean) ?? []);
|
|
155
|
+
const projects = rawProjects.length > 0
|
|
156
|
+
? rawProjects
|
|
157
|
+
: process.env.OTTO_LINEAR_PROJECT?.trim()
|
|
158
|
+
? [process.env.OTTO_LINEAR_PROJECT.trim()]
|
|
159
|
+
: [];
|
|
160
|
+
if (projects.length > 1) {
|
|
161
|
+
// Multi-target: each project pairs with the same team. The daemon pins
|
|
162
|
+
// OTTO_LINEAR_PROJECT per-cycle (in runWatch), so no single value here.
|
|
163
|
+
scopes = projects.map((project) => ({
|
|
164
|
+
provider: "linear",
|
|
165
|
+
team,
|
|
166
|
+
project,
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const project = projects[0];
|
|
171
|
+
// Export the resolved project so the `otto-linear list/dump` template
|
|
172
|
+
// commands and the watch poller (which read it from the inherited env)
|
|
173
|
+
// honor the flag, not just the env var.
|
|
174
|
+
if (project)
|
|
175
|
+
process.env.OTTO_LINEAR_PROJECT = project;
|
|
176
|
+
if (team || project)
|
|
177
|
+
scope = { provider: "linear", team, project };
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const watchScope = scopeError
|
|
181
|
+
? `invalid (${scopeError})`
|
|
182
|
+
: scopes
|
|
183
|
+
? scopes.map(describeScope).join(", ")
|
|
184
|
+
: scope
|
|
185
|
+
? describeScope(scope)
|
|
186
|
+
: undefined;
|
|
90
187
|
if (flags.printConfig) {
|
|
91
188
|
printConfig(cfg.bin, workspaceDir, packageDir, {
|
|
92
189
|
cliVersion: cfg.cliVersion,
|
|
@@ -102,10 +199,12 @@ export async function runBin(argv, cfg) {
|
|
|
102
199
|
watch: flags.watch,
|
|
103
200
|
watchIntervalSec: flags.watchIntervalSec,
|
|
104
201
|
watchLabel,
|
|
202
|
+
watchScope,
|
|
105
203
|
issue: flags.issue,
|
|
106
204
|
maxWaitMs,
|
|
107
205
|
branchStrategy: branchStrategyArg,
|
|
108
206
|
branchPrefix: branchPrefixArg,
|
|
207
|
+
branchConvention: branchConventionArg,
|
|
109
208
|
});
|
|
110
209
|
return;
|
|
111
210
|
}
|
|
@@ -113,6 +212,20 @@ export async function runBin(argv, cfg) {
|
|
|
113
212
|
console.error("--issue is only supported by otto-ghafk and otto-linear-afk");
|
|
114
213
|
process.exit(1);
|
|
115
214
|
}
|
|
215
|
+
if (flags.repo != null && !cfg.supportsRepoScope) {
|
|
216
|
+
console.error("--repo is only supported by otto-ghafk");
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
if (flags.project != null && !cfg.supportsProjectScope) {
|
|
220
|
+
console.error("--project is only supported by otto-linear-afk");
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
// A malformed --repo / OTTO_GITHUB_REPO is fatal for a real run (it would
|
|
224
|
+
// silently fall back to the workspace repo); --print-config only reports it.
|
|
225
|
+
if (scopeError) {
|
|
226
|
+
console.error(scopeError);
|
|
227
|
+
process.exit(1);
|
|
228
|
+
}
|
|
116
229
|
const modeCount = (flags.issue != null ? 1 : 0) +
|
|
117
230
|
(flags.verify ? 1 : 0) +
|
|
118
231
|
(flags.applyReview != null ? 1 : 0) +
|
|
@@ -192,6 +305,7 @@ export async function runBin(argv, cfg) {
|
|
|
192
305
|
isTTY: Boolean(process.stdout.isTTY),
|
|
193
306
|
flagStrategy: branchStrategyArg,
|
|
194
307
|
flagPrefix: branchPrefixArg,
|
|
308
|
+
flagConvention: branchConventionArg,
|
|
195
309
|
});
|
|
196
310
|
process.stderr.write(`${resolved.summaryLine}\n`);
|
|
197
311
|
// Evaluate the dirty-tree warning against the user's tree BEFORE we mutate the
|
|
@@ -228,6 +342,8 @@ export async function runBin(argv, cfg) {
|
|
|
228
342
|
cliVersion: cfg.cliVersion,
|
|
229
343
|
pollIssues: cfg.watchPoll,
|
|
230
344
|
provider: cfg.watchProvider,
|
|
345
|
+
scope,
|
|
346
|
+
scopes,
|
|
231
347
|
});
|
|
232
348
|
return;
|
|
233
349
|
}
|
package/dist/run-bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-bin.js","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-bin.js","sourceRoot":"","sources":["../src/run-bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared "work scope + task key" contract (issue #21, P0).
|
|
3
|
+
*
|
|
4
|
+
* A {@link WorkScope} answers *where* Otto may look for work (used by watch
|
|
5
|
+
* scoping and `--print-config`). A {@link WorkSource} is a scope plus the
|
|
6
|
+
* specific item, and {@link deriveTaskKey} turns it into one normalized key that
|
|
7
|
+
* is reused for artifact paths and branch names across every provider — so
|
|
8
|
+
* scoped watch, branch naming, and artifact storage stay drift-free.
|
|
9
|
+
*/
|
|
10
|
+
/** Where Otto may look for work — no specific item yet (watch / print-config). */
|
|
11
|
+
export type WorkScope = {
|
|
12
|
+
provider: "plan";
|
|
13
|
+
} | {
|
|
14
|
+
provider: "github";
|
|
15
|
+
owner?: string;
|
|
16
|
+
repo?: string;
|
|
17
|
+
} | {
|
|
18
|
+
provider: "linear";
|
|
19
|
+
team?: string;
|
|
20
|
+
project?: string;
|
|
21
|
+
};
|
|
22
|
+
/** A scope plus the concrete item it points at (names artifacts + branches). */
|
|
23
|
+
export type WorkSource = {
|
|
24
|
+
provider: "plan";
|
|
25
|
+
slug: string;
|
|
26
|
+
} | {
|
|
27
|
+
provider: "github";
|
|
28
|
+
owner?: string;
|
|
29
|
+
repo?: string;
|
|
30
|
+
issue: number;
|
|
31
|
+
slug?: string;
|
|
32
|
+
} | {
|
|
33
|
+
provider: "linear";
|
|
34
|
+
team?: string;
|
|
35
|
+
project?: string;
|
|
36
|
+
issue: string;
|
|
37
|
+
slug?: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Derive the one normalized, filesystem-safe and git-branch-safe task key for a
|
|
41
|
+
* work source. Optional scope parts (owner/repo, team/project) and the slug drop
|
|
42
|
+
* out of the key when absent. Shapes:
|
|
43
|
+
*
|
|
44
|
+
* - plan: `plan-<slug>`
|
|
45
|
+
* - github: `gh-<owner>-<repo>-<issue>[-<slug>]` (→ `gh-<issue>[-<slug>]` w/o scope)
|
|
46
|
+
* - linear: `linear-<team>-<project>-<issue>[-<slug>]` (optional parts omitted)
|
|
47
|
+
*/
|
|
48
|
+
export declare function deriveTaskKey(source: WorkSource): string;
|
|
49
|
+
/**
|
|
50
|
+
* Parse + validate a user-supplied `owner/repo` (from `--repo` or
|
|
51
|
+
* `OTTO_GITHUB_REPO`) into its parts. Throws on anything malformed or that
|
|
52
|
+
* carries shell metacharacters, so the validated result is safe to pass to
|
|
53
|
+
* `gh` and to export as `OTTO_GITHUB_REPO`. The original case is preserved
|
|
54
|
+
* (gh's display form); {@link deriveTaskKey} lowercases when it builds keys.
|
|
55
|
+
*/
|
|
56
|
+
export declare function parseGithubRepo(raw: string): {
|
|
57
|
+
owner: string;
|
|
58
|
+
repo: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* A human-readable one-line description of a scope, for `--print-config` and
|
|
62
|
+
* watch poll lines (the caller appends provider-specific filters like `label:`).
|
|
63
|
+
*/
|
|
64
|
+
export declare function describeScope(scope: WorkScope): string;
|
|
65
|
+
//# sourceMappingURL=task-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-key.d.ts","sourceRoot":"","sources":["../src/task-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kFAAkF;AAClF,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IACE,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAsBN;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA0BxD;AAUD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAgB5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAetD"}
|
package/dist/task-key.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared "work scope + task key" contract (issue #21, P0).
|
|
3
|
+
*
|
|
4
|
+
* A {@link WorkScope} answers *where* Otto may look for work (used by watch
|
|
5
|
+
* scoping and `--print-config`). A {@link WorkSource} is a scope plus the
|
|
6
|
+
* specific item, and {@link deriveTaskKey} turns it into one normalized key that
|
|
7
|
+
* is reused for artifact paths and branch names across every provider — so
|
|
8
|
+
* scoped watch, branch naming, and artifact storage stay drift-free.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Lowercase, collapse every non-`[a-z0-9]` run to a single dash, and trim
|
|
12
|
+
* leading/trailing dashes. The result contains only `[a-z0-9-]`, which is both
|
|
13
|
+
* filesystem-safe and git-branch-safe (mirrors `slugify` in branch.ts). "" when
|
|
14
|
+
* nothing usable remains.
|
|
15
|
+
*/
|
|
16
|
+
function sanitize(part) {
|
|
17
|
+
return part
|
|
18
|
+
.toLowerCase()
|
|
19
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
20
|
+
.replace(/^-+|-+$/g, "");
|
|
21
|
+
}
|
|
22
|
+
const SLUG_MAX = 40;
|
|
23
|
+
/** Sanitize + cap a free-text slug at {@link SLUG_MAX} chars (matches slugify). */
|
|
24
|
+
function slugPart(slug) {
|
|
25
|
+
return sanitize(slug).slice(0, SLUG_MAX).replace(/-+$/g, "");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Derive the one normalized, filesystem-safe and git-branch-safe task key for a
|
|
29
|
+
* work source. Optional scope parts (owner/repo, team/project) and the slug drop
|
|
30
|
+
* out of the key when absent. Shapes:
|
|
31
|
+
*
|
|
32
|
+
* - plan: `plan-<slug>`
|
|
33
|
+
* - github: `gh-<owner>-<repo>-<issue>[-<slug>]` (→ `gh-<issue>[-<slug>]` w/o scope)
|
|
34
|
+
* - linear: `linear-<team>-<project>-<issue>[-<slug>]` (optional parts omitted)
|
|
35
|
+
*/
|
|
36
|
+
export function deriveTaskKey(source) {
|
|
37
|
+
let parts;
|
|
38
|
+
switch (source.provider) {
|
|
39
|
+
case "plan":
|
|
40
|
+
parts = ["plan", slugPart(source.slug)];
|
|
41
|
+
break;
|
|
42
|
+
case "github":
|
|
43
|
+
parts = [
|
|
44
|
+
"gh",
|
|
45
|
+
source.owner ? sanitize(source.owner) : "",
|
|
46
|
+
source.repo ? sanitize(source.repo) : "",
|
|
47
|
+
String(source.issue),
|
|
48
|
+
source.slug ? slugPart(source.slug) : "",
|
|
49
|
+
];
|
|
50
|
+
break;
|
|
51
|
+
case "linear":
|
|
52
|
+
parts = [
|
|
53
|
+
"linear",
|
|
54
|
+
source.team ? sanitize(source.team) : "",
|
|
55
|
+
source.project ? sanitize(source.project) : "",
|
|
56
|
+
sanitize(source.issue),
|
|
57
|
+
source.slug ? slugPart(source.slug) : "",
|
|
58
|
+
];
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
return parts.filter(Boolean).join("-");
|
|
62
|
+
}
|
|
63
|
+
// GitHub owner (user/org): alphanumeric or single hyphens, no leading/trailing
|
|
64
|
+
// hyphen. Repo name: alphanumeric plus `.`, `_`, `-` — but never the reserved
|
|
65
|
+
// `.`/`..`. Both admit only shell-safe chars, so the resulting `owner/repo` is
|
|
66
|
+
// safe to reach a host shell (the `gh issue list --repo` poller arg + the
|
|
67
|
+
// `$OTTO_GITHUB_REPO` env the ghafk templates interpolate).
|
|
68
|
+
const OWNER_RE = /^[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$/;
|
|
69
|
+
const REPO_RE = /^[A-Za-z0-9._-]+$/;
|
|
70
|
+
/**
|
|
71
|
+
* Parse + validate a user-supplied `owner/repo` (from `--repo` or
|
|
72
|
+
* `OTTO_GITHUB_REPO`) into its parts. Throws on anything malformed or that
|
|
73
|
+
* carries shell metacharacters, so the validated result is safe to pass to
|
|
74
|
+
* `gh` and to export as `OTTO_GITHUB_REPO`. The original case is preserved
|
|
75
|
+
* (gh's display form); {@link deriveTaskKey} lowercases when it builds keys.
|
|
76
|
+
*/
|
|
77
|
+
export function parseGithubRepo(raw) {
|
|
78
|
+
const s = raw.trim();
|
|
79
|
+
const slash = s.indexOf("/");
|
|
80
|
+
const owner = slash >= 0 ? s.slice(0, slash) : "";
|
|
81
|
+
const repo = slash >= 0 ? s.slice(slash + 1) : "";
|
|
82
|
+
if (!OWNER_RE.test(owner) ||
|
|
83
|
+
!REPO_RE.test(repo) ||
|
|
84
|
+
repo === "." ||
|
|
85
|
+
repo === "..") {
|
|
86
|
+
throw new Error(`--repo must be a valid GitHub "owner/name", got: ${JSON.stringify(raw)}`);
|
|
87
|
+
}
|
|
88
|
+
return { owner, repo };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A human-readable one-line description of a scope, for `--print-config` and
|
|
92
|
+
* watch poll lines (the caller appends provider-specific filters like `label:`).
|
|
93
|
+
*/
|
|
94
|
+
export function describeScope(scope) {
|
|
95
|
+
switch (scope.provider) {
|
|
96
|
+
case "plan":
|
|
97
|
+
return "plan (local workspace)";
|
|
98
|
+
case "github":
|
|
99
|
+
return scope.owner && scope.repo
|
|
100
|
+
? `github ${scope.owner}/${scope.repo}`
|
|
101
|
+
: "github (default repo)";
|
|
102
|
+
case "linear": {
|
|
103
|
+
const bits = [];
|
|
104
|
+
if (scope.team)
|
|
105
|
+
bits.push(`team:${scope.team}`);
|
|
106
|
+
if (scope.project)
|
|
107
|
+
bits.push(`project:${scope.project}`);
|
|
108
|
+
return bits.length ? `linear ${bits.join(" ")}` : "linear (default team)";
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=task-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-key.js","sourceRoot":"","sources":["../src/task-key.ts"],"names":[],"mappings":"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"}
|
package/dist/watch.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type LinearAuth, type LinearClient } from "./linear-api.js";
|
|
2
|
+
import { type WorkScope } from "./task-key.js";
|
|
2
3
|
import type { Stage } from "./stages.js";
|
|
3
4
|
/**
|
|
4
5
|
* Outcome of one issue poll. Distinguishes a real idle queue (`ok` with
|
|
@@ -14,8 +15,12 @@ export type PollResult = {
|
|
|
14
15
|
auth: boolean;
|
|
15
16
|
detail: string;
|
|
16
17
|
};
|
|
17
|
-
/**
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Poll open issues carrying `label`, via gh. Never throws. When `repo`
|
|
20
|
+
* (`owner/name`) is given the poll is confined to that repository (watch
|
|
21
|
+
* scoping) instead of the workspace's default repo.
|
|
22
|
+
*/
|
|
23
|
+
export declare function pollOpenIssues(label: string, cwd: string, repo?: string): PollResult;
|
|
19
24
|
/**
|
|
20
25
|
* Injectable deps for {@link pollLinearIssues}, so poll classification is
|
|
21
26
|
* unit-testable without a real credential file or network. Auth is re-resolved
|
|
@@ -24,6 +29,7 @@ export declare function pollOpenIssues(label: string, cwd: string): PollResult;
|
|
|
24
29
|
export type LinearPollDeps = {
|
|
25
30
|
label: string;
|
|
26
31
|
team?: string;
|
|
32
|
+
project?: string;
|
|
27
33
|
limit?: number;
|
|
28
34
|
/** Resolve the Linear credential; defaults to env/file precedence. */
|
|
29
35
|
resolveAuth?: () => LinearAuth | null;
|
|
@@ -61,11 +67,27 @@ export type RunWatchOptions = {
|
|
|
61
67
|
cliVersion?: string;
|
|
62
68
|
/**
|
|
63
69
|
* Poller for open labelled issues. Defaults to the gh poller; otto-linear-afk
|
|
64
|
-
* passes a Linear poller. May be async. Injectable for tests too.
|
|
70
|
+
* passes a Linear poller. May be async. Injectable for tests too. `repo` is
|
|
71
|
+
* the resolved GitHub scope (`owner/name`) or undefined; the Linear poller
|
|
72
|
+
* ignores it.
|
|
65
73
|
*/
|
|
66
|
-
pollIssues?: (label: string, cwd: string) => PollResult | Promise<PollResult>;
|
|
74
|
+
pollIssues?: (label: string, cwd: string, repo?: string) => PollResult | Promise<PollResult>;
|
|
67
75
|
/** Provider-specific poll/auth messaging; defaults to gh. */
|
|
68
76
|
provider?: WatchProvider;
|
|
77
|
+
/**
|
|
78
|
+
* Resolved work scope this daemon is confined to (e.g. github owner/name).
|
|
79
|
+
* Named in the poll lines and used to derive the gh `--repo` poll filter so
|
|
80
|
+
* watch never picks up issues from outside the scope.
|
|
81
|
+
*/
|
|
82
|
+
scope?: WorkScope;
|
|
83
|
+
/**
|
|
84
|
+
* Multi-target watch: several GitHub scopes the daemon rotates through. When
|
|
85
|
+
* set, each cycle polls every scope, runs one loop for the first scope with
|
|
86
|
+
* work (confining `OTTO_GITHUB_REPO` to it), then returns to polling all. A
|
|
87
|
+
* failed poll for one scope never blocks the others. Falls back to `scope`
|
|
88
|
+
* (or the workspace default) when omitted.
|
|
89
|
+
*/
|
|
90
|
+
scopes?: WorkScope[];
|
|
69
91
|
};
|
|
70
92
|
export declare function runWatch(opts: RunWatchOptions): Promise<void>;
|
|
71
93
|
//# sourceMappingURL=watch.d.ts.map
|
package/dist/watch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAU9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GACZ,UAAU,CAsCZ;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IACtC,wEAAwE;IACxE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;CAClE,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAyBhF;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAI9D,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CACX,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,KACV,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoKnE"}
|