jonah-fleet 1.2.0 → 1.4.1
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 +96 -0
- package/README.md +9 -2
- package/dist/commands/contribute.d.ts +29 -0
- package/dist/commands/contribute.d.ts.map +1 -0
- package/dist/commands/daemon.d.ts +10 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/monitor.d.ts +16 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/run.d.ts +11 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/sync.d.ts +7 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/telemetry.d.ts +14 -0
- package/dist/commands/telemetry.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1781 -120
- package/dist/lib/daemon.d.ts +42 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/dashboard.d.ts +10 -0
- package/dist/lib/dashboard.d.ts.map +1 -0
- package/dist/lib/detector.d.ts +25 -0
- package/dist/lib/detector.d.ts.map +1 -0
- package/dist/lib/diff.d.ts +10 -0
- package/dist/lib/diff.d.ts.map +1 -0
- package/dist/lib/evals.d.ts +72 -0
- package/dist/lib/evals.d.ts.map +1 -0
- package/dist/lib/fleet-query.d.ts +102 -0
- package/dist/lib/fleet-query.d.ts.map +1 -0
- package/dist/lib/global-config.d.ts +10 -0
- package/dist/lib/global-config.d.ts.map +1 -0
- package/dist/lib/installer.d.ts +27 -0
- package/dist/lib/installer.d.ts.map +1 -0
- package/dist/lib/manifest.d.ts +6 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/presets.d.ts +52 -0
- package/dist/lib/presets.d.ts.map +1 -0
- package/dist/lib/runner.d.ts +40 -0
- package/dist/lib/runner.d.ts.map +1 -0
- package/dist/lib/telemetry.d.ts +90 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/worktree.d.ts +34 -0
- package/dist/lib/worktree.d.ts.map +1 -0
- package/package.json +9 -5
- package/schema.json +44 -1
- package/templates/docs/AGENTS.template.md +15 -0
- package/templates/prompts/ORCHESTRATION.md +74 -3
- package/templates/prompts/analytics-review.md +91 -0
- package/templates/prompts/autowork.md +15 -4
- package/templates/prompts/issues-housekeeping.md +2 -1
- package/templates/prompts/optimizer.md +2 -0
- package/templates/prompts/peer-review.md +14 -5
- package/templates/prompts/product-planning.md +18 -7
- package/templates/skills/diagnosing-bugs/SKILL.md +9 -0
- package/templates/workflows/autowork-cron.yml +19 -1
- package/templates/workflows/prompt-optimizer-cron.yml +22 -0
- package/templates/workflows/trigger-autowork-manual.yml +169 -0
- package/templates/workflows/trigger-autowork-on-bug.yml +5 -5
- package/templates/workflows/trigger-autowork-on-merge.yml +3 -3
- package/templates/workflows/trigger-review-routine.yml +107 -11
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface DaemonState {
|
|
2
|
+
pid: number;
|
|
3
|
+
startedAt: string;
|
|
4
|
+
reviewIntervalMinutes: number;
|
|
5
|
+
autoworkIntervalMinutes: number;
|
|
6
|
+
routines: string[];
|
|
7
|
+
lastReviewCheckAt?: string;
|
|
8
|
+
lastAutoworkCheckAt?: string;
|
|
9
|
+
status: 'idle' | 'working' | 'stopped';
|
|
10
|
+
activeRoutine?: string;
|
|
11
|
+
activeWorktree?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DaemonOptions {
|
|
14
|
+
interval?: number;
|
|
15
|
+
reviewInterval?: number;
|
|
16
|
+
autoworkInterval?: number;
|
|
17
|
+
routines?: string[];
|
|
18
|
+
model?: string;
|
|
19
|
+
foreground?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function getDaemonStatePath(repoRoot: string): string;
|
|
22
|
+
export declare function readDaemonState(repoRoot: string): DaemonState | null;
|
|
23
|
+
export declare function writeDaemonState(repoRoot: string, state: DaemonState): void;
|
|
24
|
+
export declare function clearDaemonState(repoRoot: string): void;
|
|
25
|
+
export declare function isDaemonRunning(repoRoot: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Fast pre-flight check to query number of open ready PRs in ~100ms with 0 token cost.
|
|
28
|
+
*/
|
|
29
|
+
export declare function countOpenReadyPRs(repoRoot: string): Promise<number>;
|
|
30
|
+
/**
|
|
31
|
+
* Starts the daemon in the background by detaching a child process.
|
|
32
|
+
*/
|
|
33
|
+
export declare function startBackgroundDaemon(repoRoot: string, options?: DaemonOptions): Promise<DaemonState>;
|
|
34
|
+
/**
|
|
35
|
+
* Stops a running daemon process.
|
|
36
|
+
*/
|
|
37
|
+
export declare function stopDaemon(repoRoot: string): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Runs the multi-cadence polling daemon loop in the current process.
|
|
40
|
+
*/
|
|
41
|
+
export declare function runDaemonLoop(repoRoot: string, options?: DaemonOptions): Promise<void>;
|
|
42
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/lib/daemon.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAQpE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAI3E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CASvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAYzD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWzE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmD/G;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAanE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmIhG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RepoFleetStatus } from './fleet-query.js';
|
|
2
|
+
export interface DashboardOptions {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
tokens?: boolean;
|
|
5
|
+
detailed?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function formatTokens(num: number): string;
|
|
8
|
+
export declare function formatCurrency(amount: number): string;
|
|
9
|
+
export declare function renderFleetDashboard(statuses: RepoFleetStatus[], options?: DashboardOptions): string;
|
|
10
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/lib/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAmJxG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface StackCommands {
|
|
2
|
+
dev?: string;
|
|
3
|
+
build?: string;
|
|
4
|
+
lint?: string;
|
|
5
|
+
typeCheck?: string;
|
|
6
|
+
test?: string;
|
|
7
|
+
testWatch?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DetectedStack {
|
|
10
|
+
name: string;
|
|
11
|
+
language: string;
|
|
12
|
+
framework?: string;
|
|
13
|
+
backend?: string;
|
|
14
|
+
packageManager: string;
|
|
15
|
+
testFramework?: string;
|
|
16
|
+
linter?: string;
|
|
17
|
+
typeChecker?: string;
|
|
18
|
+
styling?: string;
|
|
19
|
+
deployment?: string;
|
|
20
|
+
commands: StackCommands;
|
|
21
|
+
detectedFiles: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare function detectTechStack(projectDir: string): DetectedStack;
|
|
24
|
+
export declare function renderAgentsTemplate(templateContent: string, stack: DetectedStack): string;
|
|
25
|
+
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/lib/detector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CA8UjE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAkE1F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FleetManifest } from './presets.js';
|
|
2
|
+
export interface DriftReport {
|
|
3
|
+
missingPrompts: string[];
|
|
4
|
+
modifiedPrompts: string[];
|
|
5
|
+
missingWorkflows: string[];
|
|
6
|
+
modifiedWorkflows: string[];
|
|
7
|
+
missingSkills: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare function checkDrift(targetDir: string, manifest: FleetManifest): DriftReport;
|
|
10
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/lib/diff.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAA2B,MAAM,cAAc,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,WAAW,CAmFlF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type DriftReport } from './diff.js';
|
|
2
|
+
export interface SyntheticLogOptions {
|
|
3
|
+
routine: 'autowork' | 'peer-review' | 'optimizer' | 'issues-housekeeping' | 'dependency-check' | 'product-planning' | 'analytics-review';
|
|
4
|
+
timestamp: string;
|
|
5
|
+
result: 'SUCCESS' | 'FAILURE';
|
|
6
|
+
errorCategory?: 'prompt_unclear' | 'token_limit' | 'data_issue' | 'infeasible_task' | 'merge_conflict' | 'orchestration_collision' | 'telemetry_rabbit_hole' | 'intent_vs_defect';
|
|
7
|
+
errorReason?: string;
|
|
8
|
+
inputTokens?: number;
|
|
9
|
+
outputTokens?: number;
|
|
10
|
+
durationSeconds?: number;
|
|
11
|
+
iterations?: number;
|
|
12
|
+
reviewRounds?: number;
|
|
13
|
+
isGenericPattern?: boolean;
|
|
14
|
+
suggestedOptimization?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ContributionProposal {
|
|
17
|
+
id: string;
|
|
18
|
+
scope: 'generic' | 'local';
|
|
19
|
+
title: string;
|
|
20
|
+
body: string;
|
|
21
|
+
targetPrompt?: string;
|
|
22
|
+
evidenceLogs: string[];
|
|
23
|
+
suggestedChanges: string;
|
|
24
|
+
}
|
|
25
|
+
export interface OptimizationAnalysisResult {
|
|
26
|
+
totalLogsScanned: number;
|
|
27
|
+
failureCount: number;
|
|
28
|
+
failureCategories: Record<string, number>;
|
|
29
|
+
highIterationRuns: number;
|
|
30
|
+
reviewPingPongCount: number;
|
|
31
|
+
proposals: ContributionProposal[];
|
|
32
|
+
}
|
|
33
|
+
export interface DownstreamSyncSimulationOptions {
|
|
34
|
+
targetDir: string;
|
|
35
|
+
initialPreset?: 'minimal' | 'standard' | 'full';
|
|
36
|
+
initialVersion?: string;
|
|
37
|
+
modifiedPrompts?: Record<string, string>;
|
|
38
|
+
}
|
|
39
|
+
export interface DownstreamSyncSimulationResult {
|
|
40
|
+
initialDrift: {
|
|
41
|
+
hasDrift: boolean;
|
|
42
|
+
driftDetails: DriftReport;
|
|
43
|
+
};
|
|
44
|
+
syncedVersion: string;
|
|
45
|
+
isCleanAfterSync: boolean;
|
|
46
|
+
prPayload: {
|
|
47
|
+
shouldCreatePR: boolean;
|
|
48
|
+
headBranch?: string;
|
|
49
|
+
baseBranch?: string;
|
|
50
|
+
title?: string;
|
|
51
|
+
body?: string;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Generate a synthetic markdown log conforming to .github/prompts/logs/_template.md
|
|
56
|
+
*/
|
|
57
|
+
export declare function createSyntheticRunLog(options: SyntheticLogOptions): string;
|
|
58
|
+
/**
|
|
59
|
+
* Build a realistic synthetic dataset simulating multiple routine runs
|
|
60
|
+
*/
|
|
61
|
+
export declare function createSyntheticOptimizerDataset(): {
|
|
62
|
+
logs: string[];
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Analyze run logs and extract failure patterns, efficiency bottlenecks, and contribution proposals
|
|
66
|
+
*/
|
|
67
|
+
export declare function analyzeOptimizerSignals(logs: string[]): OptimizationAnalysisResult;
|
|
68
|
+
/**
|
|
69
|
+
* Simulate consumer repository downstream sync and verify drift & PR generation
|
|
70
|
+
*/
|
|
71
|
+
export declare function simulateDownstreamSyncWorkflow(options: DownstreamSyncSimulationOptions): DownstreamSyncSimulationResult;
|
|
72
|
+
//# sourceMappingURL=evals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../../src/lib/evals.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAKzD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IACzI,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,kBAAkB,CAAC;IAClL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,WAAW,CAAC;KAC3B,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE;QACT,cAAc,EAAE,OAAO,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAiD1E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CA8CpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAsElF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,+BAA+B,GAAG,8BAA8B,CAmEvH"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
export type GhExecutor = (args: string[]) => Promise<string>;
|
|
2
|
+
export declare const defaultGhExecutor: GhExecutor;
|
|
3
|
+
export interface AutoworkClaim {
|
|
4
|
+
issueNumber: number;
|
|
5
|
+
title: string;
|
|
6
|
+
assignee: string;
|
|
7
|
+
claimedAt: string;
|
|
8
|
+
ageHours: number;
|
|
9
|
+
isStale: boolean;
|
|
10
|
+
url?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface OpenPRInfo {
|
|
13
|
+
number: number;
|
|
14
|
+
title: string;
|
|
15
|
+
author: string;
|
|
16
|
+
isDraft: boolean;
|
|
17
|
+
reviewDecision?: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
url?: string;
|
|
21
|
+
headRefName?: string;
|
|
22
|
+
body?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RoutineTokenSpend {
|
|
25
|
+
routine: string;
|
|
26
|
+
runCount: number;
|
|
27
|
+
inputTokens: number;
|
|
28
|
+
outputTokens: number;
|
|
29
|
+
totalTokens: number;
|
|
30
|
+
estimatedCost: number;
|
|
31
|
+
avgTokensPerRun: number;
|
|
32
|
+
maxTokensPerRun: number;
|
|
33
|
+
avgIterationsUsed?: number;
|
|
34
|
+
fleetSharePercent: number;
|
|
35
|
+
}
|
|
36
|
+
export interface TokenSpendInfo {
|
|
37
|
+
sevenDayInputTokens: number;
|
|
38
|
+
sevenDayOutputTokens: number;
|
|
39
|
+
sevenDayTotalTokens: number;
|
|
40
|
+
sevenDayEstimatedCost: number;
|
|
41
|
+
recentRunCount: number;
|
|
42
|
+
byRoutine: Record<string, RoutineTokenSpend>;
|
|
43
|
+
}
|
|
44
|
+
export interface RepoFleetStatus {
|
|
45
|
+
repo: string;
|
|
46
|
+
fleetVersion?: string;
|
|
47
|
+
preset?: string;
|
|
48
|
+
activeClaims: AutoworkClaim[];
|
|
49
|
+
openPRs: OpenPRInfo[];
|
|
50
|
+
tokenUsage: TokenSpendInfo;
|
|
51
|
+
staleWarnings: string[];
|
|
52
|
+
error?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface FleetSummary {
|
|
55
|
+
totalRepos: number;
|
|
56
|
+
activeClaimsCount: number;
|
|
57
|
+
staleClaimsCount: number;
|
|
58
|
+
openPRsCount: number;
|
|
59
|
+
draftPRsCount: number;
|
|
60
|
+
readyPRsCount: number;
|
|
61
|
+
totalInputTokens7d: number;
|
|
62
|
+
totalOutputTokens7d: number;
|
|
63
|
+
totalTokens7d: number;
|
|
64
|
+
totalEstimatedCost7d: number;
|
|
65
|
+
totalRuns7d: number;
|
|
66
|
+
byRoutine?: Record<string, RoutineTokenSpend>;
|
|
67
|
+
}
|
|
68
|
+
export interface LogMetadata {
|
|
69
|
+
routine?: string;
|
|
70
|
+
timestamp?: string;
|
|
71
|
+
result?: string;
|
|
72
|
+
inputTokens?: number;
|
|
73
|
+
outputTokens?: number;
|
|
74
|
+
estimatedCost?: number;
|
|
75
|
+
iterationsUsed?: number;
|
|
76
|
+
duration?: number;
|
|
77
|
+
}
|
|
78
|
+
export declare function parseLogMetadata(content: string): LogMetadata | null;
|
|
79
|
+
export declare function computeTokenSpendFromLogs(logContents: string[], now?: number): TokenSpendInfo;
|
|
80
|
+
export declare function parseClaimFromIssue(issue: {
|
|
81
|
+
number: number;
|
|
82
|
+
title: string;
|
|
83
|
+
assignees?: Array<{
|
|
84
|
+
login: string;
|
|
85
|
+
}>;
|
|
86
|
+
comments?: Array<{
|
|
87
|
+
body: string;
|
|
88
|
+
createdAt: string;
|
|
89
|
+
author?: {
|
|
90
|
+
login: string;
|
|
91
|
+
};
|
|
92
|
+
}>;
|
|
93
|
+
url?: string;
|
|
94
|
+
}, openPRs?: Array<{
|
|
95
|
+
number: number;
|
|
96
|
+
title: string;
|
|
97
|
+
body?: string;
|
|
98
|
+
headRefName?: string;
|
|
99
|
+
}>, now?: number): AutoworkClaim | null;
|
|
100
|
+
export declare function queryRepoFleetStatus(repoIdentifier: string, executor?: GhExecutor, now?: number): Promise<RepoFleetStatus>;
|
|
101
|
+
export declare function summarizeFleet(statuses: RepoFleetStatus[]): FleetSummary;
|
|
102
|
+
//# sourceMappingURL=fleet-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-query.d.ts","sourceRoot":"","sources":["../../src/lib/fleet-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface GlobalConfig {
|
|
2
|
+
repositories: string[];
|
|
3
|
+
}
|
|
4
|
+
export declare function getDefaultGlobalConfigPath(): string;
|
|
5
|
+
export declare function loadGlobalConfig(customPath?: string): GlobalConfig;
|
|
6
|
+
export declare function saveGlobalConfig(config: GlobalConfig, customPath?: string): void;
|
|
7
|
+
export declare function addGlobalRepository(repo: string, customPath?: string): GlobalConfig;
|
|
8
|
+
export declare function removeGlobalRepository(repo: string, customPath?: string): GlobalConfig;
|
|
9
|
+
export declare function getFleetRepositories(cwd?: string, customGlobalConfigPath?: string): string[];
|
|
10
|
+
//# sourceMappingURL=global-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/lib/global-config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAGnD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAclE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAUnF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAMtF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkB5F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FleetManifest } from './presets.js';
|
|
2
|
+
import { DetectedStack } from './detector.js';
|
|
3
|
+
export declare function getTemplatesDir(): string;
|
|
4
|
+
export interface InstallResult {
|
|
5
|
+
promptsInstalled: string[];
|
|
6
|
+
workflowsInstalled: string[];
|
|
7
|
+
skillsInstalled: string[];
|
|
8
|
+
docsInstalled: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface InstallOptions {
|
|
11
|
+
force?: boolean;
|
|
12
|
+
detectedStack?: DetectedStack;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Replaces the first `- cron: '...'` or `- cron: "..."` inside a workflow file with the given custom cron expression.
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyWorkflowSchedule(content: string, customCron?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Extracts the cron expression from a workflow content string if present.
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractWorkflowSchedule(content: string): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the desired schedule for a workflow according to manifest preferences or existing target file content.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveWorkflowSchedule(workflowFile: string, routineName: string | undefined, manifest: FleetManifest, destContent?: string): string | undefined;
|
|
26
|
+
export declare function installFleet(targetDir: string, manifest: FleetManifest, options?: InstallOptions): InstallResult;
|
|
27
|
+
//# sourceMappingURL=installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAA2B,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAyC,MAAM,eAAe,CAAC;AAKrF,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,aAAa,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAqBpB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CA2GpH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FleetManifest, PresetName } from './presets.js';
|
|
2
|
+
export declare const MANIFEST_FILENAME = "agents-manifest.json";
|
|
3
|
+
export declare function loadManifest(targetDir: string): FleetManifest | null;
|
|
4
|
+
export declare function saveManifest(targetDir: string, manifest: FleetManifest): void;
|
|
5
|
+
export declare function createDefaultManifest(preset?: PresetName): FleetManifest;
|
|
6
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAiC,UAAU,EAAc,MAAM,cAAc,CAAC;AAEpG,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWpE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAG7E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,UAAuB,GAAG,aAAa,CAmCpF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export type PresetName = 'minimal' | 'standard' | 'full' | 'custom';
|
|
2
|
+
export interface FleetManifest {
|
|
3
|
+
$schema?: string;
|
|
4
|
+
version: string;
|
|
5
|
+
preset: PresetName;
|
|
6
|
+
routines: {
|
|
7
|
+
autowork: boolean;
|
|
8
|
+
'peer-review': boolean;
|
|
9
|
+
optimizer: boolean;
|
|
10
|
+
'issues-housekeeping': boolean;
|
|
11
|
+
'dependency-update-security-check': boolean;
|
|
12
|
+
'product-planning': boolean;
|
|
13
|
+
'analytics-review': boolean;
|
|
14
|
+
};
|
|
15
|
+
schedules?: {
|
|
16
|
+
autowork?: string;
|
|
17
|
+
'peer-review'?: string;
|
|
18
|
+
optimizer?: string;
|
|
19
|
+
'issues-housekeeping'?: string;
|
|
20
|
+
'dependency-update-security-check'?: string;
|
|
21
|
+
'analytics-review'?: string;
|
|
22
|
+
'sync-fleet'?: string;
|
|
23
|
+
[key: string]: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
skills: string[];
|
|
26
|
+
repositories?: string[];
|
|
27
|
+
autoUpdate?: {
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
channel: 'stable' | 'latest';
|
|
30
|
+
};
|
|
31
|
+
telemetry?: {
|
|
32
|
+
enabled?: boolean;
|
|
33
|
+
endpoint?: string;
|
|
34
|
+
weeklyTokenBudget?: number;
|
|
35
|
+
};
|
|
36
|
+
dualExecution?: DualExecutionConfig;
|
|
37
|
+
}
|
|
38
|
+
export interface DualExecutionConfig {
|
|
39
|
+
enabled?: boolean;
|
|
40
|
+
cloudPriorities?: string[];
|
|
41
|
+
cloudCatchupHours?: number;
|
|
42
|
+
}
|
|
43
|
+
export declare const DEFAULT_DUAL_EXECUTION_CONFIG: DualExecutionConfig;
|
|
44
|
+
export declare const PRESET_CONFIGS: Record<Exclude<PresetName, 'custom'>, {
|
|
45
|
+
routines: FleetManifest['routines'];
|
|
46
|
+
skills: string[];
|
|
47
|
+
}>;
|
|
48
|
+
export declare const ROUTINE_TO_WORKFLOW_MAP: Record<keyof FleetManifest['routines'], string[]>;
|
|
49
|
+
export declare const WORKFLOW_TO_ROUTINE_MAP: Record<string, keyof FleetManifest['routines'] | 'sync-fleet'>;
|
|
50
|
+
export declare const FLEET_VERSION = "1.4.1";
|
|
51
|
+
export declare const SCHEMA_URL = "https://raw.githubusercontent.com/juliendurandeu/jonah-fleet/main/schema.json";
|
|
52
|
+
//# sourceMappingURL=presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/lib/presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,kCAAkC,EAAE,OAAO,CAAC;QAC5C,kBAAkB,EAAE,OAAO,CAAC;QAC5B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,kCAAkC,CAAC,EAAE,MAAM,CAAC;QAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC9B,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,6BAA6B,EAAE,mBAI3C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;IAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA+D3H,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAarF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAOlG,CAAC;AAEF,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,UAAU,kFAAkF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface RunLocalRoutineOptions {
|
|
2
|
+
targetDir: string;
|
|
3
|
+
routine: string;
|
|
4
|
+
issue?: string | number;
|
|
5
|
+
pr?: string | number;
|
|
6
|
+
model?: string;
|
|
7
|
+
printTimeout?: string;
|
|
8
|
+
noWorktree?: boolean;
|
|
9
|
+
keepWorktree?: boolean;
|
|
10
|
+
dryRun?: boolean;
|
|
11
|
+
env?: Record<string, string>;
|
|
12
|
+
onLog?: (chunk: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface RunLocalRoutineResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
exitCode: number;
|
|
17
|
+
output: string;
|
|
18
|
+
worktreePath?: string;
|
|
19
|
+
branchName?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Discovers domain skills in .agents/skills and formats instruction string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function discoverSkillsPrompt(targetDir: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Builds the prompt string for a given routine and target.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildRoutinePrompt(targetDir: string, routine: string, options?: {
|
|
29
|
+
issue?: string | number;
|
|
30
|
+
pr?: string | number;
|
|
31
|
+
}): string;
|
|
32
|
+
/**
|
|
33
|
+
* Checks if Antigravity CLI (`agy`) is installed and accessible.
|
|
34
|
+
*/
|
|
35
|
+
export declare function isAgyInstalled(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Runs a routine locally with worktree isolation and Antigravity CLI invocation.
|
|
38
|
+
*/
|
|
39
|
+
export declare function runLocalRoutine(options: RunLocalRoutineOptions): Promise<RunLocalRoutineResult>;
|
|
40
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAoB9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAO,GAC9D,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAQxC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAwIrG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { GhExecutor } from './fleet-query.js';
|
|
2
|
+
export declare const GLOBAL_WEEKLY_TOKEN_BUDGET = 8750000;
|
|
3
|
+
export interface RoutineTelemetrySummary {
|
|
4
|
+
schemaVersion: '1.0.0';
|
|
5
|
+
routine: string;
|
|
6
|
+
timestamp: string;
|
|
7
|
+
repository: string;
|
|
8
|
+
runId?: string;
|
|
9
|
+
runNumber?: number;
|
|
10
|
+
result: 'SUCCESS' | 'FAILURE' | 'BOUNCED_TO_DRAFT' | string;
|
|
11
|
+
errorReason?: string;
|
|
12
|
+
failureCategory?: string;
|
|
13
|
+
inputTokens: number;
|
|
14
|
+
outputTokens: number;
|
|
15
|
+
totalTokens: number;
|
|
16
|
+
estimatedCost: number;
|
|
17
|
+
durationSeconds?: number;
|
|
18
|
+
iterationsUsed?: number;
|
|
19
|
+
maxIterations?: number;
|
|
20
|
+
reviewLoops?: number;
|
|
21
|
+
promptSha?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface WeeklyBudgetStatus {
|
|
24
|
+
weeklyCeilingTokens: number;
|
|
25
|
+
usedTokens: number;
|
|
26
|
+
remainingTokens: number;
|
|
27
|
+
utilizationPercentage: number;
|
|
28
|
+
status: 'HEALTHY' | 'WARNING' | 'CRITICAL' | 'EXCEEDED';
|
|
29
|
+
dailyBurnRate: number;
|
|
30
|
+
projectedExhaustionDays: number;
|
|
31
|
+
}
|
|
32
|
+
export interface RoutineMetricBreakdown {
|
|
33
|
+
routine: string;
|
|
34
|
+
runCount: number;
|
|
35
|
+
totalInputTokens: number;
|
|
36
|
+
totalOutputTokens: number;
|
|
37
|
+
totalTokens: number;
|
|
38
|
+
totalEstimatedCost: number;
|
|
39
|
+
successCount: number;
|
|
40
|
+
failureCount: number;
|
|
41
|
+
bouncedCount: number;
|
|
42
|
+
avgDurationSeconds: number;
|
|
43
|
+
avgIterationsUsed: number;
|
|
44
|
+
}
|
|
45
|
+
export interface RepositoryMetricBreakdown {
|
|
46
|
+
repository: string;
|
|
47
|
+
runCount: number;
|
|
48
|
+
totalTokens: number;
|
|
49
|
+
totalEstimatedCost: number;
|
|
50
|
+
successCount: number;
|
|
51
|
+
failureCount: number;
|
|
52
|
+
}
|
|
53
|
+
export interface AggregatedTelemetry {
|
|
54
|
+
timestamp: string;
|
|
55
|
+
totalRuns: number;
|
|
56
|
+
successCount: number;
|
|
57
|
+
failureCount: number;
|
|
58
|
+
bouncedCount: number;
|
|
59
|
+
totalInputTokens: number;
|
|
60
|
+
totalOutputTokens: number;
|
|
61
|
+
totalTokens: number;
|
|
62
|
+
totalEstimatedCost: number;
|
|
63
|
+
budget: WeeklyBudgetStatus;
|
|
64
|
+
byRoutine: Record<string, RoutineMetricBreakdown>;
|
|
65
|
+
byRepository: Record<string, RepositoryMetricBreakdown>;
|
|
66
|
+
failureCategories: Record<string, number>;
|
|
67
|
+
events: RoutineTelemetrySummary[];
|
|
68
|
+
}
|
|
69
|
+
export declare function parseLogToTelemetry(content: string, options?: {
|
|
70
|
+
repository?: string;
|
|
71
|
+
runId?: string;
|
|
72
|
+
runNumber?: number;
|
|
73
|
+
}): RoutineTelemetrySummary | null;
|
|
74
|
+
export declare function checkWeeklyBudgetLimit(usedTokens: number, ceilingTokens?: number): WeeklyBudgetStatus;
|
|
75
|
+
export declare function aggregateFleetTelemetry(summaries: RoutineTelemetrySummary[], options?: {
|
|
76
|
+
weeklyTokenBudget?: number;
|
|
77
|
+
}): AggregatedTelemetry;
|
|
78
|
+
export declare function emitTelemetry(summary: RoutineTelemetrySummary, endpoint?: string, customFetch?: typeof fetch): Promise<{
|
|
79
|
+
success: boolean;
|
|
80
|
+
error?: string;
|
|
81
|
+
}>;
|
|
82
|
+
export declare function collectLocalTelemetryLogs(dir: string, repositoryName?: string): RoutineTelemetrySummary[];
|
|
83
|
+
export declare function collectRepoTelemetry(repoIdentifier: string, executor?: GhExecutor, options?: {
|
|
84
|
+
maxLogs?: number;
|
|
85
|
+
now?: number;
|
|
86
|
+
}): Promise<RoutineTelemetrySummary[]>;
|
|
87
|
+
export declare function renderTelemetryDashboard(telemetry: AggregatedTelemetry, options?: {
|
|
88
|
+
json?: boolean;
|
|
89
|
+
}): string;
|
|
90
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface WorktreeInfo {
|
|
2
|
+
path: string;
|
|
3
|
+
branch: string;
|
|
4
|
+
commit: string;
|
|
5
|
+
}
|
|
6
|
+
export interface CreateWorktreeOptions {
|
|
7
|
+
branchName: string;
|
|
8
|
+
baseRef?: string;
|
|
9
|
+
worktreeDirName?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function getWorktreesBaseDir(repoRoot: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Creates an isolated Git worktree for an agent routine execution.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createWorktree(repoRoot: string, options: CreateWorktreeOptions): Promise<{
|
|
16
|
+
worktreePath: string;
|
|
17
|
+
branchName: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Removes a Git worktree and cleans up Git metadata.
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeWorktree(repoRoot: string, worktreePath: string, options?: {
|
|
23
|
+
deleteBranch?: boolean;
|
|
24
|
+
branchName?: string;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Lists all active Jonah Fleet worktrees in the repository.
|
|
28
|
+
*/
|
|
29
|
+
export declare function listActiveWorktrees(repoRoot: string): Promise<WorktreeInfo[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Prunes orphaned worktrees and cleans empty worktree directories.
|
|
32
|
+
*/
|
|
33
|
+
export declare function cleanupStaleWorktrees(repoRoot: string): Promise<number>;
|
|
34
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +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,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB7E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jonah-fleet",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
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",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"lint": "eslint src tests",
|
|
15
15
|
"type-check": "tsc --noEmit",
|
|
16
16
|
"test": "vitest run",
|
|
17
|
+
"test:evals": "vitest run tests/evals.test.ts tests/contribute.test.ts tests/sync-workflow.test.ts",
|
|
17
18
|
"test:watch": "vitest",
|
|
18
19
|
"format": "prettier --write \"**/*.{ts,json,md,yml}\""
|
|
19
20
|
},
|
|
@@ -36,14 +37,17 @@
|
|
|
36
37
|
"url": "https://github.com/juliendurandeu/jonah-fleet/issues"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"commander": "^
|
|
40
|
+
"commander": "^15.0.0",
|
|
40
41
|
"picocolors": "^1.1.1"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@types/node": "^
|
|
44
|
+
"@types/node": "^26.4.0",
|
|
44
45
|
"tsup": "^8.3.5",
|
|
45
|
-
"typescript": "^
|
|
46
|
-
"vitest": "^
|
|
46
|
+
"typescript": "^7.0.2",
|
|
47
|
+
"vitest": "^4.1.11"
|
|
48
|
+
},
|
|
49
|
+
"overrides": {
|
|
50
|
+
"esbuild": "^0.28.2"
|
|
47
51
|
},
|
|
48
52
|
"files": [
|
|
49
53
|
"dist",
|