@agentteams/runner 0.0.112 → 0.0.114

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.
Files changed (100) hide show
  1. package/dist/api-client.d.ts +6 -0
  2. package/dist/api-client.js +26 -0
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/api-client.test.js +23 -0
  5. package/dist/api-client.test.js.map +1 -1
  6. package/dist/executable.d.ts +19 -2
  7. package/dist/executable.js +155 -7
  8. package/dist/executable.js.map +1 -1
  9. package/dist/executable.test.js +97 -1
  10. package/dist/executable.test.js.map +1 -1
  11. package/dist/handlers/trigger-handler.js +3 -0
  12. package/dist/handlers/trigger-handler.js.map +1 -1
  13. package/dist/poller.d.ts +5 -1
  14. package/dist/poller.js +87 -0
  15. package/dist/poller.js.map +1 -1
  16. package/dist/poller.test.js +187 -0
  17. package/dist/poller.test.js.map +1 -1
  18. package/dist/runners/amp.js +3 -16
  19. package/dist/runners/amp.js.map +1 -1
  20. package/dist/runners/antigravity.js +3 -16
  21. package/dist/runners/antigravity.js.map +1 -1
  22. package/dist/runners/capabilities.d.ts +7 -1
  23. package/dist/runners/capabilities.js +21 -9
  24. package/dist/runners/capabilities.js.map +1 -1
  25. package/dist/runners/capabilities.test.js +12 -0
  26. package/dist/runners/capabilities.test.js.map +1 -1
  27. package/dist/runners/claude-code.js +3 -8
  28. package/dist/runners/claude-code.js.map +1 -1
  29. package/dist/runners/claude-code.test.js +10 -0
  30. package/dist/runners/claude-code.test.js.map +1 -1
  31. package/dist/runners/codex.js +3 -16
  32. package/dist/runners/codex.js.map +1 -1
  33. package/dist/runners/copilot-cli.js +2 -8
  34. package/dist/runners/copilot-cli.js.map +1 -1
  35. package/dist/runners/cursor-cli.js +2 -8
  36. package/dist/runners/cursor-cli.js.map +1 -1
  37. package/dist/runners/cursor-cli.test.js +14 -0
  38. package/dist/runners/cursor-cli.test.js.map +1 -1
  39. package/dist/runners/engine-commands.d.ts +11 -0
  40. package/dist/runners/engine-commands.js +27 -0
  41. package/dist/runners/engine-commands.js.map +1 -0
  42. package/dist/runners/grok-build-identity.d.ts +8 -0
  43. package/dist/runners/grok-build-identity.js +17 -0
  44. package/dist/runners/grok-build-identity.js.map +1 -0
  45. package/dist/runners/grok-build.d.ts +60 -0
  46. package/dist/runners/grok-build.js +360 -0
  47. package/dist/runners/grok-build.js.map +1 -0
  48. package/dist/runners/grok-build.test.d.ts +1 -0
  49. package/dist/runners/grok-build.test.js +233 -0
  50. package/dist/runners/grok-build.test.js.map +1 -0
  51. package/dist/runners/index.js +3 -0
  52. package/dist/runners/index.js.map +1 -1
  53. package/dist/runners/index.test.js +2 -0
  54. package/dist/runners/index.test.js.map +1 -1
  55. package/dist/runners/kimi-cli.js +2 -8
  56. package/dist/runners/kimi-cli.js.map +1 -1
  57. package/dist/runners/kimi-cli.test.js +8 -0
  58. package/dist/runners/kimi-cli.test.js.map +1 -1
  59. package/dist/runners/kiro-cli.js +2 -8
  60. package/dist/runners/kiro-cli.js.map +1 -1
  61. package/dist/runners/kiro-cli.test.js +1 -0
  62. package/dist/runners/kiro-cli.test.js.map +1 -1
  63. package/dist/runners/log-merger.d.ts +8 -0
  64. package/dist/runners/log-merger.js +33 -0
  65. package/dist/runners/log-merger.js.map +1 -0
  66. package/dist/runners/log-reporter.d.ts +2 -2
  67. package/dist/runners/log-reporter.js +2 -29
  68. package/dist/runners/log-reporter.js.map +1 -1
  69. package/dist/runners/opencode.js +3 -16
  70. package/dist/runners/opencode.js.map +1 -1
  71. package/dist/runners/session-env.d.ts +24 -0
  72. package/dist/runners/session-env.js +61 -0
  73. package/dist/runners/session-env.js.map +1 -0
  74. package/dist/runners/session-env.test.d.ts +1 -0
  75. package/dist/runners/session-env.test.js +78 -0
  76. package/dist/runners/session-env.test.js.map +1 -0
  77. package/dist/runners/stream-json-parser.js +45 -0
  78. package/dist/runners/stream-json-parser.js.map +1 -1
  79. package/dist/runners/types.d.ts +2 -0
  80. package/dist/utils/engine-probe.d.ts +15 -0
  81. package/dist/utils/engine-probe.js +52 -0
  82. package/dist/utils/engine-probe.js.map +1 -0
  83. package/dist/utils/engine-probe.test.d.ts +1 -0
  84. package/dist/utils/engine-probe.test.js +108 -0
  85. package/dist/utils/engine-probe.test.js.map +1 -0
  86. package/dist/utils/model-enumerator.d.ts +42 -0
  87. package/dist/utils/model-enumerator.js +223 -0
  88. package/dist/utils/model-enumerator.js.map +1 -0
  89. package/dist/utils/model-enumerator.test.d.ts +1 -0
  90. package/dist/utils/model-enumerator.test.js +132 -0
  91. package/dist/utils/model-enumerator.test.js.map +1 -0
  92. package/dist/utils/origin-issue-safeguard.d.ts +12 -1
  93. package/dist/utils/origin-issue-safeguard.js +32 -25
  94. package/dist/utils/origin-issue-safeguard.js.map +1 -1
  95. package/dist/utils/origin-issue-safeguard.test.d.ts +1 -0
  96. package/dist/utils/origin-issue-safeguard.test.js +78 -0
  97. package/dist/utils/origin-issue-safeguard.test.js.map +1 -0
  98. package/native/bin/win32-x64/agentrunner-launcher.exe +0 -0
  99. package/native/bin/win32-x64/manifest.json +2 -2
  100. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 사용자 프롬프트에 이슈 entityReference가 있고,
