psadk 1.4.1 → 1.4.3
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/build/main/index.d.ts +1 -0
- package/build/main/index.js +2 -1
- package/build/main/lib/PSAI.d.ts +11 -2
- package/build/main/lib/PSAI.js +145 -28
- package/build/main/lib/agent-core/agent-loop.d.ts +2 -2
- package/build/main/lib/agent-core/agent-loop.js +69 -65
- package/build/main/lib/agent-core/agent.d.ts +8 -8
- package/build/main/lib/agent-core/agent.js +61 -44
- package/build/main/lib/agent-core/harness/agent-harness.d.ts +4 -4
- package/build/main/lib/agent-core/harness/agent-harness.js +156 -112
- package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +5 -5
- package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +31 -28
- package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +5 -5
- package/build/main/lib/agent-core/harness/compaction/compaction.js +99 -78
- package/build/main/lib/agent-core/harness/compaction/utils.d.ts +2 -2
- package/build/main/lib/agent-core/harness/compaction/utils.js +30 -30
- package/build/main/lib/agent-core/harness/env/nodejs.d.ts +1 -1
- package/build/main/lib/agent-core/harness/env/nodejs.js +80 -75
- package/build/main/lib/agent-core/harness/execution-env.d.ts +3 -3
- package/build/main/lib/agent-core/harness/execution-env.js +3 -3
- package/build/main/lib/agent-core/harness/messages.d.ts +7 -7
- package/build/main/lib/agent-core/harness/messages.js +36 -22
- package/build/main/lib/agent-core/harness/prompt-templates.d.ts +2 -2
- package/build/main/lib/agent-core/harness/prompt-templates.js +31 -27
- package/build/main/lib/agent-core/harness/session/repo/jsonl.d.ts +2 -2
- package/build/main/lib/agent-core/harness/session/repo/jsonl.js +17 -11
- package/build/main/lib/agent-core/harness/session/repo/memory.d.ts +2 -2
- package/build/main/lib/agent-core/harness/session/repo/memory.js +8 -4
- package/build/main/lib/agent-core/harness/session/repo/shared.d.ts +3 -3
- package/build/main/lib/agent-core/harness/session/repo/shared.js +5 -5
- package/build/main/lib/agent-core/harness/session/session.d.ts +3 -3
- package/build/main/lib/agent-core/harness/session/session.js +26 -23
- package/build/main/lib/agent-core/harness/session/storage/jsonl.d.ts +2 -2
- package/build/main/lib/agent-core/harness/session/storage/jsonl.js +11 -11
- package/build/main/lib/agent-core/harness/session/storage/memory.d.ts +2 -2
- package/build/main/lib/agent-core/harness/session/storage/memory.js +10 -6
- package/build/main/lib/agent-core/harness/skills.d.ts +2 -2
- package/build/main/lib/agent-core/harness/skills.js +55 -48
- package/build/main/lib/agent-core/harness/system-prompt.d.ts +1 -1
- package/build/main/lib/agent-core/harness/system-prompt.js +16 -16
- package/build/main/lib/agent-core/harness/types.d.ts +43 -43
- package/build/main/lib/agent-core/harness/types.js +2 -2
- package/build/main/lib/agent-core/harness/utils/shell-output.d.ts +2 -2
- package/build/main/lib/agent-core/harness/utils/shell-output.js +18 -14
- package/build/main/lib/agent-core/harness/utils/truncate.d.ts +1 -1
- package/build/main/lib/agent-core/harness/utils/truncate.js +27 -24
- package/build/main/lib/agent-core/index.d.ts +19 -19
- package/build/main/lib/agent-core/index.js +20 -20
- package/build/main/lib/agent-core/proxy.d.ts +18 -18
- package/build/main/lib/agent-core/proxy.js +77 -61
- package/build/main/lib/agent-core/types.d.ts +16 -16
- package/build/main/lib/tools/PSRetrievalTool.d.ts +127 -0
- package/build/main/lib/tools/PSRetrievalTool.js +172 -0
- package/build/main/lib/utils/helpers.d.ts +34 -0
- package/build/main/lib/utils/helpers.js +280 -1
- package/build/module/index.d.ts +1 -0
- package/build/module/index.js +2 -1
- package/build/module/lib/PSAI.d.ts +11 -2
- package/build/module/lib/PSAI.js +145 -28
- package/build/module/lib/agent-core/agent-loop.d.ts +2 -2
- package/build/module/lib/agent-core/agent-loop.js +69 -65
- package/build/module/lib/agent-core/agent.d.ts +8 -8
- package/build/module/lib/agent-core/agent.js +61 -44
- package/build/module/lib/agent-core/harness/agent-harness.d.ts +4 -4
- package/build/module/lib/agent-core/harness/agent-harness.js +156 -112
- package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +5 -5
- package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +31 -28
- package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +5 -5
- package/build/module/lib/agent-core/harness/compaction/compaction.js +99 -78
- package/build/module/lib/agent-core/harness/compaction/utils.d.ts +2 -2
- package/build/module/lib/agent-core/harness/compaction/utils.js +30 -30
- package/build/module/lib/agent-core/harness/env/nodejs.d.ts +1 -1
- package/build/module/lib/agent-core/harness/env/nodejs.js +80 -75
- package/build/module/lib/agent-core/harness/execution-env.d.ts +3 -3
- package/build/module/lib/agent-core/harness/execution-env.js +3 -3
- package/build/module/lib/agent-core/harness/messages.d.ts +7 -7
- package/build/module/lib/agent-core/harness/messages.js +36 -22
- package/build/module/lib/agent-core/harness/prompt-templates.d.ts +2 -2
- package/build/module/lib/agent-core/harness/prompt-templates.js +31 -27
- package/build/module/lib/agent-core/harness/session/repo/jsonl.d.ts +2 -2
- package/build/module/lib/agent-core/harness/session/repo/jsonl.js +17 -11
- package/build/module/lib/agent-core/harness/session/repo/memory.d.ts +2 -2
- package/build/module/lib/agent-core/harness/session/repo/memory.js +8 -4
- package/build/module/lib/agent-core/harness/session/repo/shared.d.ts +3 -3
- package/build/module/lib/agent-core/harness/session/repo/shared.js +5 -5
- package/build/module/lib/agent-core/harness/session/session.d.ts +3 -3
- package/build/module/lib/agent-core/harness/session/session.js +26 -23
- package/build/module/lib/agent-core/harness/session/storage/jsonl.d.ts +2 -2
- package/build/module/lib/agent-core/harness/session/storage/jsonl.js +11 -11
- package/build/module/lib/agent-core/harness/session/storage/memory.d.ts +2 -2
- package/build/module/lib/agent-core/harness/session/storage/memory.js +10 -6
- package/build/module/lib/agent-core/harness/skills.d.ts +2 -2
- package/build/module/lib/agent-core/harness/skills.js +55 -48
- package/build/module/lib/agent-core/harness/system-prompt.d.ts +1 -1
- package/build/module/lib/agent-core/harness/system-prompt.js +16 -16
- package/build/module/lib/agent-core/harness/types.d.ts +43 -43
- package/build/module/lib/agent-core/harness/types.js +2 -2
- package/build/module/lib/agent-core/harness/utils/shell-output.d.ts +2 -2
- package/build/module/lib/agent-core/harness/utils/shell-output.js +18 -14
- package/build/module/lib/agent-core/harness/utils/truncate.d.ts +1 -1
- package/build/module/lib/agent-core/harness/utils/truncate.js +27 -24
- package/build/module/lib/agent-core/index.d.ts +19 -19
- package/build/module/lib/agent-core/index.js +20 -20
- package/build/module/lib/agent-core/proxy.d.ts +18 -18
- package/build/module/lib/agent-core/proxy.js +77 -61
- package/build/module/lib/agent-core/types.d.ts +16 -16
- package/build/module/lib/tools/PSRetrievalTool.d.ts +127 -0
- package/build/module/lib/tools/PSRetrievalTool.js +172 -0
- package/build/module/lib/utils/helpers.d.ts +34 -0
- package/build/module/lib/utils/helpers.js +280 -1
- package/package.json +1 -1
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* When navigating to a different point in the session tree, this generates
|
|
5
5
|
* a summary of the branch being left so context isn't lost.
|
|
6
6
|
*/
|
|
7
|
-
import type { Model } from
|
|
8
|
-
import type { AgentMessage } from
|
|
9
|
-
import type { Session, SessionTreeEntry } from
|
|
10
|
-
import { type FileOperations } from
|
|
7
|
+
import type { Model } from '@earendil-works/pi-ai';
|
|
8
|
+
import type { AgentMessage } from '../../types.js';
|
|
9
|
+
import type { Session, SessionTreeEntry } from '../types.js';
|
|
10
|
+
import { type FileOperations } from './utils.js';
|
|
11
11
|
export interface BranchSummaryResult {
|
|
12
12
|
summary?: string;
|
|
13
13
|
readFiles?: string[];
|
|
@@ -20,7 +20,7 @@ export interface BranchSummaryDetails {
|
|
|
20
20
|
readFiles: string[];
|
|
21
21
|
modifiedFiles: string[];
|
|
22
22
|
}
|
|
23
|
-
export type { FileOperations } from
|
|
23
|
+
export type { FileOperations } from './utils.js';
|
|
24
24
|
export interface BranchPreparation {
|
|
25
25
|
/** Messages extracted for summarization, in chronological order */
|
|
26
26
|
messages: AgentMessage[];
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* When navigating to a different point in the session tree, this generates
|
|
5
5
|
* a summary of the branch being left so context isn't lost.
|
|
6
6
|
*/
|
|
7
|
-
import { completeSimple } from
|
|
8
|
-
import { convertToLlm, createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, } from
|
|
9
|
-
import { estimateTokens } from
|
|
10
|
-
import { computeFileLists, createFileOps, extractFileOpsFromMessage, formatFileOperations,
|
|
7
|
+
import { completeSimple } from '@earendil-works/pi-ai';
|
|
8
|
+
import { convertToLlm, createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, } from '../messages.js';
|
|
9
|
+
import { estimateTokens } from './compaction.js';
|
|
10
|
+
import { computeFileLists, createFileOps, extractFileOpsFromMessage, formatFileOperations, serializeConversation, SUMMARIZATION_SYSTEM_PROMPT, } from './utils.js';
|
|
11
11
|
// ============================================================================
|
|
12
12
|
// Entry Collection
|
|
13
13
|
// ============================================================================
|
|
@@ -62,23 +62,23 @@ export async function collectEntriesForBranchSummary(session, oldLeafId, targetI
|
|
|
62
62
|
*/
|
|
63
63
|
function getMessageFromEntry(entry) {
|
|
64
64
|
switch (entry.type) {
|
|
65
|
-
case
|
|
65
|
+
case 'message':
|
|
66
66
|
// Skip tool results - context is in assistant's tool call
|
|
67
|
-
if (entry.message.role ===
|
|
67
|
+
if (entry.message.role === 'toolResult')
|
|
68
68
|
return undefined;
|
|
69
69
|
return entry.message;
|
|
70
|
-
case
|
|
70
|
+
case 'custom_message':
|
|
71
71
|
return createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp);
|
|
72
|
-
case
|
|
72
|
+
case 'branch_summary':
|
|
73
73
|
return createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);
|
|
74
|
-
case
|
|
74
|
+
case 'compaction':
|
|
75
75
|
return createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp);
|
|
76
76
|
// These don't contribute to conversation content
|
|
77
|
-
case
|
|
78
|
-
case
|
|
79
|
-
case
|
|
80
|
-
case
|
|
81
|
-
case
|
|
77
|
+
case 'thinking_level_change':
|
|
78
|
+
case 'model_change':
|
|
79
|
+
case 'custom':
|
|
80
|
+
case 'label':
|
|
81
|
+
case 'session_info':
|
|
82
82
|
return undefined;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -103,7 +103,7 @@ export function prepareBranchEntries(entries, tokenBudget = 0) {
|
|
|
103
103
|
// This ensures we capture cumulative file tracking from nested branch summaries
|
|
104
104
|
// Only extract from pi-generated summaries (fromHook !== true), not extension-generated ones
|
|
105
105
|
for (const entry of entries) {
|
|
106
|
-
if (entry.type ===
|
|
106
|
+
if (entry.type === 'branch_summary' && !entry.fromHook && entry.details) {
|
|
107
107
|
const details = entry.details;
|
|
108
108
|
if (Array.isArray(details.readFiles)) {
|
|
109
109
|
for (const f of details.readFiles)
|
|
@@ -129,7 +129,7 @@ export function prepareBranchEntries(entries, tokenBudget = 0) {
|
|
|
129
129
|
// Check budget before adding
|
|
130
130
|
if (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {
|
|
131
131
|
// If this is a summary entry, try to fit it anyway as it's important context
|
|
132
|
-
if (entry.type ===
|
|
132
|
+
if (entry.type === 'compaction' || entry.type === 'branch_summary') {
|
|
133
133
|
if (totalTokens < tokenBudget * 0.9) {
|
|
134
134
|
messages.unshift(message);
|
|
135
135
|
totalTokens += tokens;
|
|
@@ -185,13 +185,13 @@ Keep each section concise. Preserve exact file paths, function names, and error
|
|
|
185
185
|
* @param options - Generation options
|
|
186
186
|
*/
|
|
187
187
|
export async function generateBranchSummary(entries, options) {
|
|
188
|
-
const { model, apiKey, headers, signal, customInstructions, replaceInstructions, reserveTokens = 16384 } = options;
|
|
188
|
+
const { model, apiKey, headers, signal, customInstructions, replaceInstructions, reserveTokens = 16384, } = options;
|
|
189
189
|
// Token budget = context window minus reserved space for prompt + response
|
|
190
190
|
const contextWindow = model.contextWindow || 128000;
|
|
191
191
|
const tokenBudget = contextWindow - reserveTokens;
|
|
192
192
|
const { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);
|
|
193
193
|
if (messages.length === 0) {
|
|
194
|
-
return { summary:
|
|
194
|
+
return { summary: 'No content to summarize' };
|
|
195
195
|
}
|
|
196
196
|
// Transform to LLM-compatible messages, then serialize to text
|
|
197
197
|
// Serialization prevents the model from treating it as a conversation to continue
|
|
@@ -211,33 +211,36 @@ export async function generateBranchSummary(entries, options) {
|
|
|
211
211
|
const promptText = `<conversation>\n${conversationText}\n</conversation>\n\n${instructions}`;
|
|
212
212
|
const summarizationMessages = [
|
|
213
213
|
{
|
|
214
|
-
role:
|
|
215
|
-
content: [{ type:
|
|
214
|
+
role: 'user',
|
|
215
|
+
content: [{ type: 'text', text: promptText }],
|
|
216
216
|
timestamp: Date.now(),
|
|
217
217
|
},
|
|
218
218
|
];
|
|
219
219
|
// Call LLM for summarization
|
|
220
|
-
const response = await completeSimple(model, {
|
|
220
|
+
const response = await completeSimple(model, {
|
|
221
|
+
systemPrompt: SUMMARIZATION_SYSTEM_PROMPT,
|
|
222
|
+
messages: summarizationMessages,
|
|
223
|
+
}, { apiKey, headers, signal, maxTokens: 2048 });
|
|
221
224
|
// Check if aborted or errored
|
|
222
|
-
if (response.stopReason ===
|
|
225
|
+
if (response.stopReason === 'aborted') {
|
|
223
226
|
return { aborted: true };
|
|
224
227
|
}
|
|
225
|
-
if (response.stopReason ===
|
|
226
|
-
return { error: response.errorMessage ||
|
|
228
|
+
if (response.stopReason === 'error') {
|
|
229
|
+
return { error: response.errorMessage || 'Summarization failed' };
|
|
227
230
|
}
|
|
228
231
|
let summary = response.content
|
|
229
|
-
.filter((c) => c.type ===
|
|
232
|
+
.filter((c) => c.type === 'text')
|
|
230
233
|
.map((c) => c.text)
|
|
231
|
-
.join(
|
|
234
|
+
.join('\n');
|
|
232
235
|
// Prepend preamble to provide context about the branch summary
|
|
233
236
|
summary = BRANCH_SUMMARY_PREAMBLE + summary;
|
|
234
237
|
// Compute file lists and append to summary
|
|
235
238
|
const { readFiles, modifiedFiles } = computeFileLists(fileOps);
|
|
236
239
|
summary += formatFileOperations(readFiles, modifiedFiles);
|
|
237
240
|
return {
|
|
238
|
-
summary: summary ||
|
|
241
|
+
summary: summary || 'No summary generated',
|
|
239
242
|
readFiles,
|
|
240
243
|
modifiedFiles,
|
|
241
244
|
};
|
|
242
245
|
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLXN1bW1hcml6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvaGFybmVzcy9jb21wYWN0aW9uL2JyYW5jaC1zdW1tYXJpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBR0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3ZELE9BQU8sRUFDTCxZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLDhCQUE4QixFQUM5QixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IseUJBQXlCLEVBRXpCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsMkJBQTJCLEdBQzVCLE1BQU0sWUFBWSxDQUFDO0FBdURwQiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsOEJBQThCLENBQ2xELE9BQWdCLEVBQ2hCLFNBQXdCLEVBQ3hCLFFBQWdCO0lBRWhCLDJDQUEyQztJQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUNyQixDQUFDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUN0RCxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsTUFB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
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Pure functions for compaction logic. The session manager handles I/O,
|
|
5
5
|
* and after compaction the session is reloaded.
|
|
6
6
|
*/
|
|
7
|
-
import type { Model, Usage } from
|
|
8
|
-
import type { AgentMessage, ThinkingLevel } from
|
|
9
|
-
import type { SessionTreeEntry } from
|
|
10
|
-
import { type FileOperations } from
|
|
7
|
+
import type { Model, Usage } from '@earendil-works/pi-ai';
|
|
8
|
+
import type { AgentMessage, ThinkingLevel } from '../../types.js';
|
|
9
|
+
import type { SessionTreeEntry } from '../types.js';
|
|
10
|
+
import { type FileOperations } from './utils.js';
|
|
11
11
|
/** Details stored in CompactionEntry.details for file tracking */
|
|
12
12
|
export interface CompactionDetails {
|
|
13
13
|
readFiles: string[];
|
|
@@ -117,5 +117,5 @@ export declare function prepareCompaction(pathEntries: SessionTreeEntry[], setti
|
|
|
117
117
|
* @param preparation - Pre-calculated preparation from prepareCompaction()
|
|
118
118
|
* @param customInstructions - Optional custom focus for the summary
|
|
119
119
|
*/
|
|
120
|
-
export { serializeConversation } from
|
|
120
|
+
export { serializeConversation } from './utils.js';
|
|
121
121
|
export declare function compact(preparation: CompactionPreparation, model: Model<any>, apiKey: string, headers?: Record<string, string>, customInstructions?: string, signal?: AbortSignal, thinkingLevel?: ThinkingLevel): Promise<CompactionResult>;
|