@ethlete/agent-rules 0.1.0-next.13 → 0.1.0-next.15
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 +73 -0
- package/README.md +36 -2
- package/THIRD-PARTY-LICENSES.md +35 -0
- package/content/hooks/context-warning.py +450 -112
- package/content/hooks/subagent-model-policy.py +185 -0
- package/content/rules/subagent-models.md +29 -0
- package/content/skills/codex-subagent/SKILL.md +90 -0
- package/content/skills/codex-subagent/codex-agent.mjs +229 -0
- package/content/skills/design-exploration/SKILL.md +203 -0
- package/content/skills/design-exploration/check-story.mjs +139 -0
- package/content/skills/design-exploration/shoot-template.mjs +61 -0
- package/content/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/content/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/content/skills/domain-modeling/SKILL.md +80 -0
- package/content/skills/grill-with-docs/SKILL.md +13 -0
- package/content/skills/grilling/SKILL.md +34 -0
- package/content/skills/handoff/SKILL.md +69 -4
- package/content/skills/sdk-update/SKILL.md +89 -0
- package/content/skills/timetrack/SKILL.md +190 -10
- package/package.json +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/frontmatter.d.ts +2 -0
- package/src/lib/frontmatter.js +2 -1
- package/src/lib/frontmatter.js.map +1 -1
- package/src/lib/git-flow/config.js +1 -1
- package/src/lib/git-flow/config.js.map +1 -1
- package/src/lib/git.d.ts +37 -0
- package/src/lib/git.js +77 -1
- package/src/lib/git.js.map +1 -1
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.js +1 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/plain-text.d.ts +9 -0
- package/src/lib/plain-text.js +22 -0
- package/src/lib/plain-text.js.map +1 -0
- package/src/lib/targets/claude-hooks.js +2 -1
- package/src/lib/targets/claude-hooks.js.map +1 -1
- package/src/lib/targets/codex-hooks.js +2 -1
- package/src/lib/targets/codex-hooks.js.map +1 -1
- package/src/lib/targets/hooks-shared.d.ts +22 -1
- package/src/lib/targets/hooks-shared.js +42 -9
- package/src/lib/targets/hooks-shared.js.map +1 -1
- package/src/lib/targets/shared.js +1 -0
- package/src/lib/targets/shared.js.map +1 -1
- package/src/lib/timetrack-command.js +449 -20
- package/src/lib/timetrack-command.js.map +1 -1
- package/src/lib/timetrack.d.ts +241 -0
- package/src/lib/timetrack.js +83 -2
- package/src/lib/timetrack.js.map +1 -1
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.timetrackCommand = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
const timetrack_1 = require("./timetrack");
|
|
7
|
+
const plain_text_1 = require("./plain-text");
|
|
8
|
+
const git_1 = require("./git");
|
|
6
9
|
const FLAGS_WITH_VALUE = [
|
|
7
10
|
'--root',
|
|
8
11
|
'--project',
|
|
@@ -15,7 +18,20 @@ const FLAGS_WITH_VALUE = [
|
|
|
15
18
|
'--issue',
|
|
16
19
|
'--minutes',
|
|
17
20
|
'--at',
|
|
21
|
+
'--out',
|
|
22
|
+
'--day',
|
|
23
|
+
'--from',
|
|
24
|
+
'--to',
|
|
25
|
+
'--state',
|
|
26
|
+
'--remove',
|
|
27
|
+
'--split',
|
|
28
|
+
'--branch',
|
|
29
|
+
'--paths',
|
|
30
|
+
'--claim',
|
|
31
|
+
'--author',
|
|
18
32
|
];
|
|
33
|
+
/** Every human-readable line, with anything a terminal would act on printed rather than obeyed. */
|
|
34
|
+
const say = (line) => console.log((0, plain_text_1.plain)(line));
|
|
19
35
|
const positionalArgs = (args) => args.filter((entry, index) => { var _a; return !entry.startsWith('--') && !FLAGS_WITH_VALUE.includes((_a = args[index - 1]) !== null && _a !== void 0 ? _a : ''); });
|
|
20
36
|
const flagValue = (args, flag) => {
|
|
21
37
|
const index = args.indexOf(flag);
|
|
@@ -47,11 +63,283 @@ const issueLine = (issue) => [
|
|
|
47
63
|
...(issue.parentKey ? [`under ${issue.parentKey}`] : []),
|
|
48
64
|
...(issue.subject ? [`subject ${issue.subject}`] : []),
|
|
49
65
|
].join(' ');
|
|
66
|
+
const DAY = /^\d{4}-\d{2}-\d{2}$/;
|
|
67
|
+
const pad = (value) => String(value).padStart(2, '0');
|
|
68
|
+
const today = () => {
|
|
69
|
+
const now = new Date();
|
|
70
|
+
return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;
|
|
71
|
+
};
|
|
72
|
+
const countByKind = (events) => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const counts = new Map();
|
|
75
|
+
for (const event of events) {
|
|
76
|
+
const kind = String((_a = event.kind) !== null && _a !== void 0 ? _a : 'unknown');
|
|
77
|
+
counts.set(kind, ((_b = counts.get(kind)) !== null && _b !== void 0 ? _b : 0) + 1);
|
|
78
|
+
}
|
|
79
|
+
return [...counts].sort((left, right) => right[1] - left[1]);
|
|
80
|
+
};
|
|
81
|
+
const describeRule = (rule) => {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
const where = rule.appId
|
|
84
|
+
? `app ${rule.appId}`
|
|
85
|
+
: `${(_a = rule.repoPath) !== null && _a !== void 0 ? _a : 'nowhere'}${rule.branch ? ` @ ${rule.branch}` : ''}`;
|
|
86
|
+
if (rule.donates)
|
|
87
|
+
return `${where} → donate`;
|
|
88
|
+
if (rule.standInId)
|
|
89
|
+
return `${where} → stand-in ${rule.standInId}`;
|
|
90
|
+
return `${where} → ${(_b = rule.issueKey) !== null && _b !== void 0 ? _b : 'no issue'}`;
|
|
91
|
+
};
|
|
92
|
+
const DAY_MS = 24 * 60 * 60000;
|
|
93
|
+
/**
|
|
94
|
+
* The checkout an open placeholder holds at the wider grain, or nothing when it names a branch.
|
|
95
|
+
*
|
|
96
|
+
* Two separate things stop a branch-grained placeholder opening, and either alone is enough, so both
|
|
97
|
+
* are read here. The record itself blocks when it was opened for a checkout and names no branch. A
|
|
98
|
+
* rule blocks when it names the placeholder for a checkout and names no branch — and a record opened
|
|
99
|
+
* before the grain was the branch has no `openedFor` at all, so the rule is the only side that shows
|
|
100
|
+
* it. Until the placeholder goes, the checkout stays at the wider grain.
|
|
101
|
+
*/
|
|
102
|
+
const wholeCheckoutHeld = (options) => {
|
|
103
|
+
var _a;
|
|
104
|
+
const { standIn } = options;
|
|
105
|
+
if (standIn.state !== 'open')
|
|
106
|
+
return undefined;
|
|
107
|
+
if (standIn.openedForBranch)
|
|
108
|
+
return undefined;
|
|
109
|
+
if (standIn.openedFor)
|
|
110
|
+
return standIn.openedFor;
|
|
111
|
+
return (_a = options.rules.find((rule) => rule.standInId === standIn.id && rule.repoPath && !rule.branch)) === null || _a === void 0 ? void 0 : _a.repoPath;
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* The days a delete of this record would leave unnamed, today left out.
|
|
115
|
+
*
|
|
116
|
+
* A delete takes the rule with it, and only the day the app next reviews gets a new placeholder. Any
|
|
117
|
+
* earlier day the record covered reads as unnamed from then on, with nothing left to say what it was.
|
|
118
|
+
*/
|
|
119
|
+
const strandedDays = (id) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
120
|
+
const standIn = (yield (0, timetrack_1.timetrackStandIns)()).find((entry) => entry.id === id);
|
|
121
|
+
const now = today();
|
|
122
|
+
return (standIn === null || standIn === void 0 ? void 0 : standIn.state) === 'open' ? standIn.days.filter((day) => day !== now).sort() : [];
|
|
123
|
+
});
|
|
124
|
+
/**
|
|
125
|
+
* Where a placeholder stands for its work: the checkout, then the narrowest thing it was cut to.
|
|
126
|
+
*
|
|
127
|
+
* Two of them may carry one name and mean two pieces of work, because a spec track and the branch
|
|
128
|
+
* that implements it are both called after the feature. One the user wrote by hand names no
|
|
129
|
+
* checkout, and this answers nothing for it.
|
|
130
|
+
*/
|
|
131
|
+
const standInWhere = (standIn) => {
|
|
132
|
+
var _a;
|
|
133
|
+
if (!standIn.openedFor)
|
|
134
|
+
return '';
|
|
135
|
+
const checkout = (_a = standIn.openedFor.split('/').filter(Boolean).pop()) !== null && _a !== void 0 ? _a : standIn.openedFor;
|
|
136
|
+
if (standIn.openedForWorkPath)
|
|
137
|
+
return `${checkout}, ${standIn.openedForWorkPath}`;
|
|
138
|
+
return standIn.openedForBranch ? `${checkout}, on ${standIn.openedForBranch}` : checkout;
|
|
139
|
+
};
|
|
140
|
+
const describeStandIn = (options) => {
|
|
141
|
+
const { standIn } = options;
|
|
142
|
+
const days = Math.floor((Date.now() - standIn.createdAtMs) / DAY_MS);
|
|
143
|
+
const project = standIn.projectKey ? ` in ${standIn.projectKey}` : '';
|
|
144
|
+
const where = standInWhere(standIn);
|
|
145
|
+
const held = wholeCheckoutHeld(options);
|
|
146
|
+
const lines = [
|
|
147
|
+
where ? `\n ${where}` : '',
|
|
148
|
+
held ? `\n covers all of ${held}, so no branch of it gets one of its own` : '',
|
|
149
|
+
];
|
|
150
|
+
return `${standIn.name}${project} ${days}d old, ${standIn.days.length} day(s) of work${lines.join('')}`;
|
|
151
|
+
};
|
|
152
|
+
const HOUR_MS = 60 * 60000;
|
|
153
|
+
const hours = (ms) => `${(ms / HOUR_MS).toFixed(1)}h`;
|
|
154
|
+
const DECLINE_LINES = {
|
|
155
|
+
'already-named': 'a rule already names an issue for it',
|
|
156
|
+
'named-by-stand-in': 'a rule names a placeholder for it, not an issue yet',
|
|
157
|
+
'no-project-link': 'no project link covers it',
|
|
158
|
+
'no-history': 'the project holds no Tempo worklog in the span',
|
|
159
|
+
'project-too-small': 'the project holds too little time to read a habit from',
|
|
160
|
+
'too-few-days': 'the leading issue spans too few days',
|
|
161
|
+
'share-too-low': 'the leading issue holds too small a share of the project',
|
|
162
|
+
};
|
|
163
|
+
const describeDecline = (decline) => {
|
|
164
|
+
var _a, _b, _c, _d;
|
|
165
|
+
const measured = decline.issueKey
|
|
166
|
+
? ` (${decline.issueKey} ${hours((_a = decline.loggedMs) !== null && _a !== void 0 ? _a : 0)} of ${hours((_b = decline.projectMs) !== null && _b !== void 0 ? _b : 0)}, ${Math.round(((_c = decline.share) !== null && _c !== void 0 ? _c : 0) * 100)}%, ${(_d = decline.days) !== null && _d !== void 0 ? _d : 0}d)`
|
|
167
|
+
: '';
|
|
168
|
+
return `${decline.repoPath} — ${DECLINE_LINES[decline.reason]}${measured}`;
|
|
169
|
+
};
|
|
170
|
+
const MINUTE_MS = 60000;
|
|
171
|
+
const clock = (ms) => new Date(ms).toTimeString().slice(0, 5);
|
|
172
|
+
const rowLine = (row) => {
|
|
173
|
+
var _a, _b, _c;
|
|
174
|
+
return [
|
|
175
|
+
row.id,
|
|
176
|
+
`${clock(row.fromMs)}-${clock(row.toMs)}`,
|
|
177
|
+
`${Math.round(row.durationMs / MINUTE_MS)}m`,
|
|
178
|
+
(_b = (_a = row.issueKey) !== null && _a !== void 0 ? _a : row.standInId) !== null && _b !== void 0 ? _b : 'unnamed',
|
|
179
|
+
row.state,
|
|
180
|
+
...(row.edited ? ['edited'] : []),
|
|
181
|
+
...(row.hidden ? ['hidden'] : []),
|
|
182
|
+
(_c = row.laneKey) !== null && _c !== void 0 ? _c : 'no lane',
|
|
183
|
+
].join(' ');
|
|
184
|
+
};
|
|
185
|
+
/** `--from` and `--to` take anything `Date` reads, so a caller may pass an ISO instant or a clock. */
|
|
186
|
+
const instantOf = (flag, raw) => {
|
|
187
|
+
const at = new Date(raw);
|
|
188
|
+
if (Number.isNaN(at.getTime()))
|
|
189
|
+
throw new Error(`${flag} takes a date, not ${raw}.`);
|
|
190
|
+
return at.getTime();
|
|
191
|
+
};
|
|
192
|
+
/** Which edits the flags name. `--from` with `--to` is the one pair that names a single change. */
|
|
193
|
+
const namedEdits = (argv) => {
|
|
194
|
+
const named = argv.includes('--from') || argv.includes('--to') ? ['--from/--to'] : [];
|
|
195
|
+
return [
|
|
196
|
+
...named,
|
|
197
|
+
...['--issue', '--description', '--state', '--hide', '--show', '--reset'].filter((flag) => argv.includes(flag)),
|
|
198
|
+
];
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* The one edit the flags state, or a refusal naming what they said instead.
|
|
202
|
+
*
|
|
203
|
+
* One edit per call, deliberately. A caller that means two changes to one row says so twice, and a
|
|
204
|
+
* flag combination nobody meant can then never be read as a third thing.
|
|
205
|
+
*/
|
|
206
|
+
const editOf = (options) => {
|
|
207
|
+
const { argv, rowId } = options;
|
|
208
|
+
const from = flagValue(argv, '--from');
|
|
209
|
+
const to = flagValue(argv, '--to');
|
|
210
|
+
const issueKey = flagValue(argv, '--issue');
|
|
211
|
+
const description = flagValue(argv, '--description');
|
|
212
|
+
const state = flagValue(argv, '--state');
|
|
213
|
+
const named = namedEdits(argv);
|
|
214
|
+
if (named.length > 1) {
|
|
215
|
+
throw new Error(`One edit per call, and these name ${named.length}: ${named.join(', ')}. Run the command once for each.`);
|
|
216
|
+
}
|
|
217
|
+
if (from && to)
|
|
218
|
+
return { kind: 'range', rowId, fromMs: instantOf('--from', from), toMs: instantOf('--to', to) };
|
|
219
|
+
if (from || to)
|
|
220
|
+
throw new Error('Moving a row takes both --from and --to.');
|
|
221
|
+
if (issueKey)
|
|
222
|
+
return { kind: 'issue', rowId, issueKey: issueKey.toUpperCase() };
|
|
223
|
+
if (description !== undefined)
|
|
224
|
+
return { kind: 'description', rowId, description };
|
|
225
|
+
if (state) {
|
|
226
|
+
if (state !== 'accepted' && state !== 'rejected')
|
|
227
|
+
throw new Error(`--state takes accepted or rejected, not ${state}.`);
|
|
228
|
+
return { kind: 'state', rowId, state };
|
|
229
|
+
}
|
|
230
|
+
if (argv.includes('--hide'))
|
|
231
|
+
return { kind: 'hidden', rowId, hidden: true };
|
|
232
|
+
if (argv.includes('--show'))
|
|
233
|
+
return { kind: 'hidden', rowId, hidden: false };
|
|
234
|
+
if (argv.includes('--reset'))
|
|
235
|
+
return { kind: 'reset', rowId };
|
|
236
|
+
throw new Error('Pass one of --from with --to, --issue, --description, --state, --hide, --show or --reset.');
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* Writes an export nobody but its owner can read.
|
|
240
|
+
*
|
|
241
|
+
* A day's events are the rawest personal record the app holds, and the recommended destination is a
|
|
242
|
+
* shared temporary directory. The file therefore carries mode `0600` from the moment it exists, rather
|
|
243
|
+
* than whatever the umask leaves. `lstatSync` reads the name itself, so a symlink somebody else planted
|
|
244
|
+
* is refused rather than written through, and exclusive creation refuses one that arrives after the
|
|
245
|
+
* check.
|
|
246
|
+
*/
|
|
247
|
+
const writeExport = (options) => {
|
|
248
|
+
const { path, data, overwrite } = options;
|
|
249
|
+
const found = (0, fs_1.lstatSync)(path, { throwIfNoEntry: false });
|
|
250
|
+
if (found && !overwrite) {
|
|
251
|
+
throw new Error(`${path} already exists. Pass --overwrite to replace it, or name another file.`);
|
|
252
|
+
}
|
|
253
|
+
if (found && !found.isFile())
|
|
254
|
+
throw new Error(`${path} is not a regular file, so it is not overwritten.`);
|
|
255
|
+
if (found)
|
|
256
|
+
(0, fs_1.unlinkSync)(path);
|
|
257
|
+
const handle = (0, fs_1.openSync)(path, 'wx', 0o600);
|
|
258
|
+
try {
|
|
259
|
+
(0, fs_1.writeSync)(handle, data);
|
|
260
|
+
}
|
|
261
|
+
finally {
|
|
262
|
+
(0, fs_1.closeSync)(handle);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
/** `--json` answers data, never a terminal-formatted line, so it is printed as it parses. */
|
|
50
266
|
const printed = (value, json) => {
|
|
51
267
|
if (json)
|
|
52
268
|
console.log(JSON.stringify(value, null, 2));
|
|
53
269
|
return 0;
|
|
54
270
|
};
|
|
271
|
+
/**
|
|
272
|
+
* Cuts a placeholder that covered a whole checkout into one per directory its commits worked in.
|
|
273
|
+
*
|
|
274
|
+
* The directories are read here rather than in the app: a commit collected before Timetrack recorded
|
|
275
|
+
* file paths carries none in the store, and that is every commit such a placeholder covers. Without
|
|
276
|
+
* `--force` the plan is printed and nothing is written.
|
|
277
|
+
*/
|
|
278
|
+
const splitStandIn = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
279
|
+
var _a, _b, _c, _d;
|
|
280
|
+
const { id, argv, json } = options;
|
|
281
|
+
const standIn = (yield (0, timetrack_1.timetrackStandIns)()).find((entry) => entry.id === id);
|
|
282
|
+
if (!standIn) {
|
|
283
|
+
say(`Timetrack holds no stand-in ${id}.`);
|
|
284
|
+
return 1;
|
|
285
|
+
}
|
|
286
|
+
const repoPath = flagValue(argv, '--repo');
|
|
287
|
+
const checkout = (_a = standIn.openedFor) !== null && _a !== void 0 ? _a : repoPath;
|
|
288
|
+
if (!checkout) {
|
|
289
|
+
say(`${id} names no checkout, so nothing says where its directories are. Name one with --repo <dir>.`);
|
|
290
|
+
return 1;
|
|
291
|
+
}
|
|
292
|
+
const branch = (_b = flagValue(argv, '--branch')) !== null && _b !== void 0 ? _b : (0, git_1.currentBranch)(checkout);
|
|
293
|
+
const author = (_c = flagValue(argv, '--author')) !== null && _c !== void 0 ? _c : (0, git_1.commitAuthorOf)(checkout);
|
|
294
|
+
const commits = (0, git_1.commitPathsOnDays)(Object.assign({ root: checkout, days: standIn.days }, (author ? { author } : {})));
|
|
295
|
+
if (!commits.length) {
|
|
296
|
+
say(`No commit of ${checkout} falls on ${standIn.days.join(', ')}, so nothing says how to split it.`);
|
|
297
|
+
return 1;
|
|
298
|
+
}
|
|
299
|
+
const paths = ((_d = flagValue(argv, '--paths')) !== null && _d !== void 0 ? _d : '')
|
|
300
|
+
.split(',')
|
|
301
|
+
.map((path) => path.trim())
|
|
302
|
+
.filter(Boolean);
|
|
303
|
+
const claim = flagValue(argv, '--claim');
|
|
304
|
+
const apply = argv.includes('--force');
|
|
305
|
+
const projectRoots = (0, git_1.projectRootsOf)(checkout);
|
|
306
|
+
const answer = yield (0, timetrack_1.timetrackSplitStandIn)({
|
|
307
|
+
id,
|
|
308
|
+
branch,
|
|
309
|
+
repoPath,
|
|
310
|
+
commits,
|
|
311
|
+
projectRoots,
|
|
312
|
+
paths,
|
|
313
|
+
claim,
|
|
314
|
+
apply,
|
|
315
|
+
});
|
|
316
|
+
if (!json) {
|
|
317
|
+
say(`${standIn.name} ${standIn.days.length} day(s), branch ${branch}`);
|
|
318
|
+
say(`Directories the commits name (${answer.candidates.length})`);
|
|
319
|
+
answer.candidates.forEach((piece) => say(` ${piece.workPath} ${piece.commits}c ${piece.days.join(', ')}`));
|
|
320
|
+
if (!answer.pieces.length) {
|
|
321
|
+
say('None of them is an automatic grain. Pick the pieces with --paths <dir>,<dir>.');
|
|
322
|
+
}
|
|
323
|
+
else if (apply) {
|
|
324
|
+
say(`Split into ${answer.pieces.length}, and the rule that named it rewritten one per directory.`);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
say(`Would write ${answer.pieces.map((piece) => piece.workPath).join(', ')}. Pass --force to carry it out.`);
|
|
328
|
+
}
|
|
329
|
+
if (claim) {
|
|
330
|
+
const covered = new Set(answer.pieces.flatMap((piece) => piece.days));
|
|
331
|
+
const left = standIn.days.filter((day) => !covered.has(day));
|
|
332
|
+
say(left.length
|
|
333
|
+
? `${claim} takes ${left.join(', ')}.`
|
|
334
|
+
: `Every day already has a directory, so ${claim} takes none.`);
|
|
335
|
+
}
|
|
336
|
+
else if (answer.remainder.length) {
|
|
337
|
+
say(`No commit claims ${answer.remainder.join(', ')}, so those days go back to unnamed.`);
|
|
338
|
+
say('Name them in the day review, or re-run with --claim <dir> to give them a directory.');
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return printed(answer, json);
|
|
342
|
+
});
|
|
55
343
|
const USAGE = `ethlete-agents timetrack — ask the running Timetrack app about Jira
|
|
56
344
|
|
|
57
345
|
The app holds this machine's Jira credentials, so no repository needs a token of its own.
|
|
@@ -64,6 +352,19 @@ The app holds this machine's Jira credentials, so no repository needs a token of
|
|
|
64
352
|
timetrack create --summary … File a new issue with the instance's own ticket settings
|
|
65
353
|
timetrack log --issue <KEY> --minutes <n>
|
|
66
354
|
Add a row nothing observed to the day it belongs to
|
|
355
|
+
timetrack day [YYYY-MM-DD] The evidence a day holds, which the encrypted store hides otherwise
|
|
356
|
+
timetrack rows [YYYY-MM-DD] The rows the day drew, with the ids an edit names them by
|
|
357
|
+
timetrack edit <row-id> … Change one row of a day: its times, its name, its note or its state
|
|
358
|
+
timetrack rules The rules that name a day's work: attribution, project links, apps
|
|
359
|
+
timetrack standins The names the user gave work Jira does not hold yet, and their age
|
|
360
|
+
timetrack standins --remove <id>
|
|
361
|
+
Delete one placeholder, and the rule that named it
|
|
362
|
+
timetrack standins --rename <id> --name <text>
|
|
363
|
+
Give one placeholder another name, keeping its days and its rules
|
|
364
|
+
timetrack standins --split <id> [--repo <dir>] [--paths <dir>,<dir>] [--claim <dir>] [--author <email>]
|
|
365
|
+
[--force]
|
|
366
|
+
Cut one that covered a whole checkout into one per directory
|
|
367
|
+
timetrack naming [YYYY-MM-DD] Which checkouts the day offers a name for, and why the rest do not
|
|
67
368
|
|
|
68
369
|
Options for search
|
|
69
370
|
--project <KEY> Search this project instead of the picked ones
|
|
@@ -84,6 +385,21 @@ Options for log
|
|
|
84
385
|
--at <date> When the work started (default: now)
|
|
85
386
|
--description <text>
|
|
86
387
|
|
|
388
|
+
Options for day
|
|
389
|
+
--out <path> Write the raw answer to a new file, readable by you alone
|
|
390
|
+
--overwrite Replace the file --out names, which is refused otherwise
|
|
391
|
+
|
|
392
|
+
Options for edit — pass exactly one change
|
|
393
|
+
--day <YYYY-MM-DD> The day the row is on (default: today)
|
|
394
|
+
--from <date> --to <date>
|
|
395
|
+
Move the row, or drag one of its ends
|
|
396
|
+
--issue <KEY> Name the row
|
|
397
|
+
--description <text>
|
|
398
|
+
--state <accepted|rejected>
|
|
399
|
+
--hide Take it off the timeline
|
|
400
|
+
--show Put it back
|
|
401
|
+
--reset Give the app's own row back
|
|
402
|
+
|
|
87
403
|
Options everywhere
|
|
88
404
|
--json Print the raw answer instead of lines
|
|
89
405
|
`;
|
|
@@ -95,27 +411,29 @@ Options everywhere
|
|
|
95
411
|
* one per checkout.
|
|
96
412
|
*/
|
|
97
413
|
const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
414
|
+
var _a;
|
|
98
415
|
const { root, argv } = options;
|
|
99
416
|
const [subcommand, value] = positionalArgs(argv);
|
|
100
417
|
const json = argv.includes('--json');
|
|
101
418
|
if (subcommand === 'status') {
|
|
102
419
|
const status = yield (0, timetrack_1.timetrackStatus)();
|
|
103
420
|
if (!json) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
421
|
+
say(`Timetrack ${(0, timetrack_1.timetrackDiscoveryPath)()}`);
|
|
422
|
+
say(` jira ${status.jiraReady ? 'configured' : 'not configured — set it in Timetrack Settings'}`);
|
|
423
|
+
say(` tempo ${status.tempoReady ? 'configured' : 'not configured — no worklog history is read'}`);
|
|
424
|
+
say(` projects ${status.projects.map((project) => project.key).join(', ') || '— none picked'}`);
|
|
425
|
+
say(` subject ${status.subjectField || '— no field configured, the summary is used'}`);
|
|
108
426
|
}
|
|
109
427
|
return printed(status, json);
|
|
110
428
|
}
|
|
111
429
|
if (subcommand === 'instance') {
|
|
112
430
|
const instance = yield (0, timetrack_1.timetrackInstance)();
|
|
113
431
|
if (!json) {
|
|
114
|
-
|
|
115
|
-
instance.levels.forEach((level) =>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
instance.subjectFieldCandidates.forEach((field) =>
|
|
432
|
+
say('Levels, highest first');
|
|
433
|
+
instance.levels.forEach((level) => say(` ${level.hierarchyLevel} ${level.typeNames.join(', ')}`));
|
|
434
|
+
say(`A parent can be named by ${instance.suggestedParenting}`);
|
|
435
|
+
say(`Branch-subject candidates (${instance.subjectFieldCandidates.length})`);
|
|
436
|
+
instance.subjectFieldCandidates.forEach((field) => say(` ${field.id} ${field.name}`));
|
|
119
437
|
}
|
|
120
438
|
return printed(instance, json);
|
|
121
439
|
}
|
|
@@ -124,7 +442,7 @@ const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
124
442
|
throw new Error('Pass an issue key, e.g. `ethlete-agents timetrack issue FIP-2177`.');
|
|
125
443
|
const issue = yield (0, timetrack_1.timetrackIssue)(value);
|
|
126
444
|
if (!json)
|
|
127
|
-
|
|
445
|
+
say(issueLine(issue));
|
|
128
446
|
return printed(issue, json);
|
|
129
447
|
}
|
|
130
448
|
if (subcommand === 'search') {
|
|
@@ -136,8 +454,8 @@ const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
136
454
|
});
|
|
137
455
|
if (!json) {
|
|
138
456
|
if (issues.length === 0)
|
|
139
|
-
|
|
140
|
-
issues.forEach((issue) =>
|
|
457
|
+
say('No issue matches.');
|
|
458
|
+
issues.forEach((issue) => say(issueLine(issue)));
|
|
141
459
|
}
|
|
142
460
|
return printed(issues, json);
|
|
143
461
|
}
|
|
@@ -146,14 +464,14 @@ const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
146
464
|
if (!json) {
|
|
147
465
|
const where = found.inherited ? ' (from a directory above it)' : '';
|
|
148
466
|
if (found.private)
|
|
149
|
-
|
|
467
|
+
say(`${found.repoPath} is marked private — work there is logged nowhere${where}.`);
|
|
150
468
|
else if (found.projectKey)
|
|
151
|
-
|
|
469
|
+
say(`${found.repoPath} logs into ${found.projectKey}${where}.`);
|
|
152
470
|
else if (found.suggestedProjectKey) {
|
|
153
|
-
|
|
471
|
+
say(`${found.repoPath} is linked to nothing. Its name suggests ${found.suggestedProjectKey}.`);
|
|
154
472
|
}
|
|
155
473
|
else
|
|
156
|
-
|
|
474
|
+
say(`${found.repoPath} is linked to no project. Link it in Timetrack Settings.`);
|
|
157
475
|
}
|
|
158
476
|
return printed(found, json);
|
|
159
477
|
}
|
|
@@ -170,7 +488,7 @@ const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
170
488
|
subject: flagValue(argv, '--subject'),
|
|
171
489
|
});
|
|
172
490
|
if (!json)
|
|
173
|
-
|
|
491
|
+
say(`${issue.key} ${summary}`);
|
|
174
492
|
return printed(issue, json);
|
|
175
493
|
}
|
|
176
494
|
if (subcommand === 'log') {
|
|
@@ -187,12 +505,123 @@ const timetrackCommand = (options) => tslib_1.__awaiter(void 0, void 0, void 0,
|
|
|
187
505
|
durationMs: Math.round(minutes * 60000),
|
|
188
506
|
});
|
|
189
507
|
if (!json) {
|
|
190
|
-
|
|
191
|
-
|
|
508
|
+
say(`${worklog.issueKey} ${minutes}m on ${worklog.day}`);
|
|
509
|
+
say('It is a row on the day, not a Tempo entry — review the day in Timetrack, then sync it.');
|
|
192
510
|
}
|
|
193
511
|
return printed(worklog, json);
|
|
194
512
|
}
|
|
195
|
-
|
|
513
|
+
if (subcommand === 'day') {
|
|
514
|
+
const day = value !== null && value !== void 0 ? value : today();
|
|
515
|
+
if (!DAY.test(day))
|
|
516
|
+
throw new Error(`Pass a day as YYYY-MM-DD, not ${day}.`);
|
|
517
|
+
const found = yield (0, timetrack_1.timetrackDayEvents)(day);
|
|
518
|
+
const out = flagValue(argv, '--out');
|
|
519
|
+
if (out) {
|
|
520
|
+
writeExport({ path: out, data: JSON.stringify(found), overwrite: argv.includes('--overwrite') });
|
|
521
|
+
say(`${found.day} ${found.events.length} events written to ${out}, readable by you alone`);
|
|
522
|
+
say('It holds the day as it was observed: window titles, paths and messages. Delete it when you are done.');
|
|
523
|
+
return 0;
|
|
524
|
+
}
|
|
525
|
+
if (!json) {
|
|
526
|
+
say(`${found.day} ${found.events.length} events`);
|
|
527
|
+
countByKind(found.events).forEach(([kind, count]) => say(` ${kind} ${count}`));
|
|
528
|
+
say('Pass --out <path> to write the events themselves, which are far too many to read.');
|
|
529
|
+
}
|
|
530
|
+
return printed(found, json);
|
|
531
|
+
}
|
|
532
|
+
if (subcommand === 'rows') {
|
|
533
|
+
const day = value !== null && value !== void 0 ? value : today();
|
|
534
|
+
if (!DAY.test(day))
|
|
535
|
+
throw new Error(`Pass a day as YYYY-MM-DD, not ${day}.`);
|
|
536
|
+
const found = yield (0, timetrack_1.timetrackDayRows)(day);
|
|
537
|
+
if (!json) {
|
|
538
|
+
say(`${found.day} ${hours(found.loggedMs)} logged of a ${hours(found.targetMs)} target`);
|
|
539
|
+
found.rows.forEach((row) => say(` ${rowLine(row)}`));
|
|
540
|
+
found.hidden.forEach((row) => say(` ${rowLine(row)}`));
|
|
541
|
+
found.warnings.forEach((warning) => say(` ! ${warning.kind}: ${warning.detail}`));
|
|
542
|
+
}
|
|
543
|
+
return printed(found, json);
|
|
544
|
+
}
|
|
545
|
+
if (subcommand === 'edit') {
|
|
546
|
+
const day = (_a = flagValue(argv, '--day')) !== null && _a !== void 0 ? _a : today();
|
|
547
|
+
if (!value)
|
|
548
|
+
throw new Error('Pass the row id to edit, as `timetrack rows` prints it.');
|
|
549
|
+
if (!DAY.test(day))
|
|
550
|
+
throw new Error(`Pass a day as YYYY-MM-DD, not ${day}.`);
|
|
551
|
+
const edited = yield (0, timetrack_1.timetrackEditDay)({ day, edits: [editOf({ argv, rowId: value })] });
|
|
552
|
+
if (!json) {
|
|
553
|
+
say(`${edited.day} ${edited.applied} of 1 edit landed`);
|
|
554
|
+
edited.rows.forEach((row) => say(` ${rowLine(row)}`));
|
|
555
|
+
edited.warnings.forEach((warning) => say(` ! ${warning.kind}: ${warning.detail}`));
|
|
556
|
+
}
|
|
557
|
+
return printed(edited, json);
|
|
558
|
+
}
|
|
559
|
+
if (subcommand === 'rules') {
|
|
560
|
+
const rules = yield (0, timetrack_1.timetrackRules)();
|
|
561
|
+
if (!json) {
|
|
562
|
+
say(`target ${Math.round(rules.dayTargetMs / 60000)}m day starts at ${rules.dayStartHour}:00`);
|
|
563
|
+
say(`${rules.attributionRules.length} attribution rule(s)`);
|
|
564
|
+
rules.attributionRules.forEach((rule) => say(` ${describeRule(rule)}`));
|
|
565
|
+
say(`${rules.projectLinks.length} project link(s)`);
|
|
566
|
+
rules.projectLinks.forEach((link) => { var _a; return say(` ${link.path} → ${link.private ? 'private' : ((_a = link.projectKey) !== null && _a !== void 0 ? _a : 'no project')}`); });
|
|
567
|
+
}
|
|
568
|
+
return printed(rules, json);
|
|
569
|
+
}
|
|
570
|
+
if (subcommand === 'naming') {
|
|
571
|
+
const day = value && DAY.test(value) ? value : today();
|
|
572
|
+
const naming = yield (0, timetrack_1.timetrackNaming)(day);
|
|
573
|
+
if (!json) {
|
|
574
|
+
say(`${day} tempo ${naming.tempoReady ? 'configured' : 'not configured'}`);
|
|
575
|
+
say(`History ${naming.history}, ${naming.historyWorklogs} worklog(s) in the span`);
|
|
576
|
+
if (naming.historyMessage)
|
|
577
|
+
say(` ${naming.historyMessage}`);
|
|
578
|
+
say(`Offered (${naming.offers.length})`);
|
|
579
|
+
naming.offers.forEach((offer) => say(` ${offer.repoPath} → ${offer.issueKey} ${hours(offer.loggedMs)}, ${Math.round(offer.share * 100)}%, ${offer.days}d`));
|
|
580
|
+
say(`Not offered (${naming.declines.length})`);
|
|
581
|
+
naming.declines.forEach((decline) => say(` ${describeDecline(decline)}`));
|
|
582
|
+
}
|
|
583
|
+
return printed(naming, json);
|
|
584
|
+
}
|
|
585
|
+
if (subcommand === 'standins') {
|
|
586
|
+
const split = flagValue(argv, '--split');
|
|
587
|
+
if (split)
|
|
588
|
+
return yield splitStandIn({ id: split, argv, json });
|
|
589
|
+
const rename = flagValue(argv, '--rename');
|
|
590
|
+
const name = flagValue(argv, '--name');
|
|
591
|
+
if (rename && !name) {
|
|
592
|
+
say(`A rename needs the new name. Pass --name <text> with --rename ${rename}.`);
|
|
593
|
+
return 1;
|
|
594
|
+
}
|
|
595
|
+
if (rename && name) {
|
|
596
|
+
const renamed = yield (0, timetrack_1.timetrackRenameStandIn)({ id: rename, name });
|
|
597
|
+
if (!json)
|
|
598
|
+
say(`Renamed ${rename} to ${name}.`);
|
|
599
|
+
return printed(renamed, json);
|
|
600
|
+
}
|
|
601
|
+
const remove = flagValue(argv, '--remove');
|
|
602
|
+
const stranded = remove ? yield strandedDays(remove) : [];
|
|
603
|
+
if (stranded.length && !argv.includes('--force')) {
|
|
604
|
+
say(`${remove} holds ${stranded.length} day(s) before today: ${stranded.join(', ')}.`);
|
|
605
|
+
say('Deleting it takes the rule with it, so those days read as unnamed and nothing reopens them.');
|
|
606
|
+
say('The app reopens a placeholder for today only. Pass --force if that is what you want.');
|
|
607
|
+
return 1;
|
|
608
|
+
}
|
|
609
|
+
const standIns = remove ? yield (0, timetrack_1.timetrackRemoveStandIn)(remove) : yield (0, timetrack_1.timetrackStandIns)();
|
|
610
|
+
const rules = json ? [] : (yield (0, timetrack_1.timetrackRules)()).attributionRules;
|
|
611
|
+
const open = standIns
|
|
612
|
+
.filter((standIn) => standIn.state === 'open')
|
|
613
|
+
.sort((left, right) => left.createdAtMs - right.createdAtMs);
|
|
614
|
+
if (!json) {
|
|
615
|
+
if (remove)
|
|
616
|
+
say(`Deleted ${remove}, and the rule that named it.`);
|
|
617
|
+
say(`${open.length} open, ${standIns.length - open.length} resolved`);
|
|
618
|
+
open.forEach((standIn) => say(` ${describeStandIn({ standIn, rules })}`));
|
|
619
|
+
if (open.length)
|
|
620
|
+
say('Only the app opens or resolves one — you may delete one, not write one.');
|
|
621
|
+
}
|
|
622
|
+
return printed(standIns, json);
|
|
623
|
+
}
|
|
624
|
+
say(USAGE);
|
|
196
625
|
return subcommand === undefined || subcommand === '--help' || subcommand === '-h' ? 0 : 1;
|
|
197
626
|
});
|
|
198
627
|
exports.timetrackCommand = timetrackCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timetrack-command.js","sourceRoot":"","sources":["../../../../../libs/agent-rules/src/lib/timetrack-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timetrack-command.js","sourceRoot":"","sources":["../../../../../libs/agent-rules/src/lib/timetrack-command.ts"],"names":[],"mappings":"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"}
|