@openagt/skill-github 0.1.2 → 0.1.3

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/SKILL.md CHANGED
@@ -23,6 +23,14 @@ It opens the pull request for the branch you are on and prints it in `request` (
23
23
 
24
24
  A pull request whose body has a line `Closes #<number>` closes that issue when it merges.
25
25
 
26
+ ## Commenting on a pull request
27
+
28
+ ```
29
+ npx @openagt/skill-github@0.1 comment <number> --body "<text>"
30
+ ```
31
+
32
+ It posts a new comment, opened with what you run on, so what you post is told apart from what people write.
33
+
26
34
  ## Reading pull requests and issues
27
35
 
28
36
  ```
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#D97757"><path d="m4.714 15.956l4.718-2.648l.079-.23l-.08-.128h-.23l-.79-.048l-2.695-.073l-2.337-.097l-2.265-.122l-.57-.121l-.535-.704l.055-.353l.48-.321l.685.06l1.518.104l2.277.157l1.651.098l2.447.255h.389l.054-.158l-.133-.097l-.103-.098l-2.356-1.596l-2.55-1.688l-1.336-.972l-.722-.491L2 6.223l-.158-1.008l.656-.722l.88.06l.224.061l.893.686l1.906 1.476l2.49 1.833l.364.304l.146-.104l.018-.072l-.164-.274l-1.354-2.446l-1.445-2.49l-.644-1.032l-.17-.619a3 3 0 0 1-.103-.729L6.287.133L6.7 0l.995.134l.42.364l.619 1.415L9.735 4.14l1.555 3.03l.455.898l.243.832l.09.255h.159V9.01l.127-1.706l.237-2.095l.23-2.695l.08-.76l.376-.91l.747-.492l.583.28l.48.685l-.067.444l-.286 1.851l-.558 2.903l-.365 1.942h.213l.243-.242l.983-1.306l1.652-2.064l.728-.82l.85-.904l.547-.431h1.032l.759 1.129l-.34 1.166l-1.063 1.347l-.88 1.142l-1.263 1.7l-.79 1.36l.074.11l.188-.02l2.853-.606l1.542-.28l1.84-.315l.832.388l.09.395l-.327.807l-1.967.486l-2.307.462l-3.436.813l-.043.03l.049.061l1.548.146l.662.036h1.62l3.018.225l.79.522l.473.638l-.08.485l-1.213.62l-1.64-.389l-3.825-.91l-1.31-.329h-.183v.11l1.093 1.068l2.003 1.81l2.508 2.33l.127.578l-.321.455l-.34-.049l-2.204-1.657l-.85-.747l-1.925-1.62h-.127v.17l.443.649l2.343 3.521l.122 1.08l-.17.353l-.607.213l-.668-.122l-1.372-1.924l-1.415-2.168l-1.141-1.943l-.14.08l-.674 7.254l-.316.37l-.728.28l-.607-.461l-.322-.747l.322-1.476l.388-1.924l.316-1.53l.285-1.9l.17-.632l-.012-.042l-.14.018l-1.432 1.967l-2.18 2.945l-1.724 1.845l-.413.164l-.716-.37l.066-.662l.401-.589l2.386-3.036l1.439-1.882l.929-1.086l-.006-.158h-.055L4.138 18.56l-1.13.146l-.485-.456l.06-.746l.231-.243l1.907-1.312Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#f0f6fc"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.0201 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#1f2328"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.0201 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"/></svg>
package/dist/cli.d.ts CHANGED
@@ -14,7 +14,7 @@ import { type GhRunner } from './gh.js';
14
14
  * Every command acts on the repository the working directory is in: `gh` finds the repository
15
15
  * and its remote from there, as it does for a person.
16
16
  */
17
- export declare const USAGE = "usage: github <command>\n\n requests [--branch <b>] [--state open|merged|all] [--since <iso>]\n the project's pull requests, newest first: number, url, state, title, draft, branch, head, createdAt, mergedAt, mergeCommit\n replies what came on the open pull requests this machine's agents opened, since each agent ended: maintainers' comments\n and reviews, checks that turned red, a conflict once the base branch moved; [{ run, text }], one per run, read\n from the project's run records; the check of a scheduler's row that resumes runs\n open [--branch <b>] --title <t> [--body <text>] [--draft] [--merge]\n open the pull request of branch <b> (default: the current branch; it must be on the remote already); an open one is answered as it is; --merge lands it on green\n merge <number> land pull request <number>: a draft is marked ready, then the merge is armed as --merge arms it\n watch <number> wait for pull request <number>'s checks and merge it once they pass; what --merge starts where the repository has no auto-merge\n home the project's page on GitHub, from its origin remote\n me who is signed in to GitHub through gh: login, name, avatar (a picture's https address)\n create [--check] create a private repository for a project with no origin, named <account>/<folder>, set it as origin and push;\n --check only says which repository that would be\n\nJSON on stdout. Exit code 1 for a refusal or a failure (the reason on stderr), 2 for a usage error.";
17
+ export declare const USAGE = "usage: github <command>\n\n requests [--branch <b>] [--state open|merged|all] [--since <iso>]\n the project's pull requests, newest first: number, url, state, title, draft, branch, head, createdAt, mergedAt, mergeCommit\n replies what came on the open pull requests this machine's agents opened, since each agent ended: maintainers' comments\n and reviews that call the agent with /agent, checks that turned red, a conflict once the base branch moved; [{ run, text }], one per run, read\n from the project's run records; the check of a scheduler's row that resumes runs\n comment <number> --body <text>\n post a comment on pull request <number>: its id and url. It opens with the coding agent's logo, the model and the effort, as the agent's\n run record says (found through AGENT_DIARY, which its runner sets), else the line \uD83E\uDD16 automated; a hidden mark after the text, so replies never counts it\n open [--branch <b>] --title <t> [--body <text>] [--draft] [--merge]\n open the pull request of branch <b> (default: the current branch; it must be on the remote already); an open one is answered as it is; --merge lands it on green\n merge <number> land pull request <number>: a draft is marked ready, then the merge is armed as --merge arms it\n watch <number> wait for pull request <number>'s checks and merge it once they pass; what --merge starts where the repository has no auto-merge\n home the project's page on GitHub, from its origin remote\n me who is signed in to GitHub through gh: login, name, avatar (a picture's https address)\n create [--check] create a private repository for a project with no origin, named <account>/<folder>, set it as origin and push;\n --check only says which repository that would be\n\nJSON on stdout. Exit code 1 for a refusal or a failure (the reason on stderr), 2 for a usage error.";
18
18
  /** The streams and the working directory a run of the CLI sees. */
19
19
  export interface CliIo {
20
20
  cwd: string;
@@ -27,6 +27,8 @@ export interface CliDeps {
27
27
  git?: GitRunner;
28
28
  /** Start the merge watcher for a request; the default starts this package's own process. */
29
29
  watch?: (repo: string, number: number) => Promise<void>;
30
+ /** The environment the command runs in; the default is this process's. */
31
+ env?: NodeJS.ProcessEnv;
30
32
  }
31
33
  /** A refusal: a rule said no, and the caller learns which. */
32
34
  export type CliRefusal = {
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAUrD;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,KAAK,0sDAgBkF,CAAA;AAEpG,mEAAmE;AACnE,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,4FAA4F;IAC5F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAY9E,2FAA2F;AAC3F,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B3F"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAWrD;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,KAAK,wnEAmBkF,CAAA;AAEpG,mEAAmE;AACnE,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,QAAQ,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,4FAA4F;IAC5F,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CACxB;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAY9E,2FAA2F;AAC3F,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B3F"}
package/dist/cli.js CHANGED
@@ -9,6 +9,7 @@ import { GIT_HOST_NAME, homeUrlFor } from './home.js';
9
9
  import { createRepository, offerRepository } from './create.js';
10
10
  import { signedIn } from './me.js';
11
11
  import { listReplies } from './replies.js';
12
+ import { DIARY_ENV, byline, writeComment } from './comment.js';
12
13
  /**
13
14
  * The command line over the package (#1820): the same functions for an agent in a shell, and for
14
15
  * OpenAgent and the scheduler, which run this command as the project's git host provider,
@@ -28,8 +29,11 @@ export const USAGE = `usage: github <command>
28
29
  requests [--branch <b>] [--state open|merged|all] [--since <iso>]
29
30
  the project's pull requests, newest first: number, url, state, title, draft, branch, head, createdAt, mergedAt, mergeCommit
30
31
  replies what came on the open pull requests this machine's agents opened, since each agent ended: maintainers' comments
31
- and reviews, checks that turned red, a conflict once the base branch moved; [{ run, text }], one per run, read
32
+ and reviews that call the agent with /agent, checks that turned red, a conflict once the base branch moved; [{ run, text }], one per run, read
32
33
  from the project's run records; the check of a scheduler's row that resumes runs
34
+ comment <number> --body <text>
35
+ post a comment on pull request <number>: its id and url. It opens with the coding agent's logo, the model and the effort, as the agent's
36
+ run record says (found through AGENT_DIARY, which its runner sets), else the line 🤖 automated; a hidden mark after the text, so replies never counts it
33
37
  open [--branch <b>] --title <t> [--body <text>] [--draft] [--merge]
34
38
  open the pull request of branch <b> (default: the current branch; it must be on the remote already); an open one is answered as it is; --merge lands it on green
35
39
  merge <number> land pull request <number>: a draft is marked ready, then the merge is armed as --merge arms it
@@ -61,7 +65,7 @@ export async function runCli(argv, io, deps = {}) {
61
65
  io.stderr(USAGE);
62
66
  return 2;
63
67
  }
64
- const context = { cwd: io.cwd, gh: deps.gh ?? nodeGhRunner(), git: deps.git ?? nodeGitRunner(), ...(deps.watch ? { watch: deps.watch } : {}), stderr: io.stderr };
68
+ const context = { cwd: io.cwd, gh: deps.gh ?? nodeGhRunner(), git: deps.git ?? nodeGitRunner(), ...(deps.watch ? { watch: deps.watch } : {}), env: deps.env ?? process.env, stderr: io.stderr };
65
69
  try {
66
70
  io.stdout(JSON.stringify(await run(rest, context)));
67
71
  return 0;
@@ -106,6 +110,19 @@ const COMMANDS = {
106
110
  throw new Refused({ ok: false, reason: 'git-host-failed', detail }, `the pull requests could not be read: ${detail}`);
107
111
  }
108
112
  },
113
+ async comment(args, { cwd, gh, env }) {
114
+ const { values, positionals } = parse(args, { body: { type: 'string' } }, 1);
115
+ if (values.body === undefined || !values.body.trim())
116
+ throw new Usage('--body is required: the text of the comment');
117
+ const number = numberArg(positionals[0]);
118
+ try {
119
+ return { ok: true, ...(await writeComment(cwd, number, values.body, await byline(env[DIARY_ENV]), gh)) };
120
+ }
121
+ catch (err) {
122
+ const detail = err instanceof Error ? err.message : String(err);
123
+ throw new Refused({ ok: false, reason: 'git-host-failed', detail }, `the comment could not be written: ${detail}`);
124
+ }
125
+ },
109
126
  async open(args, { cwd, gh, git, watch }) {
110
127
  const { values } = parse(args, { branch: { type: 'string' }, title: { type: 'string' }, body: { type: 'string' }, merge: { type: 'boolean' }, draft: { type: 'boolean' } }, 0);
111
128
  if (!values.title?.trim())
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { GhRunner } from './gh.js';
2
+ /**
3
+ * A comment on a pull request's thread: how an agent a row resumed answers there (#2042). Asked
4
+ * of GitHub's REST API through `gh`, in the repository the working directory is in.
5
+ *
6
+ * It opens with what wrote it: the coding agent's logo, the model and how hard it thought, as the
7
+ * agent's run record says, found through the log path its runner hands the agent (`AGENT_DIARY`).
8
+ * An agent with no run record behind it is said with the 🤖 line. The logos are this package's
9
+ * `assets`, at the version that wrote the comment, as the npm registry serves them through
10
+ * jsDelivr: a comment keeps its pictures however the package changes later.
11
+ */
12
+ /**
13
+ * The line every comment this command writes ends with, hidden from readers: what an agent
14
+ * writes here is posted with a person's account, and `replies` must never count it as theirs.
15
+ */
16
+ export declare const COMMENT_MARK = "<!-- openagent -->";
17
+ /** Where the agent's runner put its log: its run record is beside it. */
18
+ export declare const DIARY_ENV = "AGENT_DIARY";
19
+ /** Where this package's pictures are served from: its own version's, on the npm registry. */
20
+ export declare const ASSETS_URL: string;
21
+ /**
22
+ * The first line, from the run record beside the log at `diary`: the logo, the model (a Claude
23
+ * model without its `claude-` prefix) and the effort, each when the record says it.
24
+ */
25
+ export declare function byline(diary: string | undefined): Promise<string>;
26
+ /** A comment as GitHub answered it: its id and its address. */
27
+ export interface Comment {
28
+ id: number;
29
+ url: string;
30
+ }
31
+ /** The gh command line of a new comment on pull request `number`: the first line, the text, the mark. */
32
+ export declare function commentArgs(number: number, body: string, first: string): string[];
33
+ /** Post a comment on pull request `number`, opened with `first`: the comment as GitHub answered. Throws when GitHub cannot answer, or answers no comment. */
34
+ export declare function writeComment(cwd: string, number: number, body: string, first: string, gh: GhRunner): Promise<Comment>;
35
+ //# sourceMappingURL=comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC;;;;;;;;;GASG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,uBAAuB,CAAA;AAEhD,yEAAyE;AACzE,eAAO,MAAM,SAAS,gBAAgB,CAAA;AAEtC,6FAA6F;AAC7F,eAAO,MAAM,UAAU,QAAoJ,CAAA;AAW3K;;;GAGG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CASvE;AAED,+DAA+D;AAC/D,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjF;AAED,6JAA6J;AAC7J,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAI3H"}
@@ -0,0 +1,56 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { createRequire } from 'node:module';
3
+ /**
4
+ * A comment on a pull request's thread: how an agent a row resumed answers there (#2042). Asked
5
+ * of GitHub's REST API through `gh`, in the repository the working directory is in.
6
+ *
7
+ * It opens with what wrote it: the coding agent's logo, the model and how hard it thought, as the
8
+ * agent's run record says, found through the log path its runner hands the agent (`AGENT_DIARY`).
9
+ * An agent with no run record behind it is said with the 🤖 line. The logos are this package's
10
+ * `assets`, at the version that wrote the comment, as the npm registry serves them through
11
+ * jsDelivr: a comment keeps its pictures however the package changes later.
12
+ */
13
+ /**
14
+ * The line every comment this command writes ends with, hidden from readers: what an agent
15
+ * writes here is posted with a person's account, and `replies` must never count it as theirs.
16
+ */
17
+ export const COMMENT_MARK = '<!-- openagent -->';
18
+ /** Where the agent's runner put its log: its run record is beside it. */
19
+ export const DIARY_ENV = 'AGENT_DIARY';
20
+ /** Where this package's pictures are served from: its own version's, on the npm registry. */
21
+ export const ASSETS_URL = `https://cdn.jsdelivr.net/npm/@openagt/skill-github@${createRequire(import.meta.url)('../package.json').version}/assets`;
22
+ /** The coding agents' logos, by the id a run record names them by. */
23
+ const LOGOS = {
24
+ 'claude-code': `<img src="${ASSETS_URL}/claude.svg" width="16" height="16" align="top" alt="Claude Code">`,
25
+ codex: `<picture><source media="(prefers-color-scheme: dark)" srcset="${ASSETS_URL}/codex-dark.svg"><img src="${ASSETS_URL}/codex-light.svg" width="16" height="16" align="top" alt="Codex"></picture>`,
26
+ };
27
+ /** What an agent with no run record, or on a coding agent with no logo, opens with. */
28
+ const AUTOMATED = '🤖 *automated*';
29
+ /**
30
+ * The first line, from the run record beside the log at `diary`: the logo, the model (a Claude
31
+ * model without its `claude-` prefix) and the effort, each when the record says it.
32
+ */
33
+ export async function byline(diary) {
34
+ if (diary === undefined || !diary.endsWith('.jsonl'))
35
+ return AUTOMATED;
36
+ const card = await readFile(`${diary.slice(0, -'.jsonl'.length)}.json`, 'utf8').then(text => JSON.parse(text), () => undefined);
37
+ const logo = typeof card?.['driver'] === 'string' ? LOGOS[card['driver']] : undefined;
38
+ if (logo === undefined)
39
+ return AUTOMATED;
40
+ const model = typeof card['model'] === 'string' ? card['model'].replace(/^claude-/, '') : undefined;
41
+ const effort = typeof card['effort'] === 'string' ? `${card['effort']} effort` : undefined;
42
+ const on = [model, effort].filter(part => part !== undefined).join(' · ');
43
+ return on === '' ? logo : `${logo} ${on}`;
44
+ }
45
+ /** The gh command line of a new comment on pull request `number`: the first line, the text, the mark. */
46
+ export function commentArgs(number, body, first) {
47
+ return ['api', `repos/{owner}/{repo}/issues/${number}/comments`, '-f', `body=${first}\n\n${body}\n\n${COMMENT_MARK}`, '--jq', '{id: .id, url: .html_url}'];
48
+ }
49
+ /** Post a comment on pull request `number`, opened with `first`: the comment as GitHub answered. Throws when GitHub cannot answer, or answers no comment. */
50
+ export async function writeComment(cwd, number, body, first, gh) {
51
+ const answer = JSON.parse(await gh(commentArgs(number, body, first), cwd));
52
+ if (typeof answer?.id !== 'number' || typeof answer.url !== 'string')
53
+ throw new Error('GitHub answered no comment');
54
+ return { id: answer.id, url: answer.url };
55
+ }
56
+ //# sourceMappingURL=comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,6 @@ export { homeUrlFromRemote, homeUrlFor, GIT_HOST_NAME } from './home.js';
7
7
  export { runCli, USAGE, type CliIo, type CliDeps, type CliRefusal } from './cli.js';
8
8
  export { createRepository, offerRepository, type CreateOffer, type CreateOutcome } from './create.js';
9
9
  export { signedIn, type MeOutcome } from './me.js';
10
- export { listReplies, parseOpenRequests, repliesArgs, repliesFor, watchedRequests, REPLIES_LIMIT, type OpenRequest, type Watched } from './replies.js';
10
+ export { listReplies, parseOpenRequests, repliesArgs, repliesFor, seenArgs, watchedRequests, REPLIES_LIMIT, WHOLE_READ_EVERY_MS, type OpenRequest, type Reply, type Watched } from './replies.js';
11
+ export { writeComment, commentArgs, byline, COMMENT_MARK, DIARY_ENV, ASSETS_URL, type Comment } from './comment.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AACvJ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AACzG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9H,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAClM,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AACvJ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AACzG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9H,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAClM,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AACjM,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -7,5 +7,6 @@ export { homeUrlFromRemote, homeUrlFor, GIT_HOST_NAME } from './home.js';
7
7
  export { runCli, USAGE } from './cli.js';
8
8
  export { createRepository, offerRepository } from './create.js';
9
9
  export { signedIn } from './me.js';
10
- export { listReplies, parseOpenRequests, repliesArgs, repliesFor, watchedRequests, REPLIES_LIMIT } from './replies.js';
10
+ export { listReplies, parseOpenRequests, repliesArgs, repliesFor, seenArgs, watchedRequests, REPLIES_LIMIT, WHOLE_READ_EVERY_MS } from './replies.js';
11
+ export { writeComment, commentArgs, byline, COMMENT_MARK, DIARY_ENV, ASSETS_URL } from './comment.js';
11
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAoC,MAAM,eAAe,CAAA;AACvJ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAsC,MAAM,WAAW,CAAA;AACzG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAA6E,MAAM,YAAY,CAAA;AAC9H,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAA0D,MAAM,kBAAkB,CAAA;AAClM,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6C,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAwC,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAkC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAoC,MAAM,eAAe,CAAA;AACvJ,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAsC,MAAM,WAAW,CAAA;AACzG,OAAO,EAAE,QAAQ,EAAE,YAAY,EAA6E,MAAM,YAAY,CAAA;AAC9H,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAA0D,MAAM,kBAAkB,CAAA;AAClM,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,KAAK,EAA6C,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAwC,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAkB,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAA8C,MAAM,cAAc,CAAA;AACjM,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,cAAc,CAAA"}
package/dist/replies.d.ts CHANGED
@@ -3,7 +3,9 @@ import { type GhRunner } from './gh.js';
3
3
  /**
4
4
  * What came on the pull requests this machine's agents opened, since each agent ended (#2042):
5
5
  * the check of a scheduler's row that resumes runs. It prints `[{ "run": "<id>", "text": "…" }]`,
6
- * one item per run with something new, and the scheduler resumes each run with its words.
6
+ * one item per run with something new, and the scheduler resumes each run with its words. Each
7
+ * comment and review it hands a run gets 👀 at once, so who wrote sees the agent saw it; the
8
+ * agent's answer comes later, a comment of its own.
7
9
  *
8
10
  * New is after the run last ended: no time is kept anywhere. Something that comes while the run
9
11
  * still works is found at the first look after it ends; and what came before it ended, the run
@@ -11,53 +13,84 @@ import { type GhRunner } from './gh.js';
11
13
  *
12
14
  * What counts:
13
15
  * - a comment or a review of a maintainer, a person who can write to the repository: GitHub's
14
- * owner, member or collaborator. One that carries the 🤖 line is an agent's, posted with a
15
- * person's account, and never counts;
16
- * - a check that turned red;
16
+ * owner, member or collaborator, that calls the agent: `/agent`, a word of its own anywhere in
17
+ * it. Other words on the pull request are people talking, the agent's own pull request too.
18
+ * One that carries the 🤖 line, or the hidden mark of a comment `comment` wrote, is an agent's,
19
+ * posted with a person's account, and never counts;
20
+ * - a check that turned red, with no word: nobody writes one;
17
21
  * - a conflict with the base branch, once the base branch moved.
18
22
  *
19
23
  * Only the open pull requests whose last run was on this machine and has ended: only this machine
20
24
  * holds that run's conversation, and a pull request another run still works on is that run's.
21
- * One GitHub call a look, whatever the number of pull requests.
25
+ * A pull request is a run's when its branch is the run's branch, as the run's record keeps it:
26
+ * whoever opened the request, the run's agent with any tool or a person, and whether the run
27
+ * could tell its pull request or not. One GitHub call a look, whatever the number of pull requests.
28
+ *
29
+ * A look can be every few seconds (a row's `check-every`), so it first asks GitHub whether any
30
+ * comment of the repository changed, a conversation's or a line's, by the answer it last had
31
+ * (its ETag): "not modified" is free, and then nothing is read. Reviews with no line comments, red
32
+ * checks and conflicts have no such question, so the whole read is made at least once a minute
33
+ * anyway. What the questions last answered and when the last whole read was are a cache in the
34
+ * clone's own `.git` folder, never what decides what is new.
22
35
  */
23
- /** A pull request a run opened, with the run that last worked on it and when that run ended. */
36
+ /** A branch runs worked on, with the run that last did and when that run ended. */
24
37
  export interface Watched {
25
- number: number;
38
+ branch: string;
26
39
  run: string;
27
40
  endedAt: string;
28
41
  }
42
+ /** How long a whole read holds when no comment changed: reviews, checks and conflicts are seen at least this often. */
43
+ export declare const WHOLE_READ_EVERY_MS = 60000;
29
44
  /** The open pull requests one GitHub call reads, newest change first. */
30
45
  export declare const REPLIES_LIMIT = 50;
46
+ /** The word that calls the agent: `/agent` with nothing of a word or a path on either side. */
47
+ export declare const MENTION: RegExp;
31
48
  /**
32
- * Each pull request the runs worked on, with the run that last did, when that run is this
33
- * machine's and has ended. A pull request a run still works on, on any machine, is left to it.
49
+ * Each branch the runs worked on, with the run that last did, when that run is this machine's
50
+ * and has ended. A branch a run still works on, on any machine, is left to it.
34
51
  */
35
52
  export declare function watchedRequests(cards: RunCard[], host: string): Watched[];
36
53
  /** The gh command line of the one read: the repository is the one the working directory is in. */
37
54
  export declare function repliesArgs(): string[];
38
- /** One thing that came on a pull request, as the run is told it. */
55
+ /** One thing that came on a pull request, as the run is told it, and the comment or review it is when a person's, by GitHub's id, for its 👀. */
39
56
  interface Came {
40
57
  at: string;
41
58
  line: string;
59
+ seen?: string;
42
60
  }
43
- /** An open pull request as read: what came on it, each with when. */
61
+ /** An open pull request as read: its branch, and what came on it, each with when. */
44
62
  export interface OpenRequest {
45
63
  number: number;
46
64
  url: string;
65
+ branch: string;
47
66
  came: Came[];
48
67
  }
49
- /** The pull requests GitHub answered, each with what came on it; one it answered in a shape not known is left out. */
68
+ /**
69
+ * The pull requests GitHub answered, each with what came on it; one it answered in a shape not
70
+ * known is left out, and one from a fork too: a run's branch is on the project's repository, and
71
+ * a fork's branch of the same name is someone else's.
72
+ */
50
73
  export declare function parseOpenRequests(output: unknown): OpenRequest[];
51
- /** For each watched pull request with something new since its run ended, the run and the words it is told. */
52
- export declare function repliesFor(watched: Watched[], open: OpenRequest[]): {
74
+ /** What a run is told, and the comments and reviews among it, by GitHub's ids: a red check or a conflict is none. */
75
+ export interface Reply {
53
76
  run: string;
54
77
  text: string;
55
- }[];
56
- /** What came on this machine's agents' open pull requests since each ended, as a scheduler's row reads it. Throws when GitHub cannot answer. */
78
+ seen: string[];
79
+ }
80
+ /** For each open pull request of a watched branch with something new since its run ended, the run, the words it is told, and the comments and reviews among them. */
81
+ export declare function repliesFor(watched: Watched[], open: OpenRequest[]): Reply[];
82
+ /** The gh command line of 👀 on each comment and review of `ids`, by GitHub's ids, in one call. */
83
+ export declare function seenArgs(ids: string[]): string[];
84
+ /**
85
+ * What came on this machine's agents' open pull requests since each ended, as a scheduler's row
86
+ * reads it, each comment and review among it given 👀. Throws when GitHub cannot answer.
87
+ */
57
88
  export declare function listReplies(repo: string, deps?: {
58
89
  gh?: GhRunner;
59
90
  host?: string;
60
91
  runs?: () => Promise<RunCard[]>;
92
+ now?: () => number;
93
+ cache?: string;
61
94
  }): Promise<{
62
95
  run: string;
63
96
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"replies.d.ts","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,gGAAgG;AAChG,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,yEAAyE;AACzE,eAAO,MAAM,aAAa,KAAK,CAAA;AAW/B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAUzE;AA2BD,kGAAkG;AAClG,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,oEAAoE;AACpE,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,EAAE,CAAA;CACb;AAkBD,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,CAqChE;AAED,8GAA8G;AAC9G,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAUnG;AAED,gJAAgJ;AAChJ,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAMtK"}
1
+ {"version":3,"file":"replies.d.ts","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,mFAAmF;AACnF,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,uHAAuH;AACvH,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAczC,yEAAyE;AACzE,eAAO,MAAM,aAAa,KAAK,CAAA;AAQ/B,+FAA+F;AAC/F,eAAO,MAAM,OAAO,QAAgC,CAAA;AAKpD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAUzE;AA2BD,kGAAkG;AAClG,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,iJAAiJ;AACjJ,UAAU,IAAI;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,EAAE,CAAA;CACb;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,CAoChE;AAED,qHAAqH;AACrH,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,qKAAqK;AACrK,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAU3E;AAmCD,mGAAmG;AACnG,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAGhD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,EAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAoB1M"}
package/dist/replies.js CHANGED
@@ -1,44 +1,56 @@
1
+ import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
1
2
  import { hostname } from 'node:os';
3
+ import { dirname, join } from 'node:path';
2
4
  import { listRuns } from '@openagt/skill-logs';
3
5
  import { nodeGhRunner } from './gh.js';
6
+ import { COMMENT_MARK } from './comment.js';
7
+ /** How long a whole read holds when no comment changed: reviews, checks and conflicts are seen at least this often. */
8
+ export const WHOLE_READ_EVERY_MS = 60_000;
9
+ /** The two cheap questions: did a conversation's comment change, did a comment on a line. */
10
+ const CHANGED = {
11
+ comments: 'repos/{owner}/{repo}/issues/comments?sort=updated&direction=desc&per_page=1',
12
+ lineComments: 'repos/{owner}/{repo}/pulls/comments?sort=updated&direction=desc&per_page=1',
13
+ };
4
14
  /** The open pull requests one GitHub call reads, newest change first. */
5
15
  export const REPLIES_LIMIT = 50;
6
16
  /** The authors whose words count: those who can write to the repository. */
7
17
  const MAINTAINERS = new Set(['OWNER', 'MEMBER', 'COLLABORATOR']);
8
18
  /** What an agent puts on what it posts. */
9
19
  const AGENT_MARK = '🤖';
20
+ /** The word that calls the agent: `/agent` with nothing of a word or a path on either side. */
21
+ export const MENTION = /(?<![\w/])\/agent(?![\w/-])/;
10
22
  /** A check's ending that is red. */
11
23
  const RED = new Set(['FAILURE', 'TIMED_OUT', 'STARTUP_FAILURE', 'ACTION_REQUIRED', 'ERROR', 'CANCELLED']);
12
24
  /**
13
- * Each pull request the runs worked on, with the run that last did, when that run is this
14
- * machine's and has ended. A pull request a run still works on, on any machine, is left to it.
25
+ * Each branch the runs worked on, with the run that last did, when that run is this machine's
26
+ * and has ended. A branch a run still works on, on any machine, is left to it.
15
27
  */
16
28
  export function watchedRequests(cards, host) {
17
- const byRequest = new Map();
29
+ const byBranch = new Map();
18
30
  for (const card of cards)
19
- if (card.pr)
20
- byRequest.set(card.pr.number, [...(byRequest.get(card.pr.number) ?? []), card]);
31
+ if (card.branch)
32
+ byBranch.set(card.branch, [...(byBranch.get(card.branch) ?? []), card]);
21
33
  const watched = [];
22
- for (const [number, runs] of byRequest) {
34
+ for (const [branch, runs] of byBranch) {
23
35
  if (runs.some(card => card.status === 'running'))
24
36
  continue;
25
37
  const last = runs.filter(card => card.endedAt !== undefined).sort((a, b) => Date.parse(b.endedAt) - Date.parse(a.endedAt))[0];
26
38
  if (last && last.caller?.['host'] === host)
27
- watched.push({ number, run: last.id, endedAt: last.endedAt });
39
+ watched.push({ branch, run: last.id, endedAt: last.endedAt });
28
40
  }
29
- return watched.sort((a, b) => a.number - b.number);
41
+ return watched.sort((a, b) => a.branch.localeCompare(b.branch));
30
42
  }
31
43
  const QUERY = `query($owner: String!, $name: String!) {
32
44
  repository(owner: $owner, name: $name) {
33
45
  pullRequests(states: OPEN, first: ${REPLIES_LIMIT}, orderBy: { field: UPDATED_AT, direction: DESC }) {
34
46
  nodes {
35
- number url mergeable
47
+ number url mergeable headRefName isCrossRepository
36
48
  baseRef { name target { ... on Commit { committedDate } } }
37
- comments(last: 30) { nodes { author { login } authorAssociation body createdAt url } }
49
+ comments(last: 30) { nodes { id author { login } authorAssociation body createdAt url } }
38
50
  reviews(last: 30) {
39
51
  nodes {
40
- author { login } authorAssociation body state submittedAt url
41
- comments(first: 30) { nodes { author { login } authorAssociation body path line createdAt url } }
52
+ id author { login } authorAssociation body state submittedAt url
53
+ comments(first: 30) { nodes { id author { login } authorAssociation body path line createdAt url } }
42
54
  }
43
55
  }
44
56
  commits(last: 1) {
@@ -62,40 +74,45 @@ const nodes = (value) => {
62
74
  };
63
75
  const text = (value) => (typeof value === 'string' && value !== '' ? value : undefined);
64
76
  const login = (node) => text(node['author']?.['login']) ?? 'someone';
65
- /** A maintainer's words that are no agent's: what counts of a comment or a review. */
77
+ /** A comment's or a review's id, for its 👀. */
78
+ const seen = (node) => (text(node['id']) !== undefined ? { seen: text(node['id']) } : {});
79
+ /** A maintainer's words that call the agent and are no agent's: what counts of a comment or a review. */
66
80
  function maintainers(node) {
67
81
  const body = text(node['body'])?.trim();
68
- if (!body || body.includes(AGENT_MARK) || !MAINTAINERS.has(String(node['authorAssociation'])))
82
+ if (!body || !MENTION.test(body) || body.includes(AGENT_MARK) || body.includes(COMMENT_MARK) || !MAINTAINERS.has(String(node['authorAssociation'])))
69
83
  return undefined;
70
84
  return body;
71
85
  }
72
- /** The pull requests GitHub answered, each with what came on it; one it answered in a shape not known is left out. */
86
+ /**
87
+ * The pull requests GitHub answered, each with what came on it; one it answered in a shape not
88
+ * known is left out, and one from a fork too: a run's branch is on the project's repository, and
89
+ * a fork's branch of the same name is someone else's.
90
+ */
73
91
  export function parseOpenRequests(output) {
74
92
  const repository = output?.['data']?.['repository'];
75
93
  const requests = [];
76
94
  for (const pr of nodes(repository?.['pullRequests'])) {
77
- if (typeof pr['number'] !== 'number' || typeof pr['url'] !== 'string')
95
+ if (typeof pr['number'] !== 'number' || typeof pr['url'] !== 'string' || typeof pr['headRefName'] !== 'string' || pr['isCrossRepository'] !== false)
78
96
  continue;
79
97
  const came = [];
80
98
  for (const comment of nodes(pr['comments'])) {
81
99
  const body = maintainers(comment);
82
100
  const at = text(comment['createdAt']);
83
101
  if (body && at)
84
- came.push({ at, line: `@${login(comment)} commented (${comment['url']}):\n${body}` });
102
+ came.push({ at, line: `@${login(comment)} commented (${comment['url']}):\n${body}`, ...seen(comment) });
85
103
  }
86
104
  for (const review of nodes(pr['reviews'])) {
87
105
  const at = text(review['submittedAt']);
88
106
  const body = maintainers(review);
89
- // A request for changes counts with no words too; an approval with none asks nothing, and a review's comments count one by one.
90
- const changes = review['state'] === 'CHANGES_REQUESTED' && MAINTAINERS.has(String(review['authorAssociation'])) && !text(review['body'])?.includes(AGENT_MARK);
91
- if (at && (body || changes))
92
- came.push({ at, line: `@${login(review)} ${changes ? 'requested changes' : 'reviewed'} (${review['url']})${body ? `:\n${body}` : '.'}` });
107
+ // A review's comments count one by one, each by its own word.
108
+ if (at && body)
109
+ came.push({ at, line: `@${login(review)} ${review['state'] === 'CHANGES_REQUESTED' ? 'requested changes' : 'reviewed'} (${review['url']}):\n${body}`, ...seen(review) });
93
110
  for (const comment of nodes(review['comments'])) {
94
111
  const words = maintainers(comment);
95
112
  const when = text(comment['createdAt']);
96
113
  const where = `${comment['path']}${typeof comment['line'] === 'number' ? ` line ${comment['line']}` : ''}`;
97
114
  if (words && when)
98
- came.push({ at: when, line: `@${login(comment)} on ${where} (${comment['url']}):\n${words}` });
115
+ came.push({ at: when, line: `@${login(comment)} on ${where} (${comment['url']}):\n${words}`, ...seen(comment) });
99
116
  }
100
117
  }
101
118
  const commit = nodes(pr['commits'])[0]?.['commit']?.['statusCheckRollup'];
@@ -110,30 +127,87 @@ export function parseOpenRequests(output) {
110
127
  const moved = text(base?.['target']?.['committedDate']);
111
128
  if (pr['mergeable'] === 'CONFLICTING' && moved)
112
129
  came.push({ at: moved, line: `It conflicts with ${base?.['name']}, which moved since.` });
113
- requests.push({ number: pr['number'], url: pr['url'], came });
130
+ requests.push({ number: pr['number'], url: pr['url'], branch: pr['headRefName'], came });
114
131
  }
115
132
  return requests;
116
133
  }
117
- /** For each watched pull request with something new since its run ended, the run and the words it is told. */
134
+ /** For each open pull request of a watched branch with something new since its run ended, the run, the words it is told, and the comments and reviews among them. */
118
135
  export function repliesFor(watched, open) {
119
136
  const replies = [];
120
- for (const { number, run, endedAt } of watched) {
121
- const request = open.find(r => r.number === number);
137
+ for (const { branch, run, endedAt } of watched) {
138
+ const request = open.find(r => r.branch === branch);
122
139
  // ISO times compare as text only in one shape: GitHub's have no fraction, a record's do.
123
140
  const after = Date.parse(endedAt);
124
141
  const came = request?.came.filter(c => Date.parse(c.at) > after).sort((a, b) => Date.parse(a.at) - Date.parse(b.at)) ?? [];
125
142
  if (request && came.length > 0)
126
- replies.push({ run, text: [`On your pull request #${number} (${request.url}), since you ended:`, ...came.map(c => `- ${c.line}`)].join('\n') });
143
+ replies.push({ run, text: [`On your pull request #${request.number} (${request.url}), since you ended:`, ...came.map(c => `- ${c.line}`)].join('\n'), seen: came.flatMap(c => (c.seen !== undefined ? [c.seen] : [])) });
127
144
  }
128
145
  return replies;
129
146
  }
130
- /** What came on this machine's agents' open pull requests since each ended, as a scheduler's row reads it. Throws when GitHub cannot answer. */
147
+ /**
148
+ * Whether what `path` answers changed since the answer whose ETag is `etag`, and the ETag now. gh
149
+ * says "not modified" as a failure, `HTTP 304`; any other failure throws.
150
+ */
151
+ async function changedSince(gh, repo, path, etag) {
152
+ try {
153
+ const answered = await gh(['api', '--include', ...(etag !== undefined ? ['-H', `If-None-Match: ${etag}`] : []), path], repo);
154
+ const now = /^etag:\s*(.+?)\s*$/im.exec(answered)?.[1];
155
+ return { changed: true, ...(now !== undefined ? { etag: now } : {}) };
156
+ }
157
+ catch (err) {
158
+ if (/\bHTTP 304\b/.test(err instanceof Error ? err.message : String(err)))
159
+ return { changed: false, ...(etag !== undefined ? { etag } : {}) };
160
+ throw err;
161
+ }
162
+ }
163
+ /** Where the cache is: the clone's own `.git` folder; none for a checkout whose `.git` is no folder. */
164
+ async function lookedPath(repo) {
165
+ const git = join(repo, '.git');
166
+ return (await stat(git).then(s => s.isDirectory(), () => false)) ? join(git, 'openagent', 'replies.json') : undefined;
167
+ }
168
+ async function readLooked(path) {
169
+ if (path === undefined)
170
+ return { etags: {} };
171
+ const read = await readFile(path, 'utf8').then(text => JSON.parse(text), () => ({}));
172
+ return { etags: typeof read.etags === 'object' && read.etags !== null ? read.etags : {}, ...(typeof read.wholeAt === 'number' ? { wholeAt: read.wholeAt } : {}) };
173
+ }
174
+ async function writeLooked(path, looked) {
175
+ if (path === undefined)
176
+ return;
177
+ await mkdir(dirname(path), { recursive: true });
178
+ await writeFile(path, JSON.stringify(looked));
179
+ }
180
+ /** The gh command line of 👀 on each comment and review of `ids`, by GitHub's ids, in one call. */
181
+ export function seenArgs(ids) {
182
+ const reactions = ids.map((id, i) => `r${i}: addReaction(input: { subjectId: ${JSON.stringify(id)}, content: EYES }) { clientMutationId }`);
183
+ return ['api', 'graphql', '-f', `query=mutation { ${reactions.join(' ')} }`];
184
+ }
185
+ /**
186
+ * What came on this machine's agents' open pull requests since each ended, as a scheduler's row
187
+ * reads it, each comment and review among it given 👀. Throws when GitHub cannot answer.
188
+ */
131
189
  export async function listReplies(repo, deps = {}) {
132
190
  const watched = watchedRequests(await (deps.runs ?? (() => listRuns(repo)))(), deps.host ?? hostname());
133
191
  // Nothing to watch asks GitHub nothing.
134
192
  if (watched.length === 0)
135
193
  return [];
136
- const answered = await (deps.gh ?? nodeGhRunner())(repliesArgs(), repo);
137
- return repliesFor(watched, parseOpenRequests(JSON.parse(answered)));
194
+ const gh = deps.gh ?? nodeGhRunner();
195
+ const now = (deps.now ?? Date.now)();
196
+ const cache = deps.cache ?? (await lookedPath(repo));
197
+ const looked = await readLooked(cache);
198
+ const comments = await changedSince(gh, repo, CHANGED.comments, looked.etags.comments);
199
+ const lineComments = await changedSince(gh, repo, CHANGED.lineComments, looked.etags.lineComments);
200
+ const etags = { ...(comments.etag !== undefined ? { comments: comments.etag } : {}), ...(lineComments.etag !== undefined ? { lineComments: lineComments.etag } : {}) };
201
+ if (!comments.changed && !lineComments.changed && looked.wholeAt !== undefined && now - looked.wholeAt < WHOLE_READ_EVERY_MS)
202
+ return [];
203
+ const answered = await gh(repliesArgs(), repo);
204
+ const replies = repliesFor(watched, parseOpenRequests(JSON.parse(answered)));
205
+ // GitHub keeps one 👀 a person: one put again, at a look that finds the same comment while its
206
+ // run cannot start yet, is no second. One that could not be put leaves the answer to come.
207
+ const ids = replies.flatMap(r => r.seen);
208
+ if (ids.length > 0)
209
+ await gh(seenArgs(ids), repo).catch(() => undefined);
210
+ await writeLooked(cache, { etags, wholeAt: now });
211
+ return replies.map(({ run, text }) => ({ run, text }));
138
212
  }
139
213
  //# sourceMappingURL=replies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replies.js","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replies.js","sourceRoot":"","sources":["../src/replies.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openagt/skill-github",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "GitHub as a skill for coding agents: the project's pull requests and issues through gh, and the one command OpenAgent and the scheduler run for the git host: requests, open, merge, home, and replies, what came on the pull requests this machine's agents opened since each ended.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -18,7 +18,8 @@
18
18
  "files": [
19
19
  "dist",
20
20
  "bin/github",
21
- "SKILL.md"
21
+ "SKILL.md",
22
+ "assets"
22
23
  ],
23
24
  "bin": {
24
25
  "github": "bin/github"
@@ -36,7 +37,7 @@
36
37
  "./SKILL.md": "./SKILL.md"
37
38
  },
38
39
  "dependencies": {
39
- "@openagt/agent-data": "0.0.6",
40
+ "@openagt/agent-data": "0.0.7",
40
41
  "@openagt/skill-logs": "0.1.3"
41
42
  },
42
43
  "devDependencies": {