@oyasmi/pipiclaw 0.5.2 → 0.5.4
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 +3 -2
- package/dist/agent/channel-runner.js +22 -14
- package/dist/{command-extension.d.ts → agent/command-extension.d.ts} +0 -1
- package/dist/{command-extension.js → agent/command-extension.js} +1 -2
- package/dist/{commands.d.ts → agent/commands.d.ts} +0 -1
- package/dist/{commands.js → agent/commands.js} +0 -1
- 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/{prompt-builder.d.ts → agent/prompt-builder.d.ts} +1 -2
- package/dist/{prompt-builder.js → agent/prompt-builder.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 +1 -2
- package/dist/agent/types.d.ts +1 -2
- package/dist/agent/types.js +0 -1
- package/dist/{config-loader.d.ts → agent/workspace-resources.d.ts} +3 -10
- package/dist/{config-loader.js → agent/workspace-resources.js} +3 -19
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- 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 +2 -3
- package/dist/memory/files.d.ts +0 -1
- package/dist/memory/files.js +0 -1
- package/dist/memory/lifecycle.d.ts +1 -2
- package/dist/memory/lifecycle.js +0 -1
- package/dist/memory/recall.d.ts +1 -1
- package/dist/memory/recall.js +77 -11
- package/dist/memory/session.d.ts +0 -1
- package/dist/memory/session.js +2 -3
- package/dist/{sidecar-worker.d.ts → memory/sidecar-worker.d.ts} +0 -1
- package/dist/{sidecar-worker.js → memory/sidecar-worker.js} +1 -2
- package/dist/models/api-keys.d.ts +7 -0
- package/dist/models/api-keys.js +16 -0
- package/dist/{model-utils.d.ts → models/utils.d.ts} +1 -2
- package/dist/{model-utils.js → models/utils.js} +0 -1
- package/dist/paths.d.ts +0 -1
- package/dist/paths.js +0 -1
- package/dist/runtime/bootstrap.d.ts +0 -1
- package/dist/runtime/bootstrap.js +2 -3
- 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 +1 -2
- 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/{context.d.ts → settings.d.ts} +1 -2
- package/dist/{context.js → settings.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/subagents/discovery.d.ts +0 -1
- package/dist/subagents/discovery.js +1 -2
- package/dist/subagents/tool.d.ts +1 -2
- package/dist/subagents/tool.js +1 -2
- 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 +1 -2
- 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 +0 -3
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -2
- 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,4 +1,4 @@
|
|
|
1
|
-
import { shellEscape } from "../shell-escape.js";
|
|
1
|
+
import { shellEscape } from "../shared/shell-escape.js";
|
|
2
2
|
const INLINE_WRITE_MAX_BYTES = 64 * 1024;
|
|
3
3
|
function getDir(path) {
|
|
4
4
|
return path.includes("/") ? path.substring(0, path.lastIndexOf("/")) : ".";
|
|
@@ -27,4 +27,3 @@ export async function writeContent(executor, path, content, signal, options) {
|
|
|
27
27
|
});
|
|
28
28
|
ensureSuccess(result, path);
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=write-content.js.map
|
package/dist/tools/write.d.ts
CHANGED
package/dist/tools/write.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oyasmi/pipiclaw",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "An AI assistant runtime for coding and team workflows, with DingTalk AI Cards, sub-agents, memory, and scheduled events.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -17,8 +17,6 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist",
|
|
20
|
-
"docs",
|
|
21
|
-
"CHANGELOG.md",
|
|
22
20
|
"README.md",
|
|
23
21
|
"LICENSE"
|
|
24
22
|
],
|
|
@@ -62,6 +60,14 @@
|
|
|
62
60
|
"pi",
|
|
63
61
|
"harness-engineering"
|
|
64
62
|
],
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "git+https://github.com/oyasmi/pipiclaw.git"
|
|
66
|
+
},
|
|
67
|
+
"homepage": "https://github.com/oyasmi/pipiclaw#readme",
|
|
68
|
+
"bugs": {
|
|
69
|
+
"url": "https://github.com/oyasmi/pipiclaw/issues"
|
|
70
|
+
},
|
|
65
71
|
"license": "Apache-2.0",
|
|
66
72
|
"publishConfig": {
|
|
67
73
|
"access": "public"
|
package/CHANGELOG.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [Unreleased]
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
- Initial implementation of pipiclaw package
|
|
8
|
-
- Standalone npm project scaffolding for the independent Pipiclaw repository
|
|
9
|
-
- Memory management guidelines in system prompt
|
|
10
|
-
- MEMORY.md size warning (> 5000 chars prompts Agent to consolidate)
|
|
11
|
-
- log.jsonl rotation (> 1MB archived to .1)
|
|
12
|
-
- Periodic memory consolidation event template in README
|
|
13
|
-
- DingTalk channel now intercepts `/help`, `/new`, `/compact`, `/session`, and `/model` as built-in slash commands instead of sending them to the LLM
|
|
14
|
-
- DingTalk channel now supports busy-time steering controls: plain messages default to steer, and `/steer`, `/followup`, and `/stop` are handled directly while a task is running
|
|
15
|
-
- Channel-level `HISTORY.md` for runtime-managed summarized history
|
|
16
|
-
- Runtime memory consolidation pipeline for channel `MEMORY.md` and `HISTORY.md`
|
|
17
|
-
|
|
18
|
-
### Changed
|
|
19
|
-
|
|
20
|
-
- `syncLogToSessionManager` uses byte-offset incremental reads instead of full file scan
|
|
21
|
-
- `syncLogToSessionManager` uses timestamp-based dedup instead of text matching (fixes duplicate-text-drop bug)
|
|
22
|
-
- Shared `shellEscape` utility replaces 4 duplicated definitions
|
|
23
|
-
- `attachTool` uses factory function instead of module-level global state
|
|
24
|
-
- Debug file (`last_prompt.json`) gated behind `PIPICLAW_DEBUG` env var
|
|
25
|
-
- Markdown detection regex is more conservative (no longer triggers on plain multi-line text)
|
|
26
|
-
- DingTalk reconnection logic auto-retries with exponential backoff on failure
|
|
27
|
-
- Message dedup uses `Set` with FIFO eviction instead of `O(n)` array scan
|
|
28
|
-
- Replaced inline `await import("axios")` with top-level import
|
|
29
|
-
- Refactored DingTalk delivery into an explicit progress/final lifecycle so AI Cards only show process output and final answers are sent as standalone Markdown messages
|
|
30
|
-
- Final answer emission now keys off agent turn completion instead of every assistant `message_end`, avoiding intermediate assistant text being sent as the final reply
|
|
31
|
-
- Conversation metadata is persisted per channel so scheduled events and proactive sends continue to work after process restarts
|
|
32
|
-
- Package, CLI, and data directory renamed to `pipiclaw`, `@oyasmi/pipiclaw`, and `~/.pi/pipiclaw/`
|
|
33
|
-
- Pipiclaw now bootstraps `channel.json`, `auth.json`, `models.json`, `settings.json`, and the workspace skeleton automatically on first start
|
|
34
|
-
- Auto-generated `models.json` now starts as an empty valid config, and `SOUL.md` / `AGENTS.md` are guidance templates instead of prefilled behavior
|
|
35
|
-
- Global pipiclaw settings now live in `~/.pi/pipiclaw/settings.json`, and saved default models are restored on restart
|
|
36
|
-
- DingTalk channel configuration is now read from `~/.pi/pipiclaw/channel.json`
|
|
37
|
-
- Workspace `SOUL.md` and `AGENTS.md` now load only at session start instead of every turn
|
|
38
|
-
- Workspace and channel memory files are no longer injected into the system prompt by default
|
|
39
|
-
- `log.jsonl` and `context.jsonl` are now treated as cold raw storage and are no longer proactively scanned for memory/context loading
|
|
40
|
-
- Channel memory consolidation now hooks into AgentSession compaction and session-switch lifecycle without replacing AgentSession auto-compaction
|
|
41
|
-
- Session commands and prompt loading now run through pi extension/resource hooks instead of parallel pipiclaw-specific prompt plumbing
|
|
42
|
-
- Pipiclaw now reloads AgentSession resources before the first turn so `SOUL.md`, `AGENTS.md`, and skill summaries apply immediately
|
|
43
|
-
- Workspace `SOUL.md` now appends to the default pi system prompt instead of replacing the pi base prompt
|
|
44
|
-
- Channel directories now create `MEMORY.md` and `HISTORY.md` immediately when the channel state is initialized
|
|
45
|
-
- Workspace and channel memory templates are now structured around stable shared context instead of placeholder comments only
|
|
46
|
-
- Sub-agent frontmatter parsing now accepts native YAML arrays and numeric values instead of assuming every field is a string
|
|
47
|
-
- Pipiclaw no longer relies on the pi-mono monorepo build configuration and now ships with its own standalone TypeScript, test, lint, and CI setup
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel-runner.d.ts","sourceRoot":"","sources":["../../src/agent/channel-runner.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAYxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AASnE,OAAO,EACN,KAAK,WAAW,EAKhB,MAAM,YAAY,CAAC;AA6BpB,qBAAa,aAAc,YAAW,WAAW;IAEhD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IAGnD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,+BAA+B,CAAQ;IAG/C,OAAO,CAAC,QAAQ,CAAmC;gBAEvC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAoIzE,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsItG,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAMd,gBAAgB;IAQ9B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,iBAAiB;YAUX,gBAAgB;IAe9B,OAAO,CAAC,aAAa;YAWP,uBAAuB;YAQvB,iBAAiB;YAQjB,kBAAkB;IAIhC,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,wBAAwB;YAkBlB,6BAA6B;CAmB3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel-runner.js","sourceRoot":"","sources":["../../src/agent/channel-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { Agent } from \"@mariozechner/pi-agent-core\";\nimport type { Api, Model } from \"@mariozechner/pi-ai\";\nimport {\n\tAgentSession,\n\tAuthStorage,\n\tconvertToLlm,\n\tDefaultResourceLoader,\n\tModelRegistry,\n\ttype SettingsManager as SDKSettingsManager,\n\tSessionManager,\n\ttype Skill,\n} from \"@mariozechner/pi-coding-agent\";\nimport { mkdir, readFile, writeFile } from \"fs/promises\";\nimport { dirname, join, resolve } from \"path\";\nimport { createCommandExtension } from \"../command-extension.js\";\nimport { type BuiltInCommand, renderBuiltInHelp } from \"../commands.js\";\nimport { getAgentConfig, getApiKeyForModel, getSoul, loadPipiclawSkills } from \"../config-loader.js\";\nimport { PipiclawSettingsManager } from \"../context.js\";\nimport * as log from \"../log.js\";\nimport { buildFirstTurnMemoryBootstrap as renderFirstTurnMemoryBootstrap } from \"../memory/bootstrap.js\";\nimport { createMemoryCandidateCache } from \"../memory/candidates.js\";\nimport { getChannelMemoryPath } from \"../memory/files.js\";\nimport { MemoryLifecycle } from \"../memory/lifecycle.js\";\nimport { recallRelevantMemory } from \"../memory/recall.js\";\nimport { resolveInitialModel } from \"../model-utils.js\";\nimport { APP_HOME_DIR, AUTH_CONFIG_PATH, MODELS_CONFIG_PATH } from \"../paths.js\";\nimport { buildAppendSystemPrompt } from \"../prompt-builder.js\";\nimport type { DingTalkContext } from \"../runtime/dingtalk.js\";\nimport type { ChannelStore } from \"../runtime/store.js\";\nimport { createExecutor, type SandboxConfig } from \"../sandbox.js\";\nimport { HAN_REGEX } from \"../shared/text-utils.js\";\nimport { isRecord } from \"../shared/type-guards.js\";\nimport { discoverSubAgents, formatSubAgentList, type SubAgentDiscoveryResult } from \"../subagents/discovery.js\";\nimport { createPipiclawTools } from \"../tools/index.js\";\nimport { clipUserInput } from \"./progress-formatter.js\";\nimport { createRunQueue } from \"./run-queue.js\";\nimport { handleSessionEvent } from \"./session-events.js\";\nimport { getLastAssistantUsage } from \"./type-guards.js\";\nimport {\n\ttype AgentRunner,\n\tcreateEmptyRunState,\n\ttype FinalOutcome,\n\tMAX_USER_MESSAGE_CHARS,\n\ttype RunState,\n} from \"./types.js\";\n\ntype ModelRegistryClass = {\n\tcreate?: (authStorage: AuthStorage, modelsJsonPath?: string) => ModelRegistry;\n\tnew (authStorage: AuthStorage, modelsJsonPath?: string): ModelRegistry;\n};\n\nfunction isSilentOutcome(outcome: FinalOutcome): outcome is { kind: \"silent\" } {\n\treturn outcome.kind === \"silent\";\n}\n\nfunction isFinalOutcome(outcome: FinalOutcome): outcome is { kind: \"final\"; text: string } {\n\treturn outcome.kind === \"final\";\n}\n\nfunction getFinalOutcomeText(outcome: FinalOutcome): string | null {\n\treturn isFinalOutcome(outcome) ? outcome.text : null;\n}\n\nfunction createModelRegistry(authStorage: AuthStorage, modelsJsonPath: string): ModelRegistry {\n\tconst registryClass = ModelRegistry as unknown as ModelRegistryClass;\n\treturn typeof registryClass.create === \"function\"\n\t\t? registryClass.create(authStorage, modelsJsonPath)\n\t\t: new registryClass(authStorage, modelsJsonPath);\n}\n\nfunction asSdkSettingsManager(manager: PipiclawSettingsManager): SDKSettingsManager {\n\treturn manager as unknown as SDKSettingsManager;\n}\nexport class ChannelRunner implements AgentRunner {\n\t// --- Constructed once ---\n\tprivate readonly sandboxConfig: SandboxConfig;\n\tprivate readonly channelId: string;\n\tprivate readonly channelDir: string;\n\tprivate readonly workspacePath: string;\n\tprivate readonly workspaceDir: string;\n\tprivate readonly session: AgentSession;\n\tprivate readonly agent: Agent;\n\tprivate readonly sessionManager: SessionManager;\n\tprivate readonly settingsManager: PipiclawSettingsManager;\n\tprivate readonly modelRegistry: ModelRegistry;\n\tprivate readonly memoryLifecycle: MemoryLifecycle;\n\tprivate readonly sessionReady: Promise<void>;\n\tprivate subAgentDiscovery: SubAgentDiscoveryResult;\n\n\t// --- Mutable across runs ---\n\tprivate activeModel: Model<Api>;\n\tprivate currentSkills: Skill[];\n\tprivate firstTurnMemoryBootstrapPending = true;\n\n\t// --- Per run ---\n\tprivate runState: RunState = createEmptyRunState();\n\n\tconstructor(sandboxConfig: SandboxConfig, channelId: string, channelDir: string) {\n\t\tthis.sandboxConfig = sandboxConfig;\n\t\tthis.channelId = channelId;\n\t\tthis.channelDir = channelDir;\n\n\t\tconst executor = createExecutor(sandboxConfig);\n\t\tthis.workspaceDir = resolve(dirname(channelDir));\n\t\tthis.workspacePath = executor.getWorkspacePath(this.workspaceDir);\n\n\t\t// Initial skill summaries\n\t\tconst initialSkills = loadPipiclawSkills(channelDir, this.workspacePath);\n\t\tthis.currentSkills = initialSkills;\n\n\t\t// Create session manager\n\t\tconst contextFile = join(channelDir, \"context.jsonl\");\n\t\tthis.sessionManager = SessionManager.open(contextFile, channelDir);\n\t\tthis.settingsManager = new PipiclawSettingsManager(APP_HOME_DIR);\n\n\t\t// Create AuthStorage and ModelRegistry\n\t\tconst authStorage = AuthStorage.create(AUTH_CONFIG_PATH);\n\t\tthis.modelRegistry = createModelRegistry(authStorage, MODELS_CONFIG_PATH);\n\n\t\t// Resolve model: prefer saved global default, fall back to first available model\n\t\tthis.activeModel = resolveInitialModel(this.modelRegistry, this.settingsManager);\n\t\tlog.logInfo(`Using model: ${this.activeModel.provider}/${this.activeModel.id} (${this.activeModel.name})`);\n\t\tthis.subAgentDiscovery = this.refreshSubAgentDiscovery();\n\n\t\t// Create tools\n\t\tconst tools = createPipiclawTools({\n\t\t\texecutor,\n\t\t\tgetCurrentModel: () => this.activeModel,\n\t\t\tgetAvailableModels: () => this.modelRegistry.getAvailable(),\n\t\t\tresolveApiKey: async (model) => getApiKeyForModel(this.modelRegistry, model),\n\t\t\tworkspaceDir: this.workspaceDir,\n\t\t\tchannelDir: this.channelDir,\n\t\t\tworkspacePath: this.workspacePath,\n\t\t\tchannelId: this.channelId,\n\t\t\tsandboxConfig: this.sandboxConfig,\n\t\t\tgetSubAgentDiscovery: () => this.subAgentDiscovery,\n\t\t\tgetMemoryRecallSettings: () => this.settingsManager.getMemoryRecallSettings(),\n\t\t});\n\n\t\t// Create agent\n\t\tthis.agent = new Agent({\n\t\t\tinitialState: {\n\t\t\t\tsystemPrompt: \"\",\n\t\t\t\tmodel: this.activeModel,\n\t\t\t\tthinkingLevel: \"off\",\n\t\t\t\ttools,\n\t\t\t},\n\t\t\tconvertToLlm,\n\t\t\tgetApiKey: async () => getApiKeyForModel(this.modelRegistry, this.activeModel),\n\t\t});\n\n\t\tthis.memoryLifecycle = new MemoryLifecycle({\n\t\t\tchannelId: this.channelId,\n\t\t\tchannelDir: this.channelDir,\n\t\t\tgetMessages: () => this.session.messages,\n\t\t\tgetSessionEntries: () => this.sessionManager.getBranch(),\n\t\t\tgetModel: () => this.session.model ?? this.activeModel,\n\t\t\tresolveApiKey: async (model) => getApiKeyForModel(this.modelRegistry, model),\n\t\t\tgetSessionMemorySettings: () => this.settingsManager.getSessionMemorySettings(),\n\t\t});\n\n\t\tconst resourceLoader = new DefaultResourceLoader({\n\t\t\tcwd: process.cwd(),\n\t\t\tagentDir: APP_HOME_DIR,\n\t\t\tsettingsManager: asSdkSettingsManager(this.settingsManager),\n\t\t\textensionFactories: [\n\t\t\t\tthis.memoryLifecycle.createExtensionFactory(),\n\t\t\t\tcreateCommandExtension({\n\t\t\t\t\tgetCurrentModel: () => this.session.model ?? this.activeModel,\n\t\t\t\t\tgetAvailableModels: async () => {\n\t\t\t\t\t\tthis.modelRegistry.refresh();\n\t\t\t\t\t\treturn await this.modelRegistry.getAvailable();\n\t\t\t\t\t},\n\t\t\t\t\tgetSessionStats: () => this.session.getSessionStats(),\n\t\t\t\t\tgetThinkingLevel: () => this.session.thinkingLevel,\n\t\t\t\t\tswitchModel: async (model) => {\n\t\t\t\t\t\tawait this.session.setModel(model);\n\t\t\t\t\t\tthis.activeModel = model;\n\t\t\t\t\t},\n\t\t\t\t\trefreshSessionResources: async () => {\n\t\t\t\t\t\tawait this.refreshSessionResources();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tappendSystemPromptOverride: (base) => {\n\t\t\t\tconst soul = getSoul(this.workspaceDir);\n\t\t\t\tconst sections = [...base];\n\t\t\t\tif (soul) {\n\t\t\t\t\tsections.unshift(soul);\n\t\t\t\t}\n\t\t\t\tsections.push(\n\t\t\t\t\tbuildAppendSystemPrompt(this.workspacePath, this.channelId, this.sandboxConfig, {\n\t\t\t\t\t\tsubAgentList: formatSubAgentList(this.subAgentDiscovery.agents),\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t\treturn sections;\n\t\t\t},\n\t\t\tagentsFilesOverride: () => {\n\t\t\t\tconst agentConfig = getAgentConfig(this.channelDir);\n\t\t\t\treturn {\n\t\t\t\t\tagentsFiles: agentConfig ? [{ path: `${this.workspacePath}/AGENTS.md`, content: agentConfig }] : [],\n\t\t\t\t};\n\t\t\t},\n\t\t\tskillsOverride: (base) => ({\n\t\t\t\tskills: [...base.skills, ...this.currentSkills],\n\t\t\t\tdiagnostics: base.diagnostics,\n\t\t\t}),\n\t\t});\n\n\t\tconst baseToolsOverride = Object.fromEntries(tools.map((tool) => [tool.name, tool]));\n\n\t\t// Create AgentSession\n\t\tthis.session = new AgentSession({\n\t\t\tagent: this.agent,\n\t\t\tsessionManager: this.sessionManager,\n\t\t\tsettingsManager: asSdkSettingsManager(this.settingsManager),\n\t\t\tcwd: process.cwd(),\n\t\t\tmodelRegistry: this.modelRegistry,\n\t\t\tresourceLoader,\n\t\t\tbaseToolsOverride,\n\t\t});\n\n\t\t// Subscribe to session events\n\t\tthis.subscribeToSessionEvents();\n\t\tthis.sessionReady = this.initializeSession();\n\t}\n\n\t// === Public API ===\n\n\tasync run(ctx: DingTalkContext, store: ChannelStore): Promise<{ stopReason: string; errorMessage?: string }> {\n\t\tthis.resetRunState(ctx, store);\n\n\t\tconst runQueue = createRunQueue(ctx);\n\t\tthis.runState.queue = runQueue.queue;\n\n\t\ttry {\n\t\t\tawait this.ensureSessionReady();\n\n\t\t\t// Ensure channel directory exists\n\t\t\tawait mkdir(this.channelDir, { recursive: true });\n\n\t\t\tconst candidateCache = createMemoryCandidateCache();\n\t\t\tconst clippedInput = clipUserInput(ctx.message.text, MAX_USER_MESSAGE_CHARS);\n\t\t\tconst userMessage = this.formatUserMessage(clippedInput, ctx.message.userName);\n\t\t\tlet promptText = this.shouldPreserveRawInput(ctx.message.text) ? clippedInput : userMessage;\n\t\t\tlet recalledContextText = \"\";\n\t\t\tlet durableMemoryBootstrapText = \"\";\n\n\t\t\tthis.memoryLifecycle.noteUserTurnStarted();\n\n\t\t\tif (!this.shouldPreserveRawInput(ctx.message.text)) {\n\t\t\t\tconst recallSettings = this.settingsManager.getMemoryRecallSettings();\n\t\t\t\tif (recallSettings.enabled) {\n\t\t\t\t\tconst recall = await recallRelevantMemory({\n\t\t\t\t\t\tquery: clippedInput,\n\t\t\t\t\t\tworkspaceDir: this.workspaceDir,\n\t\t\t\t\t\tchannelDir: this.channelDir,\n\t\t\t\t\t\tmaxCandidates: recallSettings.maxCandidates,\n\t\t\t\t\t\tmaxInjected: recallSettings.maxInjected,\n\t\t\t\t\t\tmaxChars: recallSettings.maxChars,\n\t\t\t\t\t\trerankWithModel: recallSettings.rerankWithModel,\n\t\t\t\t\t\tautoRerank: HAN_REGEX.test(clippedInput),\n\t\t\t\t\t\tmodel: this.session.model ?? this.activeModel,\n\t\t\t\t\t\tresolveApiKey: async (model) => getApiKeyForModel(this.modelRegistry, model),\n\t\t\t\t\t\tcandidateCache,\n\t\t\t\t\t});\n\n\t\t\t\t\tif (recall.renderedText) {\n\t\t\t\t\t\trecalledContextText = recall.renderedText;\n\t\t\t\t\t\tpromptText = `${recall.renderedText}\\n\\n<user_message>\\n${promptText}\\n</user_message>`;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.firstTurnMemoryBootstrapPending) {\n\t\t\t\t\tdurableMemoryBootstrapText = await this.buildFirstTurnMemoryBootstrap();\n\t\t\t\t\tif (durableMemoryBootstrapText) {\n\t\t\t\t\t\tpromptText = `${durableMemoryBootstrapText}\\n\\n${promptText}`;\n\t\t\t\t\t}\n\t\t\t\t\tthis.firstTurnMemoryBootstrapPending = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Debug: write context to last_prompt.json (only with PIPICLAW_DEBUG=1)\n\t\t\tif (process.env.PIPICLAW_DEBUG) {\n\t\t\t\tconst debugContext = {\n\t\t\t\t\tsystemPrompt: this.agent.state.systemPrompt,\n\t\t\t\t\tmessages: this.session.messages,\n\t\t\t\t\tdurableMemoryBootstrap: durableMemoryBootstrapText || undefined,\n\t\t\t\t\trecalledContext: recalledContextText || undefined,\n\t\t\t\t\tnewUserMessage: promptText,\n\t\t\t\t};\n\t\t\t\tawait writeFile(join(this.channelDir, \"last_prompt.json\"), JSON.stringify(debugContext, null, 2));\n\t\t\t}\n\n\t\t\tawait this.session.prompt(promptText);\n\t\t} catch (err) {\n\t\t\tthis.runState.stopReason = \"error\";\n\t\t\tthis.runState.errorMessage = err instanceof Error ? err.message : String(err);\n\t\t\tlog.logWarning(`[${this.channelId}] Runner failed`, this.runState.errorMessage);\n\t\t} finally {\n\t\t\tawait runQueue.drain();\n\t\t\tconst finalOutcome = this.runState.finalOutcome;\n\t\t\tconst finalOutcomeText = getFinalOutcomeText(finalOutcome);\n\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tthis.runState.stopReason === \"error\" &&\n\t\t\t\t\tthis.runState.errorMessage &&\n\t\t\t\t\t!this.runState.finalResponseDelivered\n\t\t\t\t) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait ctx.replaceMessage(\"_Sorry, something went wrong_\");\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconst errMsg = err instanceof Error ? err.message : String(err);\n\t\t\t\t\t\tlog.logWarning(\"Failed to post error message\", errMsg);\n\t\t\t\t\t}\n\t\t\t\t} else if (isSilentOutcome(finalOutcome)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait ctx.deleteMessage();\n\t\t\t\t\t\tlog.logInfo(\"Silent response - deleted message\");\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconst errMsg = err instanceof Error ? err.message : String(err);\n\t\t\t\t\t\tlog.logWarning(\"Failed to delete message for silent response\", errMsg);\n\t\t\t\t\t}\n\t\t\t\t} else if (finalOutcomeText && !this.runState.finalResponseDelivered) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait ctx.replaceMessage(finalOutcomeText);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tconst errMsg = err instanceof Error ? err.message : String(err);\n\t\t\t\t\t\tlog.logWarning(\"Failed to replace message with final text\", errMsg);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tawait ctx.flush();\n\t\t\t} finally {\n\t\t\t\tawait ctx.close();\n\t\t\t}\n\n\t\t\t// Log usage summary\n\t\t\tif (this.runState.totalUsage.cost.total > 0) {\n\t\t\t\tconst lastAssistantMessage = getLastAssistantUsage(this.session.messages);\n\n\t\t\t\tconst contextTokens = lastAssistantMessage\n\t\t\t\t\t? lastAssistantMessage.usage.input +\n\t\t\t\t\t\tlastAssistantMessage.usage.output +\n\t\t\t\t\t\tlastAssistantMessage.usage.cacheRead +\n\t\t\t\t\t\tlastAssistantMessage.usage.cacheWrite\n\t\t\t\t\t: 0;\n\t\t\t\tconst currentRunModel = this.session.model ?? this.activeModel;\n\t\t\t\tconst contextWindow = currentRunModel.contextWindow || 200000;\n\n\t\t\t\tlog.logUsageSummary(this.runState.logCtx!, this.runState.totalUsage, contextTokens, contextWindow);\n\t\t\t}\n\n\t\t\t// Clear run state\n\t\t\tthis.runState.ctx = null;\n\t\t\tthis.runState.logCtx = null;\n\t\t\tthis.runState.queue = null;\n\t\t}\n\n\t\treturn { stopReason: this.runState.stopReason, errorMessage: this.runState.errorMessage };\n\t}\n\n\tasync handleBuiltinCommand(ctx: DingTalkContext, command: BuiltInCommand): Promise<void> {\n\t\ttry {\n\t\t\tswitch (command.name) {\n\t\t\t\tcase \"help\":\n\t\t\t\t\tawait this.sendCommandReply(ctx, renderBuiltInHelp());\n\t\t\t\t\treturn;\n\t\t\t\tcase \"stop\":\n\t\t\t\t\tawait this.sendCommandReply(ctx, \"No task is running. Use `/stop` only while a task is running.\");\n\t\t\t\t\treturn;\n\t\t\t\tcase \"steer\":\n\t\t\t\t\tthis.requireQueuedMessage(command.args, \"steer\");\n\t\t\t\t\tawait this.sendCommandReply(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\"No task is running. Send the message directly instead of using `/steer`.\",\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\tcase \"followup\":\n\t\t\t\t\tthis.requireQueuedMessage(command.args, \"followup\");\n\t\t\t\t\tawait this.sendCommandReply(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\"No task is running. Send the message directly now, or use `/followup` while a task is running.\",\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconst errMsg = err instanceof Error ? err.message : String(err);\n\t\t\tlog.logWarning(`[${this.channelId}] Built-in command failed`, errMsg);\n\t\t\tawait this.sendCommandReply(ctx, `命令执行失败:${errMsg}`);\n\t\t}\n\t}\n\n\tasync queueSteer(text: string, userName?: string): Promise<void> {\n\t\tawait this.queueBusyMessage(\"steer\", this.requireQueuedMessage(text, \"steer\"), userName);\n\t}\n\n\tasync queueFollowUp(text: string, userName?: string): Promise<void> {\n\t\tawait this.queueBusyMessage(\"followUp\", this.requireQueuedMessage(text, \"followup\"), userName);\n\t}\n\n\tasync abort(): Promise<void> {\n\t\tawait this.session.abort();\n\t}\n\n\t// === Private helpers ===\n\n\tprivate async sendCommandReply(ctx: DingTalkContext, text: string): Promise<void> {\n\t\tconst delivered = await ctx.respondPlain(text);\n\t\tif (!delivered) {\n\t\t\tawait ctx.replaceMessage(text);\n\t\t\tawait ctx.flush();\n\t\t}\n\t}\n\n\tprivate requireQueuedMessage(text: string, commandName: \"steer\" | \"followup\"): string {\n\t\tconst trimmedText = text.trim();\n\t\tif (!trimmedText) {\n\t\t\tthrow new Error(`/${commandName} requires a message.`);\n\t\t}\n\t\treturn trimmedText;\n\t}\n\n\tprivate shouldPreserveRawInput(text: string): boolean {\n\t\treturn text.trim().startsWith(\"/\");\n\t}\n\n\tprivate formatUserMessage(text: string, userName?: string, now: Date = new Date()): string {\n\t\tconst pad = (n: number) => n.toString().padStart(2, \"0\");\n\t\tconst offset = -now.getTimezoneOffset();\n\t\tconst offsetSign = offset >= 0 ? \"+\" : \"-\";\n\t\tconst offsetHours = pad(Math.floor(Math.abs(offset) / 60));\n\t\tconst offsetMins = pad(Math.abs(offset) % 60);\n\t\tconst timestamp = `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}${offsetSign}${offsetHours}:${offsetMins}`;\n\t\treturn `[${timestamp}] [${userName || \"unknown\"}]: ${text}`;\n\t}\n\n\tprivate async queueBusyMessage(delivery: \"steer\" | \"followUp\", text: string, userName?: string): Promise<void> {\n\t\tif (!this.session.isStreaming) {\n\t\t\tthrow new Error(\"No task is currently running.\");\n\t\t}\n\n\t\tconst clippedText = clipUserInput(text, MAX_USER_MESSAGE_CHARS);\n\t\tif (clippedText !== text.trim()) {\n\t\t\tlog.logWarning(`[${this.channelId}] Queued message exceeded ${MAX_USER_MESSAGE_CHARS} chars and was clipped`);\n\t\t}\n\n\t\tawait this.session.prompt(this.formatUserMessage(clippedText, userName), {\n\t\t\tstreamingBehavior: delivery,\n\t\t});\n\t}\n\n\tprivate resetRunState(ctx: DingTalkContext, store: ChannelStore): void {\n\t\tthis.runState = createEmptyRunState();\n\t\tthis.runState.ctx = ctx;\n\t\tthis.runState.logCtx = {\n\t\t\tchannelId: ctx.message.channel,\n\t\t\tuserName: ctx.message.userName,\n\t\t\tchannelName: ctx.channelName,\n\t\t};\n\t\tthis.runState.store = store;\n\t}\n\n\tprivate async refreshSessionResources(): Promise<void> {\n\t\tawait this.ensureSessionReady();\n\t\tconst skills = loadPipiclawSkills(this.channelDir, this.workspacePath);\n\t\tthis.currentSkills = skills;\n\t\tthis.subAgentDiscovery = this.refreshSubAgentDiscovery();\n\t\tawait this.session.reload();\n\t}\n\n\tprivate async initializeSession(): Promise<void> {\n\t\tconst skills = loadPipiclawSkills(this.channelDir, this.workspacePath);\n\t\tthis.currentSkills = skills;\n\t\tthis.subAgentDiscovery = this.refreshSubAgentDiscovery();\n\t\tthis.firstTurnMemoryBootstrapPending = true;\n\t\tawait this.session.reload();\n\t}\n\n\tprivate async ensureSessionReady(): Promise<void> {\n\t\tawait this.sessionReady;\n\t}\n\n\tprivate refreshSubAgentDiscovery(): SubAgentDiscoveryResult {\n\t\tthis.modelRegistry.refresh();\n\t\tconst discovery = discoverSubAgents(this.workspaceDir, this.modelRegistry.getAvailable());\n\t\tfor (const warning of discovery.warnings) {\n\t\t\tlog.logWarning(`Sub-agent config warning (${this.channelId})`, warning);\n\t\t}\n\t\treturn discovery;\n\t}\n\n\t// === Session event subscription ===\n\n\tprivate subscribeToSessionEvents(): void {\n\t\tthis.session.subscribe(async (event: unknown) => {\n\t\t\tif (isRecord(event) && \"reason\" in event && event.reason === \"new\") {\n\t\t\t\tthis.firstTurnMemoryBootstrapPending = true;\n\t\t\t}\n\t\t\tif (!this.runState.ctx || !this.runState.logCtx || !this.runState.queue) return;\n\t\t\tawait handleSessionEvent(event, {\n\t\t\t\tctx: this.runState.ctx,\n\t\t\t\tlogCtx: this.runState.logCtx,\n\t\t\t\tqueue: this.runState.queue,\n\t\t\t\tpendingTools: this.runState.pendingTools,\n\t\t\t\tstore: this.runState.store,\n\t\t\t\trunState: this.runState,\n\t\t\t\tmemoryLifecycle: this.memoryLifecycle,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate async buildFirstTurnMemoryBootstrap(): Promise<string> {\n\t\tconst readOptionalFile = async (path: string): Promise<string> => {\n\t\t\ttry {\n\t\t\t\treturn await readFile(path, \"utf-8\");\n\t\t\t} catch {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t};\n\n\t\tconst [channelMemory, workspaceMemory] = await Promise.all([\n\t\t\treadOptionalFile(getChannelMemoryPath(this.channelDir)),\n\t\t\treadOptionalFile(join(this.workspaceDir, \"MEMORY.md\")),\n\t\t]);\n\n\t\treturn renderFirstTurnMemoryBootstrap({\n\t\t\tchannelMemory,\n\t\t\tworkspaceMemory,\n\t\t});\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/agent/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC","sourcesContent":["export { ChannelRunner } from \"./channel-runner.js\";\nexport { getOrCreateRunner } from \"./runner-factory.js\";\nexport type { AgentRunner } from \"./types.js\";\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progress-formatter.d.ts","sourceRoot":"","sources":["../../src/agent/progress-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AASpD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CASpE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAejF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAwB7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progress-formatter.js","sourceRoot":"","sources":["../../src/agent/progress-formatter.ts"],"names":[],"mappings":"AAEA,SAAS,oBAAoB,CAAC,IAAY;IACzC,OAAO,IAAI;SACT,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,IAAI,EAAE,CAAC;AACV,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,oBAAoB,UAAU,CAAC,MAAM,GAAG,QAAQ,kBAAkB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1I,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAuB,EAAE,IAAY;IACxE,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,MAAM;YACV,OAAO,YAAY,UAAU,EAAE,CAAC;QACjC,KAAK,UAAU;YACd,OAAO,aAAa,UAAU,EAAE,CAAC;QAClC,KAAK,OAAO;YACX,OAAO,UAAU,UAAU,EAAE,CAAC;QAC/B,KAAK,WAAW;YACf,OAAO,UAAU,CAAC;IACpB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACpD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IACC,MAAM;QACN,OAAO,MAAM,KAAK,QAAQ;QAC1B,SAAS,IAAI,MAAM;QACnB,KAAK,CAAC,OAAO,CAAE,MAA+B,CAAC,OAAO,CAAC,EACtD,CAAC;QACF,MAAM,OAAO,GAAI,MAA8D,CAAC,OAAO,CAAC;QACxF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACvC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["import type { ProgressEntryKind } from \"./types.js\";\n\nfunction sanitizeProgressText(text: string): string {\n\treturn text\n\t\t.replace(/\\uFFFC/g, \"\")\n\t\t.replace(/\\r/g, \"\")\n\t\t.trim();\n}\n\nexport function clipUserInput(text: string, maxChars: number): string {\n\tconst normalized = text.replace(/\\r/g, \"\").trim();\n\tif (normalized.length <= maxChars) {\n\t\treturn normalized;\n\t}\n\n\tconst headChars = Math.floor(maxChars * 0.6);\n\tconst tailChars = maxChars - headChars;\n\treturn `${normalized.slice(0, headChars)}\\n\\n[... omitted ${normalized.length - maxChars} chars ...]\\n\\n${normalized.slice(-tailChars)}`;\n}\n\nexport function formatProgressEntry(kind: ProgressEntryKind, text: string): string {\n\tconst cleaned = sanitizeProgressText(text);\n\tif (!cleaned) return \"\";\n\n\tconst normalized = cleaned.replace(/\\n+/g, \" \").trim();\n\tswitch (kind) {\n\t\tcase \"tool\":\n\t\t\treturn `Running: ${normalized}`;\n\t\tcase \"thinking\":\n\t\t\treturn `Thinking: ${normalized}`;\n\t\tcase \"error\":\n\t\t\treturn `Error: ${normalized}`;\n\t\tcase \"assistant\":\n\t\t\treturn normalized;\n\t}\n}\n\nexport function extractToolResultText(result: unknown): string {\n\tif (typeof result === \"string\") {\n\t\treturn result;\n\t}\n\n\tif (\n\t\tresult &&\n\t\ttypeof result === \"object\" &&\n\t\t\"content\" in result &&\n\t\tArray.isArray((result as { content: unknown }).content)\n\t) {\n\t\tconst content = (result as { content: Array<{ type: string; text?: string }> }).content;\n\t\tconst textParts: string[] = [];\n\t\tfor (const part of content) {\n\t\t\tif (part.type === \"text\" && part.text) {\n\t\t\t\ttextParts.push(part.text);\n\t\t\t}\n\t\t}\n\t\tif (textParts.length > 0) {\n\t\t\treturn textParts.join(\"\\n\");\n\t\t}\n\t}\n\n\treturn JSON.stringify(result);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-queue.d.ts","sourceRoot":"","sources":["../../src/agent/run-queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAwBpE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-queue.js","sourceRoot":"","sources":["../../src/agent/run-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AASjC,MAAM,UAAU,cAAc,CAAC,GAAoB;IAClD,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,KAAK,GAAa;QACvB,OAAO,EAAE,CAAC,EAAuB,EAAE,YAAoB,EAAQ,EAAE;YAChE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvC,IAAI,CAAC;oBACJ,MAAM,EAAE,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChE,GAAG,CAAC,UAAU,CAAC,uBAAuB,YAAY,GAAG,EAAE,MAAM,CAAC,CAAC;gBAChE,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,UAAU,IAAY,EAAE,MAAyB,EAAE,YAAoB,EAAE,KAAK,GAAG,IAAI;YACpG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAC9G,CAAC;KACD,CAAC;IAEF,OAAO;QACN,KAAK;QACL,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,UAAU,CAAC;QAClB,CAAC;KACD,CAAC;AACH,CAAC","sourcesContent":["import * as log from \"../log.js\";\nimport type { DingTalkContext } from \"../runtime/dingtalk.js\";\nimport type { RunQueue } from \"./types.js\";\n\nexport interface CreatedRunQueue {\n\tqueue: RunQueue;\n\tdrain: () => Promise<void>;\n}\n\nexport function createRunQueue(ctx: DingTalkContext): CreatedRunQueue {\n\tlet queueChain = Promise.resolve();\n\tconst queue: RunQueue = {\n\t\tenqueue: (fn: () => Promise<void>, errorContext: string): void => {\n\t\t\tqueueChain = queueChain.then(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait fn();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst errMsg = err instanceof Error ? err.message : String(err);\n\t\t\t\t\tlog.logWarning(`DingTalk API error (${errorContext})`, errMsg);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tenqueueMessage: function (text: string, target: \"main\" | \"thread\", errorContext: string, doLog = true): void {\n\t\t\tthis.enqueue(() => (target === \"main\" ? ctx.respond(text, doLog) : ctx.respondInThread(text)), errorContext);\n\t\t},\n\t};\n\n\treturn {\n\t\tqueue,\n\t\tdrain: async () => {\n\t\t\tawait queueChain;\n\t\t},\n\t};\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-factory.d.ts","sourceRoot":"","sources":["../../src/agent/runner-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAOlH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/agent/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEtD,MAAM,UAAU,iBAAiB,CAAC,aAA4B,EAAE,SAAiB,EAAE,UAAkB;IACpG,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["import type { SandboxConfig } from \"../sandbox.js\";\nimport { ChannelRunner } from \"./channel-runner.js\";\nimport type { AgentRunner } from \"./types.js\";\n\nconst channelRunners = new Map<string, AgentRunner>();\n\nexport function getOrCreateRunner(sandboxConfig: SandboxConfig, channelId: string, channelDir: string): AgentRunner {\n\tconst existing = channelRunners.get(channelId);\n\tif (existing) return existing;\n\n\tconst runner = new ChannelRunner(sandboxConfig, channelId, channelDir);\n\tchannelRunners.set(channelId, runner);\n\treturn runner;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-events.d.ts","sourceRoot":"","sources":["../../src/agent/session-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBxD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;CACjC;AAwCD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CA4N3G"}
|
|
@@ -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
DELETED
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
DELETED
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":"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","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"}
|