jonah-fleet 1.25.2 → 1.27.0
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 +30 -0
- package/README.md +29 -10
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2818 -2336
- package/dist/lib/brand.d.ts +38 -0
- package/dist/lib/brand.d.ts.map +1 -0
- package/dist/lib/daemon.d.ts +57 -0
- package/dist/lib/daemon.d.ts.map +1 -1
- package/dist/lib/loop-guard.d.ts.map +1 -1
- package/dist/lib/presets.d.ts +2 -2
- package/dist/lib/presets.d.ts.map +1 -1
- package/dist/lib/terminal-card.d.ts +28 -0
- package/dist/lib/terminal-card.d.ts.map +1 -1
- package/dist/lib/worktree.d.ts +4 -1
- package/dist/lib/worktree.d.ts.map +1 -1
- package/package.json +4 -4
- package/templates/docs/AGENTS.template.md +6 -1
- package/templates/prompts/_prompt-template.md +1 -1
- package/templates/prompts/analytics-review.md +1 -1
- package/templates/prompts/autowork.md +2 -2
- package/templates/prompts/design-review.md +1 -1
- package/templates/prompts/optimizer.md +5 -4
- package/templates/prompts/peer-review.md +1 -1
- package/templates/prompts/product-planning.md +1 -1
- package/templates/scripts/run-with-loop-guard.js +8 -4
- package/templates/workflows/analytics-review-cron.yml +15 -2
- package/templates/workflows/autowork-cron.yml +15 -2
- package/templates/workflows/dependency-check-cron.yml +15 -2
- package/templates/workflows/design-review-cron.yml +15 -2
- package/templates/workflows/issues-housekeeping-cron.yml +15 -2
- package/templates/workflows/prompt-optimizer-cron.yml +15 -2
- package/templates/workflows/sync-fleet.yml +16 -2
- package/templates/workflows/trigger-autowork-manual.yml +15 -2
- package/templates/workflows/trigger-autowork-on-assign.yml +15 -2
- package/templates/workflows/trigger-autowork-on-bug.yml +15 -2
- package/templates/workflows/trigger-autowork-on-merge.yml +15 -2
- package/templates/workflows/trigger-review-routine.yml +15 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fleet visual design system palette extracted from procedural origin hash:
|
|
3
|
+
* bbf65d904db96f87e74619fc0f7eb9084bab829287cf8b14eda5b727a2c90c9b
|
|
4
|
+
*/
|
|
5
|
+
export declare const FLEET_PALETTE: {
|
|
6
|
+
readonly commandNight: '#050811';
|
|
7
|
+
readonly radarChartreuse: '#BBF65D';
|
|
8
|
+
readonly thrusterCobalt: '#4619FC';
|
|
9
|
+
readonly battleshipSlate: '#829287';
|
|
10
|
+
readonly ordnanceFlare: '#CF8B14';
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Fleet high-contrast ASCII emblem.
|
|
14
|
+
*/
|
|
15
|
+
export declare const FLEET_ASCII_EMBLEM: string[];
|
|
16
|
+
export interface FleetBannerDetail {
|
|
17
|
+
label: string;
|
|
18
|
+
value: string;
|
|
19
|
+
}
|
|
20
|
+
export interface FleetBannerOptions {
|
|
21
|
+
command: string;
|
|
22
|
+
subtitle?: string;
|
|
23
|
+
details?: FleetBannerDetail[];
|
|
24
|
+
width?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Generates the unified Fleet run badge markdown snippet.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getFleetRunBadge(runId?: string, serverUrl?: string, repository?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Generates the unified Fleet session footer markdown snippet.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getFleetFooter(runId?: string, serverUrl?: string, repository?: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Renders the tactical Fleet welcome and command banner.
|
|
36
|
+
*/
|
|
37
|
+
export declare function renderFleetBanner(options: FleetBannerOptions): string;
|
|
38
|
+
//# sourceMappingURL=brand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/lib/brand.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,aAAa;aACxB,YAAY,EAAE,SAAS;aACvB,eAAe,EAAE,SAAS;aAC1B,cAAc,EAAE,SAAS;aACzB,eAAe,EAAE,SAAS;aAC1B,aAAa,EAAE,SAAS;CAChB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,UAO9B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAA6B,EACpC,SAAS,GAAE,MAAmD,EAC9D,UAAU,GAAE,MAA2D,GACtE,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAE,MAA6B,EACpC,SAAS,GAAE,MAAmD,EAC9D,UAAU,GAAE,MAA2D,GACtE,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAmErE"}
|
package/dist/lib/daemon.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type BacklogTriageReport, type BacklogIssueInfo } from './terminal-card.js';
|
|
2
|
+
export type BacklogIssue = BacklogIssueInfo;
|
|
3
|
+
export type { BacklogTriageReport };
|
|
1
4
|
export interface DaemonState {
|
|
2
5
|
pid: number;
|
|
3
6
|
startedAt: string;
|
|
@@ -21,6 +24,7 @@ export interface DaemonOptions {
|
|
|
21
24
|
verbose?: boolean;
|
|
22
25
|
stdin?: any;
|
|
23
26
|
getPRs?: (repoRoot: string) => Promise<ReviewablePR[]>;
|
|
27
|
+
getBacklog?: (repoRoot: string) => Promise<BacklogTriageReport>;
|
|
24
28
|
runRoutine?: (opts: any) => Promise<{
|
|
25
29
|
success: boolean;
|
|
26
30
|
exitCode?: number;
|
|
@@ -50,6 +54,36 @@ export declare function getOpenReviewablePRs(repoRoot: string): Promise<Reviewab
|
|
|
50
54
|
* Fast pre-flight check to query number of open ready PRs in ~100ms with 0 token cost.
|
|
51
55
|
*/
|
|
52
56
|
export declare function countOpenReadyPRs(repoRoot: string): Promise<number>;
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a GitHub user login corresponds to a bot account or designated agent persona.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isBotLogin(login?: string | null): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Classifies a list of open GitHub issues according to the Autowork backlog taxonomy.
|
|
63
|
+
*/
|
|
64
|
+
export declare function classifyBacklogIssues(issues: BacklogIssue[], openPRs?: Array<{
|
|
65
|
+
number: number;
|
|
66
|
+
title?: string;
|
|
67
|
+
body?: string;
|
|
68
|
+
headRefName?: string;
|
|
69
|
+
}>): BacklogTriageReport;
|
|
70
|
+
/**
|
|
71
|
+
* Fast GitHub CLI query for open issues in ~150ms with 0 token cost.
|
|
72
|
+
*/
|
|
73
|
+
export declare function getBacklogIssues(repoRoot: string): Promise<BacklogIssue[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Fast GitHub CLI query for open pull requests with titles and bodies.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getOpenPRsForBacklog(repoRoot: string): Promise<Array<{
|
|
78
|
+
number: number;
|
|
79
|
+
title?: string;
|
|
80
|
+
body?: string;
|
|
81
|
+
headRefName?: string;
|
|
82
|
+
}>>;
|
|
83
|
+
/**
|
|
84
|
+
* Preflight query and classification for the full repository backlog with 0 token cost.
|
|
85
|
+
*/
|
|
86
|
+
export declare function getBacklogTriageReport(repoRoot: string): Promise<BacklogTriageReport>;
|
|
53
87
|
/**
|
|
54
88
|
* Starts the daemon in the background by detaching a child process.
|
|
55
89
|
*/
|
|
@@ -96,6 +130,29 @@ export interface DrainReviewQueueOptions {
|
|
|
96
130
|
* Tracks attempted PRs per pass to prevent infinite loops on stalled or repeatedly unmerged PRs.
|
|
97
131
|
*/
|
|
98
132
|
export declare function drainReviewQueue(drainOptions: DrainReviewQueueOptions): Promise<void>;
|
|
133
|
+
export interface PerformAutoworkScanOptions {
|
|
134
|
+
repoRoot: string;
|
|
135
|
+
state?: DaemonState;
|
|
136
|
+
options?: DaemonOptions;
|
|
137
|
+
isStopping?: () => boolean;
|
|
138
|
+
clearTicker?: () => void;
|
|
139
|
+
getPRs?: (repoRoot: string) => Promise<ReviewablePR[]>;
|
|
140
|
+
getBacklog?: (repoRoot: string) => Promise<BacklogTriageReport>;
|
|
141
|
+
runRoutine?: (opts: any) => Promise<{
|
|
142
|
+
success: boolean;
|
|
143
|
+
exitCode?: number;
|
|
144
|
+
}>;
|
|
145
|
+
onDiagnosticCard?: (card: string) => void;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Performs an autowork backlog scan with zero-token preflight check.
|
|
149
|
+
* Drains reviewable PRs first, evaluates backlog, and bypasses worktree creation
|
|
150
|
+
* when zero actionable issues exist.
|
|
151
|
+
*/
|
|
152
|
+
export declare function performAutoworkScan(scanOptions: PerformAutoworkScanOptions): Promise<{
|
|
153
|
+
executed: boolean;
|
|
154
|
+
reason?: string;
|
|
155
|
+
}>;
|
|
99
156
|
/**
|
|
100
157
|
* Runs the multi-cadence polling daemon loop in the current process with interactive controls.
|
|
101
158
|
*/
|
package/dist/lib/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-guard.d.ts","sourceRoot":"","sources":["../../src/lib/loop-guard.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAarD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,CAAgC;IAE/C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,aAAa,CAA8B;IAEnD,YAAY,OAAO,GAAE,gBAAqB,EAMzC;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAE9D;IAEM,SAAS,IAAI,OAAO,CAE1B;IAEM,OAAO,IAAI,aAAa,GAAG,IAAI,CAErC;IAEM,UAAU,IAAI,YAAY,EAAE,CAElC;IAEM,KAAK,IAAI,IAAI,CAKnB;IAED;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,OAAe,GAAG,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"loop-guard.d.ts","sourceRoot":"","sources":["../../src/lib/loop-guard.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEpF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAarD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,CAAgC;IAE/C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,qBAAqB,CAAa;IAC1C,OAAO,CAAC,aAAa,CAA8B;IAEnD,YAAY,OAAO,GAAE,gBAAqB,EAMzC;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAE9D;IAEM,SAAS,IAAI,OAAO,CAE1B;IAEM,OAAO,IAAI,aAAa,GAAG,IAAI,CAErC;IAEM,UAAU,IAAI,YAAY,EAAE,CAElC;IAEM,KAAK,IAAI,IAAI,CAKnB;IAED;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,OAAe,GAAG,aAAa,GAAG,IAAI,CAmI/F;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAwBlD;IAED,OAAO,CAAC,WAAW;CAWpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAWvE;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CA0BvF;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAmC7E"}
|
package/dist/lib/presets.d.ts
CHANGED
|
@@ -103,6 +103,6 @@ export declare const PRESET_CONFIGS: Record<Exclude<PresetName, 'custom'>, {
|
|
|
103
103
|
}>;
|
|
104
104
|
export declare const ROUTINE_TO_WORKFLOW_MAP: Record<keyof FleetManifest['routines'], string[]>;
|
|
105
105
|
export declare const WORKFLOW_TO_ROUTINE_MAP: Record<string, keyof FleetManifest['routines'] | 'sync-fleet'>;
|
|
106
|
-
export declare const FLEET_VERSION
|
|
107
|
-
export declare const SCHEMA_URL = "https://raw.githubusercontent.com/
|
|
106
|
+
export declare const FLEET_VERSION: string;
|
|
107
|
+
export declare const SCHEMA_URL = "https://raw.githubusercontent.com/Jonah-Projects/jonah-fleet/main/schema.json";
|
|
108
108
|
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lib/presets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lib/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,4 +124,32 @@ export declare class TerminalSpinner {
|
|
|
124
124
|
private render;
|
|
125
125
|
stop(): void;
|
|
126
126
|
}
|
|
127
|
+
export interface BacklogIssueInfo {
|
|
128
|
+
number: number;
|
|
129
|
+
title: string;
|
|
130
|
+
labels?: Array<{
|
|
131
|
+
name: string;
|
|
132
|
+
}>;
|
|
133
|
+
assignees?: Array<{
|
|
134
|
+
login: string;
|
|
135
|
+
}>;
|
|
136
|
+
url?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface BacklogTriageReport {
|
|
139
|
+
actionable: BacklogIssueInfo[];
|
|
140
|
+
inProgress: BacklogIssueInfo[];
|
|
141
|
+
gatedHuman: BacklogIssueInfo[];
|
|
142
|
+
awaitingInfo: BacklogIssueInfo[];
|
|
143
|
+
guardrails: BacklogIssueInfo[];
|
|
144
|
+
routineLogs: BacklogIssueInfo[];
|
|
145
|
+
total: number;
|
|
146
|
+
}
|
|
147
|
+
export interface BacklogCardOptions {
|
|
148
|
+
width?: number;
|
|
149
|
+
repoRoot?: string;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Renders a formatted diagnostic card when Autowork backlog preflight finds 0 actionable issues.
|
|
153
|
+
*/
|
|
154
|
+
export declare function renderBacklogDiagnosticCard(report: BacklogTriageReport, options?: BacklogCardOptions): string;
|
|
127
155
|
//# sourceMappingURL=terminal-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-card.d.ts","sourceRoot":"","sources":["../../src/lib/terminal-card.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"terminal-card.d.ts","sourceRoot":"","sources":["../../src/lib/terminal-card.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/worktree.d.ts
CHANGED
|
@@ -27,8 +27,11 @@ export declare function removeWorktree(repoRoot: string, worktreePath: string, o
|
|
|
27
27
|
* Lists all active Jonah Fleet worktrees in the repository.
|
|
28
28
|
*/
|
|
29
29
|
export declare function listActiveWorktrees(repoRoot: string): Promise<WorktreeInfo[]>;
|
|
30
|
+
export interface CleanupStaleWorktreesOptions {
|
|
31
|
+
keepPath?: string;
|
|
32
|
+
}
|
|
30
33
|
/**
|
|
31
34
|
* Prunes orphaned worktrees and cleans empty worktree directories.
|
|
32
35
|
*/
|
|
33
|
-
export declare function cleanupStaleWorktrees(repoRoot: string): Promise<number>;
|
|
36
|
+
export declare function cleanupStaleWorktrees(repoRoot: string, options?: CleanupStaleWorktreesOptions): Promise<number>;
|
|
34
37
|
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CvD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCnF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA+CvD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCnF;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,MAAM,CAAC,CA+CjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jonah-fleet",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0",
|
|
4
4
|
"description": "Standalone autonomous agent fleet with Symphony orchestration, claim protocols, and continuous improvement loops",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|
|
33
|
-
"url": "https://github.com/
|
|
33
|
+
"url": "https://github.com/Jonah-Projects/jonah-fleet.git"
|
|
34
34
|
},
|
|
35
|
-
"homepage": "https://github.com/
|
|
35
|
+
"homepage": "https://github.com/Jonah-Projects/jonah-fleet#readme",
|
|
36
36
|
"bugs": {
|
|
37
|
-
"url": "https://github.com/
|
|
37
|
+
"url": "https://github.com/Jonah-Projects/jonah-fleet/issues"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"commander": "^15.0.0",
|
|
@@ -65,7 +65,12 @@ tests/ # Test suites
|
|
|
65
65
|
|
|
66
66
|
- **Language**: All code, comments, commit messages, and PR titles must be written in **English**.
|
|
67
67
|
- **Changelog**: Append user-facing changes to `CHANGELOG.md` under today's date section.
|
|
68
|
-
- **
|
|
68
|
+
- **Fleet Run Footer & Badge**: Every GitHub comment, issue edit, and PR description posted by automated Actions must end with the unified Fleet footer and run badge:
|
|
69
|
+
```markdown
|
|
70
|
+
[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})
|
|
71
|
+
|
|
72
|
+
_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_
|
|
73
|
+
```
|
|
69
74
|
|
|
70
75
|
## Autonomous Agent Dispatch (Targeted Autowork)
|
|
71
76
|
|
|
@@ -48,7 +48,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
48
48
|
- **Max scope**: {scope limit, e.g. "one issue per run", "one PR per run"}. Do not expand scope mid-run.
|
|
49
49
|
- **No speculative work**: only take actions directly required by the Definition of Done. Do not refactor adjacent code, open bonus issues, or add improvements not requested.
|
|
50
50
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
51
|
-
- **Session link footer**: sign every GitHub post with the
|
|
51
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
52
52
|
- **Autonomous Surfacing Cadence (No Permission Traps)**: Timeboxing is for surfacing progress, never for stopping. Checkpoints report status without halting execution. Never yield the turn or ask rhetorical permission questions (e.g. "Shall I continue?"). Proceed autonomously.
|
|
53
53
|
- **Defect Taxonomy of Bogus Green Checks**: The most expensive errors in agentic engineering come from checks reporting success for work they did not do. Interrogate verification against the 6 defect classes (Vacuous assertion, Silent no-match, Errored check, Wrong reference, Stale premise, Scope mismatch). Exit codes decide, summaries are intent.
|
|
54
54
|
- **Anti-Hallucination Disk Read-Back Verification**: Always verify generated code, configs, and artifacts by reading values directly back from the written artifact on disk, never from in-memory variables or shell echoes.
|
|
@@ -31,7 +31,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
31
31
|
- **Max scope**: measurement evaluation and product recommendation staging only. Do not implement feature code or open feature PRs.
|
|
32
32
|
- **No telemetry rabbit holes**: if data reveals low adoption or low user intent, do not spend cycles adding further downstream telemetry or error-handling fallbacks; mandate a product recommendation (`PIVOT` or `DEPRECATE`).
|
|
33
33
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
34
|
-
- **Session link footer**: sign every GitHub post with the
|
|
34
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
35
35
|
|
|
36
36
|
## Negative examples (DO NOT do these)
|
|
37
37
|
|
|
@@ -36,7 +36,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
36
36
|
- **No speculative work**: only take actions directly required by the Definition of Done. Do not refactor adjacent code, open bonus issues, or add improvements not requested by the issue.
|
|
37
37
|
- **Single-flight per issue & PR**: multiple autowork runs can execute concurrently. Both issues and pull requests are shared resources — never begin implementing an issue without first claiming it (see Claim protocol in Phase 2), and never begin addressing findings on an open PR without first claiming it (see PR Claim protocol in Phase 1).
|
|
38
38
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
39
|
-
- **Session link footer**: sign every GitHub post (issue comments, PR comments, PR descriptions) with the
|
|
39
|
+
- **Session link footer**: sign every GitHub post (issue comments, PR comments, PR descriptions) with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`. Inline review-thread line comments are exempt.
|
|
40
40
|
- **Headless Execution & Asynchronous Non-Yielding Guardrail**: You are running in a headless autonomous session. You MUST NEVER call `schedule` or yield the turn with plain text while waiting for background tasks or verification checks. When running verification commands (`run_command`), specify `WaitMsBeforeAsync: 10000` so fast checks complete synchronously. If a verification command or subagent runs in the background, actively inspect its completion with `manage_task(Action='status')` or `manage_subagents(Action='list')` (both status polling tools are explicitly exempted from loop guards). DO NOT "busy-wait" by repeatedly calling read tools (such as `view_file`) on unchanged files while waiting for tasks, as calling non-polling tools with identical arguments trips the loop circuit breaker. Never stop calling tools or yield your turn until the routine's terminal Definition of Done is fully reached.
|
|
41
41
|
- **Autonomous Surfacing Cadence (No Permission Traps)**: Timeboxing is for surfacing progress, never for stopping. Checkpoints report status without halting execution. Never yield the turn or ask rhetorical permission questions (e.g. "Shall I continue?", "Proceed with implementation?"). Proceed with the next step autonomously.
|
|
42
42
|
- **Defect Taxonomy of Bogus Green Checks & Red Gate Verification**: Always establish a failing reproduction check or verifier before modifying code (the Red Gate). Interrogate checks against the 6 bogus green defect classes (Vacuous assertion, Silent no-match, Errored check, Wrong reference, Stale premise, Scope mismatch). Exit codes decide; summaries are intent.
|
|
@@ -272,7 +272,7 @@ _Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/ru
|
|
|
272
272
|
- **Next**: PR Creation & Autonomous Handoff" || true
|
|
273
273
|
```
|
|
274
274
|
- Check for competing open PRs immediately before creating PR. If collision, bail cleanly.
|
|
275
|
-
- Open draft PR via `gh pr create --draft --head <branch> --base main --title "<title>" --body "<body referencing Closes #N>"`.
|
|
275
|
+
- Open draft PR via `gh pr create --draft --head <branch> --base main --title "<title>" --body "<body referencing Closes #N with Fleet run badge and footer>"`.
|
|
276
276
|
- **PR Priority Label Mirroring**: If the issue carried a priority label (`priority/P0`, `priority/P1`, `priority/P2`, `priority/P3`), add the identical priority label to the PR (`gh pr edit <PR> --add-label "<label>"` or via `--label` in create) so downstream review workflows can filter triggers immediately.
|
|
277
277
|
- Verify PR URL returned. Update issue `## Tasks` checkboxes.
|
|
278
278
|
- **Issue Cross-Reference Comment Guardrail**: Post an explicit comment on the tracking issue referencing the newly created PR (`gh issue comment <ISSUE_NUMBER> --body "Work in progress in PR #<PR_NUMBER>."`). This guarantees an unambiguous, permanent link on the issue timeline even when GitHub's native UI link is suppressed for bot draft PRs.
|
|
@@ -34,7 +34,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
34
34
|
- **Max scope**: auditing player-facing UI surfaces only (`src/app/[locale]/**/page.tsx`, excluding `admin/**`). Do not implement feature code or open feature PRs directly.
|
|
35
35
|
- **Budget-capped rotation**: review as many prioritized surfaces as possible within the iteration budget; do not attempt an exhaustive sweep if approaching the tool call ceiling. Stamp remaining surfaces as `Next Surfaces in Rotation`.
|
|
36
36
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
37
|
-
- **Session link footer**: sign every GitHub post with the
|
|
37
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
38
38
|
|
|
39
39
|
## Negative examples (DO NOT do these)
|
|
40
40
|
|
|
@@ -12,7 +12,7 @@ Routine objective, Definition of Done, constraints, instructions, and logging.
|
|
|
12
12
|
|
|
13
13
|
Scan recent agent run logs and closed issues, diagnose four classes of problem — **failures** (runs that logged FAILURE), **inefficiency** (runs burning excessive iterations or multi-loop PRs), **token consumption & cost anomalies** (runs trending toward weekly budget ceilings), and **preventable bugs & defect avoidance** (analyzing resolved bugs to determine root causes and authoring/review prevention checks) — and propose targeted prompt, template, test, and workflow fixes via pull requests.
|
|
14
14
|
|
|
15
|
-
Additionally, this routine acts as the **Upstream Evolution Bridge**: when a prompt improvement solves a generic orchestrator pattern (benefiting all fleet-connected projects), it proposes the fix upstream to the `jonah-fleet` repository (`
|
|
15
|
+
Additionally, this routine acts as the **Upstream Evolution Bridge**: when a prompt improvement solves a generic orchestrator pattern (benefiting all fleet-connected projects), it proposes the fix upstream to the `jonah-fleet` repository (`Jonah-Projects/jonah-fleet`).
|
|
16
16
|
|
|
17
17
|
## Definition of Done
|
|
18
18
|
|
|
@@ -25,7 +25,7 @@ The run is SUCCESS if ALL of these are true:
|
|
|
25
25
|
- [ ] Closed bug issues and merged bug-fix PRs in the window have been analyzed for systemic root causes
|
|
26
26
|
- [ ] For each fixable pattern:
|
|
27
27
|
- If project-specific: opened a local PR with a prompt, template, or test fix and marked ready for review
|
|
28
|
-
- If generic/fleet-wide: opened an upstream PR against `
|
|
28
|
+
- If generic/fleet-wide: opened an upstream PR against `Jonah-Projects/jonah-fleet` (or flagged via `npx jonah-fleet contribute`)
|
|
29
29
|
- [ ] Every PR links a tracking issue via `Closes #N`
|
|
30
30
|
- [ ] If no issues or optimization patterns are found, logged SUCCESS with "No issues to address"
|
|
31
31
|
|
|
@@ -37,6 +37,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
37
37
|
- **Max scope**: one PR per identified problem. Do not bundle unrelated fixes.
|
|
38
38
|
- **No speculative work**: only fix patterns evidenced by routine issues, closed bug issues, or reviewer findings.
|
|
39
39
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
40
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
40
41
|
|
|
41
42
|
## Instructions
|
|
42
43
|
|
|
@@ -100,11 +101,11 @@ Translate findings into concrete preventative improvements and remediation trigg
|
|
|
100
101
|
- Branch from `origin/main`, apply changes, and open PR via `gh pr create --draft`.
|
|
101
102
|
- Link tracking issue and mark ready for review (`gh pr ready <PR>`).
|
|
102
103
|
- **Generic / Fleet Improvement**: If the fix improves core prompt orchestration, claim protocols, or universal error handling:
|
|
103
|
-
- Open a PR against upstream `
|
|
104
|
+
- Open a PR against upstream `Jonah-Projects/jonah-fleet` using the GitHub CLI:
|
|
104
105
|
```bash
|
|
105
106
|
npx jonah-fleet contribute --title "fix(prompt): <description>" --body "<evidence from local run logs>"
|
|
106
107
|
```
|
|
107
|
-
or branch and open a PR against upstream `
|
|
108
|
+
or branch and open a PR against upstream `Jonah-Projects/jonah-fleet`.
|
|
108
109
|
|
|
109
110
|
## Logging
|
|
110
111
|
|
|
@@ -40,7 +40,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
40
40
|
- **Max scope**: one PR per run. Do not review a second PR after finishing the first.
|
|
41
41
|
- **No speculative work**: review only the diff in the PR.
|
|
42
42
|
- **Language Requirement**: All GitHub comments, review notes, and follow-up issues MUST be written in **English**.
|
|
43
|
-
- **Session link footer**: sign every GitHub post with the
|
|
43
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
44
44
|
- **Headless Execution & Asynchronous Non-Yielding Guardrail**: You are running in a headless autonomous CLI session. You MUST NEVER call `schedule` or yield the turn with plain text to "wait" for background tasks, timers, or long-running commands. In headless CLI mode, yielding the turn terminates the session immediately before reaching the Definition of Done. When invoking `run_command` for test runs or type checks, ALWAYS set `WaitMsBeforeAsync` high enough (up to the maximum `10000` ms) so fast checks finish synchronously. If a command or subagent moves to the background, keep your execution turn active by polling status (`manage_task(Action='status')` or `manage_subagents(Action='list')`); status polling with these tools is explicitly exempted from loop guard circuit breakers. DO NOT "busy-wait" by repeatedly reading unchanged files (`view_file`) or running redundant commands to pass time while waiting, as calling non-polling tools with identical arguments will trip the loop guard. NEVER call `schedule` or emit a terminal turn with plain text before taking the final action.
|
|
45
45
|
- **Verification Command & CI Discipline**: When remote CI checks (e.g. GitHub Actions, Vercel preview deployments) are already present and passed on the PR's head commit, treat CI as verified and green. Avoid executing slow, redundant local full test suites or full type-checks when CI is already green. Run local verification commands (`npm test`, `npm run type-check`) ONLY if CI is missing, unconfirmed, or failing.
|
|
46
46
|
- **Autonomous Surfacing Cadence (No Permission Traps)**: Timeboxing is for surfacing progress, never for stopping. Checkpoints report status without halting execution. Never yield the turn or prompt rhetorical permission questions (e.g. "Shall I continue?", "Proceed to merge?"). Take authoritative final action autonomously.
|
|
@@ -42,7 +42,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
42
42
|
- **Max iterations**: 30 — after 30 tool call rounds without completing Definition of Done, STOP. Log FAILURE with category `token_limit`.
|
|
43
43
|
- **Max scope**: planning and staging only. Do not implement code or open feature PRs.
|
|
44
44
|
- **Language Requirement**: All GitHub issue titles, descriptions, task checklists, and comments MUST be written in **English**.
|
|
45
|
-
- **Session link footer**: sign every GitHub post with the
|
|
45
|
+
- **Session link footer**: sign every GitHub post with the unified Fleet footer and run badge: `[](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})\n\n_Generated by [Antigravity](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})_`.
|
|
46
46
|
|
|
47
47
|
## Negative examples (DO NOT do these)
|
|
48
48
|
|
|
@@ -76,7 +76,9 @@ export class LoopGuard {
|
|
|
76
76
|
const isExemptFromRepetition =
|
|
77
77
|
isStatusPolling ||
|
|
78
78
|
toolName === 'view_file' ||
|
|
79
|
-
toolName === 'read_file'
|
|
79
|
+
toolName === 'read_file' ||
|
|
80
|
+
toolName === 'replace_file_content' ||
|
|
81
|
+
toolName === 'write_to_file';
|
|
80
82
|
|
|
81
83
|
const hash = computeActionHash(toolName, args);
|
|
82
84
|
const record = {
|
|
@@ -141,7 +143,7 @@ export class LoopGuard {
|
|
|
141
143
|
const requiredPingPongLength = this.pingPongThreshold * 2;
|
|
142
144
|
if (this.history.length >= requiredPingPongLength) {
|
|
143
145
|
const pingPongSlice = this.history.slice(-requiredPingPongLength);
|
|
144
|
-
const
|
|
146
|
+
const hasExemptPingPongAction = pingPongSlice.some(
|
|
145
147
|
(item) =>
|
|
146
148
|
(item.toolName === 'manage_task' &&
|
|
147
149
|
(item.args?.Action === 'status' ||
|
|
@@ -150,10 +152,12 @@ export class LoopGuard {
|
|
|
150
152
|
item.args?.action === 'list')) ||
|
|
151
153
|
(item.toolName === 'manage_subagents' &&
|
|
152
154
|
(item.args?.Action === 'list' ||
|
|
153
|
-
item.args?.action === 'list'))
|
|
155
|
+
item.args?.action === 'list')) ||
|
|
156
|
+
item.toolName === 'replace_file_content' ||
|
|
157
|
+
item.toolName === 'write_to_file'
|
|
154
158
|
);
|
|
155
159
|
|
|
156
|
-
if (!
|
|
160
|
+
if (!hasExemptPingPongAction) {
|
|
157
161
|
const hashA = pingPongSlice[0].hash;
|
|
158
162
|
const hashB = pingPongSlice[1].hash;
|
|
159
163
|
|
|
@@ -41,8 +41,21 @@ jobs:
|
|
|
41
41
|
env:
|
|
42
42
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
43
43
|
run: |
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
45
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
46
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
47
|
+
fi
|
|
48
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
49
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
50
|
+
git config --global user.name "$ACTOR_NAME"
|
|
51
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
52
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
53
|
+
git config --global user.name "$ACTOR_NAME"
|
|
54
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
55
|
+
else
|
|
56
|
+
git config --global user.name "github-actions[bot]"
|
|
57
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
58
|
+
fi
|
|
46
59
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
47
60
|
gh auth setup-git
|
|
48
61
|
|
|
@@ -48,8 +48,21 @@ jobs:
|
|
|
48
48
|
env:
|
|
49
49
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
50
50
|
run: |
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
52
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
53
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
54
|
+
fi
|
|
55
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
56
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
57
|
+
git config --global user.name "$ACTOR_NAME"
|
|
58
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
59
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
60
|
+
git config --global user.name "$ACTOR_NAME"
|
|
61
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
62
|
+
else
|
|
63
|
+
git config --global user.name "github-actions[bot]"
|
|
64
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
65
|
+
fi
|
|
53
66
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
54
67
|
gh auth setup-git
|
|
55
68
|
|
|
@@ -36,8 +36,21 @@ jobs:
|
|
|
36
36
|
env:
|
|
37
37
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
38
38
|
run: |
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
40
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
41
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
42
|
+
fi
|
|
43
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
44
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
45
|
+
git config --global user.name "$ACTOR_NAME"
|
|
46
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
47
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
48
|
+
git config --global user.name "$ACTOR_NAME"
|
|
49
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
50
|
+
else
|
|
51
|
+
git config --global user.name "github-actions[bot]"
|
|
52
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
53
|
+
fi
|
|
41
54
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
42
55
|
gh auth setup-git
|
|
43
56
|
|
|
@@ -48,8 +48,21 @@ jobs:
|
|
|
48
48
|
env:
|
|
49
49
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
50
50
|
run: |
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
52
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
53
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
54
|
+
fi
|
|
55
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
56
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
57
|
+
git config --global user.name "$ACTOR_NAME"
|
|
58
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
59
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
60
|
+
git config --global user.name "$ACTOR_NAME"
|
|
61
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
62
|
+
else
|
|
63
|
+
git config --global user.name "github-actions[bot]"
|
|
64
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
65
|
+
fi
|
|
53
66
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
54
67
|
gh auth setup-git
|
|
55
68
|
|
|
@@ -36,8 +36,21 @@ jobs:
|
|
|
36
36
|
env:
|
|
37
37
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
38
38
|
run: |
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
40
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
41
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
42
|
+
fi
|
|
43
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
44
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
45
|
+
git config --global user.name "$ACTOR_NAME"
|
|
46
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
47
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
48
|
+
git config --global user.name "$ACTOR_NAME"
|
|
49
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
50
|
+
else
|
|
51
|
+
git config --global user.name "github-actions[bot]"
|
|
52
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
53
|
+
fi
|
|
41
54
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
42
55
|
gh auth setup-git
|
|
43
56
|
|
|
@@ -36,8 +36,21 @@ jobs:
|
|
|
36
36
|
env:
|
|
37
37
|
GH_TOKEN: ${{ secrets.GH_PAT || github.token }}
|
|
38
38
|
run: |
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if USER_JSON=$(gh api user 2>/dev/null); then
|
|
40
|
+
ACTOR_NAME=$(echo "$USER_JSON" | jq -r '.login // empty')
|
|
41
|
+
ACTOR_ID=$(echo "$USER_JSON" | jq -r '.id // empty')
|
|
42
|
+
fi
|
|
43
|
+
ACTOR_NAME="${ACTOR_NAME:-${{ vars.AGENT_BOT_LOGIN || '' }}}"
|
|
44
|
+
if [ -n "$ACTOR_NAME" ] && [ -n "$ACTOR_ID" ]; then
|
|
45
|
+
git config --global user.name "$ACTOR_NAME"
|
|
46
|
+
git config --global user.email "${ACTOR_ID}+${ACTOR_NAME}@users.noreply.github.com"
|
|
47
|
+
elif [ -n "$ACTOR_NAME" ]; then
|
|
48
|
+
git config --global user.name "$ACTOR_NAME"
|
|
49
|
+
git config --global user.email "${ACTOR_NAME}@users.noreply.github.com"
|
|
50
|
+
else
|
|
51
|
+
git config --global user.name "github-actions[bot]"
|
|
52
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
53
|
+
fi
|
|
41
54
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
42
55
|
gh auth setup-git
|
|
43
56
|
|