borderless-agent 0.0.1-alpha.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.
Files changed (90) hide show
  1. package/README.md +274 -0
  2. package/dist/agentBuilder.d.ts +51 -0
  3. package/dist/agentBuilder.d.ts.map +1 -0
  4. package/dist/agentBuilder.js +130 -0
  5. package/dist/agentBuilder.js.map +1 -0
  6. package/dist/agentInstance.d.ts +45 -0
  7. package/dist/agentInstance.d.ts.map +1 -0
  8. package/dist/agentInstance.js +501 -0
  9. package/dist/agentInstance.js.map +1 -0
  10. package/dist/agentsCore.d.ts +16 -0
  11. package/dist/agentsCore.d.ts.map +1 -0
  12. package/dist/agentsCore.js +50 -0
  13. package/dist/agentsCore.js.map +1 -0
  14. package/dist/cli/index.d.ts +5 -0
  15. package/dist/cli/index.d.ts.map +1 -0
  16. package/dist/cli/index.js +11 -0
  17. package/dist/cli/index.js.map +1 -0
  18. package/dist/cli/main.d.ts +36 -0
  19. package/dist/cli/main.d.ts.map +1 -0
  20. package/dist/cli/main.js +306 -0
  21. package/dist/cli/main.js.map +1 -0
  22. package/dist/config.d.ts +26 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +98 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/contextCore.d.ts +97 -0
  27. package/dist/contextCore.d.ts.map +1 -0
  28. package/dist/contextCore.js +533 -0
  29. package/dist/contextCore.js.map +1 -0
  30. package/dist/index.d.ts +28 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +46 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/llmProtocol.d.ts +60 -0
  35. package/dist/llmProtocol.d.ts.map +1 -0
  36. package/dist/llmProtocol.js +202 -0
  37. package/dist/llmProtocol.js.map +1 -0
  38. package/dist/loopCore.d.ts +22 -0
  39. package/dist/loopCore.d.ts.map +1 -0
  40. package/dist/loopCore.js +288 -0
  41. package/dist/loopCore.js.map +1 -0
  42. package/dist/main.d.ts +9 -0
  43. package/dist/main.d.ts.map +1 -0
  44. package/dist/main.js +15 -0
  45. package/dist/main.js.map +1 -0
  46. package/dist/memoryCore.d.ts +37 -0
  47. package/dist/memoryCore.d.ts.map +1 -0
  48. package/dist/memoryCore.js +346 -0
  49. package/dist/memoryCore.js.map +1 -0
  50. package/dist/server/app.d.ts +13 -0
  51. package/dist/server/app.d.ts.map +1 -0
  52. package/dist/server/app.js +200 -0
  53. package/dist/server/app.js.map +1 -0
  54. package/dist/sessionCore.d.ts +54 -0
  55. package/dist/sessionCore.d.ts.map +1 -0
  56. package/dist/sessionCore.js +312 -0
  57. package/dist/sessionCore.js.map +1 -0
  58. package/dist/skillsCore.d.ts +23 -0
  59. package/dist/skillsCore.d.ts.map +1 -0
  60. package/dist/skillsCore.js +202 -0
  61. package/dist/skillsCore.js.map +1 -0
  62. package/dist/storage/cloudBackend.d.ts +48 -0
  63. package/dist/storage/cloudBackend.d.ts.map +1 -0
  64. package/dist/storage/cloudBackend.js +301 -0
  65. package/dist/storage/cloudBackend.js.map +1 -0
  66. package/dist/storage/fileBackend.d.ts +41 -0
  67. package/dist/storage/fileBackend.d.ts.map +1 -0
  68. package/dist/storage/fileBackend.js +240 -0
  69. package/dist/storage/fileBackend.js.map +1 -0
  70. package/dist/storage/index.d.ts +21 -0
  71. package/dist/storage/index.d.ts.map +1 -0
  72. package/dist/storage/index.js +58 -0
  73. package/dist/storage/index.js.map +1 -0
  74. package/dist/storage/protocols.d.ts +29 -0
  75. package/dist/storage/protocols.d.ts.map +1 -0
  76. package/dist/storage/protocols.js +20 -0
  77. package/dist/storage/protocols.js.map +1 -0
  78. package/dist/todoCore.d.ts +15 -0
  79. package/dist/todoCore.d.ts.map +1 -0
  80. package/dist/todoCore.js +52 -0
  81. package/dist/todoCore.js.map +1 -0
  82. package/dist/toolsCore.d.ts +31 -0
  83. package/dist/toolsCore.d.ts.map +1 -0
  84. package/dist/toolsCore.js +609 -0
  85. package/dist/toolsCore.js.map +1 -0
  86. package/dist/types.d.ts +144 -0
  87. package/dist/types.d.ts.map +1 -0
  88. package/dist/types.js +8 -0
  89. package/dist/types.js.map +1 -0
  90. package/package.json +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOhD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAKH,gBAAgB,EAMnB,MAAM,gBAAgB,CAAC;AAiFxB,wBAAsB,OAAO,CAAC,OAAO,EAAE;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/B,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,GAAG,CAAC,EAAE,WAAW,CAAC;CACrB,GAAG,OAAO,CAAC;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC7B,CAAC,CA6HD;AAMD,qBAAa,KAAK;IACd,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEL,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;IAK9C,OAAO,CAAC,OAAO,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,EAAE,cAAc,CAAC;QAC3B,SAAS,EAAE,gBAAgB,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAC5C;iBArJQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;2BACX,MAAM;;CAuJ5B;AA6BD,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAmD1C"}
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ /**
3
+ * cli/main.ts - CLI entry point for the general-purpose agent (REPL, session choice, run_turn).
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Agent = void 0;
40
+ exports.runTurn = runTurn;
41
+ exports.main = main;
42
+ const readline = __importStar(require("readline"));
43
+ const config_1 = require("../config");
44
+ const sessionCore_1 = require("../sessionCore");
45
+ const skillsCore_1 = require("../skillsCore");
46
+ const storage_1 = require("../storage");
47
+ const memoryCore_1 = require("../memoryCore");
48
+ const agentsCore_1 = require("../agentsCore");
49
+ const toolsCore_1 = require("../toolsCore");
50
+ const loopCore_1 = require("../loopCore");
51
+ const contextCore_1 = require("../contextCore");
52
+ // ---------------------------------------------------------------------------
53
+ // Helpers
54
+ // ---------------------------------------------------------------------------
55
+ function relativeTime(ts) {
56
+ const diff = Date.now() / 1000 - ts;
57
+ if (diff < 60)
58
+ return 'just now';
59
+ if (diff < 3600)
60
+ return `${Math.floor(diff / 60)}m ago`;
61
+ if (diff < 86400)
62
+ return `${Math.floor(diff / 3600)}h ago`;
63
+ return `${Math.floor(diff / 86400)}d ago`;
64
+ }
65
+ function createReadlineInterface() {
66
+ return readline.createInterface({
67
+ input: process.stdin,
68
+ output: process.stdout,
69
+ });
70
+ }
71
+ function ask(rl, prompt) {
72
+ return new Promise((resolve) => {
73
+ rl.question(prompt, (answer) => resolve(answer.trim()));
74
+ });
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Session chooser
78
+ // ---------------------------------------------------------------------------
79
+ async function chooseSession(sessionMgr, rl) {
80
+ while (true) {
81
+ let choice;
82
+ try {
83
+ choice =
84
+ (await ask(rl, 'Start: [n]ew session, [l]ist sessions, [r]estore <id> (default n): ')) || 'n';
85
+ }
86
+ catch {
87
+ choice = 'n';
88
+ }
89
+ choice = choice.toLowerCase();
90
+ if (choice === 'n') {
91
+ sessionMgr.createSession({ context: { started: true } });
92
+ return;
93
+ }
94
+ if (choice === 'l') {
95
+ const summaries = sessionMgr.listSessionsSummary(20);
96
+ if (!summaries.length) {
97
+ console.log(' No saved sessions.');
98
+ }
99
+ else {
100
+ for (const s of summaries) {
101
+ const sidShort = s.id.slice(0, 8);
102
+ const rel = relativeTime(s.updated_at).padStart(10);
103
+ console.log(` ${sidShort} ${rel} ${s.turns} turns [${s.state}] ${s.id}`);
104
+ }
105
+ }
106
+ continue;
107
+ }
108
+ if (choice.startsWith('r ')) {
109
+ const sid = choice.slice(2).trim();
110
+ if (sessionMgr.restoreSession(sid))
111
+ return;
112
+ console.log(` Session not found: ${sid}`);
113
+ continue;
114
+ }
115
+ console.log(' Use n, l, or r <id>.');
116
+ }
117
+ }
118
+ // ---------------------------------------------------------------------------
119
+ // run_turn
120
+ // ---------------------------------------------------------------------------
121
+ async function runTurn(options) {
122
+ const turnStart = Date.now();
123
+ toolsCore_1.LOADED_SKILLS.clear();
124
+ let { userInput } = options;
125
+ let { history } = options;
126
+ const { sessionMgr, lifecycle, budget } = options;
127
+ const sanitized = (0, contextCore_1.sanitizeUserInput)(userInput);
128
+ userInput = sanitized.text;
129
+ if ((0, contextCore_1.contextEnabled)() &&
130
+ lifecycle.detectTopicShift(userInput, history.slice(-6))) {
131
+ if (history.length) {
132
+ const summary = await (0, contextCore_1.summarizeRounds)(history);
133
+ if (summary)
134
+ (0, memoryCore_1.writeInsight)(summary, 0.5);
135
+ }
136
+ history.length = 0;
137
+ lifecycle.resetSession();
138
+ }
139
+ const memoryTuples = (0, memoryCore_1.retrieve)(userInput, 5);
140
+ const ragLines = memoryTuples.map((m) => m[0]).filter(Boolean);
141
+ if ((0, contextCore_1.contextEnabled)()) {
142
+ history = (0, contextCore_1.selectHistory)(history, userInput, budget.history, memoryCore_1.MAX_HISTORY_TURNS);
143
+ }
144
+ else {
145
+ const maxMessages = memoryCore_1.MAX_HISTORY_TURNS * 2;
146
+ if (history.length > maxMessages) {
147
+ history = history.slice(-maxMessages);
148
+ }
149
+ }
150
+ history.push({ role: 'user', content: userInput });
151
+ const active = sessionMgr.getActiveSession();
152
+ const sessionId = active?.id ?? '';
153
+ // Reply cache
154
+ if ((0, contextCore_1.replyCacheEnabled)() && active) {
155
+ const cached = (0, contextCore_1.getCachedReply)(sessionId, userInput, history);
156
+ if (cached) {
157
+ history.push({ role: 'assistant', content: cached.text });
158
+ (0, memoryCore_1.consolidateTurn)(userInput, cached.text);
159
+ syncSession(sessionMgr, lifecycle, history);
160
+ return { history, lastAssistantText: cached.text };
161
+ }
162
+ }
163
+ let systemOverride;
164
+ if ((0, contextCore_1.contextEnabled)()) {
165
+ const projectKnowledge = (0, memoryCore_1.loadProjectKnowledge)();
166
+ const prefs = (0, memoryCore_1.loadUserPreferences)();
167
+ let preferencesSummary = `Model: ${prefs.model ?? 'gpt-4o'}.`;
168
+ if (prefs.permissions) {
169
+ preferencesSummary += ` Permissions: ${JSON.stringify(prefs.permissions)}.`;
170
+ }
171
+ let recentFilesSummary;
172
+ if (active) {
173
+ const recent = active.context.recent_files ?? [];
174
+ if (recent.length) {
175
+ recentFilesSummary = recent
176
+ .slice(0, 10)
177
+ .map((f) => `- ${f.path ?? ''} (accessed ${f.access_count ?? 0}x)`)
178
+ .join('\n');
179
+ }
180
+ }
181
+ systemOverride = (0, contextCore_1.assembleSystem)({
182
+ baseSystem: (0, loopCore_1.getBaseSystem)(),
183
+ ragLines: ragLines.length ? ragLines : undefined,
184
+ conversationSummary: lifecycle.getConversationSummary() || undefined,
185
+ budgetRag: budget.rag,
186
+ projectKnowledge: projectKnowledge ?? undefined,
187
+ preferencesSummary,
188
+ recentFilesSummary,
189
+ });
190
+ }
191
+ const historyBeforeTurn = [...history];
192
+ let lastAssistantText = '';
193
+ try {
194
+ const result = await (0, loopCore_1.agentLoop)({
195
+ messages: history,
196
+ retrievedMemories: systemOverride ? undefined : ragLines.length ? ragLines : undefined,
197
+ systemOverride,
198
+ budget,
199
+ sessionId,
200
+ onContentDelta: options.streamCallback,
201
+ llm: options.llm,
202
+ });
203
+ history = result.messages;
204
+ lastAssistantText = result.lastAssistantText;
205
+ (0, memoryCore_1.consolidateTurn)(userInput, lastAssistantText);
206
+ if ((0, contextCore_1.replyCacheEnabled)() && active && !result.hadToolCalls) {
207
+ (0, contextCore_1.setCachedReply)(sessionId, userInput, historyBeforeTurn, lastAssistantText, history);
208
+ }
209
+ syncSession(sessionMgr, lifecycle, history);
210
+ }
211
+ catch (e) {
212
+ config_1.logger.error(`Error: ${e}`);
213
+ const errMsg = String(e).slice(0, 500);
214
+ history.push({ role: 'assistant', content: `[Error: ${errMsg}]` });
215
+ lastAssistantText = `[Error: ${errMsg}]`;
216
+ syncSession(sessionMgr, lifecycle, history);
217
+ }
218
+ const turnMs = Date.now() - turnStart;
219
+ const sidTag = sessionId.slice(0, 8) || '-';
220
+ config_1.slog.debug(`run_turn end session=${sidTag} duration_ms=${turnMs} history_len=${history.length}`);
221
+ return { history, lastAssistantText };
222
+ }
223
+ // ---------------------------------------------------------------------------
224
+ // Agent class (library-style)
225
+ // ---------------------------------------------------------------------------
226
+ class Agent {
227
+ llm;
228
+ workdir;
229
+ constructor(llm, workdir) {
230
+ this.llm = llm;
231
+ this.workdir = workdir;
232
+ }
233
+ runTurn(options) {
234
+ return runTurn({ ...options, llm: this.llm });
235
+ }
236
+ }
237
+ exports.Agent = Agent;
238
+ // ---------------------------------------------------------------------------
239
+ // Internal helpers
240
+ // ---------------------------------------------------------------------------
241
+ function syncSession(sessionMgr, lifecycle, history) {
242
+ const active = sessionMgr.getActiveSession();
243
+ if (active) {
244
+ active.history = history;
245
+ active.context.conversation_summary = lifecycle.getConversationSummary();
246
+ sessionMgr.saveActive();
247
+ }
248
+ if ((0, contextCore_1.contextEnabled)() && history.length >= 20) {
249
+ // Fire and forget summary
250
+ (0, contextCore_1.summarizeRounds)(history.slice(0, -2)).then((summary) => {
251
+ if (summary)
252
+ lifecycle.setConversationSummary(summary);
253
+ });
254
+ }
255
+ }
256
+ // ---------------------------------------------------------------------------
257
+ // CLI main
258
+ // ---------------------------------------------------------------------------
259
+ async function main() {
260
+ (0, config_1.setupAgentLogging)();
261
+ const backend = (0, storage_1.getStorageBackend)();
262
+ const sessionMgr = new sessionCore_1.SessionManager({ store: backend.sessionStore });
263
+ (0, memoryCore_1.setMemoryStore)(backend.memoryStore);
264
+ skillsCore_1.SKILLS.setStore(backend.skillStore);
265
+ (0, toolsCore_1.setFileAccessCallback)((p) => sessionMgr.recordFileAccess(p));
266
+ console.log(`General-purpose Agent v4 (Skills + Memory + Context) - ${config_1.WORKDIR}`);
267
+ console.log(`Skills: ${skillsCore_1.SKILLS.listSkills().join(', ') || 'none'}`);
268
+ console.log(`Agent types: ${Object.keys(agentsCore_1.AGENT_TYPES).join(', ')}`);
269
+ console.log("Type 'exit' to quit.\n");
270
+ const rl = createReadlineInterface();
271
+ await chooseSession(sessionMgr, rl);
272
+ const active = sessionMgr.getActiveSession();
273
+ let history = active.history;
274
+ const lifecycle = new contextCore_1.LifecycleManager();
275
+ const savedSummary = active.context.conversation_summary;
276
+ if (savedSummary)
277
+ lifecycle.setConversationSummary(savedSummary);
278
+ const budget = (0, contextCore_1.getBudget)({ model: config_1.MODEL });
279
+ const loop = async () => {
280
+ while (true) {
281
+ let userInput;
282
+ try {
283
+ userInput = await ask(rl, 'You: ');
284
+ }
285
+ catch {
286
+ break;
287
+ }
288
+ if (!userInput || ['exit', 'quit', 'q'].includes(userInput.toLowerCase())) {
289
+ sessionMgr.saveActive();
290
+ break;
291
+ }
292
+ const result = await runTurn({
293
+ userInput,
294
+ history,
295
+ sessionMgr,
296
+ lifecycle,
297
+ budget,
298
+ });
299
+ history = result.history;
300
+ console.log();
301
+ }
302
+ rl.close();
303
+ };
304
+ await loop();
305
+ }
306
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * config.ts - Shared configuration for the agentic system.
3
+ */
4
+ import { OpenAIProvider } from './llmProtocol';
5
+ export declare const LOG_LEVEL: string;
6
+ /**
7
+ * Simple logger matching the Python agent logger behavior.
8
+ */
9
+ export declare const logger: {
10
+ level: string;
11
+ debug(...args: any[]): void;
12
+ info(...args: any[]): void;
13
+ warning(...args: any[]): void;
14
+ error(...args: any[]): void;
15
+ };
16
+ export declare const slog: {
17
+ debug(...args: any[]): void;
18
+ };
19
+ export declare function setupAgentLogging(): void;
20
+ export declare const WORKDIR: string;
21
+ export declare const SKILLS_DIR: string;
22
+ export declare const API_TIMEOUT: number;
23
+ export declare function streamEnabled(): boolean;
24
+ export declare const MODEL: string;
25
+ export declare const defaultLlmProvider: OpenAIProvider;
26
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,eAAO,MAAM,SAAS,EAAE,MAAoC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,MAAM;;mBAEA,GAAG,EAAE;kBAGN,GAAG,EAAE;qBAGF,GAAG,EAAE;mBAGP,GAAG,EAAE;CAGvB,CAAC;AAEF,eAAO,MAAM,IAAI;mBACE,GAAG,EAAE;CAMvB,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAGD,eAAO,MAAM,OAAO,QAAgB,CAAC;AACrC,eAAO,MAAM,UAAU,QAA+B,CAAC;AAGvD,eAAO,MAAM,WAAW,EAAE,MAEzB,CAAC;AAGF,wBAAgB,aAAa,IAAI,OAAO,CAIvC;AAGD,eAAO,MAAM,KAAK,EAAE,MAAyC,CAAC;AAG9D,eAAO,MAAM,kBAAkB,gBAK7B,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * config.ts - Shared configuration for the agentic system.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.defaultLlmProvider = exports.MODEL = exports.API_TIMEOUT = exports.SKILLS_DIR = exports.WORKDIR = exports.slog = exports.logger = exports.LOG_LEVEL = void 0;
40
+ exports.setupAgentLogging = setupAgentLogging;
41
+ exports.streamEnabled = streamEnabled;
42
+ const dotenv = __importStar(require("dotenv"));
43
+ const path = __importStar(require("path"));
44
+ const llmProtocol_1 = require("./llmProtocol");
45
+ dotenv.config({ override: true });
46
+ // Logging: AGENT_VERBOSE=1 or true => DEBUG, else INFO
47
+ const _verbose = ['1', 'true', 'yes'].includes((process.env.AGENT_VERBOSE ?? '').trim().toLowerCase());
48
+ exports.LOG_LEVEL = _verbose ? 'debug' : 'info';
49
+ /**
50
+ * Simple logger matching the Python agent logger behavior.
51
+ */
52
+ exports.logger = {
53
+ level: exports.LOG_LEVEL,
54
+ debug(...args) {
55
+ if (this.level === 'debug')
56
+ console.debug(...args);
57
+ },
58
+ info(...args) {
59
+ console.log(...args);
60
+ },
61
+ warning(...args) {
62
+ console.warn(...args);
63
+ },
64
+ error(...args) {
65
+ console.error(...args);
66
+ },
67
+ };
68
+ exports.slog = {
69
+ debug(...args) {
70
+ if (exports.LOG_LEVEL === 'debug') {
71
+ const ts = new Date().toISOString().slice(11, 19);
72
+ console.debug(`[${ts}]`, ...args);
73
+ }
74
+ },
75
+ };
76
+ function setupAgentLogging() {
77
+ // In Node.js the console is always available; this is a no-op placeholder
78
+ // matching the Python setup_agent_logging().
79
+ }
80
+ // Workspace and skills directory
81
+ exports.WORKDIR = process.cwd();
82
+ exports.SKILLS_DIR = path.join(exports.WORKDIR, 'skills');
83
+ // API timeout in seconds (per-request)
84
+ exports.API_TIMEOUT = parseFloat(process.env.AGENT_API_TIMEOUT ?? '120');
85
+ // Stream LLM output token-by-token
86
+ function streamEnabled() {
87
+ return ['1', 'true', 'yes'].includes((process.env.AGENT_STREAM ?? '').trim().toLowerCase());
88
+ }
89
+ // OpenAI model
90
+ exports.MODEL = process.env.MODEL_ID ?? 'gpt-4o';
91
+ // Default LLM provider
92
+ exports.defaultLlmProvider = new llmProtocol_1.OpenAIProvider({
93
+ apiKey: process.env.OPENAI_API_KEY ?? 'sk-placeholder',
94
+ model: exports.MODEL,
95
+ baseUrl: process.env.OPENAI_BASE_URL || undefined,
96
+ timeout: exports.API_TIMEOUT,
97
+ });
98
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CH,8CAGC;AAYD,sCAIC;AA3DD,+CAAiC;AACjC,2CAA6B;AAC7B,+CAA+C;AAE/C,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAElC,uDAAuD;AACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAC1C,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CACzD,CAAC;AACW,QAAA,SAAS,GAAW,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAE7D;;GAEG;AACU,QAAA,MAAM,GAAG;IAClB,KAAK,EAAE,iBAAS;IAChB,KAAK,CAAC,GAAG,IAAW;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,GAAG,IAAW;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,GAAG,IAAW;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,GAAG,IAAW;QAChB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3B,CAAC;CACJ,CAAC;AAEW,QAAA,IAAI,GAAG;IAChB,KAAK,CAAC,GAAG,IAAW;QAChB,IAAI,iBAAS,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,SAAgB,iBAAiB;IAC7B,0EAA0E;IAC1E,6CAA6C;AACjD,CAAC;AAED,iCAAiC;AACpB,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACxB,QAAA,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAO,EAAE,QAAQ,CAAC,CAAC;AAEvD,uCAAuC;AAC1B,QAAA,WAAW,GAAW,UAAU,CACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,KAAK,CACzC,CAAC;AAEF,mCAAmC;AACnC,SAAgB,aAAa;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAChC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CACxD,CAAC;AACN,CAAC;AAED,eAAe;AACF,QAAA,KAAK,GAAW,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC;AAE9D,uBAAuB;AACV,QAAA,kBAAkB,GAAG,IAAI,4BAAc,CAAC;IACjD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,gBAAgB;IACtD,KAAK,EAAE,aAAK;IACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS;IACjD,OAAO,EAAE,mBAAW;CACvB,CAAC,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * contextCore.ts - Context management pipeline.
3
+ *
4
+ * Dynamic context window, token usage stats, env-based config,
5
+ * source registry, lifecycle manager, selector, compressor, assembler,
6
+ * injection defense, reply cache.
7
+ */
8
+ export declare const FEATURES: Record<string, string>;
9
+ export declare function estimateTokens(text: string): number;
10
+ export declare function estimateMessagesTokens(messages: Record<string, any>[]): number;
11
+ export declare const DEFAULT_MAX_TOKENS = 200000;
12
+ export declare const DEFAULT_OUTPUT_TOKENS = 20000;
13
+ export declare const DEFAULT_MAX_OUTPUT_TOKENS = 32000;
14
+ export declare const MAX_OUTPUT_TOKENS_CAP = 64000;
15
+ export declare const CONTEXT_1M_TOKENS = 1000000;
16
+ export declare const SYSTEM_RESERVE_TOKENS = 1000;
17
+ export declare const OUTPUT_RESERVE_RATIO = 0.1;
18
+ export declare const RAG_RATIO = 0.4;
19
+ export declare const HISTORY_RATIO = 0.5;
20
+ export declare function getContextWindowSize(model?: string, enabledFeatures?: string[]): number;
21
+ export declare function getMaxOutputTokens(model?: string): number;
22
+ export declare function computeUsageStats(usage: Record<string, any> | null | undefined, maxTokens: number): {
23
+ used: number | null;
24
+ remaining: number | null;
25
+ };
26
+ export declare const BASH_MAX_OUTPUT_LENGTH_DEFAULT = 30000;
27
+ export declare const BASH_MAX_OUTPUT_LENGTH_MAX = 150000;
28
+ export declare const TASK_MAX_OUTPUT_LENGTH_DEFAULT = 30000;
29
+ export declare const TASK_MAX_OUTPUT_LENGTH_MAX = 150000;
30
+ export declare function getBashMaxOutputLength(): number;
31
+ export declare function getTaskMaxOutputLength(): number;
32
+ export declare function getAgentMaxOutputTokens(): number;
33
+ export declare function getBudget(options?: {
34
+ total?: number;
35
+ model?: string;
36
+ enabledFeatures?: string[];
37
+ }): Record<string, number>;
38
+ export declare const MESSAGE_PRIORITIES: Record<string, number>;
39
+ export declare class TokenBudget {
40
+ model?: string;
41
+ enabledFeatures: string[];
42
+ maxTokens: number;
43
+ usedTokens: number;
44
+ reservedTokens: number;
45
+ constructor(model?: string, enabledFeatures?: string[]);
46
+ calculateUsage(usage: Record<string, any> | null): Record<string, any>;
47
+ get remainingTokens(): number;
48
+ }
49
+ export declare function prioritizeMessages(messages: Record<string, any>[], availableTokens: number, defaultPriority?: number): Record<string, any>[];
50
+ export declare class SourceRegistry {
51
+ private _sources;
52
+ register(name: string, content: any, meta?: Record<string, any>): void;
53
+ get(name: string): {
54
+ content: any;
55
+ meta: Record<string, any>;
56
+ tokens: number;
57
+ } | undefined;
58
+ estimateTokensFor(name: string): number;
59
+ totalTokens(): number;
60
+ }
61
+ export declare class LifecycleManager {
62
+ private _sessionId;
63
+ private _conversationSummary;
64
+ constructor();
65
+ get sessionId(): string;
66
+ setConversationSummary(summary: string): void;
67
+ getConversationSummary(): string;
68
+ detectTopicShift(userInput: string, recentHistory: Record<string, any>[], overlapThreshold?: number): boolean;
69
+ resetSession(): string;
70
+ }
71
+ export declare function selectHistory(history: Record<string, any>[], userInput: string, maxTokens: number, maxTurns?: number): Record<string, any>[];
72
+ export declare const OBSERVATION_MAX_CHARS = 3500;
73
+ export declare function foldObservation(raw: string, maxChars?: number): string;
74
+ export declare function summarizeRounds(rounds: Record<string, any>[]): Promise<string>;
75
+ export declare const INJECTION_PATTERNS: RegExp[];
76
+ export declare function sanitizeUserInput(text: string): {
77
+ text: string;
78
+ wasModified: boolean;
79
+ };
80
+ export declare function assembleSystem(options: {
81
+ baseSystem: string;
82
+ ragLines?: string[];
83
+ conversationSummary?: string;
84
+ processingInstruction?: string;
85
+ budgetRag?: number;
86
+ projectKnowledge?: string;
87
+ preferencesSummary?: string;
88
+ recentFilesSummary?: string;
89
+ }): string;
90
+ export declare function getCachedReply(sessionId: string, userInput: string, history: Record<string, any>[]): {
91
+ text: string;
92
+ messages: any;
93
+ } | undefined;
94
+ export declare function setCachedReply(sessionId: string, userInput: string, history: Record<string, any>[], lastAssistantText: string, messages: Record<string, any>[]): void;
95
+ export declare function contextEnabled(): boolean;
96
+ export declare function replyCacheEnabled(): boolean;
97
+ //# sourceMappingURL=contextCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextCore.d.ts","sourceRoot":"","sources":["../src/contextCore.ts"],"names":[],"mappings":"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"}