@ethlete/agent-rules 0.1.0-next.0 → 0.1.0-next.10
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 +102 -0
- package/README.md +363 -16
- package/content/git-hooks/post-checkout.sh +10 -0
- package/content/git-hooks/pre-push.sh +5 -0
- package/content/hooks/context-warning.py +430 -0
- package/content/output-styles/ste-clarity.md +131 -0
- package/content/rules/comments.md +50 -20
- package/content/skills/angular-patterns/SKILL.md +1 -1
- package/content/skills/api-source/SKILL.md +118 -0
- package/content/skills/figma-export/SKILL.md +193 -0
- package/content/skills/figma-export/dump-figma-layers.py +83 -0
- package/content/skills/figma-export/dump-figma-svg.py +235 -0
- package/content/skills/figma-export/measure-template.mjs +87 -0
- package/content/skills/git-commit/SKILL.md +6 -7
- package/content/skills/git-flow/SKILL.md +87 -0
- package/content/skills/handoff/SKILL.md +4 -0
- package/content/skills/query/SKILL.md +23 -13
- package/content/skills/rxjs-signals/SKILL.md +1 -1
- package/content/skills/sdk-docs/SKILL.md +10 -2
- package/content/skills/sdk-local-build/SKILL.md +115 -0
- package/content/skills/sdk-source/SKILL.md +133 -0
- package/content/skills/styleguide/STYLEGUIDE.md +2 -2
- package/content/skills/theming/SKILL.md +1 -1
- package/content/skills/timetrack/SKILL.md +66 -0
- package/package.json +12 -1
- package/src/index.js +35 -14
- package/src/index.js.map +1 -1
- package/src/lib/commitlint.d.ts +10 -0
- package/src/lib/commitlint.js +51 -0
- package/src/lib/commitlint.js.map +1 -0
- package/src/lib/config.d.ts +64 -2
- package/src/lib/config.js +54 -9
- package/src/lib/config.js.map +1 -1
- package/src/lib/git-flow/build.d.ts +35 -0
- package/src/lib/git-flow/build.js +24 -0
- package/src/lib/git-flow/build.js.map +1 -0
- package/src/lib/git-flow/config.d.ts +59 -0
- package/src/lib/git-flow/config.js +50 -0
- package/src/lib/git-flow/config.js.map +1 -0
- package/src/lib/git-flow/index.d.ts +6 -0
- package/src/lib/git-flow/index.js +10 -0
- package/src/lib/git-flow/index.js.map +1 -0
- package/src/lib/git-flow/parse.d.ts +49 -0
- package/src/lib/git-flow/parse.js +274 -0
- package/src/lib/git-flow/parse.js.map +1 -0
- package/src/lib/git-flow/rename.d.ts +24 -0
- package/src/lib/git-flow/rename.js +70 -0
- package/src/lib/git-flow/rename.js.map +1 -0
- package/src/lib/git-flow/start.d.ts +49 -0
- package/src/lib/git-flow/start.js +57 -0
- package/src/lib/git-flow/start.js.map +1 -0
- package/src/lib/git-flow/validate.d.ts +34 -0
- package/src/lib/git-flow/validate.js +72 -0
- package/src/lib/git-flow/validate.js.map +1 -0
- package/src/lib/git-flow-command.d.ts +4 -0
- package/src/lib/git-flow-command.js +157 -0
- package/src/lib/git-flow-command.js.map +1 -0
- package/src/lib/git-flow-repair.d.ts +17 -0
- package/src/lib/git-flow-repair.js +146 -0
- package/src/lib/git-flow-repair.js.map +1 -0
- package/src/lib/git-flow-start.d.ts +20 -0
- package/src/lib/git-flow-start.js +132 -0
- package/src/lib/git-flow-start.js.map +1 -0
- package/src/lib/git.d.ts +27 -0
- package/src/lib/git.js +49 -0
- package/src/lib/git.js.map +1 -0
- package/src/lib/gitlab.d.ts +35 -0
- package/src/lib/gitlab.js +98 -0
- package/src/lib/gitlab.js.map +1 -0
- package/src/lib/index.d.ts +2 -0
- package/src/lib/index.js +2 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/migrate.d.ts +6 -0
- package/src/lib/migrate.js +155 -0
- package/src/lib/migrate.js.map +1 -0
- package/src/lib/output-style-command.d.ts +3 -0
- package/src/lib/output-style-command.js +69 -0
- package/src/lib/output-style-command.js.map +1 -0
- package/src/lib/output-style.d.ts +38 -0
- package/src/lib/output-style.js +126 -0
- package/src/lib/output-style.js.map +1 -0
- package/src/lib/owned-paths.js +22 -1
- package/src/lib/owned-paths.js.map +1 -1
- package/src/lib/plan.d.ts +4 -1
- package/src/lib/plan.js +141 -8
- package/src/lib/plan.js.map +1 -1
- package/src/lib/prompt.d.ts +8 -0
- package/src/lib/prompt.js +27 -0
- package/src/lib/prompt.js.map +1 -0
- package/src/lib/render.d.ts +20 -2
- package/src/lib/render.js +31 -8
- package/src/lib/render.js.map +1 -1
- package/src/lib/sync.d.ts +0 -1
- package/src/lib/sync.js +8 -2
- package/src/lib/sync.js.map +1 -1
- package/src/lib/targets/agents-skills.d.ts +8 -0
- package/src/lib/targets/agents-skills.js +18 -0
- package/src/lib/targets/agents-skills.js.map +1 -0
- package/src/lib/targets/claude-hooks.d.ts +11 -0
- package/src/lib/targets/claude-hooks.js +28 -0
- package/src/lib/targets/claude-hooks.js.map +1 -0
- package/src/lib/targets/claude.d.ts +3 -1
- package/src/lib/targets/claude.js +14 -21
- package/src/lib/targets/claude.js.map +1 -1
- package/src/lib/targets/codex-hooks.d.ts +12 -0
- package/src/lib/targets/codex-hooks.js +33 -0
- package/src/lib/targets/codex-hooks.js.map +1 -0
- package/src/lib/targets/codex.d.ts +5 -3
- package/src/lib/targets/codex.js +9 -8
- package/src/lib/targets/codex.js.map +1 -1
- package/src/lib/targets/copilot.d.ts +3 -3
- package/src/lib/targets/copilot.js +6 -29
- package/src/lib/targets/copilot.js.map +1 -1
- package/src/lib/targets/cursor.d.ts +3 -3
- package/src/lib/targets/cursor.js +7 -12
- package/src/lib/targets/cursor.js.map +1 -1
- package/src/lib/targets/git-hooks.d.ts +24 -0
- package/src/lib/targets/git-hooks.js +70 -0
- package/src/lib/targets/git-hooks.js.map +1 -0
- package/src/lib/targets/hooks-shared.d.ts +37 -0
- package/src/lib/targets/hooks-shared.js +95 -0
- package/src/lib/targets/hooks-shared.js.map +1 -0
- package/src/lib/targets/shared.d.ts +22 -13
- package/src/lib/targets/shared.js +32 -15
- package/src/lib/targets/shared.js.map +1 -1
- package/src/lib/timetrack-command.d.ts +11 -0
- package/src/lib/timetrack-command.js +199 -0
- package/src/lib/timetrack-command.js.map +1 -0
- package/src/lib/timetrack.d.ts +86 -0
- package/src/lib/timetrack.js +112 -0
- package/src/lib/timetrack.js.map +1 -0
- package/src/lib/targets/neutral.d.ts +0 -8
- package/src/lib/targets/neutral.js +0 -29
- package/src/lib/targets/neutral.js.map +0 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timetrackAddWorklog = exports.timetrackCreateIssue = exports.timetrackRepoProject = exports.timetrackSearch = exports.timetrackIssue = exports.timetrackInstance = exports.timetrackStatus = exports.askTimetrack = exports.timetrackDiscoveryPath = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
/** The Timetrack app's bundle identifier, which is also the name of its data directory. */
|
|
9
|
+
const IDENTIFIER = 'io.ethlete.timetrack';
|
|
10
|
+
const DISCOVERY_FILENAME = 'agent.json';
|
|
11
|
+
/**
|
|
12
|
+
* The contract version this client speaks. The app writes its own into the discovery file, and a
|
|
13
|
+
* mismatch stops here rather than at a field that is missing for a reason nobody can see.
|
|
14
|
+
*/
|
|
15
|
+
const PROTOCOL_VERSION = 1;
|
|
16
|
+
/** A Jira search behind a slow instance is the long case; the app's own deadline is 60 seconds. */
|
|
17
|
+
const TIMEOUT_MS = 70000;
|
|
18
|
+
const PATH = '/agent';
|
|
19
|
+
const NOT_RUNNING = [
|
|
20
|
+
'Timetrack is not running, so no Jira credentials are reachable.',
|
|
21
|
+
'Start the app — it holds the token for every repository on this machine — then try again.',
|
|
22
|
+
].join('\n');
|
|
23
|
+
/**
|
|
24
|
+
* Where the app writes the port and the token, which is its data directory on each platform.
|
|
25
|
+
*
|
|
26
|
+
* `TIMETRACK_AGENT_DISCOVERY` names the file directly, for a machine whose app data lives somewhere
|
|
27
|
+
* else and for a test.
|
|
28
|
+
*/
|
|
29
|
+
const timetrackDiscoveryPath = () => {
|
|
30
|
+
var _a, _b, _c;
|
|
31
|
+
const override = (_a = process.env['TIMETRACK_AGENT_DISCOVERY']) === null || _a === void 0 ? void 0 : _a.trim();
|
|
32
|
+
if (override)
|
|
33
|
+
return override;
|
|
34
|
+
const home = (0, os_1.homedir)();
|
|
35
|
+
if ((0, os_1.platform)() === 'darwin')
|
|
36
|
+
return (0, path_1.join)(home, 'Library', 'Application Support', IDENTIFIER, DISCOVERY_FILENAME);
|
|
37
|
+
if ((0, os_1.platform)() === 'win32') {
|
|
38
|
+
const appData = (_b = process.env['APPDATA']) === null || _b === void 0 ? void 0 : _b.trim();
|
|
39
|
+
return (0, path_1.join)(appData || (0, path_1.join)(home, 'AppData', 'Roaming'), IDENTIFIER, DISCOVERY_FILENAME);
|
|
40
|
+
}
|
|
41
|
+
const dataHome = (_c = process.env['XDG_DATA_HOME']) === null || _c === void 0 ? void 0 : _c.trim();
|
|
42
|
+
return (0, path_1.join)(dataHome || (0, path_1.join)(home, '.local', 'share'), IDENTIFIER, DISCOVERY_FILENAME);
|
|
43
|
+
};
|
|
44
|
+
exports.timetrackDiscoveryPath = timetrackDiscoveryPath;
|
|
45
|
+
const readDiscovery = () => {
|
|
46
|
+
const path = (0, exports.timetrackDiscoveryPath)();
|
|
47
|
+
if (!(0, fs_1.existsSync)(path))
|
|
48
|
+
throw new Error(NOT_RUNNING);
|
|
49
|
+
let parsed;
|
|
50
|
+
try {
|
|
51
|
+
parsed = JSON.parse((0, fs_1.readFileSync)(path, 'utf8'));
|
|
52
|
+
}
|
|
53
|
+
catch (_a) {
|
|
54
|
+
throw new Error(`${path} is not readable JSON. Restart Timetrack, which rewrites it at every start.`);
|
|
55
|
+
}
|
|
56
|
+
const discovery = parsed;
|
|
57
|
+
if (typeof discovery.port !== 'number' || typeof discovery.token !== 'string') {
|
|
58
|
+
throw new Error(`${path} names no port and token. Restart Timetrack, which rewrites it at every start.`);
|
|
59
|
+
}
|
|
60
|
+
if (discovery.version !== PROTOCOL_VERSION) {
|
|
61
|
+
throw new Error(`Timetrack speaks version ${discovery.version} of the agent contract and this CLI speaks ${PROTOCOL_VERSION}. Update whichever is older.`);
|
|
62
|
+
}
|
|
63
|
+
return { version: discovery.version, port: discovery.port, token: discovery.token };
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Asks the running Timetrack app to carry out one operation.
|
|
67
|
+
*
|
|
68
|
+
* It is the only way this package reaches Jira. The token lives in the app's keychain entry and in no
|
|
69
|
+
* repository, so a checkout an agent works in holds nothing worth stealing and nothing to rotate.
|
|
70
|
+
*/
|
|
71
|
+
const askTimetrack = (request) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
+
const discovery = readDiscovery();
|
|
73
|
+
let response;
|
|
74
|
+
try {
|
|
75
|
+
response = yield fetch(`http://127.0.0.1:${discovery.port}${PATH}`, {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
headers: { authorization: `Bearer ${discovery.token}`, 'content-type': 'application/json' },
|
|
78
|
+
body: JSON.stringify(request),
|
|
79
|
+
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (_a) {
|
|
83
|
+
// The file is there and the socket is not, which is what a discovery file left behind by an app
|
|
84
|
+
// that has since stopped looks like.
|
|
85
|
+
throw new Error(NOT_RUNNING);
|
|
86
|
+
}
|
|
87
|
+
if (response.status === 401) {
|
|
88
|
+
throw new Error('Timetrack refused the token. It writes a new one at every start — restart the app.');
|
|
89
|
+
}
|
|
90
|
+
if (!response.ok)
|
|
91
|
+
throw new Error(`Timetrack answered ${response.status} ${response.statusText}.`);
|
|
92
|
+
const answer = (yield response.json());
|
|
93
|
+
if (!answer.ok)
|
|
94
|
+
throw new Error(answer.message);
|
|
95
|
+
return answer.value;
|
|
96
|
+
});
|
|
97
|
+
exports.askTimetrack = askTimetrack;
|
|
98
|
+
const timetrackStatus = () => (0, exports.askTimetrack)({ op: 'status' });
|
|
99
|
+
exports.timetrackStatus = timetrackStatus;
|
|
100
|
+
const timetrackInstance = () => (0, exports.askTimetrack)({ op: 'jira.instance' });
|
|
101
|
+
exports.timetrackInstance = timetrackInstance;
|
|
102
|
+
const timetrackIssue = (key) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (yield (0, exports.askTimetrack)({ op: 'jira.issue', key })).issue; });
|
|
103
|
+
exports.timetrackIssue = timetrackIssue;
|
|
104
|
+
const timetrackSearch = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (yield (0, exports.askTimetrack)(Object.assign({ op: 'jira.search' }, options))).issues; });
|
|
105
|
+
exports.timetrackSearch = timetrackSearch;
|
|
106
|
+
const timetrackRepoProject = (repoPath) => (0, exports.askTimetrack)({ op: 'repo.project', repoPath });
|
|
107
|
+
exports.timetrackRepoProject = timetrackRepoProject;
|
|
108
|
+
const timetrackCreateIssue = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (yield (0, exports.askTimetrack)(Object.assign({ op: 'jira.create' }, options))).issue; });
|
|
109
|
+
exports.timetrackCreateIssue = timetrackCreateIssue;
|
|
110
|
+
const timetrackAddWorklog = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return (yield (0, exports.askTimetrack)(Object.assign({ op: 'worklog.add' }, options))).worklog; });
|
|
111
|
+
exports.timetrackAddWorklog = timetrackAddWorklog;
|
|
112
|
+
//# sourceMappingURL=timetrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timetrack.js","sourceRoot":"","sources":["../../../../../libs/agent-rules/src/lib/timetrack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EmitContext, EmittedFile } from './shared';
|
|
2
|
-
/**
|
|
3
|
-
* Plain markdown copies under `.agents/ethlete/`, with no agent-specific frontmatter. Codex,
|
|
4
|
-
* Cursor and Copilot all point at these for anything their own format cannot express — Codex has
|
|
5
|
-
* no on-demand mechanism at all, and neither Cursor nor Copilot can bundle a resource file
|
|
6
|
-
* alongside a rule.
|
|
7
|
-
*/
|
|
8
|
-
export declare const emitNeutral: (context: EmitContext) => EmittedFile[];
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emitNeutral = void 0;
|
|
4
|
-
const render_1 = require("../render");
|
|
5
|
-
const shared_1 = require("./shared");
|
|
6
|
-
/**
|
|
7
|
-
* Plain markdown copies under `.agents/ethlete/`, with no agent-specific frontmatter. Codex,
|
|
8
|
-
* Cursor and Copilot all point at these for anything their own format cannot express — Codex has
|
|
9
|
-
* no on-demand mechanism at all, and neither Cursor nor Copilot can bundle a resource file
|
|
10
|
-
* alongside a rule.
|
|
11
|
-
*/
|
|
12
|
-
const emitNeutral = (context) => {
|
|
13
|
-
const banner = (0, render_1.buildBanner)(context.version);
|
|
14
|
-
const files = [];
|
|
15
|
-
for (const item of context.skills) {
|
|
16
|
-
files.push({
|
|
17
|
-
path: (0, shared_1.neutralBodyPath)(item.frontmatter.name),
|
|
18
|
-
contents: (0, shared_1.document)([banner, (0, shared_1.body)({ item, context, links: (0, shared_1.neutralLinks)(context) })]),
|
|
19
|
-
});
|
|
20
|
-
files.push(...(0, shared_1.resourceFiles)({
|
|
21
|
-
item,
|
|
22
|
-
context,
|
|
23
|
-
pathFor: (fileName) => (0, shared_1.neutralResourcePath)({ skillName: item.frontmatter.name, fileName }),
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
return files;
|
|
27
|
-
};
|
|
28
|
-
exports.emitNeutral = emitNeutral;
|
|
29
|
-
//# sourceMappingURL=neutral.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"neutral.js","sourceRoot":"","sources":["../../../../../../libs/agent-rules/src/lib/targets/neutral.ts"],"names":[],"mappings":";;;AAAA,sCAAwC;AACxC,qCASkB;AAElB;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAiB,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAA,wBAAe,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,IAAA,iBAAQ,EAAC,CAAC,MAAM,EAAE,IAAA,aAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAA,qBAAY,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SACpF,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CACR,GAAG,IAAA,sBAAa,EAAC;YACf,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,4BAAmB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC3F,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AApBW,QAAA,WAAW,eAoBtB"}
|