@oyasmi/pipiclaw 0.5.2 → 0.5.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/README.md +308 -209
- package/dist/agent/channel-runner.d.ts +2 -1
- package/dist/agent/channel-runner.js +15 -8
- package/dist/agent/index.d.ts +0 -1
- package/dist/agent/index.js +0 -1
- package/dist/agent/progress-formatter.d.ts +0 -1
- package/dist/agent/progress-formatter.js +0 -1
- package/dist/agent/run-queue.d.ts +0 -1
- package/dist/agent/run-queue.js +0 -1
- package/dist/agent/runner-factory.d.ts +0 -1
- package/dist/agent/runner-factory.js +0 -1
- package/dist/agent/session-events.d.ts +0 -1
- package/dist/agent/session-events.js +0 -1
- package/dist/agent/session-resource-gate.d.ts +10 -0
- package/dist/agent/session-resource-gate.js +44 -0
- package/dist/agent/type-guards.d.ts +0 -1
- package/dist/agent/type-guards.js +0 -1
- package/dist/agent/types.d.ts +0 -1
- package/dist/agent/types.js +0 -1
- package/dist/agent.d.ts +0 -1
- package/dist/agent.js +0 -1
- package/dist/command-extension.d.ts +0 -1
- package/dist/command-extension.js +0 -1
- package/dist/commands.d.ts +0 -1
- package/dist/commands.js +0 -1
- package/dist/config-loader.d.ts +0 -1
- package/dist/config-loader.js +1 -2
- package/dist/context.d.ts +0 -1
- package/dist/context.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/log.d.ts +0 -1
- package/dist/log.js +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -1
- package/dist/memory/bootstrap.d.ts +0 -1
- package/dist/memory/bootstrap.js +0 -1
- package/dist/memory/candidates.d.ts +0 -1
- package/dist/memory/candidates.js +0 -1
- package/dist/memory/chinese-words.d.ts +0 -1
- package/dist/memory/chinese-words.js +64 -1
- package/dist/memory/consolidation.d.ts +0 -1
- package/dist/memory/consolidation.js +1 -2
- package/dist/memory/files.d.ts +0 -1
- package/dist/memory/files.js +0 -1
- package/dist/memory/lifecycle.d.ts +0 -1
- package/dist/memory/lifecycle.js +0 -1
- package/dist/memory/recall.d.ts +1 -1
- package/dist/memory/recall.js +76 -10
- package/dist/memory/session.d.ts +0 -1
- package/dist/memory/session.js +1 -2
- package/dist/model-utils.d.ts +0 -1
- package/dist/model-utils.js +0 -1
- package/dist/paths.d.ts +0 -1
- package/dist/paths.js +0 -1
- package/dist/prompt-builder.d.ts +0 -1
- package/dist/prompt-builder.js +0 -1
- package/dist/runtime/bootstrap.d.ts +0 -1
- package/dist/runtime/bootstrap.js +0 -1
- package/dist/runtime/delivery.d.ts +0 -1
- package/dist/runtime/delivery.js +0 -1
- package/dist/runtime/dingtalk.d.ts +0 -1
- package/dist/runtime/dingtalk.js +0 -1
- package/dist/runtime/events.d.ts +0 -1
- package/dist/runtime/events.js +0 -1
- package/dist/runtime/store.d.ts +0 -1
- package/dist/runtime/store.js +0 -1
- package/dist/sandbox.d.ts +0 -1
- package/dist/sandbox.js +1 -2
- package/dist/{llm-json.d.ts → shared/llm-json.d.ts} +0 -1
- package/dist/{llm-json.js → shared/llm-json.js} +0 -1
- package/dist/shared/markdown-sections.d.ts +0 -1
- package/dist/shared/markdown-sections.js +0 -1
- package/dist/{shell-escape.d.ts → shared/shell-escape.d.ts} +0 -1
- package/dist/{shell-escape.js → shared/shell-escape.js} +0 -1
- package/dist/shared/text-utils.d.ts +0 -1
- package/dist/shared/text-utils.js +0 -1
- package/dist/shared/type-guards.d.ts +0 -1
- package/dist/shared/type-guards.js +0 -1
- package/dist/shared/types.d.ts +0 -1
- package/dist/shared/types.js +0 -1
- package/dist/sidecar-worker.d.ts +0 -1
- package/dist/sidecar-worker.js +0 -1
- package/dist/subagents/discovery.d.ts +0 -1
- package/dist/subagents/discovery.js +0 -1
- package/dist/subagents/tool.d.ts +0 -1
- package/dist/subagents/tool.js +0 -1
- package/dist/tools/attach.d.ts +0 -1
- package/dist/tools/attach.js +0 -1
- package/dist/tools/bash.d.ts +0 -1
- package/dist/tools/bash.js +0 -1
- package/dist/tools/edit.d.ts +0 -1
- package/dist/tools/edit.js +1 -2
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.js +0 -1
- package/dist/tools/read.d.ts +0 -1
- package/dist/tools/read.js +1 -2
- package/dist/tools/truncate.d.ts +0 -1
- package/dist/tools/truncate.js +0 -1
- package/dist/tools/write-content.d.ts +0 -1
- package/dist/tools/write-content.js +1 -2
- package/dist/tools/write.d.ts +0 -1
- package/dist/tools/write.js +0 -1
- package/package.json +9 -3
- package/CHANGELOG.md +0 -47
- package/dist/agent/channel-runner.d.ts.map +0 -1
- package/dist/agent/channel-runner.js.map +0 -1
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/progress-formatter.d.ts.map +0 -1
- package/dist/agent/progress-formatter.js.map +0 -1
- package/dist/agent/run-queue.d.ts.map +0 -1
- package/dist/agent/run-queue.js.map +0 -1
- package/dist/agent/runner-factory.d.ts.map +0 -1
- package/dist/agent/runner-factory.js.map +0 -1
- package/dist/agent/session-events.d.ts.map +0 -1
- package/dist/agent/session-events.js.map +0 -1
- package/dist/agent/type-guards.d.ts.map +0 -1
- package/dist/agent/type-guards.js.map +0 -1
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js.map +0 -1
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js.map +0 -1
- package/dist/command-extension.d.ts.map +0 -1
- package/dist/command-extension.js.map +0 -1
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js.map +0 -1
- package/dist/config-loader.d.ts.map +0 -1
- package/dist/config-loader.js.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/llm-json.d.ts.map +0 -1
- package/dist/llm-json.js.map +0 -1
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/memory/bootstrap.d.ts.map +0 -1
- package/dist/memory/bootstrap.js.map +0 -1
- package/dist/memory/candidates.d.ts.map +0 -1
- package/dist/memory/candidates.js.map +0 -1
- package/dist/memory/chinese-words.d.ts.map +0 -1
- package/dist/memory/chinese-words.js.map +0 -1
- package/dist/memory/consolidation.d.ts.map +0 -1
- package/dist/memory/consolidation.js.map +0 -1
- package/dist/memory/files.d.ts.map +0 -1
- package/dist/memory/files.js.map +0 -1
- package/dist/memory/lifecycle.d.ts.map +0 -1
- package/dist/memory/lifecycle.js.map +0 -1
- package/dist/memory/recall.d.ts.map +0 -1
- package/dist/memory/recall.js.map +0 -1
- package/dist/memory/session.d.ts.map +0 -1
- package/dist/memory/session.js.map +0 -1
- package/dist/model-utils.d.ts.map +0 -1
- package/dist/model-utils.js.map +0 -1
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js.map +0 -1
- package/dist/prompt-builder.d.ts.map +0 -1
- package/dist/prompt-builder.js.map +0 -1
- package/dist/runtime/bootstrap.d.ts.map +0 -1
- package/dist/runtime/bootstrap.js.map +0 -1
- package/dist/runtime/delivery.d.ts.map +0 -1
- package/dist/runtime/delivery.js.map +0 -1
- package/dist/runtime/dingtalk.d.ts.map +0 -1
- package/dist/runtime/dingtalk.js.map +0 -1
- package/dist/runtime/events.d.ts.map +0 -1
- package/dist/runtime/events.js.map +0 -1
- package/dist/runtime/store.d.ts.map +0 -1
- package/dist/runtime/store.js.map +0 -1
- package/dist/sandbox.d.ts.map +0 -1
- package/dist/sandbox.js.map +0 -1
- package/dist/shared/markdown-sections.d.ts.map +0 -1
- package/dist/shared/markdown-sections.js.map +0 -1
- package/dist/shared/text-utils.d.ts.map +0 -1
- package/dist/shared/text-utils.js.map +0 -1
- package/dist/shared/type-guards.d.ts.map +0 -1
- package/dist/shared/type-guards.js.map +0 -1
- package/dist/shared/types.d.ts.map +0 -1
- package/dist/shared/types.js.map +0 -1
- package/dist/shell-escape.d.ts.map +0 -1
- package/dist/shell-escape.js.map +0 -1
- package/dist/sidecar-worker.d.ts.map +0 -1
- package/dist/sidecar-worker.js.map +0 -1
- package/dist/subagents/discovery.d.ts.map +0 -1
- package/dist/subagents/discovery.js.map +0 -1
- package/dist/subagents/tool.d.ts.map +0 -1
- package/dist/subagents/tool.js.map +0 -1
- package/dist/tools/attach.d.ts.map +0 -1
- package/dist/tools/attach.js.map +0 -1
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/edit.d.ts.map +0 -1
- package/dist/tools/edit.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/read.d.ts.map +0 -1
- package/dist/tools/read.js.map +0 -1
- package/dist/tools/truncate.d.ts.map +0 -1
- package/dist/tools/truncate.js.map +0 -1
- package/dist/tools/write-content.d.ts.map +0 -1
- package/dist/tools/write-content.js.map +0 -1
- package/dist/tools/write.d.ts.map +0 -1
- package/dist/tools/write.js.map +0 -1
- package/docs/memory-audit.md +0 -330
- package/docs/memory-optimization-round2.md +0 -319
- package/docs/specs/001-implement-memory/memory-rfc.md +0 -297
- package/docs/specs/002-subagent/pi-subagent-analyse.txt +0 -190
- package/docs/specs/002-subagent/pi-subagent-design.txt +0 -266
- package/docs/specs/002-subagent/pi-subagent-phase1-plan.txt +0 -529
- package/docs/specs/003-improve-memory/design.md +0 -537
- package/docs/specs/003-improve-memory/interfaces-and-tests.md +0 -473
- package/docs/specs/003-improve-memory/spec.md +0 -357
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-events.js","sourceRoot":"","sources":["../../src/agent/session-events.ts"],"names":[],"mappings":"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","sourcesContent":["import * as log from \"../log.js\";\nimport type { MemoryLifecycle } from \"../memory/lifecycle.js\";\nimport type { DingTalkContext } from \"../runtime/dingtalk.js\";\nimport type { ChannelStore } from \"../runtime/store.js\";\nimport { extractLabelFromArgs, truncate } from \"../shared/text-utils.js\";\nimport { isRecord } from \"../shared/type-guards.js\";\nimport type { UsageTotals } from \"../shared/types.js\";\nimport type { SubAgentToolDetails } from \"../subagents/tool.js\";\nimport { extractToolResultText, formatProgressEntry } from \"./progress-formatter.js\";\nimport {\n\textractCustomCommandResultText,\n\tisAssistantEventMessage,\n\tisAutoCompactionEndEvent,\n\tisAutoCompactionStartEvent,\n\tisAutoRetryStartEvent,\n\tisMessageEndEvent,\n\tisMessageStartEvent,\n\tisSubAgentToolDetails,\n\tisTextPart,\n\tisThinkingPart,\n\tisToolExecutionEndEvent,\n\tisToolExecutionStartEvent,\n\tisToolExecutionUpdateEvent,\n\tisTurnEndEvent,\n} from \"./type-guards.js\";\nimport type { PendingTool, RunLogContext, RunQueue, RunState } from \"./types.js\";\n\nexport interface SessionEventHandlerContext {\n\tctx: DingTalkContext;\n\tlogCtx: RunLogContext;\n\tqueue: RunQueue;\n\tpendingTools: Map<string, PendingTool>;\n\tstore: ChannelStore | null;\n\trunState: RunState;\n\tmemoryLifecycle: MemoryLifecycle;\n}\n\nfunction mergeSubAgentUsage(totalUsage: UsageTotals, details: SubAgentToolDetails): void {\n\ttotalUsage.input += details.usage.input;\n\ttotalUsage.output += details.usage.output;\n\ttotalUsage.cacheRead += details.usage.cacheRead;\n\ttotalUsage.cacheWrite += details.usage.cacheWrite;\n\ttotalUsage.total += details.usage.total;\n\ttotalUsage.cost.input += details.usage.cost.input;\n\ttotalUsage.cost.output += details.usage.cost.output;\n\ttotalUsage.cost.cacheRead += details.usage.cost.cacheRead;\n\ttotalUsage.cost.cacheWrite += details.usage.cost.cacheWrite;\n\ttotalUsage.cost.total += details.usage.cost.total;\n}\n\nfunction mergeAssistantUsage(\n\trunState: RunState,\n\tusage: NonNullable<Extract<unknown, unknown>> & {\n\t\tinput: number;\n\t\toutput: number;\n\t\tcacheRead: number;\n\t\tcacheWrite: number;\n\t\ttotal?: number;\n\t\ttotalTokens?: number;\n\t\tcost: { input: number; output: number; cacheRead: number; cacheWrite: number; total: number };\n\t},\n): void {\n\trunState.totalUsage.input += usage.input;\n\trunState.totalUsage.output += usage.output;\n\trunState.totalUsage.cacheRead += usage.cacheRead;\n\trunState.totalUsage.cacheWrite += usage.cacheWrite;\n\trunState.totalUsage.total +=\n\t\tusage.total ?? usage.totalTokens ?? usage.input + usage.output + usage.cacheRead + usage.cacheWrite;\n\trunState.totalUsage.cost.input += usage.cost.input;\n\trunState.totalUsage.cost.output += usage.cost.output;\n\trunState.totalUsage.cost.cacheRead += usage.cost.cacheRead;\n\trunState.totalUsage.cost.cacheWrite += usage.cost.cacheWrite;\n\trunState.totalUsage.cost.total += usage.cost.total;\n}\n\nexport async function handleSessionEvent(event: unknown, context: SessionEventHandlerContext): Promise<void> {\n\tconst { ctx, logCtx, queue, pendingTools, store, runState, memoryLifecycle } = context;\n\n\tif (isToolExecutionStartEvent(event)) {\n\t\tconst label = extractLabelFromArgs(event.args) || event.toolName;\n\n\t\tpendingTools.set(event.toolCallId, {\n\t\t\ttoolName: event.toolName,\n\t\t\targs: event.args,\n\t\t\tstartTime: Date.now(),\n\t\t});\n\t\tmemoryLifecycle.noteToolCall();\n\n\t\tlog.logToolStart(logCtx, event.toolName, label, isRecord(event.args) ? event.args : {});\n\t\tqueue.enqueue(() => ctx.respond(formatProgressEntry(\"tool\", label), false), \"tool label\");\n\t\treturn;\n\t}\n\n\tif (isToolExecutionUpdateEvent(event)) {\n\t\tif (event.toolName !== \"subagent\") {\n\t\t\treturn;\n\t\t}\n\t\tconst partialText = truncate(extractToolResultText(event.partialResult), 200);\n\t\tif (!partialText.trim()) {\n\t\t\treturn;\n\t\t}\n\t\tqueue.enqueue(() => ctx.respond(formatProgressEntry(\"tool\", partialText), false), \"tool update\");\n\t\treturn;\n\t}\n\n\tif (isToolExecutionEndEvent(event)) {\n\t\tconst resultStr = extractToolResultText(event.result);\n\t\tconst pending = pendingTools.get(event.toolCallId);\n\t\tpendingTools.delete(event.toolCallId);\n\n\t\tconst durationMs = pending ? Date.now() - pending.startTime : 0;\n\t\tconst subAgentDetails =\n\t\t\tevent.toolName === \"subagent\" &&\n\t\t\tisRecord(event.result) &&\n\t\t\t\"details\" in event.result &&\n\t\t\tisSubAgentToolDetails((event.result as { details?: unknown }).details)\n\t\t\t\t? (event.result as { details: SubAgentToolDetails }).details\n\t\t\t\t: null;\n\n\t\tif (subAgentDetails) {\n\t\t\tmergeSubAgentUsage(runState.totalUsage, subAgentDetails);\n\t\t\tconst label =\n\t\t\t\tpending?.args &&\n\t\t\t\ttypeof pending.args === \"object\" &&\n\t\t\t\t\"label\" in pending.args &&\n\t\t\t\ttypeof (pending.args as { label?: unknown }).label === \"string\"\n\t\t\t\t\t? ((pending.args as { label: string }).label ?? \"subagent\").trim()\n\t\t\t\t\t: \"subagent\";\n\t\t\tqueue.enqueue(\n\t\t\t\t() =>\n\t\t\t\t\tstore?.logSubAgentRun(logCtx.channelId, {\n\t\t\t\t\t\tdate: new Date().toISOString(),\n\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\tagent: subAgentDetails.agent,\n\t\t\t\t\t\tsource: subAgentDetails.source,\n\t\t\t\t\t\tmodel: subAgentDetails.model,\n\t\t\t\t\t\ttools: [...subAgentDetails.tools],\n\t\t\t\t\t\tturns: subAgentDetails.turns,\n\t\t\t\t\t\ttoolCalls: subAgentDetails.toolCalls,\n\t\t\t\t\t\tdurationMs: subAgentDetails.durationMs,\n\t\t\t\t\t\tfailed: subAgentDetails.failed,\n\t\t\t\t\t\tfailureReason: subAgentDetails.failureReason,\n\t\t\t\t\t\toutput: resultStr.length > 16000 ? resultStr.slice(0, 16000) : resultStr,\n\t\t\t\t\t\toutputTruncated: resultStr.length > 16000,\n\t\t\t\t\t\tusage: {\n\t\t\t\t\t\t\t...subAgentDetails.usage,\n\t\t\t\t\t\t\tcost: { ...subAgentDetails.usage.cost },\n\t\t\t\t\t\t},\n\t\t\t\t\t}) ?? Promise.resolve(),\n\t\t\t\t\"sub-agent run log\",\n\t\t\t);\n\t\t}\n\n\t\tconst treatAsError = event.isError || Boolean(subAgentDetails?.failed);\n\t\tif (treatAsError) {\n\t\t\tlog.logToolError(logCtx, event.toolName, durationMs, resultStr);\n\t\t} else {\n\t\t\tlog.logToolSuccess(logCtx, event.toolName, durationMs, resultStr);\n\t\t}\n\n\t\tif (treatAsError) {\n\t\t\tqueue.enqueue(() => ctx.respond(formatProgressEntry(\"error\", truncate(resultStr, 200)), false), \"tool error\");\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isMessageStartEvent(event)) {\n\t\tif (isAssistantEventMessage(event.message)) {\n\t\t\tlog.logResponseStart(logCtx);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isMessageEndEvent(event)) {\n\t\tconst commandResultText = extractCustomCommandResultText(event.message);\n\t\tif (commandResultText) {\n\t\t\trunState.finalOutcome = { kind: \"final\", text: commandResultText };\n\t\t\tlog.logResponse(logCtx, commandResultText);\n\t\t\tqueue.enqueue(async () => {\n\t\t\t\tconst delivered = await ctx.respondPlain(commandResultText);\n\t\t\t\tif (!delivered) {\n\t\t\t\t\tawait ctx.replaceMessage(commandResultText);\n\t\t\t\t}\n\t\t\t\trunState.finalResponseDelivered = true;\n\t\t\t}, \"command result\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAssistantEventMessage(event.message)) {\n\t\t\tconst assistantMsg = event.message;\n\n\t\t\tif (assistantMsg.stopReason) {\n\t\t\t\trunState.stopReason = assistantMsg.stopReason;\n\t\t\t}\n\t\t\tif (assistantMsg.errorMessage) {\n\t\t\t\trunState.errorMessage = assistantMsg.errorMessage;\n\t\t\t}\n\n\t\t\tif (assistantMsg.usage) {\n\t\t\t\tmergeAssistantUsage(runState, assistantMsg.usage);\n\t\t\t}\n\n\t\t\tconst thinkingParts: string[] = [];\n\t\t\tconst textParts: string[] = [];\n\t\t\tlet hasToolCalls = false;\n\t\t\tfor (const part of assistantMsg.content) {\n\t\t\t\tif (isThinkingPart(part)) {\n\t\t\t\t\tthinkingParts.push(part.thinking);\n\t\t\t\t} else if (isTextPart(part)) {\n\t\t\t\t\ttextParts.push(part.text);\n\t\t\t\t} else if (part.type === \"toolCall\") {\n\t\t\t\t\thasToolCalls = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst text = textParts.join(\"\\n\");\n\n\t\t\tfor (const thinking of thinkingParts) {\n\t\t\t\tlog.logThinking(logCtx, thinking);\n\t\t\t\tqueue.enqueue(() => ctx.respond(formatProgressEntry(\"thinking\", thinking), false), \"thinking\");\n\t\t\t}\n\n\t\t\tif (hasToolCalls && text.trim()) {\n\t\t\t\tqueue.enqueue(() => ctx.respond(formatProgressEntry(\"assistant\", text), false), \"assistant progress\");\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isTurnEndEvent(event)) {\n\t\tif (isAssistantEventMessage(event.message) && event.toolResults.length === 0) {\n\t\t\tif (event.message.stopReason === \"error\" || event.message.stopReason === \"aborted\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst finalText = event.message.content\n\t\t\t\t.filter((part): part is { type: \"text\"; text: string } => isTextPart(part))\n\t\t\t\t.map((part) => part.text)\n\t\t\t\t.join(\"\\n\");\n\n\t\t\tconst trimmedFinalText = finalText.trim();\n\t\t\tif (!trimmedFinalText) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (trimmedFinalText === \"[SILENT]\" || trimmedFinalText.startsWith(\"[SILENT]\")) {\n\t\t\t\trunState.finalOutcome = { kind: \"silent\" };\n\t\t\t\tmemoryLifecycle.noteCompletedAssistantTurn();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (runState.finalOutcome.kind === \"final\" && runState.finalOutcome.text.trim() === trimmedFinalText) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunState.finalOutcome = { kind: \"final\", text: finalText };\n\t\t\tmemoryLifecycle.noteCompletedAssistantTurn();\n\t\t\tlog.logResponse(logCtx, finalText);\n\t\t\tqueue.enqueue(async () => {\n\t\t\t\tconst delivered = await ctx.respondPlain(finalText);\n\t\t\t\tif (delivered) {\n\t\t\t\t\trunState.finalResponseDelivered = true;\n\t\t\t\t}\n\t\t\t}, \"final response\");\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isAutoCompactionStartEvent(event)) {\n\t\tlog.logInfo(`Auto-compaction started (reason: ${event.reason})`);\n\t\tqueue.enqueue(\n\t\t\t() => ctx.respond(formatProgressEntry(\"assistant\", \"Compacting context...\"), false),\n\t\t\t\"compaction start\",\n\t\t);\n\t\treturn;\n\t}\n\n\tif (isAutoCompactionEndEvent(event)) {\n\t\tif (event.result) {\n\t\t\tlog.logInfo(`Auto-compaction complete: ${event.result.tokensBefore} tokens compacted`);\n\t\t} else if (event.aborted) {\n\t\t\tlog.logInfo(\"Auto-compaction aborted\");\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isAutoRetryStartEvent(event)) {\n\t\tlog.logWarning(`Retrying (${event.attempt}/${event.maxAttempts})`, event.errorMessage);\n\t\tqueue.enqueue(\n\t\t\t() =>\n\t\t\t\tctx.respond(formatProgressEntry(\"assistant\", `Retrying (${event.attempt}/${event.maxAttempts})...`), false),\n\t\t\t\"retry\",\n\t\t);\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/agent/type-guards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EACX,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EAEjB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,MAAM,YAAY,CAAC;AAMpB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAItF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAgBtF;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAShG;AAED,wBAAgB,cAAc,CAC7B,IAAI,EAAE,oBAAoB,GACxB,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAE7D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9G;AASD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAM1F;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAM5F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAOtF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAE5F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAOlF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAmBlF;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAc9E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/agent/type-guards.ts"],"names":[],"mappings":"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","sourcesContent":["import { COMMAND_RESULT_CUSTOM_TYPE } from \"../command-extension.js\";\nimport { isRecord } from \"../shared/type-guards.js\";\nimport type { SubAgentToolDetails } from \"../subagents/tool.js\";\nimport type {\n\tAssistantContentPart,\n\tAssistantEventMessage,\n\tAssistantUsageMessage,\n\tAutoCompactionEndEvent,\n\tAutoCompactionStartEvent,\n\tAutoRetryStartEvent,\n\tMessageEndEvent,\n\tMessageStartEvent,\n\tSessionEvent,\n\tToolExecutionEndEvent,\n\tToolExecutionStartEvent,\n\tToolExecutionUpdateEvent,\n\tTurnEndEvent,\n} from \"./types.js\";\n\nfunction isMessageWithRole(value: unknown): value is { role: string } {\n\treturn isRecord(value) && typeof value.role === \"string\";\n}\n\nexport function isAssistantEventMessage(value: unknown): value is AssistantEventMessage {\n\treturn (\n\t\tisMessageWithRole(value) && value.role === \"assistant\" && Array.isArray((value as { content?: unknown }).content)\n\t);\n}\n\nexport function isAssistantUsageMessage(value: unknown): value is AssistantUsageMessage {\n\tif (!isMessageWithRole(value) || value.role !== \"assistant\" || !(\"usage\" in value) || !isRecord(value.usage)) {\n\t\treturn false;\n\t}\n\treturn (\n\t\ttypeof value.usage.input === \"number\" &&\n\t\ttypeof value.usage.output === \"number\" &&\n\t\ttypeof value.usage.cacheRead === \"number\" &&\n\t\ttypeof value.usage.cacheWrite === \"number\" &&\n\t\tisRecord(value.usage.cost) &&\n\t\ttypeof value.usage.cost.input === \"number\" &&\n\t\ttypeof value.usage.cost.output === \"number\" &&\n\t\ttypeof value.usage.cost.cacheRead === \"number\" &&\n\t\ttypeof value.usage.cost.cacheWrite === \"number\" &&\n\t\ttypeof value.usage.cost.total === \"number\"\n\t);\n}\n\nexport function getLastAssistantUsage(messages: readonly unknown[]): AssistantUsageMessage | null {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (isAssistantUsageMessage(message) && message.stopReason !== \"aborted\") {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function isThinkingPart(\n\tpart: AssistantContentPart,\n): part is Extract<AssistantContentPart, { type: \"thinking\" }> {\n\treturn part.type === \"thinking\" && typeof (part as { thinking?: unknown }).thinking === \"string\";\n}\n\nexport function isTextPart(part: AssistantContentPart): part is Extract<AssistantContentPart, { type: \"text\" }> {\n\treturn part.type === \"text\" && typeof (part as { text?: unknown }).text === \"string\";\n}\n\nfunction hasEventType(\n\tvalue: unknown,\n\ttype: SessionEvent[\"type\"],\n): value is { type: SessionEvent[\"type\"] } & Record<string, unknown> {\n\treturn isRecord(value) && value.type === type;\n}\n\nexport function isToolExecutionStartEvent(value: unknown): value is ToolExecutionStartEvent {\n\treturn (\n\t\thasEventType(value, \"tool_execution_start\") &&\n\t\ttypeof value.toolCallId === \"string\" &&\n\t\ttypeof value.toolName === \"string\"\n\t);\n}\n\nexport function isToolExecutionUpdateEvent(value: unknown): value is ToolExecutionUpdateEvent {\n\treturn (\n\t\thasEventType(value, \"tool_execution_update\") &&\n\t\ttypeof value.toolCallId === \"string\" &&\n\t\ttypeof value.toolName === \"string\"\n\t);\n}\n\nexport function isToolExecutionEndEvent(value: unknown): value is ToolExecutionEndEvent {\n\treturn (\n\t\thasEventType(value, \"tool_execution_end\") &&\n\t\ttypeof value.toolCallId === \"string\" &&\n\t\ttypeof value.toolName === \"string\" &&\n\t\ttypeof value.isError === \"boolean\"\n\t);\n}\n\nexport function isMessageStartEvent(value: unknown): value is MessageStartEvent {\n\treturn hasEventType(value, \"message_start\") && \"message\" in value;\n}\n\nexport function isMessageEndEvent(value: unknown): value is MessageEndEvent {\n\treturn hasEventType(value, \"message_end\") && \"message\" in value;\n}\n\nexport function isTurnEndEvent(value: unknown): value is TurnEndEvent {\n\treturn hasEventType(value, \"turn_end\") && \"message\" in value && Array.isArray(value.toolResults);\n}\n\nexport function isAutoCompactionStartEvent(value: unknown): value is AutoCompactionStartEvent {\n\treturn hasEventType(value, \"auto_compaction_start\") && (value.reason === \"threshold\" || value.reason === \"overflow\");\n}\n\nexport function isAutoCompactionEndEvent(value: unknown): value is AutoCompactionEndEvent {\n\treturn hasEventType(value, \"auto_compaction_end\");\n}\n\nexport function isAutoRetryStartEvent(value: unknown): value is AutoRetryStartEvent {\n\treturn (\n\t\thasEventType(value, \"auto_retry_start\") &&\n\t\ttypeof value.attempt === \"number\" &&\n\t\ttypeof value.maxAttempts === \"number\" &&\n\t\ttypeof value.errorMessage === \"string\"\n\t);\n}\n\nexport function isSubAgentToolDetails(value: unknown): value is SubAgentToolDetails {\n\tif (!value || typeof value !== \"object\" || !(\"kind\" in value) || (value as { kind?: unknown }).kind !== \"subagent\") {\n\t\treturn false;\n\t}\n\n\tif (!(\"usage\" in value)) {\n\t\treturn false;\n\t}\n\n\tconst usage = (value as { usage?: unknown }).usage;\n\treturn (\n\t\t!!usage &&\n\t\ttypeof usage === \"object\" &&\n\t\t\"input\" in usage &&\n\t\t\"output\" in usage &&\n\t\t\"cacheRead\" in usage &&\n\t\t\"cacheWrite\" in usage &&\n\t\t\"cost\" in usage\n\t);\n}\n\nexport function extractCustomCommandResultText(message: unknown): string | null {\n\tif (\n\t\t!message ||\n\t\ttypeof message !== \"object\" ||\n\t\t!(\"role\" in message) ||\n\t\t!(\"customType\" in message) ||\n\t\t(message as { role?: unknown }).role !== \"custom\" ||\n\t\t(message as { customType?: unknown }).customType !== COMMAND_RESULT_CUSTOM_TYPE\n\t) {\n\t\treturn null;\n\t}\n\n\tconst content = (message as { content?: unknown }).content;\n\treturn typeof content === \"string\" && content.trim() ? content : null;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AA6CA,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,UAAU,EAAE;YACX,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACpE;QACD,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,SAAS;QACvB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QAC9B,sBAAsB,EAAE,KAAK;KAC7B,CAAC;AACH,CAAC;AAuDD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC","sourcesContent":["import type { BuiltInCommand } from \"../commands.js\";\nimport type { DingTalkContext } from \"../runtime/dingtalk.js\";\nimport type { ChannelStore } from \"../runtime/store.js\";\nimport type { UsageTotals } from \"../shared/types.js\";\n\nexport interface AgentRunner {\n\trun(ctx: DingTalkContext, store: ChannelStore): Promise<{ stopReason: string; errorMessage?: string }>;\n\thandleBuiltinCommand(ctx: DingTalkContext, command: BuiltInCommand): Promise<void>;\n\tqueueSteer(text: string, userName?: string): Promise<void>;\n\tqueueFollowUp(text: string, userName?: string): Promise<void>;\n\tabort(): Promise<void>;\n}\n\nexport type FinalOutcome = { kind: \"none\" } | { kind: \"silent\" } | { kind: \"final\"; text: string };\n\nexport interface PendingTool {\n\ttoolName: string;\n\targs: unknown;\n\tstartTime: number;\n}\n\nexport interface RunQueue {\n\tenqueue(fn: () => Promise<void>, errorContext: string): void;\n\tenqueueMessage(text: string, target: \"main\" | \"thread\", errorContext: string, doLog?: boolean): void;\n}\n\nexport interface RunLogContext {\n\tchannelId: string;\n\tuserName?: string;\n\tchannelName?: string;\n}\n\nexport interface RunState {\n\tctx: DingTalkContext | null;\n\tlogCtx: RunLogContext | null;\n\tstore: ChannelStore | null;\n\tqueue: RunQueue | null;\n\tpendingTools: Map<string, PendingTool>;\n\ttotalUsage: UsageTotals;\n\tstopReason: string;\n\terrorMessage: string | undefined;\n\tfinalOutcome: FinalOutcome;\n\tfinalResponseDelivered: boolean;\n}\n\nexport function createEmptyRunState(): RunState {\n\treturn {\n\t\tctx: null,\n\t\tlogCtx: null,\n\t\tstore: null,\n\t\tqueue: null,\n\t\tpendingTools: new Map(),\n\t\ttotalUsage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotal: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: \"stop\",\n\t\terrorMessage: undefined,\n\t\tfinalOutcome: { kind: \"none\" },\n\t\tfinalResponseDelivered: false,\n\t};\n}\n\nexport interface AssistantUsage {\n\tinput: number;\n\toutput: number;\n\tcacheRead: number;\n\tcacheWrite: number;\n\ttotal?: number;\n\ttotalTokens?: number;\n\tcost: { input: number; output: number; cacheRead: number; cacheWrite: number; total: number };\n}\n\nexport type AssistantContentPart =\n\t| { type: \"thinking\"; thinking: string }\n\t| { type: \"text\"; text: string }\n\t| { type: \"toolCall\" }\n\t| { type: string; [key: string]: unknown };\n\nexport interface AssistantEventMessage {\n\trole: \"assistant\";\n\tcontent: AssistantContentPart[];\n\tstopReason?: string;\n\terrorMessage?: string;\n\tusage?: AssistantUsage;\n}\n\nexport interface AssistantUsageMessage {\n\trole: \"assistant\";\n\tstopReason?: string;\n\tusage: AssistantUsage;\n}\n\nexport type SessionEvent =\n\t| { type: \"tool_execution_start\"; toolCallId: string; toolName: string; args: unknown }\n\t| { type: \"tool_execution_update\"; toolCallId: string; toolName: string; args: unknown; partialResult: unknown }\n\t| { type: \"tool_execution_end\"; toolCallId: string; toolName: string; result: unknown; isError: boolean }\n\t| { type: \"message_start\"; message: unknown }\n\t| { type: \"message_end\"; message: unknown }\n\t| { type: \"turn_end\"; message: unknown; toolResults: unknown[] }\n\t| { type: \"auto_compaction_start\"; reason: \"threshold\" | \"overflow\" }\n\t| { type: \"auto_compaction_end\"; result?: { tokensBefore: number }; aborted?: boolean }\n\t| { type: \"auto_retry_start\"; attempt: number; maxAttempts: number; delayMs?: number; errorMessage: string };\n\nexport type ToolExecutionStartEvent = Extract<SessionEvent, { type: \"tool_execution_start\" }>;\nexport type ToolExecutionUpdateEvent = Extract<SessionEvent, { type: \"tool_execution_update\" }>;\nexport type ToolExecutionEndEvent = Extract<SessionEvent, { type: \"tool_execution_end\" }>;\nexport type MessageStartEvent = Extract<SessionEvent, { type: \"message_start\" }>;\nexport type MessageEndEvent = Extract<SessionEvent, { type: \"message_end\" }>;\nexport type TurnEndEvent = Extract<SessionEvent, { type: \"turn_end\" }>;\nexport type AutoCompactionStartEvent = Extract<SessionEvent, { type: \"auto_compaction_start\" }>;\nexport type AutoCompactionEndEvent = Extract<SessionEvent, { type: \"auto_compaction_end\" }>;\nexport type AutoRetryStartEvent = Extract<SessionEvent, { type: \"auto_retry_start\" }>;\n\nexport type ProgressEntryKind = \"tool\" | \"thinking\" | \"error\" | \"assistant\";\n\nexport const MAX_USER_MESSAGE_CHARS = 12_000;\n"]}
|
package/dist/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["export type { AgentRunner } from \"./agent/index.js\";\nexport { ChannelRunner, getOrCreateRunner } from \"./agent/index.js\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-extension.d.ts","sourceRoot":"","sources":["../src/command-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAIX,gBAAgB,EAChB,YAAY,EACZ,MAAM,+BAA+B,CAAC;AAIvC,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AAEpE,MAAM,WAAW,+BAA+B;IAC/C,eAAe,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AA6CD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,+BAA+B,GAAG,gBAAgB,CAsGjG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-extension.js","sourceRoot":"","sources":["../src/command-extension.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ThinkingLevel } from \"@mariozechner/pi-agent-core\";\nimport type { Api, Model } from \"@mariozechner/pi-ai\";\nimport type {\n\tCompactionResult,\n\tExtensionAPI,\n\tExtensionCommandContext,\n\tExtensionFactory,\n\tSessionStats,\n} from \"@mariozechner/pi-coding-agent\";\nimport { basename } from \"path\";\nimport { findExactModelReferenceMatch, formatModelList, formatModelReference } from \"./model-utils.js\";\n\nexport const COMMAND_RESULT_CUSTOM_TYPE = \"pipiclaw.command_result\";\n\nexport interface PipiclawCommandExtensionOptions {\n\tgetCurrentModel: () => Model<Api> | undefined;\n\tgetAvailableModels: () => Promise<Model<Api>[]>;\n\tgetSessionStats: () => SessionStats;\n\tgetThinkingLevel: () => ThinkingLevel;\n\tswitchModel: (model: Model<Api>) => Promise<void>;\n\trefreshSessionResources: () => Promise<void>;\n}\n\nfunction buildSessionText(\n\tstats: SessionStats,\n\tcurrentModel: Model<Api> | undefined,\n\tthinkingLevel: ThinkingLevel,\n): string {\n\tconst modelText = currentModel ? `\\`${formatModelReference(currentModel)}\\`` : \"(none)\";\n\tconst sessionFile = stats.sessionFile ? `\\`${basename(stats.sessionFile)}\\`` : \"(none)\";\n\treturn `# Session\n\n- Session ID: \\`${stats.sessionId}\\`\n- Session file: ${sessionFile}\n- Model: ${modelText}\n- Thinking level: \\`${thinkingLevel}\\`\n- User messages: \\`${stats.userMessages}\\`\n- Assistant messages: \\`${stats.assistantMessages}\\`\n- Tool calls: \\`${stats.toolCalls}\\`\n- Tool results: \\`${stats.toolResults}\\`\n- Total messages: \\`${stats.totalMessages}\\`\n- Tokens: \\`${stats.tokens.total}\\` (input \\`${stats.tokens.input}\\`, output \\`${stats.tokens.output}\\`, cache read \\`${stats.tokens.cacheRead}\\`, cache write \\`${stats.tokens.cacheWrite}\\`)\n- Cost: \\`$${stats.cost.toFixed(4)}\\``;\n}\n\nasync function runCompact(\n\tctx: ExtensionCommandContext,\n\tcustomInstructions: string | undefined,\n): Promise<CompactionResult> {\n\treturn await new Promise<CompactionResult>((resolve, reject) => {\n\t\tctx.compact({\n\t\t\tcustomInstructions,\n\t\t\tonComplete: resolve,\n\t\t\tonError: reject,\n\t\t});\n\t});\n}\n\nfunction sendCommandResult(pi: Pick<ExtensionAPI, \"sendMessage\">, text: string): void {\n\tpi.sendMessage({\n\t\tcustomType: COMMAND_RESULT_CUSTOM_TYPE,\n\t\tcontent: text,\n\t\tdisplay: true,\n\t});\n}\n\nexport function createCommandExtension(options: PipiclawCommandExtensionOptions): ExtensionFactory {\n\treturn (pi) => {\n\t\tpi.registerCommand(\"session\", {\n\t\t\tdescription: \"Show current session state, usage, and model info\",\n\t\t\thandler: async () => {\n\t\t\t\tsendCommandResult(\n\t\t\t\t\tpi,\n\t\t\t\t\tbuildSessionText(options.getSessionStats(), options.getCurrentModel(), options.getThinkingLevel()),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\tpi.registerCommand(\"model\", {\n\t\t\tdescription: \"Show the current model or switch models using an exact match\",\n\t\t\thandler: async (args) => {\n\t\t\t\tconst availableModels = await options.getAvailableModels();\n\t\t\t\tconst currentModel = options.getCurrentModel();\n\n\t\t\t\tif (!args.trim()) {\n\t\t\t\t\tconst current = currentModel ? `\\`${formatModelReference(currentModel)}\\`` : \"(none)\";\n\t\t\t\t\tconst available =\n\t\t\t\t\t\tavailableModels.length > 0 ? formatModelList(availableModels, currentModel) : \"- (none)\";\n\t\t\t\t\tsendCommandResult(\n\t\t\t\t\t\tpi,\n\t\t\t\t\t\t`# Model\n\nCurrent model: ${current}\n\nUse \\`/model <provider/modelId>\\` or \\`/model <modelId>\\` to switch. Bare model IDs must resolve uniquely.\n\nAvailable models:\n${available}`,\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst match = findExactModelReferenceMatch(args, availableModels);\n\t\t\t\tconst available =\n\t\t\t\t\tavailableModels.length > 0 ? formatModelList(availableModels, currentModel, 10) : \"- (none)\";\n\n\t\t\t\tif (match.match) {\n\t\t\t\t\tawait options.switchModel(match.match);\n\t\t\t\t\tsendCommandResult(pi, `已切换模型到 \\`${formatModelReference(match.match)}\\`.`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (match.ambiguous) {\n\t\t\t\t\tsendCommandResult(\n\t\t\t\t\t\tpi,\n\t\t\t\t\t\t`未切换模型:\\`${args.trim()}\\` 匹配到多个模型。请改用精确的 \\`provider/modelId\\` 形式。\n\nAvailable models:\n${available}`,\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsendCommandResult(\n\t\t\t\t\tpi,\n\t\t\t\t\t`未找到模型 \\`${args.trim()}\\`。请使用精确的 \\`provider/modelId\\` 或唯一的 \\`modelId\\`。\n\nAvailable models:\n${available}`,\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\tpi.registerCommand(\"new\", {\n\t\t\tdescription: \"Start a new session\",\n\t\t\thandler: async (_args, ctx) => {\n\t\t\t\tconst result = await ctx.newSession();\n\t\t\t\tif (!result.cancelled) {\n\t\t\t\t\tawait options.refreshSessionResources();\n\t\t\t\t}\n\t\t\t\tsendCommandResult(\n\t\t\t\t\tpi,\n\t\t\t\t\tresult.cancelled\n\t\t\t\t\t\t? \"新会话已取消。\"\n\t\t\t\t\t\t: `已开启新会话。\\n\\nSession ID: \\`${ctx.sessionManager.getSessionId()}\\``,\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\n\t\tpi.registerCommand(\"compact\", {\n\t\t\tdescription: \"Manually compact the current session context\",\n\t\t\thandler: async (args, ctx) => {\n\t\t\t\tconst customInstructions = args.trim() || undefined;\n\t\t\t\tconst result = await runCompact(ctx, customInstructions);\n\t\t\t\tsendCommandResult(\n\t\t\t\t\tpi,\n\t\t\t\t\t`已压缩当前会话上下文。\n\n- Tokens before compaction: \\`${result.tokensBefore}\\`\n- Summary:\n\n\\`\\`\\`text\n${result.summary}\n\\`\\`\\``,\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t};\n}\n"]}
|
package/dist/commands.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AA6CD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAmBvE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
package/dist/commands.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAQA,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCjB,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE3E,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC;YACC,OAAO,IAAI,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB;IAChC,OAAO,SAAS,CAAC;AAClB,CAAC","sourcesContent":["export type BuiltInCommandName = \"help\" | \"steer\" | \"followup\" | \"stop\";\n\nexport interface BuiltInCommand {\n\tname: BuiltInCommandName;\n\targs: string;\n\trawText: string;\n}\n\nconst HELP_TEXT = `# Slash Commands\n\nPipiclaw supports two command groups.\n\n## Transport Commands\n\nThese are handled directly by the DingTalk transport/runtime layer.\n\n- \\`/help\\`\n Show command help\n Example: \\`/help\\`\n- \\`/stop\\`\n Stop the current task\n Example: \\`/stop\\`\n- \\`/steer <message>\\`\n Change the current task after the current tool step finishes\n Example: \\`/steer Use the Shanghai time zone and summarize only the latest updates\\`\n- \\`/followup <message>\\`\n Queue another request to run after the current task completes\n Example: \\`/followup After that, draft a short executive summary\\`\n\nWhile a task is running, a plain message is treated as \\`steer\\` by default.\n\n## Session Commands\n\nThese are handled inside the Pipiclaw session layer:\n\n- \\`/session\\`\n Show current session state, message stats, token usage, and model info\n Example: \\`/session\\`\n- \\`/model [provider/modelId|modelId]\\`\n Show the current model, or switch models using an exact match\n Example: \\`/model\\`\n Example: \\`/model anthropic/claude-opus-4-6\\`\n- \\`/new\\`\n Start a new session\n Example: \\`/new\\`\n- \\`/compact [instructions]\\`\n Manually compact the current session context, with optional custom instructions\n Example: \\`/compact\\`\n Example: \\`/compact Keep the latest TODOs and decisions\\`\n`;\n\nexport function parseBuiltInCommand(text: string): BuiltInCommand | null {\n\tconst rawText = text.trim();\n\tif (!rawText.startsWith(\"/\")) {\n\t\treturn null;\n\t}\n\n\tconst spaceIndex = rawText.indexOf(\" \");\n\tconst rawName = spaceIndex === -1 ? rawText.slice(1) : rawText.slice(1, spaceIndex);\n\tconst args = spaceIndex === -1 ? \"\" : rawText.slice(spaceIndex + 1).trim();\n\n\tswitch (rawName) {\n\t\tcase \"help\":\n\t\tcase \"steer\":\n\t\tcase \"followup\":\n\t\tcase \"stop\":\n\t\t\treturn { name: rawName, args, rawText };\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function renderBuiltInHelp(): string {\n\treturn HELP_TEXT;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAqB,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAKlG;;;GAGG;AACH,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAazD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,KAAK,EAAE,CA4BrF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Configuration file loaders for pipiclaw workspace files:\n * SOUL.md, AGENTS.md, skills/, and API key resolution.\n */\n\nimport type { Api, Model } from \"@mariozechner/pi-ai\";\nimport { loadSkillsFromDir, type ModelRegistry, type Skill } from \"@mariozechner/pi-coding-agent\";\nimport { existsSync, readFileSync } from \"fs\";\nimport { join } from \"path\";\nimport * as log from \"./log.js\";\n\n/**\n * Load SOUL.md — defines the agent's identity, personality, and communication style.\n * Only loaded from workspace root (global).\n */\nexport function getSoul(workspaceDir: string): string {\n\tconst soulPath = join(workspaceDir, \"SOUL.md\");\n\tif (existsSync(soulPath)) {\n\t\ttry {\n\t\t\tconst content = readFileSync(soulPath, \"utf-8\").trim();\n\t\t\tif (content) return content;\n\t\t} catch (error) {\n\t\t\tlog.logWarning(\"Failed to read SOUL.md\", `${soulPath}: ${error}`);\n\t\t}\n\t}\n\treturn \"\";\n}\n\n/**\n * Load AGENTS.md — defines the agent's behavior instructions, capabilities, and constraints.\n * Only loaded from workspace root (global).\n */\nexport function getAgentConfig(channelDir: string): string {\n\tconst workspaceAgentPath = join(channelDir, \"..\", \"AGENTS.md\");\n\tif (existsSync(workspaceAgentPath)) {\n\t\ttry {\n\t\t\tconst content = readFileSync(workspaceAgentPath, \"utf-8\").trim();\n\t\t\tif (content) {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlog.logWarning(\"Failed to read workspace AGENTS.md\", `${workspaceAgentPath}: ${error}`);\n\t\t}\n\t}\n\treturn \"\";\n}\n\n/**\n * Load skills from both workspace-level and channel-level skill directories.\n * Channel-level skills override global skills with the same name.\n */\nexport function loadPipiclawSkills(channelDir: string, workspacePath: string): Skill[] {\n\tconst skillMap = new Map<string, Skill>();\n\tconst hostWorkspacePath = join(channelDir, \"..\");\n\n\tconst translatePath = (hostPath: string): string => {\n\t\tif (hostPath.startsWith(hostWorkspacePath)) {\n\t\t\treturn workspacePath + hostPath.slice(hostWorkspacePath.length);\n\t\t}\n\t\treturn hostPath;\n\t};\n\n\t// Load workspace-level skills (global)\n\tconst workspaceSkillsDir = join(hostWorkspacePath, \"skills\");\n\tfor (const skill of loadSkillsFromDir({ dir: workspaceSkillsDir, source: \"workspace\" }).skills) {\n\t\tskill.filePath = translatePath(skill.filePath);\n\t\tskill.baseDir = translatePath(skill.baseDir);\n\t\tskillMap.set(skill.name, skill);\n\t}\n\n\t// Load channel-specific skills\n\tconst channelSkillsDir = join(channelDir, \"skills\");\n\tfor (const skill of loadSkillsFromDir({ dir: channelSkillsDir, source: \"channel\" }).skills) {\n\t\tskill.filePath = translatePath(skill.filePath);\n\t\tskill.baseDir = translatePath(skill.baseDir);\n\t\tskillMap.set(skill.name, skill);\n\t}\n\n\treturn Array.from(skillMap.values());\n}\n\n/**\n * Resolve an API key for the given model's provider.\n * Checks ModelRegistry first, then falls back to ANTHROPIC_API_KEY env var.\n */\nexport async function getApiKeyForModel(modelRegistry: ModelRegistry, model: Model<Api>): Promise<string> {\n\tconst key = await modelRegistry.getApiKeyForProvider(model.provider);\n\tif (key) return key;\n\t// Fallback: try anthropic env var\n\tconst envKey = process.env.ANTHROPIC_API_KEY;\n\tif (envKey) return envKey;\n\tthrow new Error(\n\t\t`No API key found for provider: ${model.provider}.\\n\\n` +\n\t\t\t\"Configure API key in ~/.pi/agent/models.json or set ANTHROPIC_API_KEY environment variable.\",\n\t);\n}\n"]}
|
package/dist/context.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Context management for pipiclaw.\n *\n * `log.jsonl` and `context.jsonl` are treated as raw cold storage.\n * They are not proactively scanned or loaded as part of the memory model.\n *\n * This module currently provides only PipiclawSettingsManager.\n */\n\nimport type { Transport } from \"@mariozechner/pi-ai\";\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"fs\";\nimport { dirname, join } from \"path\";\n\ntype PackageSource =\n\t| string\n\t| {\n\t\t\tsource: string;\n\t\t\textensions?: string[];\n\t\t\tskills?: string[];\n\t\t\tprompts?: string[];\n\t\t\tthemes?: string[];\n\t };\n\ntype ThinkingBudgetsSettings = {\n\tminimal?: number;\n\tlow?: number;\n\tmedium?: number;\n\thigh?: number;\n};\n\ntype Settings = {\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\";\n\tcompaction?: {\n\t\tenabled?: boolean;\n\t\treserveTokens?: number;\n\t\tkeepRecentTokens?: number;\n\t};\n\tretry?: {\n\t\tenabled?: boolean;\n\t\tmaxRetries?: number;\n\t\tbaseDelayMs?: number;\n\t\tmaxDelayMs?: number;\n\t};\n};\n\ntype SettingsError = {\n\tscope: \"global\" | \"project\";\n\terror: Error;\n};\n\ntype TransportSetting = Transport;\n\n// ============================================================================\n// PipiclawSettingsManager - Simple settings for pipiclaw\n// ============================================================================\n\nexport interface PipiclawCompactionSettings {\n\tenabled: boolean;\n\treserveTokens: number;\n\tkeepRecentTokens: number;\n}\n\nexport interface PipiclawRetrySettings {\n\tenabled: boolean;\n\tmaxRetries: number;\n\tbaseDelayMs: number;\n}\n\nexport interface PipiclawMemoryRecallSettings {\n\tenabled: boolean;\n\tmaxCandidates: number;\n\tmaxInjected: number;\n\tmaxChars: number;\n\trerankWithModel: boolean;\n}\n\nexport interface PipiclawSessionMemorySettings {\n\tenabled: boolean;\n\tminTurnsBetweenUpdate: number;\n\tminToolCallsBetweenUpdate: number;\n\ttimeoutMs: number;\n\tfailureBackoffTurns: number;\n\tforceRefreshBeforeCompact: boolean;\n\tforceRefreshBeforeNewSession: boolean;\n}\n\nexport interface PipiclawSettings {\n\tdefaultProvider?: string;\n\tdefaultModel?: string;\n\tdefaultThinkingLevel?: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\";\n\tcompaction?: Partial<PipiclawCompactionSettings>;\n\tretry?: Partial<PipiclawRetrySettings>;\n\tmemoryRecall?: Partial<PipiclawMemoryRecallSettings>;\n\tsessionMemory?: Partial<PipiclawSessionMemorySettings>;\n}\n\nconst DEFAULT_COMPACTION: PipiclawCompactionSettings = {\n\tenabled: true,\n\treserveTokens: 16384,\n\tkeepRecentTokens: 20000,\n};\n\nconst DEFAULT_RETRY: PipiclawRetrySettings = {\n\tenabled: true,\n\tmaxRetries: 3,\n\tbaseDelayMs: 2000,\n};\n\nconst DEFAULT_MEMORY_RECALL: PipiclawMemoryRecallSettings = {\n\tenabled: true,\n\tmaxCandidates: 12,\n\tmaxInjected: 5,\n\tmaxChars: 5000,\n\trerankWithModel: true,\n};\n\nconst DEFAULT_SESSION_MEMORY: PipiclawSessionMemorySettings = {\n\tenabled: true,\n\tminTurnsBetweenUpdate: 2,\n\tminToolCallsBetweenUpdate: 4,\n\ttimeoutMs: 30_000,\n\tfailureBackoffTurns: 3,\n\tforceRefreshBeforeCompact: true,\n\tforceRefreshBeforeNewSession: true,\n};\n\n/**\n * Settings manager for pipiclaw.\n * Stores global settings in the pipiclaw root directory.\n */\nexport class PipiclawSettingsManager {\n\tprivate settingsPath: string;\n\tprivate settings: PipiclawSettings;\n\n\tconstructor(baseDir: string) {\n\t\tthis.settingsPath = join(baseDir, \"settings.json\");\n\t\tthis.settings = this.load();\n\t}\n\n\tprivate load(): PipiclawSettings {\n\t\tif (!existsSync(this.settingsPath)) {\n\t\t\treturn {};\n\t\t}\n\n\t\ttry {\n\t\t\tconst content = readFileSync(this.settingsPath, \"utf-8\");\n\t\t\treturn JSON.parse(content);\n\t\t} catch {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\tprivate save(): void {\n\t\ttry {\n\t\t\tconst dir = dirname(this.settingsPath);\n\t\t\tif (!existsSync(dir)) {\n\t\t\t\tmkdirSync(dir, { recursive: true });\n\t\t\t}\n\t\t\twriteFileSync(this.settingsPath, JSON.stringify(this.settings, null, 2), \"utf-8\");\n\t\t} catch (error) {\n\t\t\tconsole.error(`Warning: Could not save settings file: ${error}`);\n\t\t}\n\t}\n\n\treload(): void {\n\t\tthis.settings = this.load();\n\t}\n\n\tgetCompactionSettings(): PipiclawCompactionSettings {\n\t\treturn {\n\t\t\t...DEFAULT_COMPACTION,\n\t\t\t...this.settings.compaction,\n\t\t};\n\t}\n\n\tgetCompactionEnabled(): boolean {\n\t\treturn this.settings.compaction?.enabled ?? DEFAULT_COMPACTION.enabled;\n\t}\n\n\tsetCompactionEnabled(enabled: boolean): void {\n\t\tthis.settings.compaction = { ...this.settings.compaction, enabled };\n\t\tthis.save();\n\t}\n\n\tgetRetrySettings(): PipiclawRetrySettings {\n\t\treturn {\n\t\t\t...DEFAULT_RETRY,\n\t\t\t...this.settings.retry,\n\t\t};\n\t}\n\n\tgetMemoryRecallSettings(): PipiclawMemoryRecallSettings {\n\t\treturn {\n\t\t\t...DEFAULT_MEMORY_RECALL,\n\t\t\t...this.settings.memoryRecall,\n\t\t};\n\t}\n\n\tgetSessionMemorySettings(): PipiclawSessionMemorySettings {\n\t\treturn {\n\t\t\t...DEFAULT_SESSION_MEMORY,\n\t\t\t...this.settings.sessionMemory,\n\t\t};\n\t}\n\n\tgetRetryEnabled(): boolean {\n\t\treturn this.settings.retry?.enabled ?? DEFAULT_RETRY.enabled;\n\t}\n\n\tsetRetryEnabled(enabled: boolean): void {\n\t\tthis.settings.retry = { ...this.settings.retry, enabled };\n\t\tthis.save();\n\t}\n\n\tgetDefaultModel(): string | undefined {\n\t\treturn this.settings.defaultModel;\n\t}\n\n\tgetDefaultProvider(): string | undefined {\n\t\treturn this.settings.defaultProvider;\n\t}\n\n\tsetDefaultModelAndProvider(provider: string, modelId: string): void {\n\t\tthis.settings.defaultProvider = provider;\n\t\tthis.settings.defaultModel = modelId;\n\t\tthis.save();\n\t}\n\n\tgetDefaultThinkingLevel(): \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | undefined {\n\t\treturn this.settings.defaultThinkingLevel || \"off\";\n\t}\n\n\tsetDefaultThinkingLevel(level: \"off\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\"): void {\n\t\tthis.settings.defaultThinkingLevel = level as PipiclawSettings[\"defaultThinkingLevel\"];\n\t\tthis.save();\n\t}\n\n\t// Compatibility methods for AgentSession\n\tgetSteeringMode(): \"all\" | \"one-at-a-time\" {\n\t\treturn \"one-at-a-time\";\n\t}\n\n\tsetSteeringMode(_mode: \"all\" | \"one-at-a-time\"): void {\n\t\t// No-op\n\t}\n\n\tgetFollowUpMode(): \"all\" | \"one-at-a-time\" {\n\t\treturn \"one-at-a-time\";\n\t}\n\n\tsetFollowUpMode(_mode: \"all\" | \"one-at-a-time\"): void {\n\t\t// No-op\n\t}\n\n\tgetHookPaths(): string[] {\n\t\treturn [];\n\t}\n\n\tgetHookTimeout(): number {\n\t\treturn 30000;\n\t}\n\n\t// Image settings\n\tgetImageAutoResize(): boolean {\n\t\treturn false;\n\t}\n\n\tsetImageAutoResize(_enabled: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetBlockImages(): boolean {\n\t\treturn false;\n\t}\n\n\tsetBlockImages(_blocked: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetShowImages(): boolean {\n\t\treturn false;\n\t}\n\n\tsetShowImages(_show: boolean): void {\n\t\t// No-op\n\t}\n\n\t// Compaction details\n\tgetCompactionReserveTokens(): number {\n\t\treturn DEFAULT_COMPACTION.reserveTokens;\n\t}\n\n\tgetCompactionKeepRecentTokens(): number {\n\t\treturn DEFAULT_COMPACTION.keepRecentTokens;\n\t}\n\n\tgetBranchSummarySettings(): { reserveTokens: number } {\n\t\treturn { reserveTokens: 16384 };\n\t}\n\n\tgetBranchSummarySkipPrompt(): boolean {\n\t\treturn false;\n\t}\n\n\t// Thinking\n\tgetHideThinkingBlock(): boolean {\n\t\treturn false;\n\t}\n\n\tsetHideThinkingBlock(_hide: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetThinkingBudgets(): ThinkingBudgetsSettings | undefined {\n\t\treturn undefined;\n\t}\n\n\t// Shell\n\tgetShellPath(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetShellPath(_path: string | undefined): void {\n\t\t// No-op\n\t}\n\n\tgetShellCommandPrefix(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetShellCommandPrefix(_prefix: string | undefined): void {\n\t\t// No-op\n\t}\n\n\t// Misc settings stubs\n\tgetQuietStartup(): boolean {\n\t\treturn true;\n\t}\n\n\tsetQuietStartup(_quiet: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetCollapseChangelog(): boolean {\n\t\treturn true;\n\t}\n\n\tsetCollapseChangelog(_collapse: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetTransport(): TransportSetting {\n\t\treturn \"auto\";\n\t}\n\n\tsetTransport(_transport: TransportSetting): void {\n\t\t// No-op\n\t}\n\n\tgetTheme(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetTheme(_theme: string): void {\n\t\t// No-op\n\t}\n\n\tgetPackages(): PackageSource[] {\n\t\treturn [];\n\t}\n\n\tsetPackages(_packages: PackageSource[]): void {\n\t\t// No-op\n\t}\n\n\tsetProjectPackages(_packages: PackageSource[]): void {\n\t\t// No-op\n\t}\n\n\tgetExtensionPaths(): string[] {\n\t\treturn [];\n\t}\n\n\tsetExtensionPaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tsetProjectExtensionPaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tgetSkillPaths(): string[] {\n\t\treturn [];\n\t}\n\n\tsetSkillPaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tsetProjectSkillPaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tgetPromptTemplatePaths(): string[] {\n\t\treturn [];\n\t}\n\n\tsetPromptTemplatePaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tsetProjectPromptTemplatePaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tgetThemePaths(): string[] {\n\t\treturn [];\n\t}\n\n\tsetThemePaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tsetProjectThemePaths(_paths: string[]): void {\n\t\t// No-op\n\t}\n\n\tgetEnableSkillCommands(): boolean {\n\t\treturn false;\n\t}\n\n\tsetEnableSkillCommands(_enabled: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetEnabledModels(): string[] | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetEnabledModels(_patterns: string[] | undefined): void {\n\t\t// No-op\n\t}\n\n\tgetDoubleEscapeAction(): \"none\" {\n\t\treturn \"none\";\n\t}\n\n\tsetDoubleEscapeAction(_action: \"fork\" | \"tree\" | \"none\"): void {\n\t\t// No-op\n\t}\n\n\tgetTreeFilterMode(): \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\" {\n\t\treturn \"default\";\n\t}\n\n\tsetTreeFilterMode(_mode: \"default\" | \"no-tools\" | \"user-only\" | \"labeled-only\" | \"all\"): void {\n\t\t// No-op\n\t}\n\n\tgetShowHardwareCursor(): boolean {\n\t\treturn false;\n\t}\n\n\tsetShowHardwareCursor(_enabled: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetClearOnShrink(): boolean {\n\t\treturn false;\n\t}\n\n\tsetClearOnShrink(_enabled: boolean): void {\n\t\t// No-op\n\t}\n\n\tgetEditorPaddingX(): number {\n\t\treturn 0;\n\t}\n\n\tsetEditorPaddingX(_padding: number): void {\n\t\t// No-op\n\t}\n\n\tgetAutocompleteMaxVisible(): number {\n\t\treturn 10;\n\t}\n\n\tsetAutocompleteMaxVisible(_maxVisible: number): void {\n\t\t// No-op\n\t}\n\n\tgetCodeBlockIndent(): string {\n\t\treturn \" \";\n\t}\n\n\tgetLastChangelogVersion(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetLastChangelogVersion(_version: string): void {\n\t\t// No-op\n\t}\n\n\tsetDefaultProvider(_provider: string): void {\n\t\t// No-op\n\t}\n\n\tsetDefaultModel(_modelId: string): void {\n\t\t// No-op\n\t}\n\n\tgetSessionDir(): string | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetNpmCommand(): string[] | undefined {\n\t\treturn undefined;\n\t}\n\n\tsetNpmCommand(_command: string[] | undefined): void {\n\t\t// No-op\n\t}\n\n\tgetGlobalSettings(): Settings {\n\t\treturn {};\n\t}\n\n\tgetProjectSettings(): Settings {\n\t\treturn {};\n\t}\n\n\tapplyOverrides(overrides: Partial<Settings>): void {\n\t\tif (overrides.defaultProvider !== undefined) this.settings.defaultProvider = overrides.defaultProvider;\n\t\tif (overrides.defaultModel !== undefined) this.settings.defaultModel = overrides.defaultModel;\n\t\tif (overrides.defaultThinkingLevel !== undefined) {\n\t\t\tthis.settings.defaultThinkingLevel = overrides.defaultThinkingLevel;\n\t\t}\n\t\tif (overrides.compaction !== undefined) {\n\t\t\tthis.settings.compaction = {\n\t\t\t\t...this.settings.compaction,\n\t\t\t\tenabled: overrides.compaction.enabled ?? this.settings.compaction?.enabled,\n\t\t\t\treserveTokens: overrides.compaction.reserveTokens ?? this.settings.compaction?.reserveTokens,\n\t\t\t\tkeepRecentTokens: overrides.compaction.keepRecentTokens ?? this.settings.compaction?.keepRecentTokens,\n\t\t\t};\n\t\t}\n\t\tif (overrides.retry !== undefined) {\n\t\t\tthis.settings.retry = {\n\t\t\t\t...this.settings.retry,\n\t\t\t\tenabled: overrides.retry.enabled ?? this.settings.retry?.enabled,\n\t\t\t\tmaxRetries: overrides.retry.maxRetries ?? this.settings.retry?.maxRetries,\n\t\t\t\tbaseDelayMs: overrides.retry.baseDelayMs ?? this.settings.retry?.baseDelayMs,\n\t\t\t};\n\t\t}\n\t\tthis.save();\n\t}\n\n\tflush(): Promise<void> {\n\t\treturn Promise.resolve();\n\t}\n\n\tdrainErrors(): SettingsError[] {\n\t\treturn [];\n\t}\n}\n"]}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACN,0BAA0B,EAC1B,sBAAsB,GAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgD,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrH,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIN,uBAAuB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEN,qBAAqB,GAErB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIN,wBAAwB,EACxB,sBAAsB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA4B,eAAe,EAA+B,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAIN,oBAAoB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,mBAAmB,EAGnB,0BAA0B,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,4BAA4B,EAC5B,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAkC,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAEN,WAAW,GAKX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,mBAAmB,EACnB,aAAa,GAKb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAA8C,MAAM,oBAAoB,CAAC;AAC9F,OAAO,EACN,cAAc,EAId,eAAe,EAEf,eAAe,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,cAAc,GAGd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,qBAAqB,GAOrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,kBAAkB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEN,uBAAuB,EACvB,mBAAmB,GACnB,MAAM,kBAAkB,CAAC","sourcesContent":["export { type AgentRunner, getOrCreateRunner } from \"./agent.js\";\nexport {\n\tCOMMAND_RESULT_CUSTOM_TYPE,\n\tcreateCommandExtension,\n\ttype PipiclawCommandExtensionOptions,\n} from \"./command-extension.js\";\nexport { type BuiltInCommand, type BuiltInCommandName, parseBuiltInCommand, renderBuiltInHelp } from \"./commands.js\";\nexport {\n\tgetAgentConfig,\n\tgetApiKeyForModel,\n\tgetSoul,\n\tloadPipiclawSkills,\n} from \"./config-loader.js\";\nexport {\n\ttype PipiclawMemoryRecallSettings,\n\ttype PipiclawSessionMemorySettings,\n\ttype PipiclawSettings,\n\tPipiclawSettingsManager,\n} from \"./context.js\";\nexport {\n\ttype BuildMemoryCandidatesOptions,\n\tbuildMemoryCandidates,\n\ttype MemoryCandidate,\n} from \"./memory/candidates.js\";\nexport {\n\ttype BackgroundMaintenanceResult,\n\ttype ConsolidationRunOptions,\n\ttype InlineConsolidationResult,\n\trunBackgroundMaintenance,\n\trunInlineConsolidation,\n} from \"./memory/consolidation.js\";\nexport {\n\tensureChannelMemoryFiles,\n\tensureChannelMemoryFilesSync,\n\tgetChannelSessionPath,\n\treadChannelSession,\n\trewriteChannelSession,\n} from \"./memory/files.js\";\nexport { type ConsolidationReason, MemoryLifecycle, type MemoryLifecycleOptions } from \"./memory/lifecycle.js\";\nexport {\n\ttype RecalledMemory,\n\ttype RecallRequest,\n\ttype RecallResult,\n\trecallRelevantMemory,\n} from \"./memory/recall.js\";\nexport {\n\trenderSessionMemory,\n\ttype SessionMemoryState,\n\ttype SessionMemoryUpdateOptions,\n\tupdateChannelSessionMemory,\n} from \"./memory/session.js\";\nexport {\n\tfindExactModelReferenceMatch,\n\tformatModelList,\n\tformatModelReference,\n\tresolveInitialModel,\n} from \"./model-utils.js\";\nexport {\n\tAPP_HOME_DIR,\n\tAPP_NAME,\n\tAUTH_CONFIG_PATH,\n\tCHANNEL_CONFIG_PATH,\n\tMODELS_CONFIG_PATH,\n\tSETTINGS_CONFIG_PATH,\n\tSUB_AGENTS_DIR,\n\tSUB_AGENTS_DIR_NAME,\n\tWORKSPACE_DIR,\n} from \"./paths.js\";\nexport { type AppendSystemPromptOptions, buildAppendSystemPrompt } from \"./prompt-builder.js\";\nexport { createDingTalkContext } from \"./runtime/delivery.js\";\nexport {\n\ttype BusyMessageMode,\n\tDingTalkBot,\n\ttype DingTalkConfig,\n\ttype DingTalkContext,\n\ttype DingTalkEvent,\n\ttype DingTalkHandler,\n} from \"./runtime/dingtalk.js\";\nexport {\n\tcreateEventsWatcher,\n\tEventsWatcher,\n\ttype ImmediateEvent,\n\ttype OneShotEvent,\n\ttype PeriodicEvent,\n\ttype ScheduledEvent,\n} from \"./runtime/events.js\";\nexport { ChannelStore, type LoggedMessage, type LoggedSubAgentRun } from \"./runtime/store.js\";\nexport {\n\tcreateExecutor,\n\ttype ExecOptions,\n\ttype ExecResult,\n\ttype Executor,\n\tparseSandboxArg,\n\ttype SandboxConfig,\n\tvalidateSandbox,\n} from \"./sandbox.js\";\nexport {\n\trunSidecarTask,\n\ttype SidecarResult,\n\ttype SidecarTask,\n} from \"./sidecar-worker.js\";\nexport {\n\tdiscoverSubAgents,\n\tformatSubAgentList,\n\tgetSubAgentsDir,\n\ttype ResolvedSubAgentConfig,\n\tresolveSubAgentConfig,\n\ttype SubAgentConfig,\n\ttype SubAgentContextMode,\n\ttype SubAgentDiscoveryResult,\n\ttype SubAgentInvocationOverrides,\n\ttype SubAgentMemoryMode,\n\ttype SubAgentToolName,\n} from \"./subagents/discovery.js\";\nexport {\n\tcreateSubAgentTool,\n\ttype SubAgentToolDetails,\n\ttype SubAgentToolOptions,\n} from \"./subagents/tool.js\";\nexport {\n\ttype CreatePipiclawToolsOptions,\n\tcreatePipiclawBaseTools,\n\tcreatePipiclawTools,\n} from \"./tools/index.js\";\n"]}
|
package/dist/llm-json.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-json.d.ts","sourceRoot":"","sources":["../src/llm-json.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AA4DD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
|
package/dist/llm-json.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-json.js","sourceRoot":"","sources":["../src/llm-json.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG3C,YAAY,OAAe,EAAE,OAAe;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD;AAED,SAAS,gBAAgB,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/D,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC3C,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAClB,KAAK,GAAG,KAAK,CAAC;gBACd,KAAK,GAAG,CAAC,CAAC;YACX,CAAC;YACD,SAAS;QACV,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS;YACV,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS;YACV,CAAC;YACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAClB,QAAQ,GAAG,KAAK,CAAC;YAClB,CAAC;YACD,SAAS;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,KAAK,EAAE,CAAC;YACR,SAAS;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAClB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,iBAAiB,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAuB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,IAAI,iBAAiB,CAAC,+DAA+D,EAAE,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["export class LlmJsonParseError extends Error {\n\treadonly rawText: string;\n\n\tconstructor(message: string, rawText: string) {\n\t\tsuper(message);\n\t\tthis.name = \"LlmJsonParseError\";\n\t\tthis.rawText = rawText;\n\t}\n}\n\nfunction extractFromFence(text: string): string | null {\n\tconst fenceMatch = text.match(/```(?:json)?\\s*([\\s\\S]*?)```/i);\n\treturn fenceMatch?.[1]?.trim() || null;\n}\n\nfunction findBalancedJsonObject(text: string): string | null {\n\tlet start = -1;\n\tlet depth = 0;\n\tlet inString = false;\n\tlet escaped = false;\n\n\tfor (let index = 0; index < text.length; index++) {\n\t\tconst char = text[index];\n\n\t\tif (start === -1) {\n\t\t\tif (char === \"{\") {\n\t\t\t\tstart = index;\n\t\t\t\tdepth = 1;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (inString) {\n\t\t\tif (escaped) {\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (char === \"\\\\\") {\n\t\t\t\tescaped = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (char === '\"') {\n\t\t\t\tinString = false;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '\"') {\n\t\t\tinString = true;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === \"{\") {\n\t\t\tdepth++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === \"}\") {\n\t\t\tdepth--;\n\t\t\tif (depth === 0) {\n\t\t\t\treturn text.slice(start, index + 1);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function extractJsonObject(text: string): string {\n\tconst trimmed = text.trim();\n\tif (!trimmed) {\n\t\tthrow new LlmJsonParseError(\"Model response was empty; expected a JSON object\", text);\n\t}\n\n\tconst candidates = [trimmed, extractFromFence(trimmed)].filter((candidate): candidate is string => !!candidate);\n\tfor (const candidate of candidates) {\n\t\tif (candidate.startsWith(\"{\") && candidate.endsWith(\"}\")) {\n\t\t\treturn candidate;\n\t\t}\n\t\tconst balanced = findBalancedJsonObject(candidate);\n\t\tif (balanced) {\n\t\t\treturn balanced;\n\t\t}\n\t}\n\n\tthrow new LlmJsonParseError(\"Could not locate a balanced JSON object in the model response\", text);\n}\n\nexport function parseJsonObject(text: string): unknown {\n\treturn JSON.parse(extractJsonObject(text));\n}\n"]}
|
package/dist/log.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAwDD,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAUlH;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAY1G;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAUvG;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAEtD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQnE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ/D;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAGpD;AAGD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ7E;AAGD,wBAAgB,eAAe,CAC9B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE;IACN,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9F,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAyCR;AAGD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIpE;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
package/dist/log.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\n\nexport interface LogContext {\n\tchannelId: string;\n\tuserName?: string;\n\tchannelName?: string;\n}\n\nfunction timestamp(): string {\n\tconst now = new Date();\n\tconst hh = String(now.getHours()).padStart(2, \"0\");\n\tconst mm = String(now.getMinutes()).padStart(2, \"0\");\n\tconst ss = String(now.getSeconds()).padStart(2, \"0\");\n\treturn `[${hh}:${mm}:${ss}]`;\n}\n\nfunction formatContext(ctx: LogContext): string {\n\t// DMs: [DM:username]\n\t// Groups: [group:channelId:username]\n\tif (ctx.channelId.startsWith(\"dm_\")) {\n\t\treturn `[DM:${ctx.userName || ctx.channelId}]`;\n\t}\n\tconst channel = ctx.channelName || ctx.channelId;\n\tconst user = ctx.userName || \"unknown\";\n\treturn `[${channel}:${user}]`;\n}\n\nfunction truncate(text: string, maxLen: number): string {\n\tif (text.length <= maxLen) return text;\n\treturn `${text.substring(0, maxLen)}\\n(truncated at ${maxLen} chars)`;\n}\n\nfunction formatToolArgs(args: Record<string, unknown>): string {\n\tconst lines: string[] = [];\n\n\tfor (const [key, value] of Object.entries(args)) {\n\t\tif (key === \"label\") continue;\n\n\t\tif (key === \"path\" && typeof value === \"string\") {\n\t\t\tconst offset = args.offset as number | undefined;\n\t\t\tconst limit = args.limit as number | undefined;\n\t\t\tif (offset !== undefined && limit !== undefined) {\n\t\t\t\tlines.push(`${value}:${offset}-${offset + limit}`);\n\t\t\t} else {\n\t\t\t\tlines.push(value);\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (key === \"offset\" || key === \"limit\") continue;\n\n\t\tif (typeof value === \"string\") {\n\t\t\tlines.push(value);\n\t\t} else {\n\t\t\tlines.push(JSON.stringify(value));\n\t\t}\n\t}\n\n\treturn lines.join(\"\\n\");\n}\n\n// User messages\nexport function logUserMessage(ctx: LogContext, text: string): void {\n\tconsole.log(chalk.green(`${timestamp()} ${formatContext(ctx)} ${text}`));\n}\n\n// Tool execution\nexport function logToolStart(ctx: LogContext, toolName: string, label: string, args: Record<string, unknown>): void {\n\tconst formattedArgs = formatToolArgs(args);\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} ↳ ${toolName}: ${label}`));\n\tif (formattedArgs) {\n\t\tconst indented = formattedArgs\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => ` ${line}`)\n\t\t\t.join(\"\\n\");\n\t\tconsole.log(chalk.dim(indented));\n\t}\n}\n\nexport function logToolSuccess(ctx: LogContext, toolName: string, durationMs: number, result: string): void {\n\tconst duration = (durationMs / 1000).toFixed(1);\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} ✓ ${toolName} (${duration}s)`));\n\n\tconst truncated = truncate(result, 1000);\n\tif (truncated) {\n\t\tconst indented = truncated\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => ` ${line}`)\n\t\t\t.join(\"\\n\");\n\t\tconsole.log(chalk.dim(indented));\n\t}\n}\n\nexport function logToolError(ctx: LogContext, toolName: string, durationMs: number, error: string): void {\n\tconst duration = (durationMs / 1000).toFixed(1);\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} ✗ ${toolName} (${duration}s)`));\n\n\tconst truncated = truncate(error, 1000);\n\tconst indented = truncated\n\t\t.split(\"\\n\")\n\t\t.map((line) => ` ${line}`)\n\t\t.join(\"\\n\");\n\tconsole.log(chalk.dim(indented));\n}\n\n// Response streaming\nexport function logResponseStart(ctx: LogContext): void {\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} → Streaming response...`));\n}\n\nexport function logThinking(ctx: LogContext, thinking: string): void {\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} 💭 Thinking`));\n\tconst truncated = truncate(thinking, 1000);\n\tconst indented = truncated\n\t\t.split(\"\\n\")\n\t\t.map((line) => ` ${line}`)\n\t\t.join(\"\\n\");\n\tconsole.log(chalk.dim(indented));\n}\n\nexport function logResponse(ctx: LogContext, text: string): void {\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} 💬 Response`));\n\tconst truncated = truncate(text, 1000);\n\tconst indented = truncated\n\t\t.split(\"\\n\")\n\t\t.map((line) => ` ${line}`)\n\t\t.join(\"\\n\");\n\tconsole.log(chalk.dim(indented));\n}\n\n// Control\nexport function logStopRequest(ctx: LogContext): void {\n\tconsole.log(chalk.green(`${timestamp()} ${formatContext(ctx)} stop`));\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} ⊗ Stop requested - aborting`));\n}\n\n// System\nexport function logInfo(message: string): void {\n\tconsole.log(chalk.blue(`${timestamp()} [system] ${message}`));\n}\n\nexport function logWarning(message: string, details?: string): void {\n\tconsole.log(chalk.yellow(`${timestamp()} [system] ⚠ ${message}`));\n\tif (details) {\n\t\tconst indented = details\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => ` ${line}`)\n\t\t\t.join(\"\\n\");\n\t\tconsole.log(chalk.dim(indented));\n\t}\n}\n\nexport function logAgentError(ctx: LogContext | \"system\", error: string): void {\n\tconst context = ctx === \"system\" ? \"[system]\" : formatContext(ctx);\n\tconsole.log(chalk.yellow(`${timestamp()} ${context} ✗ Agent error`));\n\tconst indented = error\n\t\t.split(\"\\n\")\n\t\t.map((line) => ` ${line}`)\n\t\t.join(\"\\n\");\n\tconsole.log(chalk.dim(indented));\n}\n\n// Usage summary\nexport function logUsageSummary(\n\tctx: LogContext,\n\tusage: {\n\t\tinput: number;\n\t\toutput: number;\n\t\tcacheRead: number;\n\t\tcacheWrite: number;\n\t\tcost: { input: number; output: number; cacheRead: number; cacheWrite: number; total: number };\n\t},\n\tcontextTokens?: number,\n\tcontextWindow?: number,\n): string {\n\tconst formatTokens = (count: number): string => {\n\t\tif (count < 1000) return count.toString();\n\t\tif (count < 10000) return `${(count / 1000).toFixed(1)}k`;\n\t\tif (count < 1000000) return `${Math.round(count / 1000)}k`;\n\t\treturn `${(count / 1000000).toFixed(1)}M`;\n\t};\n\n\tconst lines: string[] = [];\n\tlines.push(\"**Usage Summary**\");\n\tlines.push(`Tokens: ${usage.input.toLocaleString()} in, ${usage.output.toLocaleString()} out`);\n\tif (usage.cacheRead > 0 || usage.cacheWrite > 0) {\n\t\tlines.push(`Cache: ${usage.cacheRead.toLocaleString()} read, ${usage.cacheWrite.toLocaleString()} write`);\n\t}\n\tif (contextTokens && contextWindow) {\n\t\tconst contextPercent = ((contextTokens / contextWindow) * 100).toFixed(1);\n\t\tlines.push(`Context: ${formatTokens(contextTokens)} / ${formatTokens(contextWindow)} (${contextPercent}%)`);\n\t}\n\tlines.push(\n\t\t`Cost: $${usage.cost.input.toFixed(4)} in, $${usage.cost.output.toFixed(4)} out` +\n\t\t\t(usage.cacheRead > 0 || usage.cacheWrite > 0\n\t\t\t\t? `, $${usage.cost.cacheRead.toFixed(4)} cache read, $${usage.cost.cacheWrite.toFixed(4)} cache write`\n\t\t\t\t: \"\"),\n\t);\n\tlines.push(`**Total: $${usage.cost.total.toFixed(4)}**`);\n\n\tconst summary = lines.join(\"\\n\");\n\n\t// Log to console\n\tconsole.log(chalk.yellow(`${timestamp()} ${formatContext(ctx)} 💰 Usage`));\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t` ${usage.input.toLocaleString()} in + ${usage.output.toLocaleString()} out` +\n\t\t\t\t(usage.cacheRead > 0 || usage.cacheWrite > 0\n\t\t\t\t\t? ` (${usage.cacheRead.toLocaleString()} cache read, ${usage.cacheWrite.toLocaleString()} cache write)`\n\t\t\t\t\t: \"\") +\n\t\t\t\t` = $${usage.cost.total.toFixed(4)}`,\n\t\t),\n\t);\n\n\treturn summary;\n}\n\n// Startup\nexport function logStartup(workingDir: string, sandbox: string): void {\n\tconsole.log(\"Starting pipiclaw...\");\n\tconsole.log(` Working directory: ${workingDir}`);\n\tconsole.log(` Sandbox: ${sandbox}`);\n}\n\nexport function logConnected(): void {\n\tconsole.log(\"⚡️ pipiclaw connected and listening!\");\n\tconsole.log(\"\");\n}\n\nexport function logDisconnected(): void {\n\tconsole.log(\"pipiclaw disconnected.\");\n}\n"]}
|
package/dist/main.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|
package/dist/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEzE,KAAK,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACrD,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { bootstrap, isBootstrapExitError } from \"./runtime/bootstrap.js\";\n\nvoid bootstrap(process.argv).catch((error: unknown) => {\n\tif (isBootstrapExitError(error)) {\n\t\tprocess.exit(error.code);\n\t}\n\n\tconsole.error(error);\n\tprocess.exit(1);\n});\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/memory/bootstrap.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,+BAA+B;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CA8B9F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/memory/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,oCAAoC,GAAG,KAAK,CAAC;AACnD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,SAAS,gBAAgB,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,aAAqB,EAAE,eAAuB,EAAE,QAAgB;IACxF,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACf,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC;IACjG,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;IAC7D,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;AAClE,CAAC;AAQD,MAAM,UAAU,6BAA6B,CAAC,OAAwC;IACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,oCAAoC,CAAC;IAC1E,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAElE,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAa;QAC1B,2BAA2B;QAC3B,mEAAmE;QACnE,iFAAiF;KACjF,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7G,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,CACZ,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CACpG,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import { clipText } from \"../shared/text-utils.js\";\n\nconst FIRST_TURN_MEMORY_SNAPSHOT_MAX_CHARS = 3_000;\nconst MIN_SECTION_BUDGET = 600;\nconst CHANNEL_MEMORY_WEIGHT = 0.6;\n\nfunction normalizeContent(content: string): string {\n\treturn content.replace(/\\r/g, \"\").trim();\n}\n\nfunction allocateBudgets(channelMemory: string, workspaceMemory: string, maxChars: number): [number, number] {\n\tif (!channelMemory && !workspaceMemory) {\n\t\treturn [0, 0];\n\t}\n\tif (!channelMemory) {\n\t\treturn [0, maxChars];\n\t}\n\tif (!workspaceMemory) {\n\t\treturn [maxChars, 0];\n\t}\n\n\tconst channelBudget = Math.max(MIN_SECTION_BUDGET, Math.floor(maxChars * CHANNEL_MEMORY_WEIGHT));\n\tconst workspaceBudget = Math.max(MIN_SECTION_BUDGET, maxChars - channelBudget);\n\tconst remainder = maxChars - channelBudget - workspaceBudget;\n\treturn [channelBudget + Math.max(0, remainder), workspaceBudget];\n}\n\nexport interface FirstTurnMemoryBootstrapOptions {\n\tchannelMemory: string;\n\tworkspaceMemory: string;\n\tmaxChars?: number;\n}\n\nexport function buildFirstTurnMemoryBootstrap(options: FirstTurnMemoryBootstrapOptions): string {\n\tconst maxChars = options.maxChars ?? FIRST_TURN_MEMORY_SNAPSHOT_MAX_CHARS;\n\tconst channelMemory = normalizeContent(options.channelMemory);\n\tconst workspaceMemory = normalizeContent(options.workspaceMemory);\n\n\tif (!channelMemory && !workspaceMemory) {\n\t\treturn \"\";\n\t}\n\n\tconst [channelBudget, workspaceBudget] = allocateBudgets(channelMemory, workspaceMemory, maxChars);\n\tconst sections: string[] = [\n\t\t\"<durable_memory_snapshot>\",\n\t\t\"Durable memory bootstrap for the first user turn in this session.\",\n\t\t\"Use it as background context together with any turn-specific recalled snippets.\",\n\t];\n\n\tif (channelMemory) {\n\t\tsections.push(\"\", \"[Channel MEMORY.md]\");\n\t\tsections.push(channelBudget > 0 ? clipText(channelMemory, channelBudget, { headRatio: 1 }) : channelMemory);\n\t}\n\n\tif (workspaceMemory) {\n\t\tsections.push(\"\", \"[Workspace MEMORY.md]\");\n\t\tsections.push(\n\t\t\tworkspaceBudget > 0 ? clipText(workspaceMemory, workspaceBudget, { headRatio: 1 }) : workspaceMemory,\n\t\t);\n\t}\n\n\tsections.push(\"</durable_memory_snapshot>\");\n\treturn sections.join(\"\\n\");\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/memory/candidates.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;CACjD;AAED,wBAAgB,0BAA0B,IAAI,oBAAoB,CAIjE;AAyID,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB7G"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/memory/candidates.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"fs/promises\";\nimport { join } from \"path\";\nimport { splitH1Sections, splitH2Sections } from \"../shared/markdown-sections.js\";\nimport { getChannelHistoryPath, getChannelMemoryPath, getChannelSessionPath } from \"./files.js\";\n\nexport interface MemoryCandidate {\n\tid: string;\n\tsource: \"workspace-memory\" | \"channel-memory\" | \"channel-session\" | \"channel-history\";\n\tpath: string;\n\ttitle: string;\n\tcontent: string;\n\tsearchText?: string;\n\ttimestamp?: string;\n\tsectionKind?: string;\n\tpriority: number;\n}\n\nexport interface BuildMemoryCandidatesOptions {\n\tworkspaceDir: string;\n\tchannelDir: string;\n\tcache?: MemoryCandidateCache;\n}\n\nexport interface MemoryCandidateCache {\n\tentries: Map<string, Promise<MemoryCandidate[]>>;\n}\n\nexport function createMemoryCandidateCache(): MemoryCandidateCache {\n\treturn {\n\t\tentries: new Map(),\n\t};\n}\n\nfunction normalizeContent(content: string): string {\n\treturn content.replace(/\\r/g, \"\").trim();\n}\n\nasync function readOptionalFile(path: string): Promise<string> {\n\ttry {\n\t\treturn normalizeContent(await readFile(path, \"utf-8\"));\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nfunction slugify(value: string): string {\n\treturn (\n\t\tvalue\n\t\t\t.toLowerCase()\n\t\t\t.replace(/[^a-z0-9]+/g, \"-\")\n\t\t\t.replace(/^-+|-+$/g, \"\") || \"section\"\n\t);\n}\n\nfunction inferPriority(source: MemoryCandidate[\"source\"], title: string): number {\n\tconst normalizedTitle = title.trim().toLowerCase();\n\tif (source === \"channel-session\") {\n\t\tif (normalizedTitle === \"current state\") return 18;\n\t\tif (normalizedTitle === \"next steps\") return 17;\n\t\tif (normalizedTitle === \"errors & corrections\") return 16;\n\t\tif (normalizedTitle === \"constraints\") return 15;\n\t\tif (normalizedTitle === \"user intent\") return 15;\n\t\tif (normalizedTitle === \"active files\") return 14;\n\t\tif (normalizedTitle === \"decisions\") return 14;\n\t\tif (normalizedTitle === \"session title\") return 13;\n\t\treturn 12;\n\t}\n\tif (source === \"channel-memory\") {\n\t\tif (normalizedTitle.includes(\"constraints\")) return 11;\n\t\tif (normalizedTitle.includes(\"decisions\")) return 10;\n\t\tif (normalizedTitle.includes(\"open loops\")) return 10;\n\t\tif (normalizedTitle.includes(\"preferences\")) return 9;\n\t\tif (normalizedTitle.includes(\"ongoing work\")) return 9;\n\t\treturn 8;\n\t}\n\tif (source === \"workspace-memory\") {\n\t\treturn 6;\n\t}\n\treturn 4;\n}\n\nfunction buildCandidate(\n\tsource: MemoryCandidate[\"source\"],\n\tpath: string,\n\ttitle: string,\n\tcontent: string,\n\ttimestamp?: string,\n\tsearchText?: string,\n): MemoryCandidate {\n\treturn {\n\t\tid: `${source}:${slugify(title)}:${timestamp ?? \"\"}`,\n\t\tsource,\n\t\tpath,\n\t\ttitle,\n\t\tcontent,\n\t\tsearchText,\n\t\ttimestamp,\n\t\tsectionKind: title.trim().toLowerCase(),\n\t\tpriority: inferPriority(source, title),\n\t};\n}\n\nfunction buildCacheKey(options: BuildMemoryCandidatesOptions): string {\n\treturn `${options.workspaceDir}\\u0000${options.channelDir}`;\n}\n\nfunction buildWorkspaceOrChannelMemoryCandidates(\n\tsource: \"workspace-memory\" | \"channel-memory\",\n\tpath: string,\n\tcontent: string,\n): MemoryCandidate[] {\n\tconst sections = splitH2Sections(content);\n\tif (sections.length === 0 && content) {\n\t\treturn [\n\t\t\tbuildCandidate(source, path, source === \"workspace-memory\" ? \"Workspace Memory\" : \"Channel Memory\", content),\n\t\t];\n\t}\n\n\treturn sections\n\t\t.filter((section) => section.content.trim())\n\t\t.map((section) => buildCandidate(source, path, section.heading, section.content));\n}\n\nfunction buildSessionCandidates(path: string, content: string): MemoryCandidate[] {\n\tconst sections = splitH1Sections(content).filter((section) => section.content.trim());\n\tconst sessionTitle = sections.find((section) => section.heading.toLowerCase() === \"session title\")?.content ?? \"\";\n\n\treturn sections.map((section) =>\n\t\tbuildCandidate(\n\t\t\t\"channel-session\",\n\t\t\tpath,\n\t\t\tsection.heading,\n\t\t\tsection.content,\n\t\t\tundefined,\n\t\t\tsection.heading.toLowerCase() === \"session title\" || !sessionTitle.trim()\n\t\t\t\t? section.content\n\t\t\t\t: `${sessionTitle.trim()}\\n${section.content}`,\n\t\t),\n\t);\n}\n\nfunction buildHistoryCandidates(path: string, content: string): MemoryCandidate[] {\n\treturn splitH2Sections(content)\n\t\t.filter((section) => section.content.trim())\n\t\t.map((section) => buildCandidate(\"channel-history\", path, section.heading, section.content, section.heading));\n}\n\nasync function buildMemoryCandidatesUncached(options: BuildMemoryCandidatesOptions): Promise<MemoryCandidate[]> {\n\tconst workspaceMemoryPath = join(options.workspaceDir, \"MEMORY.md\");\n\tconst channelMemoryPath = getChannelMemoryPath(options.channelDir);\n\tconst channelSessionPath = getChannelSessionPath(options.channelDir);\n\tconst channelHistoryPath = getChannelHistoryPath(options.channelDir);\n\n\tconst [workspaceMemory, channelMemory, channelSession, channelHistory] = await Promise.all([\n\t\treadOptionalFile(workspaceMemoryPath),\n\t\treadOptionalFile(channelMemoryPath),\n\t\treadOptionalFile(channelSessionPath),\n\t\treadOptionalFile(channelHistoryPath),\n\t]);\n\n\treturn [\n\t\t...buildSessionCandidates(channelSessionPath, channelSession),\n\t\t...buildWorkspaceOrChannelMemoryCandidates(\"channel-memory\", channelMemoryPath, channelMemory),\n\t\t...buildWorkspaceOrChannelMemoryCandidates(\"workspace-memory\", workspaceMemoryPath, workspaceMemory),\n\t\t...buildHistoryCandidates(channelHistoryPath, channelHistory),\n\t];\n}\n\nexport async function buildMemoryCandidates(options: BuildMemoryCandidatesOptions): Promise<MemoryCandidate[]> {\n\tif (!options.cache) {\n\t\treturn buildMemoryCandidatesUncached(options);\n\t}\n\n\tconst key = buildCacheKey(options);\n\tconst cached = options.cache.entries.get(key);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst pending = buildMemoryCandidatesUncached(options).catch((error) => {\n\t\toptions.cache?.entries.delete(key);\n\t\tthrow error;\n\t});\n\toptions.cache.entries.set(key, pending);\n\treturn pending;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chinese-words.d.ts","sourceRoot":"","sources":["../../src/memory/chinese-words.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,aAgN/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chinese-words.js","sourceRoot":"","sources":["../../src/memory/chinese-words.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS;IACnD,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;CACN,CAAC,CAAC","sourcesContent":["export const COMMON_CHINESE_WORDS = new Set<string>([\n\t\"当前状态\",\n\t\"当前工作\",\n\t\"工作状态\",\n\t\"会话状态\",\n\t\"任务状态\",\n\t\"当前任务\",\n\t\"工作进度\",\n\t\"用户意图\",\n\t\"活跃文件\",\n\t\"错误修正\",\n\t\"下一步\",\n\t\"接下来\",\n\t\"后续步骤\",\n\t\"后续计划\",\n\t\"待办事项\",\n\t\"开放问题\",\n\t\"开放循环\",\n\t\"关键事实\",\n\t\"设计决策\",\n\t\"关键决策\",\n\t\"约束条件\",\n\t\"技术约束\",\n\t\"兼容要求\",\n\t\"接口稳定\",\n\t\"协议变更\",\n\t\"修复方案\",\n\t\"实现方案\",\n\t\"优化方案\",\n\t\"根因分析\",\n\t\"问题定位\",\n\t\"错误信息\",\n\t\"调试过程\",\n\t\"排查过程\",\n\t\"实现细节\",\n\t\"调用链路\",\n\t\"模块边界\",\n\t\"领域边界\",\n\t\"文件路径\",\n\t\"运行时\",\n\t\"子代理\",\n\t\"工具调用\",\n\t\"上下文\",\n\t\"上下文恢复\",\n\t\"上下文窗口\",\n\t\"上下文注入\",\n\t\"注入上下文\",\n\t\"当前问题\",\n\t\"历史问题\",\n\t\"历史记录\",\n\t\"历史恢复\",\n\t\"历史叙事\",\n\t\"历史块\",\n\t\"摘要块\",\n\t\"发布记录\",\n\t\"部署记录\",\n\t\"旧发布\",\n\t\"旧记录\",\n\t\"早期历史\",\n\t\"过去工作\",\n\t\"长期任务\",\n\t\"短对话\",\n\t\"短问答\",\n\t\"自然结束\",\n\t\"对话结束\",\n\t\"会话切换\",\n\t\"当前目录\",\n\t\"代码实现\",\n\t\"类型检查\",\n\t\"单元测试\",\n\t\"集成测试\",\n\t\"回归测试\",\n\t\"测试覆盖\",\n\t\"回归风险\",\n\t\"默认配置\",\n\t\"配置项\",\n\t\"参数选择\",\n\t\"超时设置\",\n\t\"内容截断\",\n\t\"内存清理\",\n\t\"背景维护\",\n\t\"增量更新\",\n\t\"历史折叠\",\n\t\"持久化\",\n\t\"一致性\",\n\t\"可靠性\",\n\t\"稳定性\",\n\t\"兼容性\",\n\t\"相关性\",\n\t\"评分模型\",\n\t\"检索候选\",\n\t\"候选集合\",\n\t\"召回候选\",\n\t\"中文分词\",\n\t\"词表分词\",\n\t\"最大匹配\",\n\t\"服务器\",\n\t\"数据库\",\n\t\"数据表\",\n\t\"缓存\",\n\t\"队列\",\n\t\"网络\",\n\t\"集群\",\n\t\"容器\",\n\t\"网关\",\n\t\"代理服务\",\n\t\"负载均衡\",\n\t\"配置中心\",\n\t\"注册中心\",\n\t\"消息队列\",\n\t\"对象存储\",\n\t\"日志系统\",\n\t\"监控系统\",\n\t\"告警系统\",\n\t\"文件系统\",\n\t\"函数\",\n\t\"变量\",\n\t\"常量\",\n\t\"接口\",\n\t\"类型定义\",\n\t\"类型系统\",\n\t\"模块\",\n\t\"组件\",\n\t\"服务层\",\n\t\"数据层\",\n\t\"控制层\",\n\t\"依赖注入\",\n\t\"继承关系\",\n\t\"抽象层\",\n\t\"实现层\",\n\t\"状态管理\",\n\t\"异常处理\",\n\t\"错误处理\",\n\t\"并发控制\",\n\t\"并发请求\",\n\t\"异步任务\",\n\t\"同步调用\",\n\t\"回调函数\",\n\t\"中间件\",\n\t\"过滤器\",\n\t\"拦截器\",\n\t\"路由配置\",\n\t\"认证授权\",\n\t\"用户认证\",\n\t\"权限控制\",\n\t\"会话管理\",\n\t\"请求参数\",\n\t\"响应结果\",\n\t\"接口调用\",\n\t\"请求头\",\n\t\"响应头\",\n\t\"重试机制\",\n\t\"降级策略\",\n\t\"熔断机制\",\n\t\"事务处理\",\n\t\"事务回滚\",\n\t\"索引优化\",\n\t\"数据迁移\",\n\t\"数据同步\",\n\t\"备份恢复\",\n\t\"锁机制\",\n\t\"乐观锁\",\n\t\"悲观锁\",\n\t\"死锁问题\",\n\t\"查询语句\",\n\t\"分页查询\",\n\t\"条件过滤\",\n\t\"批量操作\",\n\t\"性能问题\",\n\t\"性能优化\",\n\t\"内存泄漏\",\n\t\"资源释放\",\n\t\"构建流程\",\n\t\"编译过程\",\n\t\"打包流程\",\n\t\"发布流程\",\n\t\"回滚方案\",\n\t\"需求分析\",\n\t\"方案设计\",\n\t\"实现阶段\",\n\t\"测试阶段\",\n\t\"部署阶段\",\n\t\"上线过程\",\n\t\"故障排查\",\n\t\"故障恢复\",\n\t\"终端命令\",\n\t\"调试器\",\n\t\"编辑器\",\n\t\"浏览器\",\n\t\"编译器\",\n\t\"构建工具\",\n\t\"打包工具\",\n\t\"认证回调\",\n\t\"回调状态\",\n\t\"回调验证\",\n\t\"状态处理\",\n\t\"状态流转\",\n\t\"登录异常\",\n\t\"登录失败\",\n\t\"修复登录\",\n\t\"生产环境\",\n\t\"工作区\",\n\t\"频道记忆\",\n\t\"记忆系统\",\n\t\"记忆子系统\",\n\t\"持久记忆\",\n\t\"工作记忆\",\n\t\"会话记忆\",\n]);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../src/memory/consolidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAA6B,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAEN,KAAK,YAAY,EAGjB,MAAM,+BAA+B,CAAC;AAoFvC,MAAM,WAAW,uBAAuB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACvB;AA0HD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAkCjH;AA8DD,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAQrH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"consolidation.js","sourceRoot":"","sources":["../../src/memory/consolidation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@mariozechner/pi-agent-core\";\nimport type { Api, AssistantMessage, Message, Model } from \"@mariozechner/pi-ai\";\nimport {\n\tgetLatestCompactionEntry,\n\ttype SessionEntry,\n\ttype SessionMessageEntry,\n\tserializeConversation,\n} from \"@mariozechner/pi-coding-agent\";\nimport { parseJsonObject } from \"../llm-json.js\";\nimport { splitH2Sections } from \"../shared/markdown-sections.js\";\nimport { clipText } from \"../shared/text-utils.js\";\nimport { buildStandardMessages } from \"../shared/type-guards.js\";\nimport { runSidecarTask } from \"../sidecar-worker.js\";\nimport {\n\tappendChannelHistoryBlock,\n\tappendChannelMemoryUpdate,\n\treadChannelHistory,\n\treadChannelMemory,\n\treadChannelSession,\n\trewriteChannelHistory,\n\trewriteChannelMemory,\n} from \"./files.js\";\n\nconst INLINE_TRANSCRIPT_MAX_CHARS = 28_000;\nconst MEMORY_CLEANUP_LENGTH_THRESHOLD = 5_000;\nconst MEMORY_UPDATE_BLOCK_THRESHOLD = 4;\nconst HISTORY_LENGTH_THRESHOLD = 8_000;\nconst HISTORY_BLOCK_THRESHOLD = 5;\nconst HISTORY_RECENT_BLOCKS_TO_KEEP = 3;\nconst INLINE_CONSOLIDATION_TIMEOUT_MS = 20_000;\nconst MEMORY_CLEANUP_TIMEOUT_MS = 30_000;\nconst HISTORY_FOLDING_TIMEOUT_MS = 30_000;\n\nconst INLINE_CONSOLIDATION_SYSTEM_PROMPT = `You are a runtime memory consolidation worker for Pipiclaw.\n\nReturn strict JSON only. Do not wrap in Markdown fences.\n\nOutput schema:\n{\n \"memoryEntries\": [\"string\"],\n \"historyBlock\": \"string\"\n}\n\nRules:\n- memoryEntries: concise durable facts, decisions, preferences, constraints, current work state, or open loops that should survive compaction.\n- Each memoryEntries item must be a standalone sentence fragment suitable for a Markdown bullet without the bullet prefix.\n- Do not include raw transcript quotes unless essential.\n- Do not include ephemeral chatter, obvious one-shot acknowledgements, or formatting instructions.\n- Prefer leaving highly volatile step-by-step execution state in SESSION.md rather than promoting it into durable memory.\n- historyBlock: concise Markdown summarizing the conversation chunk for later recovery.\n- For any conversation that contains at least one meaningful user request and one meaningful assistant reply, return a non-empty historyBlock with at least one bullet.\n- Prefer short bullets and short paragraphs.\n- If there is nothing worth storing, return empty values.\n\nExample output for a short useful exchange:\n{\n \"memoryEntries\": [\"User prefers dark mode in the dashboard\"],\n \"historyBlock\": \"- User asked how to toggle dashboard theme; confirmed dark mode preference.\"\n}`;\n\nconst MEMORY_CLEANUP_SYSTEM_PROMPT = `You are rewriting a Pipiclaw channel MEMORY.md file.\n\nReturn Markdown only. Do not use code fences.\n\nGoals:\n- Keep only durable and useful channel memory.\n- Remove outdated entries, duplicates, and verbose phrasing.\n- Organize the result with stable sections where relevant.\n- Prefer concise bullets over prose.\n- Remove content that is clearly transient session-state and belongs in SESSION.md instead.\n\nSuggested sections:\n- ## Identity / Participants\n- ## Preferences\n- ## Ongoing Work\n- ## Constraints\n- ## Decisions\n- ## Open Loops\n\nOmit empty sections.`;\n\nconst HISTORY_FOLDING_SYSTEM_PROMPT = `You are folding older HISTORY.md blocks for Pipiclaw.\n\nReturn Markdown only. Do not use code fences.\n\nGoals:\n- Compress older history blocks into one concise summary block.\n- Keep important decisions, milestones, and unresolved outcomes.\n- Remove redundancy and transcript-like detail.\n- Preserve a chronological narrative at a high level.`;\n\nexport interface ConsolidationRunOptions {\n\tchannelDir: string;\n\tmodel: Model<Api>;\n\tresolveApiKey: (model: Model<Api>) => Promise<string>;\n\tmessages: AgentMessage[];\n\tsessionEntries?: SessionEntry[];\n}\n\nexport interface InlineConsolidationResult {\n\tskipped: boolean;\n\tappendedMemoryEntries: number;\n\tappendedHistoryBlock: boolean;\n}\n\nexport interface BackgroundMaintenanceResult {\n\tcleanedMemory: boolean;\n\tfoldedHistory: boolean;\n}\n\ninterface ConsolidationResponse {\n\tmemoryEntries: string[];\n\thistoryBlock: string;\n}\n\nfunction normalizeText(text: string): string {\n\treturn text.replace(/\\r/g, \"\").trim();\n}\n\nfunction parseConsolidationResponse(text: string): ConsolidationResponse {\n\tconst parsed = parseJsonObject(text) as Partial<ConsolidationResponse>;\n\treturn {\n\t\tmemoryEntries: Array.isArray(parsed.memoryEntries)\n\t\t\t? parsed.memoryEntries\n\t\t\t\t\t.map((entry) => (typeof entry === \"string\" ? entry.trim() : \"\"))\n\t\t\t\t\t.filter((entry) => entry.length > 0)\n\t\t\t: [],\n\t\thistoryBlock: typeof parsed.historyBlock === \"string\" ? parsed.historyBlock.trim() : \"\",\n\t};\n}\n\nfunction getLatestCompactionBoundary(entries: SessionEntry[]): number {\n\tconst latestCompaction = getLatestCompactionEntry(entries);\n\tif (!latestCompaction) {\n\t\treturn 0;\n\t}\n\n\tconst boundaryIndex = entries.findIndex((entry) => entry.id === latestCompaction.firstKeptEntryId);\n\treturn boundaryIndex >= 0 ? boundaryIndex : 0;\n}\n\nfunction isMessage(entry: SessionEntry): entry is SessionMessageEntry {\n\treturn entry.type === \"message\";\n}\n\nfunction extractMessagesFromSessionEntries(entries: SessionEntry[]): AgentMessage[] {\n\treturn entries.filter(isMessage).map((entry) => entry.message);\n}\n\nfunction hasMeaningfulMessages(messages: Message[]): boolean {\n\tlet meaningfulCount = 0;\n\tfor (const message of messages) {\n\t\tif (message.role === \"user\") {\n\t\t\tconst text =\n\t\t\t\ttypeof message.content === \"string\"\n\t\t\t\t\t? message.content\n\t\t\t\t\t: message.content.map((part) => (part.type === \"text\" ? part.text : \"[image]\")).join(\"\\n\");\n\t\t\tif (text.trim()) meaningfulCount++;\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tconst text = message.content\n\t\t\t\t.filter(\n\t\t\t\t\t(part): part is Extract<AssistantMessage[\"content\"][number], { type: \"text\" }> => part.type === \"text\",\n\t\t\t\t)\n\t\t\t\t.map((part) => part.text)\n\t\t\t\t.join(\"\\n\");\n\t\t\tif (text.trim()) meaningfulCount++;\n\t\t}\n\t\tif (meaningfulCount >= 2) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction countMatchingSectionHeadings(content: string, prefix: string): number {\n\treturn splitH2Sections(content).filter((section) => section.heading.startsWith(prefix)).length;\n}\n\nasync function runWorkerPrompt(\n\tname: string,\n\tmodel: Model<Api>,\n\tresolveApiKey: (model: Model<Api>) => Promise<string>,\n\tsystemPrompt: string,\n\tprompt: string,\n\ttimeoutMs: number,\n): Promise<string> {\n\tconst result = await runSidecarTask({\n\t\tname,\n\t\tmodel,\n\t\tresolveApiKey,\n\t\tsystemPrompt,\n\t\tprompt,\n\t\ttimeoutMs,\n\t\tparse: (text) => text.trim(),\n\t});\n\treturn result.output;\n}\n\nasync function buildInlineConsolidationResponse(\n\toptions: ConsolidationRunOptions,\n\tmessages: Message[],\n): Promise<ConsolidationResponse> {\n\tconst transcript = clipText(serializeConversation(messages), INLINE_TRANSCRIPT_MAX_CHARS, { headRatio: 0.35 });\n\tconst currentMemory = clipText(await readChannelMemory(options.channelDir), 8_000, { headRatio: 0.35 });\n\tconst currentSession = clipText(await readChannelSession(options.channelDir), 8_000, { headRatio: 0.35 });\n\tconst currentHistory = clipText(await readChannelHistory(options.channelDir), 8_000, { headRatio: 0.35 });\n\n\tconst prompt = `Current SESSION.md:\n${currentSession || \"(empty)\"}\n\nChannel memory file:\n${currentMemory || \"(empty)\"}\n\nChannel history file:\n${currentHistory || \"(empty)\"}\n\nConversation chunk to persist:\n${transcript || \"(empty)\"}`;\n\n\tconst rawResponse = await runWorkerPrompt(\n\t\t\"memory-inline-consolidation\",\n\t\toptions.model,\n\t\toptions.resolveApiKey,\n\t\tINLINE_CONSOLIDATION_SYSTEM_PROMPT,\n\t\tprompt,\n\t\tINLINE_CONSOLIDATION_TIMEOUT_MS,\n\t);\n\treturn parseConsolidationResponse(rawResponse);\n}\n\nexport async function runInlineConsolidation(options: ConsolidationRunOptions): Promise<InlineConsolidationResult> {\n\tconst sourceEntries = options.sessionEntries ?? [];\n\tconst relevantEntries =\n\t\tsourceEntries.length > 0 ? sourceEntries.slice(getLatestCompactionBoundary(sourceEntries)) : sourceEntries;\n\tconst relevantMessages = buildStandardMessages(\n\t\trelevantEntries.length > 0 ? extractMessagesFromSessionEntries(relevantEntries) : options.messages,\n\t);\n\n\tif (!hasMeaningfulMessages(relevantMessages)) {\n\t\treturn { skipped: true, appendedMemoryEntries: 0, appendedHistoryBlock: false };\n\t}\n\n\tconst response = await buildInlineConsolidationResponse(options, relevantMessages);\n\tconst timestamp = new Date().toISOString();\n\n\tif (response.memoryEntries.length > 0) {\n\t\tawait appendChannelMemoryUpdate(options.channelDir, {\n\t\t\ttimestamp,\n\t\t\tentries: response.memoryEntries,\n\t\t});\n\t}\n\n\tif (response.historyBlock.trim()) {\n\t\tawait appendChannelHistoryBlock(options.channelDir, {\n\t\t\ttimestamp,\n\t\t\tcontent: response.historyBlock,\n\t\t});\n\t}\n\n\treturn {\n\t\tskipped: false,\n\t\tappendedMemoryEntries: response.memoryEntries.length,\n\t\tappendedHistoryBlock: response.historyBlock.trim().length > 0,\n\t};\n}\n\nasync function cleanupChannelMemory(options: ConsolidationRunOptions, currentMemory: string): Promise<boolean> {\n\tif (\n\t\tcurrentMemory.length < MEMORY_CLEANUP_LENGTH_THRESHOLD &&\n\t\tcountMatchingSectionHeadings(currentMemory, \"Update \") < MEMORY_UPDATE_BLOCK_THRESHOLD\n\t) {\n\t\treturn false;\n\t}\n\n\tconst prompt = `Current MEMORY.md:\n${currentMemory}`;\n\tconst nextMemory = await runWorkerPrompt(\n\t\t\"memory-cleanup\",\n\t\toptions.model,\n\t\toptions.resolveApiKey,\n\t\tMEMORY_CLEANUP_SYSTEM_PROMPT,\n\t\tprompt,\n\t\tMEMORY_CLEANUP_TIMEOUT_MS,\n\t);\n\tawait rewriteChannelMemory(options.channelDir, nextMemory);\n\treturn true;\n}\n\nasync function foldChannelHistory(options: ConsolidationRunOptions, currentHistory: string): Promise<boolean> {\n\tconst sections = splitH2Sections(currentHistory);\n\tif (currentHistory.length < HISTORY_LENGTH_THRESHOLD && sections.length < HISTORY_BLOCK_THRESHOLD) {\n\t\treturn false;\n\t}\n\n\tif (sections.length <= HISTORY_RECENT_BLOCKS_TO_KEEP) {\n\t\treturn false;\n\t}\n\n\tconst olderSections = sections.slice(0, -HISTORY_RECENT_BLOCKS_TO_KEEP);\n\tconst recentSections = sections.slice(-HISTORY_RECENT_BLOCKS_TO_KEEP);\n\tconst prompt = `Older history blocks to fold:\n${olderSections.map((section) => `## ${section.heading}\\n\\n${section.content}`).join(\"\\n\\n\")}`;\n\tconst foldedSummary = await runWorkerPrompt(\n\t\t\"history-folding\",\n\t\toptions.model,\n\t\toptions.resolveApiKey,\n\t\tHISTORY_FOLDING_SYSTEM_PROMPT,\n\t\tprompt,\n\t\tHISTORY_FOLDING_TIMEOUT_MS,\n\t);\n\n\tconst foldedHeading = `## Folded History Through ${olderSections[olderSections.length - 1]?.heading ?? new Date().toISOString()}`;\n\tconst rebuiltHistory = [\n\t\t\"# Channel History\",\n\t\t\"\",\n\t\tfoldedHeading,\n\t\t\"\",\n\t\tnormalizeText(foldedSummary),\n\t\t\"\",\n\t\t...recentSections.flatMap((section) => [`## ${section.heading}`, \"\", normalizeText(section.content), \"\"]),\n\t].join(\"\\n\");\n\n\tawait rewriteChannelHistory(options.channelDir, rebuiltHistory);\n\treturn true;\n}\n\nexport async function runBackgroundMaintenance(options: ConsolidationRunOptions): Promise<BackgroundMaintenanceResult> {\n\tconst currentMemory = await readChannelMemory(options.channelDir);\n\tconst currentHistory = await readChannelHistory(options.channelDir);\n\n\tconst cleanedMemory = await cleanupChannelMemory(options, currentMemory);\n\tconst foldedHistory = await foldChannelHistory(options, currentHistory);\n\n\treturn { cleanedMemory, foldedHistory };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/memory/files.ts"],"names":[],"mappings":"AA+DA,MAAM,WAAW,iBAAiB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CAChB;AAiBD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAgBrE;AAiBD,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3E;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F;AAED,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3G;AAED,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtG"}
|
package/dist/memory/files.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/memory/files.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from \"fs\";\nimport { mkdir, readFile, rename, writeFile } from \"fs/promises\";\nimport { dirname, join } from \"path\";\n\nconst DEFAULT_CHANNEL_MEMORY = `# Channel Memory\n\nThis file stores durable channel-specific memory.\n\n- It is not preloaded into session context.\n- Read it on demand when prior decisions, preferences, or long-running work matter.\n- The runtime may append updates here during consolidation.\n\n## Durable Facts\n\n<!-- Stable facts, preferences, and ongoing commitments can accumulate here. -->\n`;\n\nconst DEFAULT_CHANNEL_HISTORY = `# Channel History\n\nThis file stores summarized older channel history.\n\n- It is not preloaded into session context.\n- Read it on demand when older context matters.\n- The runtime may append and fold history blocks here during consolidation.\n`;\n\nconst DEFAULT_CHANNEL_SESSION = `# Session Title\n\n<!-- A short title for the current active work in this channel. -->\n\n# Current State\n\n<!-- What is actively being worked on right now. -->\n\n# User Intent\n\n<!-- What the user is currently trying to achieve. -->\n\n# Active Files\n\n<!-- Important files or directories currently in focus. -->\n\n# Decisions\n\n<!-- Recent decisions that matter to the current work. -->\n\n# Constraints\n\n<!-- Current constraints, assumptions, or important guardrails. -->\n\n# Errors & Corrections\n\n<!-- Recent failures, corrections, and things to avoid repeating. -->\n\n# Next Steps\n\n<!-- Likely next actions if work resumes later. -->\n\n# Worklog\n\n<!-- Very terse notes about recent progress. -->\n`;\n\nexport interface MemoryUpdateBlock {\n\ttimestamp: string;\n\tentries: string[];\n}\n\nexport interface HistoryBlock {\n\ttimestamp: string;\n\tcontent: string;\n}\n\nfunction normalizeContent(content: string): string {\n\treturn content.trim().length > 0 ? `${content.trim()}\\n` : \"\";\n}\n\nasync function writeAtomically(path: string, content: string): Promise<void> {\n\tawait mkdir(dirname(path), { recursive: true });\n\tconst tempPath = `${path}.tmp`;\n\tawait writeFile(tempPath, content, \"utf-8\");\n\tawait rename(tempPath, path);\n}\n\nfunction ensureTrailingNewlines(content: string): string {\n\treturn content.trimEnd().length > 0 ? `${content.trimEnd()}\\n\\n` : \"\";\n}\n\nexport function getChannelMemoryPath(channelDir: string): string {\n\treturn join(channelDir, \"MEMORY.md\");\n}\n\nexport function getChannelHistoryPath(channelDir: string): string {\n\treturn join(channelDir, \"HISTORY.md\");\n}\n\nexport function getChannelSessionPath(channelDir: string): string {\n\treturn join(channelDir, \"SESSION.md\");\n}\n\nexport async function ensureChannelMemoryFiles(channelDir: string): Promise<void> {\n\tensureChannelMemoryFilesSync(channelDir);\n}\n\nexport function ensureChannelMemoryFilesSync(channelDir: string): void {\n\tconst memoryPath = getChannelMemoryPath(channelDir);\n\tconst historyPath = getChannelHistoryPath(channelDir);\n\tconst sessionPath = getChannelSessionPath(channelDir);\n\n\tmkdirSync(channelDir, { recursive: true });\n\n\tif (!existsSync(memoryPath)) {\n\t\twriteFileSync(memoryPath, DEFAULT_CHANNEL_MEMORY, \"utf-8\");\n\t}\n\tif (!existsSync(historyPath)) {\n\t\twriteFileSync(historyPath, DEFAULT_CHANNEL_HISTORY, \"utf-8\");\n\t}\n\tif (!existsSync(sessionPath)) {\n\t\twriteFileSync(sessionPath, DEFAULT_CHANNEL_SESSION, \"utf-8\");\n\t}\n}\n\nasync function readTextFile(path: string): Promise<string> {\n\ttry {\n\t\treturn await readFile(path, \"utf-8\");\n\t} catch (error: unknown) {\n\t\tif (isNodeError(error) && error.code === \"ENOENT\") {\n\t\t\treturn \"\";\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nfunction isNodeError(error: unknown): error is NodeJS.ErrnoException {\n\treturn error instanceof Error && \"code\" in error;\n}\n\nexport async function readChannelMemory(channelDir: string): Promise<string> {\n\treturn readTextFile(getChannelMemoryPath(channelDir));\n}\n\nexport async function readChannelHistory(channelDir: string): Promise<string> {\n\treturn readTextFile(getChannelHistoryPath(channelDir));\n}\n\nexport async function readChannelSession(channelDir: string): Promise<string> {\n\treturn readTextFile(getChannelSessionPath(channelDir));\n}\n\nexport async function rewriteChannelMemory(channelDir: string, content: string): Promise<void> {\n\tawait ensureChannelMemoryFiles(channelDir);\n\tconst nextContent = normalizeContent(content) || DEFAULT_CHANNEL_MEMORY;\n\tawait writeAtomically(getChannelMemoryPath(channelDir), nextContent);\n}\n\nexport async function rewriteChannelHistory(channelDir: string, content: string): Promise<void> {\n\tawait ensureChannelMemoryFiles(channelDir);\n\tconst nextContent = normalizeContent(content) || DEFAULT_CHANNEL_HISTORY;\n\tawait writeAtomically(getChannelHistoryPath(channelDir), nextContent);\n}\n\nexport async function rewriteChannelSession(channelDir: string, content: string): Promise<void> {\n\tawait ensureChannelMemoryFiles(channelDir);\n\tconst nextContent = normalizeContent(content) || DEFAULT_CHANNEL_SESSION;\n\tawait writeAtomically(getChannelSessionPath(channelDir), nextContent);\n}\n\nexport async function appendChannelMemoryUpdate(channelDir: string, block: MemoryUpdateBlock): Promise<void> {\n\tif (block.entries.length === 0) {\n\t\treturn;\n\t}\n\n\tawait ensureChannelMemoryFiles(channelDir);\n\tconst path = getChannelMemoryPath(channelDir);\n\tconst existing = await readTextFile(path);\n\tconst renderedBlock = [`## Update ${block.timestamp}`, ...block.entries.map((entry) => `- ${entry.trim()}`)].join(\n\t\t\"\\n\",\n\t);\n\tawait writeAtomically(path, `${ensureTrailingNewlines(existing)}${renderedBlock}\\n`);\n}\n\nexport async function appendChannelHistoryBlock(channelDir: string, block: HistoryBlock): Promise<void> {\n\tconst trimmedContent = block.content.trim();\n\tif (!trimmedContent) {\n\t\treturn;\n\t}\n\n\tawait ensureChannelMemoryFiles(channelDir);\n\tconst path = getChannelHistoryPath(channelDir);\n\tconst existing = await readTextFile(path);\n\tconst renderedBlock = [`## ${block.timestamp}`, trimmedContent].join(\"\\n\\n\");\n\tawait writeAtomically(path, `${ensureTrailingNewlines(existing)}${renderedBlock}\\n`);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/memory/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACX,gBAAgB,EAIhB,YAAY,EAEZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAanE,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,YAAY,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,YAAY,EAAE,CAAC;IACxC,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;CAC9D;AAOD,qBAAa,eAAe;IAef,OAAO,CAAC,OAAO;IAd3B,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,2BAA2B,CAAK;IACxC,OAAO,CAAC,qCAAqC,CAAK;IAClD,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,gCAAgC,CAAK;IAC7C,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,uBAAuB,CAAS;gBAEpB,OAAO,EAAE,sBAAsB;IAEnD,OAAO,CAAC,eAAe;IAUvB,sBAAsB,IAAI,gBAAgB;IAiB1C,mBAAmB,IAAI,IAAI;IAI3B,YAAY,IAAI,IAAI;IAOpB,0BAA0B,IAAI,IAAI;IAyBlC,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,qBAAqB;YAUf,oBAAoB;IAiClC,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,8BAA8B;IAWtC,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,kCAAkC;IAK1C,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,yBAAyB;YAoCnB,yBAAyB;YA6BzB,0BAA0B;IAIxC,OAAO,CAAC,oBAAoB;YAId,yBAAyB;IAQvC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,mBAAmB;CAW3B"}
|