@agentteams/runner 0.0.111 → 0.0.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/executable.js +30 -0
- package/dist/executable.js.map +1 -1
- package/dist/executable.test.js +80 -0
- package/dist/executable.test.js.map +1 -1
- package/dist/runners/capabilities.js +5 -0
- package/dist/runners/capabilities.js.map +1 -1
- package/dist/runners/capabilities.test.js +14 -1
- package/dist/runners/capabilities.test.js.map +1 -1
- package/dist/runners/index.js +3 -0
- package/dist/runners/index.js.map +1 -1
- package/dist/runners/index.test.js +2 -0
- package/dist/runners/index.test.js.map +1 -1
- package/dist/runners/kiro-cli.d.ts +52 -0
- package/dist/runners/kiro-cli.js +359 -0
- package/dist/runners/kiro-cli.js.map +1 -0
- package/dist/runners/kiro-cli.test.d.ts +1 -0
- package/dist/runners/kiro-cli.test.js +214 -0
- package/dist/runners/kiro-cli.test.js.map +1 -0
- package/dist/utils/origin-issue-safeguard.d.ts +12 -1
- package/dist/utils/origin-issue-safeguard.js +32 -25
- package/dist/utils/origin-issue-safeguard.js.map +1 -1
- package/dist/utils/origin-issue-safeguard.test.d.ts +1 -0
- package/dist/utils/origin-issue-safeguard.test.js +78 -0
- package/dist/utils/origin-issue-safeguard.test.js.map +1 -0
- package/native/bin/win32-x64/agentrunner-launcher.exe +0 -0
- package/native/bin/win32-x64/manifest.json +2 -2
- 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`
|
|
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
|
|
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
|
-
|
|
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
|
|
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":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,MAAM,uBAAuB,GAA2B;IACtD,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;CACvB,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,SAAS,wBAAwB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,qDAAqD;IACrD,MAAM,UAAU,GAAG,gCAAgC,CAAC;IACpD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAElD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACrD,wEAAwE;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ;YACR,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,EAAE,EAAE,qCAAqC;YACtD,aAAa,EAAE,KAAK,IAAI,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,OAAgC;IAClE,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,SAAS,IAAI,CAAC,IAA6B;QACzC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;YACpD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAoB,CAAC;YAC9C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,GAAI,KAAK,CAAC,QAAmB,IAAI,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAI,KAAK,CAAC,KAAgB,IAAI,EAAE,CAAC;gBAE5C,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC;4BACX,QAAQ;4BACR,UAAU,EAAE,QAAQ;4BACpB,WAAW,EAAE,OAAO;4BACpB,aAAa,EAAE,KAAK,IAAI,SAAS;yBAClC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAoC,EAAE,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAwC;IACjF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,eAAuB;IACpD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,iFAAiF;IACjF,8DAA8D;IAC9D,6EAA6E;IAC7E,MAAM,WAAW,GAAG,gEAAgE,CAAC;IAErF,4CAA4C;IAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IACE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC9B,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACxB,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACb,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,KAAe;IACpE,MAAM,IAAI,GAAG;QACX,MAAM;QACN,YAAY;QACZ,MAAM;QACN,MAAM;QACN,YAAY;QACZ,KAAK,CAAC,QAAQ;QACd,eAAe;QACf,KAAK,CAAC,UAAU;QAChB,gBAAgB;QAChB,KAAK,CAAC,WAAW,IAAI,SAAS;KAC/B,CAAC;IACF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAE,KAAe;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEnD,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,KAAmB,EAAE,EAAE;YAC/F,IAAI,KAAK,EAAE,CAAC;gBACV,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;oBACpE,MAAM;oBACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,KAAK,EAAE,KAAK,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAwC,EACxC,WAA0B,EAC1B,QAAuB,EACvB,OAAiC,EAAE;IAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC;IAChD,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtC,IAAI,CAAC;QACH,qBAAqB;QACrB,MAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,qBAAqB;QACrB,IAAI,cAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,iBAAiB;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;YAC7D,OAAO;YACP,UAAU,EAAE,SAAS,CAAC,MAAM;SAC7B,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE;YAC1D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -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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"}
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.113",
|
|
4
4
|
"platform": "win32",
|
|
5
5
|
"arch": "x64",
|
|
6
6
|
"fileName": "agentrunner-launcher.exe",
|
|
7
|
-
"sha256": "
|
|
7
|
+
"sha256": "20d9d88db3b9b09391c5c81e31be38a41aa759bf2625f990b275b89ffec2225e"
|
|
8
8
|
}
|