aspectcode 0.3.0 → 0.3.2
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/bin/aspectcode.js +3 -0
- package/dist/cli.d.ts +5 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/complaintProcessor.d.ts +16 -0
- package/dist/complaintProcessor.d.ts.map +1 -0
- package/dist/complaintProcessor.js +134 -0
- package/dist/complaintProcessor.js.map +1 -0
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +34 -2
- package/dist/main.js.map +1 -1
- package/dist/optimize.d.ts +7 -1
- package/dist/optimize.d.ts.map +1 -1
- package/dist/optimize.js +26 -5
- package/dist/optimize.js.map +1 -1
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +85 -17
- package/dist/pipeline.js.map +1 -1
- package/dist/ui/Dashboard.d.ts +12 -0
- package/dist/ui/Dashboard.d.ts.map +1 -0
- package/dist/ui/Dashboard.js +162 -0
- package/dist/ui/Dashboard.js.map +1 -0
- package/dist/ui/inkLogger.d.ts +20 -0
- package/dist/ui/inkLogger.d.ts.map +1 -0
- package/dist/ui/inkLogger.js +42 -0
- package/dist/ui/inkLogger.js.map +1 -0
- package/dist/ui/prompts.d.ts +19 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +125 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/store.d.ts +60 -0
- package/dist/ui/store.d.ts.map +1 -0
- package/dist/ui/store.js +104 -0
- package/dist/ui/store.js.map +1 -0
- package/dist/ui/theme.d.ts +27 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +41 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/workspace.d.ts +2 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +3 -2
- package/dist/workspace.js.map +1 -1
- package/dist/writer.d.ts +18 -4
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +49 -5
- package/dist/writer.js.map +1 -1
- package/node_modules/@aspectcode/core/package.json +1 -1
- package/node_modules/@aspectcode/emitters/package.json +2 -2
- package/node_modules/@aspectcode/optimizer/dist/agent.d.ts +9 -1
- package/node_modules/@aspectcode/optimizer/dist/agent.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/agent.js +38 -0
- package/node_modules/@aspectcode/optimizer/dist/agent.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts +3 -3
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/index.js +4 -1
- package/node_modules/@aspectcode/optimizer/dist/index.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts +12 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/prompts.js +55 -0
- package/node_modules/@aspectcode/optimizer/dist/prompts.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/types.d.ts +24 -0
- package/node_modules/@aspectcode/optimizer/dist/types.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/types.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/package.json +1 -1
- package/node_modules/dotenv/CHANGELOG.md +520 -0
- package/node_modules/dotenv/LICENSE +23 -0
- package/node_modules/dotenv/README-es.md +411 -0
- package/node_modules/dotenv/README.md +645 -0
- package/node_modules/dotenv/SECURITY.md +1 -0
- package/node_modules/dotenv/config.d.ts +1 -0
- package/node_modules/dotenv/config.js +9 -0
- package/node_modules/dotenv/lib/cli-options.js +17 -0
- package/node_modules/dotenv/lib/env-options.js +28 -0
- package/node_modules/dotenv/lib/main.d.ts +162 -0
- package/node_modules/dotenv/lib/main.js +386 -0
- package/node_modules/dotenv/package.json +62 -0
- package/package.json +12 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard state — shared between the ink UI and the pipeline.
|
|
3
|
+
*
|
|
4
|
+
* The pipeline pushes events via the DashboardStore; the ink Dashboard
|
|
5
|
+
* component re-renders whenever the state changes.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
export type PipelinePhase = 'idle' | 'discovering' | 'analyzing' | 'building-kb' | 'optimizing' | 'writing' | 'watching' | 'done' | 'error';
|
|
9
|
+
export interface DashboardState {
|
|
10
|
+
phase: PipelinePhase;
|
|
11
|
+
/** Human-readable label for the current sub-step (e.g. "iteration 2/3"). */
|
|
12
|
+
phaseDetail: string;
|
|
13
|
+
fileCount: number;
|
|
14
|
+
edgeCount: number;
|
|
15
|
+
provider: string;
|
|
16
|
+
lastChange: string;
|
|
17
|
+
elapsed: string;
|
|
18
|
+
/** Warning text (e.g. no API key). */
|
|
19
|
+
warning: string;
|
|
20
|
+
/** Files written this run (e.g. ["AGENTS.md updated", "kb.md written"]). */
|
|
21
|
+
outputs: string[];
|
|
22
|
+
/** Optimization reasoning lines from the agent (score + feedback per iteration). */
|
|
23
|
+
reasoning: string[];
|
|
24
|
+
/** Current complaint text being typed by the user. */
|
|
25
|
+
complaintInput: string;
|
|
26
|
+
/** Queued complaints awaiting processing. */
|
|
27
|
+
complaintQueue: string[];
|
|
28
|
+
/** Human-readable change descriptions from the last complaint processing. */
|
|
29
|
+
complaintChanges: string[];
|
|
30
|
+
/** True while the complaint processor is running. */
|
|
31
|
+
processingComplaint: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Mutable singleton store. The ink component subscribes via onChange.
|
|
35
|
+
*/
|
|
36
|
+
declare class DashboardStore extends EventEmitter {
|
|
37
|
+
state: DashboardState;
|
|
38
|
+
private update;
|
|
39
|
+
setPhase(phase: PipelinePhase, detail?: string): void;
|
|
40
|
+
setStats(fileCount: number, edgeCount: number): void;
|
|
41
|
+
setProvider(provider: string): void;
|
|
42
|
+
setLastChange(change: string): void;
|
|
43
|
+
setElapsed(elapsed: string): void;
|
|
44
|
+
setWarning(warning: string): void;
|
|
45
|
+
addOutput(output: string): void;
|
|
46
|
+
setReasoning(reasoning: string[]): void;
|
|
47
|
+
setComplaintInput(text: string): void;
|
|
48
|
+
queueComplaint(complaint: string): void;
|
|
49
|
+
/** Remove and return the next queued complaint (or undefined). */
|
|
50
|
+
shiftComplaint(): string | undefined;
|
|
51
|
+
setProcessingComplaint(processing: boolean): void;
|
|
52
|
+
setComplaintChanges(changes: string[]): void;
|
|
53
|
+
clearComplaintChanges(): void;
|
|
54
|
+
/** Reset per-run state for a fresh pipeline run. */
|
|
55
|
+
resetRun(): void;
|
|
56
|
+
}
|
|
57
|
+
/** Singleton — created once, shared across pipeline + UI. */
|
|
58
|
+
export declare const store: DashboardStore;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/ui/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,aAAa,GACb,WAAW,GACX,aAAa,GACb,YAAY,GACZ,SAAS,GACT,UAAU,GACV,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oFAAoF;IACpF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,cAAM,cAAe,SAAQ,YAAY;IACvC,KAAK,EAAE,cAAc,CAenB;IAEF,OAAO,CAAC,MAAM;IAKd,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,SAAK,GAAG,IAAI;IAIjD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAInC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAMvC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOvC,kEAAkE;IAClE,cAAc,IAAI,MAAM,GAAG,SAAS;IAQpC,sBAAsB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAIjD,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAI5C,qBAAqB,IAAI,IAAI;IAI7B,oDAAoD;IACpD,QAAQ,IAAI,IAAI;CAWjB;AAED,6DAA6D;AAC7D,eAAO,MAAM,KAAK,gBAAuB,CAAC"}
|
package/dist/ui/store.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dashboard state — shared between the ink UI and the pipeline.
|
|
4
|
+
*
|
|
5
|
+
* The pipeline pushes events via the DashboardStore; the ink Dashboard
|
|
6
|
+
* component re-renders whenever the state changes.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.store = void 0;
|
|
10
|
+
const events_1 = require("events");
|
|
11
|
+
/**
|
|
12
|
+
* Mutable singleton store. The ink component subscribes via onChange.
|
|
13
|
+
*/
|
|
14
|
+
class DashboardStore extends events_1.EventEmitter {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.state = {
|
|
18
|
+
phase: 'idle',
|
|
19
|
+
phaseDetail: '',
|
|
20
|
+
fileCount: 0,
|
|
21
|
+
edgeCount: 0,
|
|
22
|
+
provider: '',
|
|
23
|
+
lastChange: '',
|
|
24
|
+
elapsed: '',
|
|
25
|
+
warning: '',
|
|
26
|
+
outputs: [],
|
|
27
|
+
reasoning: [],
|
|
28
|
+
complaintInput: '',
|
|
29
|
+
complaintQueue: [],
|
|
30
|
+
complaintChanges: [],
|
|
31
|
+
processingComplaint: false,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
update(patch) {
|
|
35
|
+
Object.assign(this.state, patch);
|
|
36
|
+
this.emit('change');
|
|
37
|
+
}
|
|
38
|
+
setPhase(phase, detail = '') {
|
|
39
|
+
this.update({ phase, phaseDetail: detail });
|
|
40
|
+
}
|
|
41
|
+
setStats(fileCount, edgeCount) {
|
|
42
|
+
this.update({ fileCount, edgeCount });
|
|
43
|
+
}
|
|
44
|
+
setProvider(provider) {
|
|
45
|
+
this.update({ provider });
|
|
46
|
+
}
|
|
47
|
+
setLastChange(change) {
|
|
48
|
+
this.update({ lastChange: change });
|
|
49
|
+
}
|
|
50
|
+
setElapsed(elapsed) {
|
|
51
|
+
this.update({ elapsed });
|
|
52
|
+
}
|
|
53
|
+
setWarning(warning) {
|
|
54
|
+
this.update({ warning });
|
|
55
|
+
}
|
|
56
|
+
addOutput(output) {
|
|
57
|
+
this.update({ outputs: [...this.state.outputs, output] });
|
|
58
|
+
}
|
|
59
|
+
setReasoning(reasoning) {
|
|
60
|
+
this.update({ reasoning });
|
|
61
|
+
}
|
|
62
|
+
// ── Complaint methods ───────────────────────────────────
|
|
63
|
+
setComplaintInput(text) {
|
|
64
|
+
this.update({ complaintInput: text });
|
|
65
|
+
}
|
|
66
|
+
queueComplaint(complaint) {
|
|
67
|
+
this.update({
|
|
68
|
+
complaintQueue: [...this.state.complaintQueue, complaint],
|
|
69
|
+
complaintInput: '',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/** Remove and return the next queued complaint (or undefined). */
|
|
73
|
+
shiftComplaint() {
|
|
74
|
+
const [next, ...rest] = this.state.complaintQueue;
|
|
75
|
+
if (next !== undefined) {
|
|
76
|
+
this.update({ complaintQueue: rest });
|
|
77
|
+
}
|
|
78
|
+
return next;
|
|
79
|
+
}
|
|
80
|
+
setProcessingComplaint(processing) {
|
|
81
|
+
this.update({ processingComplaint: processing });
|
|
82
|
+
}
|
|
83
|
+
setComplaintChanges(changes) {
|
|
84
|
+
this.update({ complaintChanges: changes });
|
|
85
|
+
}
|
|
86
|
+
clearComplaintChanges() {
|
|
87
|
+
this.update({ complaintChanges: [] });
|
|
88
|
+
}
|
|
89
|
+
/** Reset per-run state for a fresh pipeline run. */
|
|
90
|
+
resetRun() {
|
|
91
|
+
this.update({
|
|
92
|
+
warning: '',
|
|
93
|
+
outputs: [],
|
|
94
|
+
reasoning: [],
|
|
95
|
+
elapsed: '',
|
|
96
|
+
provider: '',
|
|
97
|
+
phaseDetail: '',
|
|
98
|
+
// Note: complaintQueue, complaintInput, complaintChanges are preserved
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Singleton — created once, shared across pipeline + UI. */
|
|
103
|
+
exports.store = new DashboardStore();
|
|
104
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/ui/store.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAsC;AAsCtC;;GAEG;AACH,MAAM,cAAe,SAAQ,qBAAY;IAAzC;;QACE,UAAK,GAAmB;YACtB,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,EAAE;YAClB,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IAqFJ,CAAC;IAnFS,MAAM,CAAC,KAA8B;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IAED,QAAQ,CAAC,KAAoB,EAAE,MAAM,GAAG,EAAE;QACxC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,SAAiB,EAAE,SAAiB;QAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,YAAY,CAAC,SAAmB;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,2DAA2D;IAE3D,iBAAiB,CAAC,IAAY;QAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,MAAM,CAAC;YACV,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;YACzD,cAAc,EAAE,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,cAAc;QACZ,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB,CAAC,UAAmB;QACxC,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,mBAAmB,CAAC,OAAiB;QACnC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,oDAAoD;IACpD,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,EAAE;YACf,uEAAuE;SACxE,CAAC,CAAC;IACL,CAAC;CACF;AAED,6DAA6D;AAChD,QAAA,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme — single source of truth for all CLI colors and the banner.
|
|
3
|
+
*/
|
|
4
|
+
export declare const COLORS: {
|
|
5
|
+
/** Primary brand color */
|
|
6
|
+
readonly primary: "#a855f7";
|
|
7
|
+
/** Dimmed brand accent */
|
|
8
|
+
readonly primaryDim: "#7e22ce";
|
|
9
|
+
/** Success / watching */
|
|
10
|
+
readonly green: "#22c55e";
|
|
11
|
+
/** Warnings */
|
|
12
|
+
readonly yellow: "#eab308";
|
|
13
|
+
/** Errors */
|
|
14
|
+
readonly red: "#ef4444";
|
|
15
|
+
/** Subtle text */
|
|
16
|
+
readonly gray: "#6b7280";
|
|
17
|
+
/** Bright white for emphasis */
|
|
18
|
+
readonly white: "#f9fafb";
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Return the banner as a single string, coloured with ANSI purple.
|
|
22
|
+
* For use in both ink and plain-text contexts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getBannerText(): string;
|
|
25
|
+
/** The number of lines the banner occupies. */
|
|
26
|
+
export declare const BANNER_HEIGHT: number;
|
|
27
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,MAAM;IACjB,0BAA0B;;IAE1B,0BAA0B;;IAE1B,yBAAyB;;IAEzB,eAAe;;IAEf,aAAa;;IAEb,kBAAkB;;IAElB,gCAAgC;;CAExB,CAAC;AAWX;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,+CAA+C;AAC/C,eAAO,MAAM,aAAa,QAAsB,CAAC"}
|
package/dist/ui/theme.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Theme — single source of truth for all CLI colors and the banner.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BANNER_HEIGHT = exports.COLORS = void 0;
|
|
7
|
+
exports.getBannerText = getBannerText;
|
|
8
|
+
// ── Colors ───────────────────────────────────────────────────
|
|
9
|
+
exports.COLORS = {
|
|
10
|
+
/** Primary brand color */
|
|
11
|
+
primary: '#a855f7', // purple-500
|
|
12
|
+
/** Dimmed brand accent */
|
|
13
|
+
primaryDim: '#7e22ce', // purple-700
|
|
14
|
+
/** Success / watching */
|
|
15
|
+
green: '#22c55e',
|
|
16
|
+
/** Warnings */
|
|
17
|
+
yellow: '#eab308',
|
|
18
|
+
/** Errors */
|
|
19
|
+
red: '#ef4444',
|
|
20
|
+
/** Subtle text */
|
|
21
|
+
gray: '#6b7280',
|
|
22
|
+
/** Bright white for emphasis */
|
|
23
|
+
white: '#f9fafb',
|
|
24
|
+
};
|
|
25
|
+
// ── Banner ───────────────────────────────────────────────────
|
|
26
|
+
const BANNER_LINES = [
|
|
27
|
+
' __ _ ___ _ __ ___ __| |_ __ ___ __| |___',
|
|
28
|
+
' / _` (_-<| \'_ \\/ -_) _| _|/ _/ _ \\/ _` / -_)',
|
|
29
|
+
' \\__,_/__/| .__/\\___\\__|\\__|\\__\\___/\\__,_\\___|',
|
|
30
|
+
' |_|',
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* Return the banner as a single string, coloured with ANSI purple.
|
|
34
|
+
* For use in both ink and plain-text contexts.
|
|
35
|
+
*/
|
|
36
|
+
function getBannerText() {
|
|
37
|
+
return BANNER_LINES.join('\n');
|
|
38
|
+
}
|
|
39
|
+
/** The number of lines the banner occupies. */
|
|
40
|
+
exports.BANNER_HEIGHT = BANNER_LINES.length;
|
|
41
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAiCH,sCAEC;AAjCD,gEAAgE;AACnD,QAAA,MAAM,GAAG;IACpB,0BAA0B;IAC1B,OAAO,EAAE,SAAS,EAAQ,aAAa;IACvC,0BAA0B;IAC1B,UAAU,EAAE,SAAS,EAAK,aAAa;IACvC,yBAAyB;IACzB,KAAK,EAAE,SAAS;IAChB,eAAe;IACf,MAAM,EAAE,SAAS;IACjB,aAAa;IACb,GAAG,EAAE,SAAS;IACd,kBAAkB;IAClB,IAAI,EAAE,SAAS;IACf,gCAAgC;IAChC,KAAK,EAAE,SAAS;CACR,CAAC;AAEX,gEAAgE;AAEhE,MAAM,YAAY,GAAG;IACnB,gDAAgD;IAChD,oDAAoD;IACpD,yDAAyD;IACzD,gBAAgB;CACjB,CAAC;AAEF;;;GAGG;AACH,SAAgB,aAAa;IAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,+CAA+C;AAClC,QAAA,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { type CoreHost } from '@aspectcode/core';
|
|
8
8
|
import type { AspectCodeConfig } from './config';
|
|
9
9
|
import type { Logger } from './logger';
|
|
10
|
+
import type { SpinnerFactory } from './cli';
|
|
10
11
|
export interface WorkspaceFiles {
|
|
11
12
|
/** Map of relative (posix) path → file content */
|
|
12
13
|
relativeFiles: Map<string, string>;
|
|
@@ -30,5 +31,6 @@ export interface WorkspaceFiles {
|
|
|
30
31
|
*/
|
|
31
32
|
export declare function loadWorkspaceFiles(root: string, config: AspectCodeConfig | undefined, log: Logger, opts?: {
|
|
32
33
|
quiet?: boolean;
|
|
34
|
+
spin?: SpinnerFactory;
|
|
33
35
|
}): Promise<WorkspaceFiles>;
|
|
34
36
|
//# sourceMappingURL=workspace.d.ts.map
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0CAA0C;IAC1C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,+CAA+C;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,oFAAoF;IACpF,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAA;CAAE,GAChD,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
|
package/dist/workspace.js
CHANGED
|
@@ -57,7 +57,8 @@ const logger_1 = require("./logger");
|
|
|
57
57
|
*/
|
|
58
58
|
async function loadWorkspaceFiles(root, config, log, opts) {
|
|
59
59
|
const exclude = config?.exclude;
|
|
60
|
-
const
|
|
60
|
+
const makeSpin = opts?.spin ?? ((msg) => (0, logger_1.createSpinner)(msg, { quiet: opts?.quiet }));
|
|
61
|
+
const spin = makeSpin('Discovering files…', 'discovering');
|
|
61
62
|
const discoveredPaths = await (0, core_1.discoverFiles)(root, exclude ? { exclude } : undefined);
|
|
62
63
|
if (discoveredPaths.length === 0) {
|
|
63
64
|
spin.stop('No files found');
|
|
@@ -69,7 +70,7 @@ async function loadWorkspaceFiles(root, config, log, opts) {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
spin.stop(`Discovered ${discoveredPaths.length} files`);
|
|
72
|
-
const spinRead = (
|
|
73
|
+
const spinRead = makeSpin(`Reading ${discoveredPaths.length} files…`, 'discovering');
|
|
73
74
|
const relativeFiles = new Map();
|
|
74
75
|
const absoluteFiles = new Map();
|
|
75
76
|
for (const abs of discoveredPaths) {
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCH,gDA2CC;AA7ED,uCAAyB;AACzB,2CAA6B;AAC7B,2CAI0B;AAI1B,qCAAyC;AAazC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,MAAoC,EACpC,GAAW,EACX,IAAiD;IAEjD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAA,sBAAa,EAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,MAAM,IAAA,oBAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5B,OAAO;YACL,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,IAAA,iCAA0B,EAAC,IAAI,CAAC;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,cAAc,eAAe,CAAC,MAAM,QAAQ,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,eAAe,CAAC,MAAM,SAAS,EAAE,aAAa,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9C,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,IAAI,QAAQ,CAAC,CAAC;IAElD,OAAO;QACL,aAAa;QACb,aAAa;QACb,eAAe;QACf,IAAI,EAAE,IAAA,iCAA0B,EAAC,IAAI,CAAC;KACvC,CAAC;AACJ,CAAC"}
|
package/dist/writer.d.ts
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* File writer — writes AGENTS.md and optionally kb.md.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Supports two ownership modes:
|
|
5
|
+
* - 'full' — overwrites the entire file (default)
|
|
6
|
+
* - 'section' — wraps content in HTML comment markers and preserves
|
|
7
|
+
* the rest of the file.
|
|
8
|
+
*
|
|
9
|
+
* kb.md is optional (--kb flag) and always full-ownership.
|
|
6
10
|
*/
|
|
7
11
|
import type { EmitterHost } from '@aspectcode/emitters';
|
|
12
|
+
/** Markers used to delimit the AspectCode-owned section. */
|
|
13
|
+
export declare const MARKER_START = "<!-- aspectcode:start -->";
|
|
14
|
+
export declare const MARKER_END = "<!-- aspectcode:end -->";
|
|
15
|
+
export type OwnershipMode = 'full' | 'section';
|
|
16
|
+
/**
|
|
17
|
+
* Detect whether an existing file contains AspectCode section markers.
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasMarkers(content: string): boolean;
|
|
8
20
|
/**
|
|
9
21
|
* Write AGENTS.md to the workspace root.
|
|
10
|
-
*
|
|
22
|
+
*
|
|
23
|
+
* In 'full' mode: overwrites the file entirely.
|
|
24
|
+
* In 'section' mode: preserves user content outside the markers.
|
|
11
25
|
*/
|
|
12
|
-
export declare function writeAgentsMd(host: EmitterHost, workspaceRoot: string, content: string): Promise<void>;
|
|
26
|
+
export declare function writeAgentsMd(host: EmitterHost, workspaceRoot: string, content: string, ownership?: OwnershipMode): Promise<void>;
|
|
13
27
|
/**
|
|
14
28
|
* Write kb.md to the workspace root (optional, --kb flag).
|
|
15
29
|
*/
|
package/dist/writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,4DAA4D;AAC5D,eAAO,MAAM,YAAY,8BAA8B,CAAC;AACxD,eAAO,MAAM,UAAU,4BAA4B,CAAC;AAEpD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD;AAoBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,aAAsB,GAChC,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
package/dist/writer.js
CHANGED
|
@@ -2,19 +2,63 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* File writer — writes AGENTS.md and optionally kb.md.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Supports two ownership modes:
|
|
6
|
+
* - 'full' — overwrites the entire file (default)
|
|
7
|
+
* - 'section' — wraps content in HTML comment markers and preserves
|
|
8
|
+
* the rest of the file.
|
|
9
|
+
*
|
|
10
|
+
* kb.md is optional (--kb flag) and always full-ownership.
|
|
7
11
|
*/
|
|
8
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.MARKER_END = exports.MARKER_START = void 0;
|
|
14
|
+
exports.hasMarkers = hasMarkers;
|
|
9
15
|
exports.writeAgentsMd = writeAgentsMd;
|
|
10
16
|
exports.writeKbMd = writeKbMd;
|
|
17
|
+
/** Markers used to delimit the AspectCode-owned section. */
|
|
18
|
+
exports.MARKER_START = '<!-- aspectcode:start -->';
|
|
19
|
+
exports.MARKER_END = '<!-- aspectcode:end -->';
|
|
20
|
+
/**
|
|
21
|
+
* Detect whether an existing file contains AspectCode section markers.
|
|
22
|
+
*/
|
|
23
|
+
function hasMarkers(content) {
|
|
24
|
+
return content.includes(exports.MARKER_START) && content.includes(exports.MARKER_END);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Replace the marked section in an existing file, or append one.
|
|
28
|
+
*/
|
|
29
|
+
function applySectionContent(existingContent, newSection) {
|
|
30
|
+
const wrapped = `${exports.MARKER_START}\n${newSection}\n${exports.MARKER_END}`;
|
|
31
|
+
if (hasMarkers(existingContent)) {
|
|
32
|
+
// Replace between markers (inclusive)
|
|
33
|
+
const startIdx = existingContent.indexOf(exports.MARKER_START);
|
|
34
|
+
const endIdx = existingContent.indexOf(exports.MARKER_END) + exports.MARKER_END.length;
|
|
35
|
+
return existingContent.slice(0, startIdx) + wrapped + existingContent.slice(endIdx);
|
|
36
|
+
}
|
|
37
|
+
// No markers yet — append the section at the end
|
|
38
|
+
const separator = existingContent.endsWith('\n') ? '\n' : '\n\n';
|
|
39
|
+
return existingContent + separator + wrapped + '\n';
|
|
40
|
+
}
|
|
11
41
|
/**
|
|
12
42
|
* Write AGENTS.md to the workspace root.
|
|
13
|
-
*
|
|
43
|
+
*
|
|
44
|
+
* In 'full' mode: overwrites the file entirely.
|
|
45
|
+
* In 'section' mode: preserves user content outside the markers.
|
|
14
46
|
*/
|
|
15
|
-
async function writeAgentsMd(host, workspaceRoot, content) {
|
|
47
|
+
async function writeAgentsMd(host, workspaceRoot, content, ownership = 'full') {
|
|
16
48
|
const filePath = host.join(workspaceRoot, 'AGENTS.md');
|
|
17
|
-
|
|
49
|
+
if (ownership === 'section') {
|
|
50
|
+
let existing = '';
|
|
51
|
+
try {
|
|
52
|
+
existing = await host.readFile(filePath);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// File doesn't exist yet — will create with markers
|
|
56
|
+
}
|
|
57
|
+
await host.writeFile(filePath, applySectionContent(existing, content));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
await host.writeFile(filePath, content);
|
|
61
|
+
}
|
|
18
62
|
}
|
|
19
63
|
/**
|
|
20
64
|
* Write kb.md to the workspace root (optional, --kb flag).
|
package/dist/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAaH,gCAEC;AA0BD,sCAmBC;AAKD,8BAOC;AApED,4DAA4D;AAC/C,QAAA,YAAY,GAAG,2BAA2B,CAAC;AAC3C,QAAA,UAAU,GAAG,yBAAyB,CAAC;AAIpD;;GAEG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,oBAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAU,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,eAAuB,EAAE,UAAkB;IACtE,MAAM,OAAO,GAAG,GAAG,oBAAY,KAAK,UAAU,KAAK,kBAAU,EAAE,CAAC;IAEhE,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,sCAAsC;QACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,oBAAY,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,kBAAU,CAAC,GAAG,kBAAU,CAAC,MAAM,CAAC;QACvE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,iDAAiD;IACjD,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,OAAO,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CACjC,IAAiB,EACjB,aAAqB,EACrB,OAAe,EACf,YAA2B,MAAM;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAEvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,SAAS,CAC7B,IAAiB,EACjB,aAAqB,EACrB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspectcode/emitters",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Artifact emitters for Aspect Code — KB, instructions, manifest",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"test": "mocha --require ts-node/register 'test/**/*.test.ts'"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aspectcode/core": "0.3.
|
|
30
|
+
"@aspectcode/core": "0.3.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/mocha": "^10.0.0",
|
|
@@ -8,11 +8,19 @@
|
|
|
8
8
|
* 4. Otherwise feeds the eval feedback back and tries again.
|
|
9
9
|
* 5. After maxIterations, returns the best candidate seen.
|
|
10
10
|
*/
|
|
11
|
-
import type { OptimizeOptions, OptimizeResult } from './types';
|
|
11
|
+
import type { OptimizeOptions, OptimizeResult, ComplaintOptions, ComplaintResult } from './types';
|
|
12
12
|
/**
|
|
13
13
|
* Run the optimization agent loop.
|
|
14
14
|
*
|
|
15
15
|
* @returns The best optimized instructions found within maxIterations.
|
|
16
16
|
*/
|
|
17
17
|
export declare function runOptimizeAgent(options: OptimizeOptions): Promise<OptimizeResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Process user complaints by asking the LLM to update AGENTS.md instructions.
|
|
20
|
+
*
|
|
21
|
+
* Unlike the iterative optimize agent, this is a single-call workflow:
|
|
22
|
+
* 1. Send system context (KB) + complaint prompt.
|
|
23
|
+
* 2. Parse structured response for changes list + updated instructions.
|
|
24
|
+
*/
|
|
25
|
+
export declare function runComplaintAgent(options: ComplaintOptions): Promise<ComplaintResult>;
|
|
18
26
|
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAe,eAAe,EAAE,cAAc,EAAc,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAe,eAAe,EAAE,cAAc,EAAc,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB3H;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA2HxF;AAID;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0C3F"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.runOptimizeAgent = runOptimizeAgent;
|
|
14
|
+
exports.runComplaintAgent = runComplaintAgent;
|
|
14
15
|
const prompts_1 = require("./prompts");
|
|
15
16
|
/** Default minimum eval score to accept a candidate without further iteration. */
|
|
16
17
|
const DEFAULT_ACCEPT_THRESHOLD = 8;
|
|
@@ -120,4 +121,41 @@ async function runOptimizeAgent(options) {
|
|
|
120
121
|
reasoning,
|
|
121
122
|
};
|
|
122
123
|
}
|
|
124
|
+
// ── Complaint agent ──────────────────────────────────────────
|
|
125
|
+
/**
|
|
126
|
+
* Process user complaints by asking the LLM to update AGENTS.md instructions.
|
|
127
|
+
*
|
|
128
|
+
* Unlike the iterative optimize agent, this is a single-call workflow:
|
|
129
|
+
* 1. Send system context (KB) + complaint prompt.
|
|
130
|
+
* 2. Parse structured response for changes list + updated instructions.
|
|
131
|
+
*/
|
|
132
|
+
async function runComplaintAgent(options) {
|
|
133
|
+
const { currentInstructions, kb, complaints, provider, log, kbCharBudget, signal, } = options;
|
|
134
|
+
if (signal?.aborted) {
|
|
135
|
+
log?.info('Complaint processing cancelled.');
|
|
136
|
+
return { optimizedInstructions: currentInstructions, changes: [] };
|
|
137
|
+
}
|
|
138
|
+
log?.info(`Processing ${complaints.length} complaint${complaints.length === 1 ? '' : 's'}…`);
|
|
139
|
+
const systemPrompt = (0, prompts_1.buildSystemPrompt)(kb, kbCharBudget);
|
|
140
|
+
const userPrompt = (0, prompts_1.buildComplaintPrompt)(currentInstructions, complaints);
|
|
141
|
+
const messages = [
|
|
142
|
+
{ role: 'system', content: systemPrompt },
|
|
143
|
+
{ role: 'user', content: userPrompt },
|
|
144
|
+
];
|
|
145
|
+
let response;
|
|
146
|
+
try {
|
|
147
|
+
response = await provider.chat(messages);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
151
|
+
log?.error(`Complaint LLM call failed: ${msg}`);
|
|
152
|
+
return { optimizedInstructions: currentInstructions, changes: [`Error: ${msg}`] };
|
|
153
|
+
}
|
|
154
|
+
const parsed = (0, prompts_1.parseComplaintResponse)(response);
|
|
155
|
+
log?.info(`Applied ${parsed.changes.length} change${parsed.changes.length === 1 ? '' : 's'}.`);
|
|
156
|
+
return {
|
|
157
|
+
optimizedInstructions: parsed.instructions,
|
|
158
|
+
changes: parsed.changes,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
123
161
|
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Re-exports types and provides the top-level `optimizeInstructions` entry point.
|
|
5
5
|
*/
|
|
6
|
-
export type { LlmProvider, ChatMessage, ProviderOptions, OptimizeOptions, OptimizeResult, EvalResult, OptLogger, ProviderName, } from './types';
|
|
6
|
+
export type { LlmProvider, ChatMessage, ProviderOptions, OptimizeOptions, OptimizeResult, EvalResult, OptLogger, ProviderName, ComplaintOptions, ComplaintResult, } from './types';
|
|
7
7
|
export { PROVIDER_ENV_KEYS, LLM_PROVIDER_ENV, LLM_MODEL_ENV } from './types';
|
|
8
8
|
export { resolveProvider, loadEnvFile, parseDotenv } from './providers/index';
|
|
9
9
|
export { createOpenAiProvider } from './providers/openai';
|
|
10
10
|
export { createAnthropicProvider } from './providers/anthropic';
|
|
11
11
|
export { withRetry } from './providers/retry';
|
|
12
12
|
export type { RetryOptions } from './providers/retry';
|
|
13
|
-
export { runOptimizeAgent } from './agent';
|
|
14
|
-
export { buildSystemPrompt, buildOptimizePrompt, buildEvalPrompt, parseEvalResponse, truncateKb, } from './prompts';
|
|
13
|
+
export { runOptimizeAgent, runComplaintAgent } from './agent';
|
|
14
|
+
export { buildSystemPrompt, buildOptimizePrompt, buildEvalPrompt, parseEvalResponse, truncateKb, buildComplaintPrompt, parseComplaintResponse, } from './prompts';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Re-exports types and provides the top-level `optimizeInstructions` entry point.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.truncateKb = exports.parseEvalResponse = exports.buildEvalPrompt = exports.buildOptimizePrompt = exports.buildSystemPrompt = exports.runOptimizeAgent = exports.withRetry = exports.createAnthropicProvider = exports.createOpenAiProvider = exports.parseDotenv = exports.loadEnvFile = exports.resolveProvider = exports.LLM_MODEL_ENV = exports.LLM_PROVIDER_ENV = exports.PROVIDER_ENV_KEYS = void 0;
|
|
8
|
+
exports.parseComplaintResponse = exports.buildComplaintPrompt = exports.truncateKb = exports.parseEvalResponse = exports.buildEvalPrompt = exports.buildOptimizePrompt = exports.buildSystemPrompt = exports.runComplaintAgent = exports.runOptimizeAgent = exports.withRetry = exports.createAnthropicProvider = exports.createOpenAiProvider = exports.parseDotenv = exports.loadEnvFile = exports.resolveProvider = exports.LLM_MODEL_ENV = exports.LLM_PROVIDER_ENV = exports.PROVIDER_ENV_KEYS = void 0;
|
|
9
9
|
var types_1 = require("./types");
|
|
10
10
|
Object.defineProperty(exports, "PROVIDER_ENV_KEYS", { enumerable: true, get: function () { return types_1.PROVIDER_ENV_KEYS; } });
|
|
11
11
|
Object.defineProperty(exports, "LLM_PROVIDER_ENV", { enumerable: true, get: function () { return types_1.LLM_PROVIDER_ENV; } });
|
|
@@ -22,10 +22,13 @@ var retry_1 = require("./providers/retry");
|
|
|
22
22
|
Object.defineProperty(exports, "withRetry", { enumerable: true, get: function () { return retry_1.withRetry; } });
|
|
23
23
|
var agent_1 = require("./agent");
|
|
24
24
|
Object.defineProperty(exports, "runOptimizeAgent", { enumerable: true, get: function () { return agent_1.runOptimizeAgent; } });
|
|
25
|
+
Object.defineProperty(exports, "runComplaintAgent", { enumerable: true, get: function () { return agent_1.runComplaintAgent; } });
|
|
25
26
|
var prompts_1 = require("./prompts");
|
|
26
27
|
Object.defineProperty(exports, "buildSystemPrompt", { enumerable: true, get: function () { return prompts_1.buildSystemPrompt; } });
|
|
27
28
|
Object.defineProperty(exports, "buildOptimizePrompt", { enumerable: true, get: function () { return prompts_1.buildOptimizePrompt; } });
|
|
28
29
|
Object.defineProperty(exports, "buildEvalPrompt", { enumerable: true, get: function () { return prompts_1.buildEvalPrompt; } });
|
|
29
30
|
Object.defineProperty(exports, "parseEvalResponse", { enumerable: true, get: function () { return prompts_1.parseEvalResponse; } });
|
|
30
31
|
Object.defineProperty(exports, "truncateKb", { enumerable: true, get: function () { return prompts_1.truncateKb; } });
|
|
32
|
+
Object.defineProperty(exports, "buildComplaintPrompt", { enumerable: true, get: function () { return prompts_1.buildComplaintPrompt; } });
|
|
33
|
+
Object.defineProperty(exports, "parseComplaintResponse", { enumerable: true, get: function () { return prompts_1.parseComplaintResponse; } });
|
|
31
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAcH,iCAA6E;AAApE,0GAAA,iBAAiB,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,sGAAA,aAAa,OAAA;AAE3D,2CAA8E;AAArE,wGAAA,eAAe,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,oGAAA,WAAW,OAAA;AAClD,6CAA0D;AAAjD,8GAAA,oBAAoB,OAAA;AAC7B,mDAAgE;AAAvD,oHAAA,uBAAuB,OAAA;AAChC,2CAA8C;AAArC,kGAAA,SAAS,OAAA;AAElB,iCAA8D;AAArD,yGAAA,gBAAgB,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAC5C,qCAQmB;AAPjB,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,qGAAA,UAAU,OAAA;AACV,+GAAA,oBAAoB,OAAA;AACpB,iHAAA,sBAAsB,OAAA"}
|