5
5
  * 러너 히스토리에서 플랜 생성이 감지되면,
6
- * `agentteams plan issue` CLI를 실행하여 이슈를 연결합니다.
6
+ * `agentteams plan link-issue` CLI를 실행하여 이슈를 연결합니다.
7
7
  */
8
8
  import { execFile } from 'node:child_process';
9
9
  import { readFile } from 'node:fs/promises';
@@ -127,29 +127,39 @@ function extractCreatedPlanIds(historyMarkdown) {
127
127
  return planIds;
128
128
  }
129
129
  /**
130
- * `agentteams plan issue` CLI를 실행합니다 (fire-and-forget).
130
+ * `agentteams plan link-issue` 호출 인자를 만듭니다.
131
+ *
132
+ * CLI는 러너와 별도 패키지로 배포되므로 여기서 쓰는 액션 이름이 CLI 계약과
133
+ * 어긋나면 런타임 경고로만 조용히 실패합니다. 인자 조립을 분리해 테스트로 고정합니다.
134
+ */
135
+ export function buildPlanLinkIssueArgs(planId, issue) {
136
+ const args = [
137
+ 'plan',
138
+ 'link-issue',
139
+ '--id',
140
+ planId,
141
+ '--provider',
142
+ issue.provider,
143
+ '--external-id',
144
+ issue.externalId,
145
+ '--external-url',
146
+ issue.externalUrl || 'unknown',
147
+ ];
148
+ if (issue.externalTitle) {
149
+ args.push('--title', issue.externalTitle);
150
+ }
151
+ return args;
152
+ }
153
+ /**
154
+ * `agentteams plan link-issue` CLI를 실행합니다 (fire-and-forget).
131
155
  */
