aspectcode 0.4.0 → 1.0.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/README.md +13 -0
- package/dist/agentsMdRenderer.d.ts +16 -0
- package/dist/agentsMdRenderer.d.ts.map +1 -0
- package/dist/agentsMdRenderer.js +137 -0
- package/dist/agentsMdRenderer.js.map +1 -0
- package/dist/auth.d.ts +31 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +385 -0
- package/dist/auth.js.map +1 -0
- package/dist/autoResolve.d.ts +41 -0
- package/dist/autoResolve.d.ts.map +1 -0
- package/dist/autoResolve.js +196 -0
- package/dist/autoResolve.js.map +1 -0
- package/dist/changeEvaluator.d.ts +56 -0
- package/dist/changeEvaluator.d.ts.map +1 -0
- package/dist/changeEvaluator.js +674 -0
- package/dist/changeEvaluator.js.map +1 -0
- package/dist/cli.d.ts +12 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +37 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +50 -2
- package/dist/config.js.map +1 -1
- package/dist/dreamCycle.d.ts +57 -0
- package/dist/dreamCycle.d.ts.map +1 -0
- package/dist/dreamCycle.js +334 -0
- package/dist/dreamCycle.js.map +1 -0
- package/dist/kbBuilder.d.ts +1 -2
- package/dist/kbBuilder.d.ts.map +1 -1
- package/dist/kbBuilder.js +1 -2
- package/dist/kbBuilder.js.map +1 -1
- package/dist/main.d.ts +2 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +149 -8
- package/dist/main.js.map +1 -1
- package/dist/optimize.d.ts +13 -6
- package/dist/optimize.d.ts.map +1 -1
- package/dist/optimize.js +433 -142
- package/dist/optimize.js.map +1 -1
- package/dist/pipeline.d.ts +21 -18
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +1139 -162
- package/dist/pipeline.js.map +1 -1
- package/dist/preferences.d.ts +80 -0
- package/dist/preferences.d.ts.map +1 -0
- package/dist/preferences.js +238 -0
- package/dist/preferences.js.map +1 -0
- package/dist/runtimeState.d.ts +30 -0
- package/dist/runtimeState.d.ts.map +1 -0
- package/dist/runtimeState.js +39 -0
- package/dist/runtimeState.js.map +1 -0
- package/dist/scopedRules.d.ts +84 -0
- package/dist/scopedRules.d.ts.map +1 -0
- package/dist/scopedRules.js +449 -0
- package/dist/scopedRules.js.map +1 -0
- package/dist/ui/Dashboard.d.ts +4 -16
- package/dist/ui/Dashboard.d.ts.map +1 -1
- package/dist/ui/Dashboard.js +339 -141
- package/dist/ui/Dashboard.js.map +1 -1
- package/dist/ui/MemoryMap.d.ts +16 -0
- package/dist/ui/MemoryMap.d.ts.map +1 -0
- package/dist/ui/MemoryMap.js +266 -0
- package/dist/ui/MemoryMap.js.map +1 -0
- package/dist/ui/SettingsPanel.d.ts +18 -0
- package/dist/ui/SettingsPanel.d.ts.map +1 -0
- package/dist/ui/SettingsPanel.js +241 -0
- package/dist/ui/SettingsPanel.js.map +1 -0
- package/dist/ui/prompts.d.ts +7 -0
- package/dist/ui/prompts.d.ts.map +1 -1
- package/dist/ui/prompts.js +63 -0
- package/dist/ui/prompts.js.map +1 -1
- package/dist/ui/store.d.ts +154 -18
- package/dist/ui/store.d.ts.map +1 -1
- package/dist/ui/store.js +154 -24
- package/dist/ui/store.js.map +1 -1
- package/dist/ui/theme.d.ts +1 -8
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +2 -20
- package/dist/ui/theme.js.map +1 -1
- package/dist/updateChecker.d.ts +13 -0
- package/dist/updateChecker.d.ts.map +1 -0
- package/dist/updateChecker.js +66 -0
- package/dist/updateChecker.js.map +1 -0
- package/dist/usageTracker.d.ts +12 -0
- package/dist/usageTracker.d.ts.map +1 -0
- package/dist/usageTracker.js +89 -0
- package/dist/usageTracker.js.map +1 -0
- package/dist/writer.d.ts +1 -7
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js +1 -11
- package/dist/writer.js.map +1 -1
- package/node_modules/@aspectcode/core/dist/analysis/repo.d.ts.map +1 -1
- package/node_modules/@aspectcode/core/dist/analysis/repo.js +13 -2
- package/node_modules/@aspectcode/core/dist/analysis/repo.js.map +1 -1
- package/node_modules/@aspectcode/core/dist/index.d.ts +1 -3
- package/node_modules/@aspectcode/core/dist/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/core/dist/index.js +1 -3
- package/node_modules/@aspectcode/core/dist/index.js.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/genericExtractors.d.ts +14 -0
- package/node_modules/@aspectcode/core/dist/parsers/genericExtractors.d.ts.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/genericExtractors.js +191 -0
- package/node_modules/@aspectcode/core/dist/parsers/genericExtractors.js.map +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.d.ts +1 -0
- package/node_modules/@aspectcode/core/dist/parsers/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/index.js +6 -1
- package/node_modules/@aspectcode/core/dist/parsers/index.js.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts +20 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.d.ts.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/languages.js +25 -0
- package/node_modules/@aspectcode/core/dist/parsers/languages.js.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.d.ts.map +1 -1
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js +4 -1
- package/node_modules/@aspectcode/core/dist/parsers/tsJsExtractors.js.map +1 -1
- package/node_modules/@aspectcode/core/package.json +2 -2
- package/node_modules/@aspectcode/core/parsers/cpp.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/go.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/php.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/ruby.wasm +0 -0
- package/node_modules/@aspectcode/core/parsers/rust.wasm +0 -0
- package/node_modules/@aspectcode/emitters/dist/index.d.ts +1 -17
- package/node_modules/@aspectcode/emitters/dist/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/index.js +2 -89
- package/node_modules/@aspectcode/emitters/dist/index.js.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts +0 -2
- package/node_modules/@aspectcode/emitters/dist/instructions/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/index.js +1 -7
- package/node_modules/@aspectcode/emitters/dist/instructions/index.js.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts +0 -18
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.d.ts.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js +0 -57
- package/node_modules/@aspectcode/emitters/dist/kb/analyzers.js.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts +0 -18
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.d.ts.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.js +0 -130
- package/node_modules/@aspectcode/emitters/dist/kb/conventions.js.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts +2 -4
- package/node_modules/@aspectcode/emitters/dist/kb/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/emitters/dist/kb/index.js +1 -11
- package/node_modules/@aspectcode/emitters/dist/kb/index.js.map +1 -1
- package/node_modules/@aspectcode/emitters/package.json +3 -3
- package/node_modules/@aspectcode/evaluator/dist/apply.d.ts +55 -0
- package/node_modules/@aspectcode/evaluator/dist/apply.d.ts.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/apply.js +368 -0
- package/node_modules/@aspectcode/evaluator/dist/apply.js.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/diagnosis.d.ts +16 -25
- package/node_modules/@aspectcode/evaluator/dist/diagnosis.d.ts.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/diagnosis.js +115 -138
- package/node_modules/@aspectcode/evaluator/dist/diagnosis.js.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/index.d.ts +8 -43
- package/node_modules/@aspectcode/evaluator/dist/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/index.js +15 -61
- package/node_modules/@aspectcode/evaluator/dist/index.js.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/judge.d.ts +32 -0
- package/node_modules/@aspectcode/evaluator/dist/judge.d.ts.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/judge.js +165 -0
- package/node_modules/@aspectcode/evaluator/dist/judge.js.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/llmUtil.d.ts +15 -0
- package/node_modules/@aspectcode/evaluator/dist/llmUtil.d.ts.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/llmUtil.js +41 -0
- package/node_modules/@aspectcode/evaluator/dist/llmUtil.js.map +1 -0
- package/node_modules/@aspectcode/evaluator/dist/probes.d.ts +20 -29
- package/node_modules/@aspectcode/evaluator/dist/probes.d.ts.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/probes.js +188 -204
- package/node_modules/@aspectcode/evaluator/dist/probes.js.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/runner.d.ts +7 -32
- package/node_modules/@aspectcode/evaluator/dist/runner.d.ts.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/runner.js +21 -146
- package/node_modules/@aspectcode/evaluator/dist/runner.js.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/types.d.ts +141 -99
- package/node_modules/@aspectcode/evaluator/dist/types.d.ts.map +1 -1
- package/node_modules/@aspectcode/evaluator/dist/types.js +10 -2
- package/node_modules/@aspectcode/evaluator/dist/types.js.map +1 -1
- package/node_modules/@aspectcode/evaluator/package.json +4 -4
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts +3 -10
- package/node_modules/@aspectcode/optimizer/dist/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/index.js +1 -19
- package/node_modules/@aspectcode/optimizer/dist/index.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js +40 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/aspectcode.d.ts +9 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/aspectcode.d.ts.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/aspectcode.js +83 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/aspectcode.js.map +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts +4 -3
- package/node_modules/@aspectcode/optimizer/dist/providers/index.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/index.js +24 -10
- package/node_modules/@aspectcode/optimizer/dist/providers/index.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js +22 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/openai.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts +14 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.d.ts.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.js +1 -0
- package/node_modules/@aspectcode/optimizer/dist/providers/retry.js.map +1 -1
- package/node_modules/@aspectcode/optimizer/dist/types.d.ts +14 -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 +2 -2
- package/package.json +6 -7
- package/dist/complaintProcessor.d.ts +0 -16
- package/dist/complaintProcessor.d.ts.map +0 -1
- package/dist/complaintProcessor.js +0 -134
- package/dist/complaintProcessor.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/emitter.d.ts +0 -72
- package/node_modules/@aspectcode/emitters/dist/emitter.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/emitter.js +0 -10
- package/node_modules/@aspectcode/emitters/dist/emitter.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts +0 -15
- package/node_modules/@aspectcode/emitters/dist/instructions/content.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/content.js +0 -289
- package/node_modules/@aspectcode/emitters/dist/instructions/content.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts +0 -13
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.js +0 -55
- package/node_modules/@aspectcode/emitters/dist/instructions/detection.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts +0 -9
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js +0 -30
- package/node_modules/@aspectcode/emitters/dist/instructions/instructionsEmitter.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts +0 -21
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js +0 -125
- package/node_modules/@aspectcode/emitters/dist/kb/kbEmitter.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/manifest.d.ts +0 -37
- package/node_modules/@aspectcode/emitters/dist/manifest.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/manifest.js +0 -50
- package/node_modules/@aspectcode/emitters/dist/manifest.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/report.d.ts +0 -22
- package/node_modules/@aspectcode/emitters/dist/report.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/report.js +0 -3
- package/node_modules/@aspectcode/emitters/dist/report.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts +0 -14
- package/node_modules/@aspectcode/emitters/dist/stableJson.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/stableJson.js +0 -40
- package/node_modules/@aspectcode/emitters/dist/stableJson.js.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/transaction.d.ts +0 -29
- package/node_modules/@aspectcode/emitters/dist/transaction.d.ts.map +0 -1
- package/node_modules/@aspectcode/emitters/dist/transaction.js +0 -104
- package/node_modules/@aspectcode/emitters/dist/transaction.js.map +0 -1
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @aspectcode/optimizer — public API.
|
|
4
|
-
*
|
|
5
|
-
* Re-exports types and provides the top-level `optimizeInstructions` entry point.
|
|
6
4
|
*/
|
|
7
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
var types_1 = require("./types");
|
|
10
|
-
Object.defineProperty(exports, "PROVIDER_ENV_KEYS", { enumerable: true, get: function () { return types_1.PROVIDER_ENV_KEYS; } });
|
|
11
|
-
Object.defineProperty(exports, "LLM_PROVIDER_ENV", { enumerable: true, get: function () { return types_1.LLM_PROVIDER_ENV; } });
|
|
12
|
-
Object.defineProperty(exports, "LLM_MODEL_ENV", { enumerable: true, get: function () { return types_1.LLM_MODEL_ENV; } });
|
|
6
|
+
exports.runGenerateAgent = exports.withRetry = exports.loadEnvFile = exports.resolveProvider = void 0;
|
|
13
7
|
var index_1 = require("./providers/index");
|
|
14
8
|
Object.defineProperty(exports, "resolveProvider", { enumerable: true, get: function () { return index_1.resolveProvider; } });
|
|
15
9
|
Object.defineProperty(exports, "loadEnvFile", { enumerable: true, get: function () { return index_1.loadEnvFile; } });
|
|
16
|
-
Object.defineProperty(exports, "parseDotenv", { enumerable: true, get: function () { return index_1.parseDotenv; } });
|
|
17
|
-
var openai_1 = require("./providers/openai");
|
|
18
|
-
Object.defineProperty(exports, "createOpenAiProvider", { enumerable: true, get: function () { return openai_1.createOpenAiProvider; } });
|
|
19
|
-
var anthropic_1 = require("./providers/anthropic");
|
|
20
|
-
Object.defineProperty(exports, "createAnthropicProvider", { enumerable: true, get: function () { return anthropic_1.createAnthropicProvider; } });
|
|
21
10
|
var retry_1 = require("./providers/retry");
|
|
22
11
|
Object.defineProperty(exports, "withRetry", { enumerable: true, get: function () { return retry_1.withRetry; } });
|
|
23
12
|
var agent_1 = require("./agent");
|
|
24
13
|
Object.defineProperty(exports, "runGenerateAgent", { enumerable: true, get: function () { return agent_1.runGenerateAgent; } });
|
|
25
|
-
Object.defineProperty(exports, "runComplaintAgent", { enumerable: true, get: function () { return agent_1.runComplaintAgent; } });
|
|
26
|
-
var prompts_1 = require("./prompts");
|
|
27
|
-
Object.defineProperty(exports, "buildSystemPrompt", { enumerable: true, get: function () { return prompts_1.buildSystemPrompt; } });
|
|
28
|
-
Object.defineProperty(exports, "buildGeneratePrompt", { enumerable: true, get: function () { return prompts_1.buildGeneratePrompt; } });
|
|
29
|
-
Object.defineProperty(exports, "truncateKb", { enumerable: true, get: function () { return prompts_1.truncateKb; } });
|
|
30
|
-
Object.defineProperty(exports, "buildComplaintPrompt", { enumerable: true, get: function () { return prompts_1.buildComplaintPrompt; } });
|
|
31
|
-
Object.defineProperty(exports, "parseComplaintResponse", { enumerable: true, get: function () { return prompts_1.parseComplaintResponse; } });
|
|
32
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAeH,2CAAiE;AAAxD,wGAAA,eAAe,OAAA;AAAE,oGAAA,WAAW,OAAA;AACrC,2CAA8C;AAArC,kGAAA,SAAS,OAAA;AAClB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAwC,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAOnG;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAgJ9F"}
|
|
@@ -130,6 +130,46 @@ function createAnthropicProvider(apiKey, options) {
|
|
|
130
130
|
};
|
|
131
131
|
});
|
|
132
132
|
},
|
|
133
|
+
async chatWithOptions(messages, opts) {
|
|
134
|
+
return (0, retry_1.withRetry)(async () => {
|
|
135
|
+
const client = await getClient();
|
|
136
|
+
const callTemp = opts.temperature ?? temperature;
|
|
137
|
+
const callMaxTokens = opts.maxTokens ?? maxTokens;
|
|
138
|
+
let systemPrompt;
|
|
139
|
+
const anthropicMessages = [];
|
|
140
|
+
for (const msg of messages) {
|
|
141
|
+
if (msg.role === 'system') {
|
|
142
|
+
systemPrompt = systemPrompt
|
|
143
|
+
? `${systemPrompt}\n\n${msg.content}`
|
|
144
|
+
: msg.content;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
anthropicMessages.push({ role: msg.role, content: msg.content });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (anthropicMessages.length === 0) {
|
|
151
|
+
throw new Error('Anthropic requires at least one user message');
|
|
152
|
+
}
|
|
153
|
+
const requestParams = {
|
|
154
|
+
model: modelId,
|
|
155
|
+
messages: anthropicMessages,
|
|
156
|
+
temperature: callTemp,
|
|
157
|
+
max_tokens: callMaxTokens,
|
|
158
|
+
};
|
|
159
|
+
if (systemPrompt) {
|
|
160
|
+
requestParams.system = systemPrompt;
|
|
161
|
+
}
|
|
162
|
+
const response = await client.messages.create(requestParams);
|
|
163
|
+
const textBlocks = response.content?.filter((block) => block.type === 'text');
|
|
164
|
+
const content = textBlocks
|
|
165
|
+
?.map((block) => block.text)
|
|
166
|
+
.join('');
|
|
167
|
+
if (!content) {
|
|
168
|
+
throw new Error('Anthropic returned an empty response');
|
|
169
|
+
}
|
|
170
|
+
return content;
|
|
171
|
+
});
|
|
172
|
+
},
|
|
133
173
|
};
|
|
134
174
|
}
|
|
135
175
|
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aspect Code hosted LLM provider.
|
|
3
|
+
*
|
|
4
|
+
* Routes LLM calls through aspectcode.com/api/cli/llm instead of
|
|
5
|
+
* directly to OpenAI/Anthropic. Authenticates via CLI token.
|
|
6
|
+
*/
|
|
7
|
+
import type { LlmProvider, ProviderOptions } from '../types';
|
|
8
|
+
export declare function createAspectCodeProvider(cliToken: string, options?: ProviderOptions): LlmProvider;
|
|
9
|
+
//# sourceMappingURL=aspectcode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspectcode.d.ts","sourceRoot":"","sources":["../../src/providers/aspectcode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAwC,eAAe,EAAE,MAAM,UAAU,CAAC;AAKnG,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,GAC5B,WAAW,CAuFb"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Aspect Code hosted LLM provider.
|
|
4
|
+
*
|
|
5
|
+
* Routes LLM calls through aspectcode.com/api/cli/llm instead of
|
|
6
|
+
* directly to OpenAI/Anthropic. Authenticates via CLI token.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.createAspectCodeProvider = createAspectCodeProvider;
|
|
10
|
+
const retry_1 = require("./retry");
|
|
11
|
+
const DEFAULT_URL = 'https://aspectcode.com/api/cli/llm';
|
|
12
|
+
function createAspectCodeProvider(cliToken, options = {}) {
|
|
13
|
+
const baseUrl = process.env.ASPECTCODE_WEB_URL
|
|
14
|
+
? `${process.env.ASPECTCODE_WEB_URL}/api/cli/llm`
|
|
15
|
+
: DEFAULT_URL;
|
|
16
|
+
const defaultTemp = options.temperature ?? 0.4;
|
|
17
|
+
const defaultMaxTokens = options.maxTokens ?? 4096;
|
|
18
|
+
const model = options.model ?? 'auto';
|
|
19
|
+
async function call(messages, temperature, maxTokens) {
|
|
20
|
+
const res = await (0, retry_1.withRetry)(async () => {
|
|
21
|
+
const resp = await fetch(baseUrl, {
|
|
22
|
+
method: 'POST',
|
|
23
|
+
headers: {
|
|
24
|
+
Authorization: `Bearer ${cliToken}`,
|
|
25
|
+
'Content-Type': 'application/json',
|
|
26
|
+
},
|
|
27
|
+
body: JSON.stringify({
|
|
28
|
+
messages,
|
|
29
|
+
temperature: temperature ?? defaultTemp,
|
|
30
|
+
maxTokens: maxTokens ?? defaultMaxTokens,
|
|
31
|
+
model,
|
|
32
|
+
}),
|
|
33
|
+
});
|
|
34
|
+
if (!resp.ok) {
|
|
35
|
+
const body = await resp.text().catch(() => '');
|
|
36
|
+
// Handle tier exhaustion (403)
|
|
37
|
+
if (resp.status === 403) {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(body);
|
|
40
|
+
if (parsed.error === 'token_limit_exceeded') {
|
|
41
|
+
const err = new Error(parsed.message || 'TOKEN_LIMIT_EXCEEDED');
|
|
42
|
+
err.tierExhausted = true;
|
|
43
|
+
err.tier = parsed.tier;
|
|
44
|
+
err.tokensUsed = parsed.tokensUsed;
|
|
45
|
+
err.tokensCap = parsed.tokensCap;
|
|
46
|
+
err.upgradeUrl = parsed.upgradeUrl;
|
|
47
|
+
err.resetAt = parsed.resetAt;
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
if (e.tierExhausted)
|
|
53
|
+
throw e;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const err = new Error(`Aspect Code API error ${resp.status}: ${body}`);
|
|
57
|
+
err.status = resp.status;
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
return resp.json();
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
content: res.content,
|
|
64
|
+
usage: res.usage,
|
|
65
|
+
meta: res.tierUsage ? { tierUsage: res.tierUsage } : undefined,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
name: `aspectcode (hosted)`,
|
|
70
|
+
async chat(messages) {
|
|
71
|
+
const result = await call(messages);
|
|
72
|
+
return result.content;
|
|
73
|
+
},
|
|
74
|
+
async chatWithUsage(messages) {
|
|
75
|
+
return call(messages);
|
|
76
|
+
},
|
|
77
|
+
async chatWithOptions(messages, opts) {
|
|
78
|
+
const result = await call(messages, opts.temperature, opts.maxTokens);
|
|
79
|
+
return result.content;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=aspectcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aspectcode.js","sourceRoot":"","sources":["../../src/providers/aspectcode.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,10 @@ export declare function loadEnvFile(root: string): Record<string, string>;
|
|
|
17
17
|
* Resolve an LlmProvider from environment variables.
|
|
18
18
|
*
|
|
19
19
|
* Resolution order:
|
|
20
|
-
* 1.
|
|
21
|
-
* 2.
|
|
22
|
-
* 3.
|
|
20
|
+
* 1. ASPECTCODE_LLM_KEY — explicit opt-in to use a personal API key
|
|
21
|
+
* 2. LLM_PROVIDER explicitly set + matching standard API key
|
|
22
|
+
* 3. Logged in → hosted proxy (default for authenticated users)
|
|
23
|
+
* 4. Legacy fallback: standard env var names (only if NOT logged in)
|
|
23
24
|
*
|
|
24
25
|
* @param env - Merged environment (from .env + process.env)
|
|
25
26
|
* @param providerOptions - Optional model/temperature/maxTokens overrides
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBhE;AAaD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBhE;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,eAAe,CAAC,EAAE,eAAe,GAChC,WAAW,CAwDb"}
|
|
@@ -99,20 +99,31 @@ const PROVIDER_FACTORIES = {
|
|
|
99
99
|
* Resolve an LlmProvider from environment variables.
|
|
100
100
|
*
|
|
101
101
|
* Resolution order:
|
|
102
|
-
* 1.
|
|
103
|
-
* 2.
|
|
104
|
-
* 3.
|
|
102
|
+
* 1. ASPECTCODE_LLM_KEY — explicit opt-in to use a personal API key
|
|
103
|
+
* 2. LLM_PROVIDER explicitly set + matching standard API key
|
|
104
|
+
* 3. Logged in → hosted proxy (default for authenticated users)
|
|
105
|
+
* 4. Legacy fallback: standard env var names (only if NOT logged in)
|
|
105
106
|
*
|
|
106
107
|
* @param env - Merged environment (from .env + process.env)
|
|
107
108
|
* @param providerOptions - Optional model/temperature/maxTokens overrides
|
|
108
109
|
*/
|
|
109
110
|
function resolveProvider(env, providerOptions) {
|
|
110
|
-
const forcedProvider = env[types_1.LLM_PROVIDER_ENV];
|
|
111
111
|
const model = providerOptions?.model ?? env['LLM_MODEL'];
|
|
112
112
|
const opts = {
|
|
113
113
|
...providerOptions,
|
|
114
114
|
model,
|
|
115
115
|
};
|
|
116
|
+
// 1. Explicit opt-in: ASPECTCODE_LLM_KEY
|
|
117
|
+
const explicitKey = env['ASPECTCODE_LLM_KEY'];
|
|
118
|
+
if (explicitKey) {
|
|
119
|
+
const forcedProvider = env[types_1.LLM_PROVIDER_ENV];
|
|
120
|
+
// Auto-detect provider from key format if not explicitly set
|
|
121
|
+
const provider = forcedProvider
|
|
122
|
+
?? (explicitKey.startsWith('sk-ant-') ? 'anthropic' : 'openai');
|
|
123
|
+
return PROVIDER_FACTORIES[provider](explicitKey, opts);
|
|
124
|
+
}
|
|
125
|
+
// 2. LLM_PROVIDER explicitly set with matching standard key
|
|
126
|
+
const forcedProvider = env[types_1.LLM_PROVIDER_ENV];
|
|
116
127
|
if (forcedProvider) {
|
|
117
128
|
const envKey = types_1.PROVIDER_ENV_KEYS[forcedProvider];
|
|
118
129
|
if (!envKey) {
|
|
@@ -121,11 +132,17 @@ function resolveProvider(env, providerOptions) {
|
|
|
121
132
|
const apiKey = env[envKey];
|
|
122
133
|
if (!apiKey) {
|
|
123
134
|
throw new Error(`LLM_PROVIDER is set to "${forcedProvider}" but ${envKey} is not defined.\n` +
|
|
124
|
-
`Add ${envKey}=sk-... to your .env file.`);
|
|
135
|
+
`Add ${envKey}=sk-... or ASPECTCODE_LLM_KEY=sk-... to your .env file.`);
|
|
125
136
|
}
|
|
126
137
|
return PROVIDER_FACTORIES[forcedProvider](apiKey, opts);
|
|
127
138
|
}
|
|
128
|
-
//
|
|
139
|
+
// 3. Logged in → hosted proxy (preferred for authenticated users)
|
|
140
|
+
const cliToken = env['ASPECTCODE_CLI_TOKEN'];
|
|
141
|
+
if (cliToken) {
|
|
142
|
+
const { createAspectCodeProvider } = require('./aspectcode');
|
|
143
|
+
return createAspectCodeProvider(cliToken, opts);
|
|
144
|
+
}
|
|
145
|
+
// 4. Legacy fallback: standard env var names (only if NOT logged in)
|
|
129
146
|
const providerOrder = ['openai', 'anthropic'];
|
|
130
147
|
for (const name of providerOrder) {
|
|
131
148
|
const envKey = types_1.PROVIDER_ENV_KEYS[name];
|
|
@@ -134,9 +151,6 @@ function resolveProvider(env, providerOptions) {
|
|
|
134
151
|
return PROVIDER_FACTORIES[name](apiKey, opts);
|
|
135
152
|
}
|
|
136
153
|
}
|
|
137
|
-
throw new Error('No LLM
|
|
138
|
-
' OPENAI_API_KEY=sk-...\n' +
|
|
139
|
-
' ANTHROPIC_API_KEY=sk-ant-...\n' +
|
|
140
|
-
'to a .env file in your workspace root.');
|
|
154
|
+
throw new Error('No LLM available. Log in with `aspectcode login` or set ASPECTCODE_LLM_KEY in your .env file.');
|
|
141
155
|
}
|
|
142
156
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,kCAmBC;AAMD,kCAiBC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAwC,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAOnG;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAqF3F"}
|
|
@@ -102,6 +102,28 @@ function createOpenAiProvider(apiKey, options) {
|
|
|
102
102
|
};
|
|
103
103
|
});
|
|
104
104
|
},
|
|
105
|
+
async chatWithOptions(messages, opts) {
|
|
106
|
+
return (0, retry_1.withRetry)(async () => {
|
|
107
|
+
const client = await getClient();
|
|
108
|
+
const callTemp = opts.temperature ?? temperature;
|
|
109
|
+
const callMaxTokens = opts.maxTokens ?? maxTokens;
|
|
110
|
+
const response = await client.chat.completions.create({
|
|
111
|
+
model: modelId,
|
|
112
|
+
messages: messages.map((m) => ({
|
|
113
|
+
role: m.role,
|
|
114
|
+
content: m.content,
|
|
115
|
+
})),
|
|
116
|
+
temperature: callTemp,
|
|
117
|
+
max_tokens: callMaxTokens,
|
|
118
|
+
});
|
|
119
|
+
const choice = response.choices[0];
|
|
120
|
+
const content = choice?.message?.content;
|
|
121
|
+
if (!content) {
|
|
122
|
+
throw new Error('OpenAI returned an empty response');
|
|
123
|
+
}
|
|
124
|
+
return content;
|
|
125
|
+
});
|
|
126
|
+
},
|
|
105
127
|
};
|
|
106
128
|
}
|
|
107
129
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,20 @@ export interface RetryOptions {
|
|
|
12
12
|
/** Maximum delay in ms between retries (default: 16000). */
|
|
13
13
|
maxDelayMs?: number;
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Determine whether an error is transient and should be retried.
|
|
17
|
+
*
|
|
18
|
+
* Retries on:
|
|
19
|
+
* - HTTP 429 (rate limit)
|
|
20
|
+
* - HTTP 5xx (server errors)
|
|
21
|
+
* - Network/timeout errors
|
|
22
|
+
*
|
|
23
|
+
* Does NOT retry:
|
|
24
|
+
* - HTTP 401/403 (auth errors)
|
|
25
|
+
* - HTTP 400 (bad request)
|
|
26
|
+
* - Other client errors
|
|
27
|
+
*/
|
|
28
|
+
export declare function isTransientError(err: unknown): boolean;
|
|
15
29
|
/**
|
|
16
30
|
* Execute `fn` with exponential backoff retries on transient errors.
|
|
17
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAqCtD;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAwBZ"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* while immediately failing on permanent errors (auth, bad request).
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.isTransientError = isTransientError;
|
|
9
10
|
exports.withRetry = withRetry;
|
|
10
11
|
/** Default retry configuration. */
|
|
11
12
|
const DEFAULT_MAX_RETRIES = 3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/providers/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,13 @@ export interface ChatMessage {
|
|
|
9
9
|
role: 'system' | 'user' | 'assistant';
|
|
10
10
|
content: string;
|
|
11
11
|
}
|
|
12
|
+
/** Per-call overrides for temperature and max tokens. */
|
|
13
|
+
export interface ChatOptions {
|
|
14
|
+
/** Sampling temperature override for this specific call. */
|
|
15
|
+
temperature?: number;
|
|
16
|
+
/** Max tokens override for this specific call. */
|
|
17
|
+
maxTokens?: number;
|
|
18
|
+
}
|
|
12
19
|
/** Token usage from a single LLM call. */
|
|
13
20
|
export interface ChatUsage {
|
|
14
21
|
inputTokens: number;
|
|
@@ -18,6 +25,8 @@ export interface ChatUsage {
|
|
|
18
25
|
export interface ChatResult {
|
|
19
26
|
content: string;
|
|
20
27
|
usage?: ChatUsage;
|
|
28
|
+
/** Provider-specific metadata (e.g. tier usage from hosted proxy). */
|
|
29
|
+
meta?: Record<string, unknown>;
|
|
21
30
|
}
|
|
22
31
|
/**
|
|
23
32
|
* Provider-agnostic LLM interface.
|
|
@@ -35,6 +44,11 @@ export interface LlmProvider {
|
|
|
35
44
|
* Optional — providers that don't implement this fall back to `chat()`.
|
|
36
45
|
*/
|
|
37
46
|
chatWithUsage?(messages: ChatMessage[]): Promise<ChatResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Send a chat completion request with per-call overrides (temperature, maxTokens).
|
|
49
|
+
* Optional — callers should fall back to `chat()` if not implemented.
|
|
50
|
+
*/
|
|
51
|
+
chatWithOptions?(messages: ChatMessage[], options: ChatOptions): Promise<string>;
|
|
38
52
|
}
|
|
39
53
|
/** Options passed to provider factory functions. */
|
|
40
54
|
export interface ProviderOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsIH,+DAA+D;AAE/D,4DAA4D;AAC/C,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;CACtB,CAAC;AAuCX,qDAAqD;AACxC,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAE/C,sDAAsD;AACzC,QAAA,aAAa,GAAG,WAAW,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspectcode/optimizer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "LLM-powered instruction generator for Aspect Code",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": "https://github.com/
|
|
17
|
+
"url": "https://github.com/Aspect-Code-Labs/aspectcode.git",
|
|
18
18
|
"directory": "packages/optimizer"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aspectcode",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "CLI for Aspect Code — generate knowledge-base artifacts from the command line",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"repository": {
|
|
31
31
|
"type": "git",
|
|
32
|
-
"url": "https://github.com/
|
|
32
|
+
"url": "https://github.com/Aspect-Code-Labs/aspectcode.git",
|
|
33
33
|
"directory": "packages/cli"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
@@ -49,11 +49,10 @@
|
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
52
|
-
"@aspectcode/core": "0.
|
|
53
|
-
"@aspectcode/emitters": "0.
|
|
54
|
-
"@aspectcode/evaluator": "0.
|
|
55
|
-
"@aspectcode/optimizer": "0.
|
|
56
|
-
"chokidar": "^4.0.3",
|
|
52
|
+
"@aspectcode/core": "1.0.0",
|
|
53
|
+
"@aspectcode/emitters": "1.0.0",
|
|
54
|
+
"@aspectcode/evaluator": "1.0.0",
|
|
55
|
+
"@aspectcode/optimizer": "1.0.0",
|
|
57
56
|
"dotenv": "^16.4.0",
|
|
58
57
|
"ink": "3.2.0",
|
|
59
58
|
"openai": "^4.70.0",
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Complaint processor — takes queued user complaints, calls the
|
|
3
|
-
* complaint agent to update AGENTS.md, and reports changes via the store.
|
|
4
|
-
*/
|
|
5
|
-
import type { RunContext } from './cli';
|
|
6
|
-
import type { OwnershipMode } from './writer';
|
|
7
|
-
/**
|
|
8
|
-
* Drain the complaint queue and apply each batch of complaints to AGENTS.md.
|
|
9
|
-
*
|
|
10
|
-
* Reads the current AGENTS.md, sends complaints + KB context to the LLM,
|
|
11
|
-
* writes the updated file, and surfaces changes in the dashboard.
|
|
12
|
-
*
|
|
13
|
-
* @returns true if at least one complaint was processed, false otherwise.
|
|
14
|
-
*/
|
|
15
|
-
export declare function processComplaints(ctx: RunContext, ownership: OwnershipMode, kbContent: string): Promise<boolean>;
|
|
16
|
-
//# sourceMappingURL=complaintProcessor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"complaintProcessor.d.ts","sourceRoot":"","sources":["../src/complaintProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAIxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAmFlB"}
|