132
- function execPlanIssue(cwd, planId, issue) {
156
+ function execPlanLinkIssue(cwd, planId, issue) {
133
157
  return new Promise((resolve) => {
134
- const args = [
135
- 'plan',
136
- 'issue',
137
- '--id',
138
- planId,
139
- '--provider',
140
- issue.provider,
141
- '--external-id',
142
- issue.externalId,
143
- '--external-url',
144
- issue.externalUrl || 'unknown',
145
- ];
146
- if (issue.externalTitle) {
147
- args.push('--title', issue.externalTitle);
148
- }
158
+ const args = buildPlanLinkIssueArgs(planId, issue);
149
159
  execFile('agentteams', args, { cwd, timeout: 15000, windowsHide: true }, (error) => {
150
160
  if (error) {
151
161
  // 409 or other failure — skip silently
152
- logger.warn('Origin issue safeguard: plan issue command failed', {
162
+ logger.warn('Origin issue safeguard: plan link-issue command failed', {
153
163
  planId,
154
164
  provider: issue.provider,
155
165
  externalId: issue.externalId,
@@ -160,11 +170,8 @@ function execPlanIssue(cwd, planId, issue) {
160
170
  });
161
171
  });
162
172
  }
163
- /**
164
- * 트리거 완료 origin issue 자동 연결 안전장치를 실행합니다.
165
- * fire-and-forget: 실패해도 트리거 완료에 영향 없음.
166
- */
167
- export async function runOriginIssueSafeguard(prompt, historyPath, authPath) {
173
+ export async function runOriginIssueSafeguard(prompt, historyPath, authPath, deps = {}) {
174
+ const runCli = deps.runCli ?? execPlanLinkIssue;
168
175
  if (!historyPath || !authPath)
169
176
  return;
170
177
  try {
@@ -190,7 +197,7 @@ export async function runOriginIssueSafeguard(prompt, historyPath, authPath) {
190
197
  });
191
198
  for (const planId of planIds) {
192
199
  for (const issue of issueRefs) {
193
- await execPlanIssue(authPath, planId, issue);
200
+ await runCli(authPath, planId, issue);
194
201
  }
195
202
  }
196
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"origin-issue-safeguard.js","sourceRoot":"","sources":["../../src/utils/origin-issue-safeguard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"origin-issue-safeguard.js","sourceRoot":"","sources":["../../src/utils/origin-issue-safeguard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
1
+ import assert from 'node:assert/strict';
2
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import test from 'node:test';
6
+ import { buildPlanLinkIssueArgs, extractIssueRefsFromPrompt, runOriginIssueSafeguard, } from './origin-issue-safeguard.js';
7
+ const PLAN_ID = 'f62762fc-730a-4201-8586-e2541505ed1b';
8
+ // CLI(@agentteams/cli)와 러너는 따로 배포되므로, 액션 이름이 어긋나도 런타임에서는
9
+ // logger.warn으로만 남습니다. 계약을 CI가 지키도록 인자를 그대로 고정합니다.
10
+ test('buildPlanLinkIssueArgs pins the CLI contract to `plan link-issue`', () => {
11
+ const args = buildPlanLinkIssueArgs(PLAN_ID, {
12
+ provider: 'GITHUB',
13
+ externalId: '2021',
14
+ externalUrl: 'https://github.com/rlarua/AgentTeams/issues/2021',
15
+ externalTitle: 'CLI 서브커맨드 전환',
16
+ });
17
+ assert.deepEqual(args, [
18
+ 'plan',
19
+ 'link-issue',
20
+ '--id',
21
+ PLAN_ID,
22
+ '--provider',
23
+ 'GITHUB',
24
+ '--external-id',
25
+ '2021',
26
+ '--external-url',
27
+ 'https://github.com/rlarua/AgentTeams/issues/2021',
28
+ '--title',
29
+ 'CLI 서브커맨드 전환',
30
+ ]);
31
+ assert.equal(args[1], 'link-issue', 'plan issue 별칭이 아니라 정식 액션 이름을 써야 한다');
32
+ });
33
+ test('buildPlanLinkIssueArgs falls back to "unknown" url and omits an empty title', () => {
34
+ const args = buildPlanLinkIssueArgs(PLAN_ID, { provider: 'LINEAR', externalId: 'ISS-1', externalUrl: '' });
35
+ assert.deepEqual(args.slice(-2), ['--external-url', 'unknown']);
36
+ assert.equal(args.includes('--title'), false);
37
+ });
38
+ test('extractIssueRefsFromPrompt reads issue references from text prompts', () => {
39
+ const refs = extractIssueRefsFromPrompt('작업 [#2021](GITHUB_ISSUE:2021) 처리 및 [x](PLAN:abc) 무시');
40
+ assert.deepEqual(refs, [{ provider: 'GITHUB', externalId: '2021', externalUrl: '', externalTitle: '#2021' }]);
41
+ });
42
+ test('runOriginIssueSafeguard invokes the CLI once per detected plan × issue pair', async () => {
43
+ const dir = mkdtempSync(join(tmpdir(), 'origin-issue-safeguard-'));
44
+ const historyPath = join(dir, 'history.md');
45
+ writeFileSync(historyPath, `plan created: ${PLAN_ID}\n`, 'utf8');
46
+ const calls = [];
47
+ try {
48
+ await runOriginIssueSafeguard('[#2021](GITHUB_ISSUE:2021)', historyPath, dir, {
49
+ runCli: async (cwd, planId, issue) => {
50
+ calls.push({ cwd, args: buildPlanLinkIssueArgs(planId, issue) });
51
+ },
52
+ });
53
+ }
54
+ finally {
55
+ rmSync(dir, { recursive: true, force: true });
56
+ }
57
+ assert.equal(calls.length, 1);
58
+ assert.equal(calls[0].cwd, dir);
59
+ assert.deepEqual(calls[0].args.slice(0, 4), ['plan', 'link-issue', '--id', PLAN_ID]);
60
+ });
61
+ test('runOriginIssueSafeguard stays silent when the prompt has no issue reference', async () => {
62
+ const dir = mkdtempSync(join(tmpdir(), 'origin-issue-safeguard-'));
63
+ const historyPath = join(dir, 'history.md');
64
+ writeFileSync(historyPath, `plan created: ${PLAN_ID}\n`, 'utf8');
65
+ let called = false;
66
+ try {
67
+ await runOriginIssueSafeguard('이슈 참조 없음', historyPath, dir, {
68
+ runCli: async () => {
69
+ called = true;
70
+ },
71
+ });
72
+ }
73
+ finally {
74
+ rmSync(dir, { recursive: true, force: true });
75
+ }
76
+ assert.equal(called, false);
77
+ });
78
+ //# sourceMappingURL=origin-issue-safeguard.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origin-issue-safeguard.test.js","sourceRoot":"","sources":["../../src/utils/origin-issue-safeguard.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.0.112",
3
+ "version": "0.0.114",
4
4
  "platform": "win32",
5
5
  "arch": "x64",
6
6
  "fileName": "agentrunner-launcher.exe",
7
- "sha256": "7d36d9e92a281fd362a89e57de75c04aaa78aea0474750b7bbf5b0f8735f09c6"
7
+ "sha256": "57d5ee98e3f5a8cda9798b9b03e2fcd2c27cd1b86c6ce1a2226405eb4fe40b96"
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentteams/runner",
3
- "version": "0.0.112",
3
+ "version": "0.0.114",
4
4
  "description": "AgentRunner - Background runner that polls and executes AI agent tasks",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",