@kodax-ai/kodax 0.7.72 → 0.7.74
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/CHANGELOG.md +226 -0
- package/README.md +72 -18
- package/README_CN.md +55 -14
- package/config-templates/config.example.jsonc +7 -0
- package/dist/chunks/agent-2ABIG5NW.js +2 -0
- package/dist/chunks/argument-completer-C45DEO34.js +2 -0
- package/dist/chunks/chunk-5GH3SVI3.js +74 -0
- package/dist/chunks/{chunk-SQODXBLX.js → chunk-64M5HOCA.js} +1 -1
- package/dist/chunks/{chunk-PKQOEDHJ.js → chunk-7W6KYJU2.js} +224 -230
- package/dist/chunks/chunk-C7TZAT3S.js +369 -0
- package/dist/chunks/chunk-F7AIEHSS.js +46 -0
- package/dist/chunks/{chunk-E27LHEIP.js → chunk-GAFFYJU3.js} +1 -1
- package/dist/chunks/chunk-KPGVY6PF.js +321 -0
- package/dist/chunks/{chunk-44QXPEEE.js → chunk-MBAPT2R5.js} +1 -1
- package/dist/chunks/{chunk-IR5KIK7E.js → chunk-MVCAFD6M.js} +1 -1
- package/dist/chunks/chunk-PP53SIIL.js +5 -0
- package/dist/chunks/chunk-QH56WEHK.js +2 -0
- package/dist/chunks/chunk-UJS7JAO6.js +770 -0
- package/dist/chunks/{chunk-MVARIMQV.js → chunk-VK5QTHS6.js} +6 -6
- package/dist/chunks/chunk-VPURXE2F.js +427 -0
- package/dist/chunks/chunk-XM724XAA.js +329 -0
- package/dist/chunks/{chunk-WIBLZK4G.js → chunk-XMP66YWG.js} +11 -4
- package/dist/chunks/chunk-XXQLPTAN.js +78 -0
- package/dist/chunks/compaction-config-QYCDOW3Q.js +2 -0
- package/dist/chunks/{construction-bootstrap-ZJPXUPXQ.js → construction-bootstrap-BKNPJI7O.js} +1 -1
- package/dist/chunks/dist-6EK4H7TP.js +2 -0
- package/dist/chunks/{dist-GOUP4YVE.js → dist-EVEJAII2.js} +1 -1
- package/dist/chunks/host-KS4TJKWQ.js +2 -0
- package/dist/chunks/run-manager-L7MKGQNX.js +2 -0
- package/dist/chunks/{utils-OTT5CG5J.js → utils-GTJLL4GT.js} +1 -1
- package/dist/index.d.ts +17 -16
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +1357 -1294
- package/dist/provider-capabilities.json +184 -5
- package/dist/runtime-worker.js +1277 -1224
- package/dist/sdk-a2a.d.ts +11 -10
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +110 -62
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +114 -32
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +8 -49
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +153 -24
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +238 -19
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-session.d.ts +6 -6
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +16 -14
- package/dist/types-chunks/{base.d-Cz_rwpOi.d.ts → base.d-ChvpaKjZ.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-CHJO5y94.d.ts → bash-prefix-extractor.d-r1beOESM.d.ts} +50 -14
- package/dist/types-chunks/{capability-learning.d-_lR0J4iR.d.ts → capability-learning.d-DPrYxRjF.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-DxtdE-GD.d.ts → capsule.d-zeqV4IQX.d.ts} +11 -3
- package/dist/types-chunks/{commands.d-DZxHzH5-.d.ts → commands.d-DUxnK2TU.d.ts} +67 -8
- package/dist/types-chunks/{guardrail.d-DlpMnd-Y.d.ts → guardrail.d-CWYD1bdL.d.ts} +2 -1
- package/dist/types-chunks/{guardrail.d-auV61_h5.d.ts → guardrail.d-qjuKJZ31.d.ts} +79 -18
- package/dist/types-chunks/history-retrieval.d-BKTJIrVd.d.ts +57 -0
- package/dist/types-chunks/{public-api.d--IDNJsu1.d.ts → public-api.d-CX4B11qY.d.ts} +19 -5
- package/dist/types-chunks/{run-manager.d-Bh50OdVl.d.ts → run-manager.d-B9fEIjZk.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-Cfw6NFu-.d.ts → sdk-session-B0fhAOPa.d.ts} +3 -3
- package/dist/types-chunks/{resolver.d-ssgNSlrh.d.ts → side-query.d-DWTMsndP.d.ts} +68 -5
- package/dist/types-chunks/{types.d-EqQmHztg.d.ts → types.d-Bm_y6YuM.d.ts} +16 -9
- package/dist/types-chunks/{types.d-Cqaw71Ax.d.ts → types.d-CSmF0t0n.d.ts} +6 -5
- package/dist/types-chunks/{types.d-CNZgY52F.d.ts → types.d-DEctY20M.d.ts} +10 -3
- package/dist/types-chunks/{types.d-DH1mvdcl.d.ts → types.d-sRLugmjy.d.ts} +64 -15
- package/dist/types-chunks/{utils.d-gmn3c5U4.d.ts → utils.d-D0wPxz8y.d.ts} +94 -10
- package/docs/SDK_EMBEDDER_GUIDE.md +1952 -1573
- package/package.json +9 -2
- package/dist/chunks/agent-YKGU4USA.js +0 -2
- package/dist/chunks/argument-completer-QZETLNAB.js +0 -2
- package/dist/chunks/chunk-23X6REO4.js +0 -46
- package/dist/chunks/chunk-2RI252RN.js +0 -2
- package/dist/chunks/chunk-CLFP6UGU.js +0 -71
- package/dist/chunks/chunk-EDZ5KJFT.js +0 -5
- package/dist/chunks/chunk-GIK4SGAT.js +0 -364
- package/dist/chunks/chunk-GVWPHE23.js +0 -310
- package/dist/chunks/chunk-JSDLBXME.js +0 -755
- package/dist/chunks/chunk-VDGCGOQH.js +0 -328
- package/dist/chunks/chunk-VVE3UM4F.js +0 -410
- package/dist/chunks/chunk-ZJIMT5I3.js +0 -78
- package/dist/chunks/compaction-config-TWCDFLX6.js +0 -2
- package/dist/chunks/dist-JT4ATXVM.js +0 -2
- package/dist/chunks/host-SVEDZUC5.js +0 -2
- package/dist/chunks/run-manager-RX42UNEM.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,232 @@ All notable changes to this project will be documented in this file.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.7.74] - 2026-07-23
|
|
10
|
+
|
|
11
|
+
> Git tag and GitHub Release are published by the release workflow. npm
|
|
12
|
+
> publication remains a separate manual operator step.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Absolute automatic-compaction threshold (FEATURE_272).** SDK, Runtime
|
|
17
|
+
Session settings, daemon protocol, REPL, and KodaX Space now expose an
|
|
18
|
+
optional token threshold. Missing/zero is inactive; otherwise the smaller of
|
|
19
|
+
the absolute limit, bounded percentage policy, and physical provider capacity
|
|
20
|
+
triggers compaction. Percentage defaults to 75% and clamps to 15-90%, while
|
|
21
|
+
automatic large compaction remains always enabled.
|
|
22
|
+
- **Context-owned compaction telemetry and transcript paging.** Root and child
|
|
23
|
+
turns now carry stable `contextId`/revision ownership. The canonical
|
|
24
|
+
`context.compaction.finished` event reports committed before/after and
|
|
25
|
+
component metrics. Runtime observations use bounded transcript slices,
|
|
26
|
+
revision-bound pages, and lossless chunks for oversized entries; clients can
|
|
27
|
+
require `contextCompaction:3`, `transcriptPaging:1`, and
|
|
28
|
+
`transcriptSearch:1`.
|
|
29
|
+
- **Durable exact-history recovery.** The root host now persists and flushes
|
|
30
|
+
exact pre-compaction lineage before evicting raw bodies. Island sidecars are
|
|
31
|
+
committed before the slim main Session, stable entry IDs deduplicate overlap,
|
|
32
|
+
and failures preserve the last exact live or persisted copy. Root Agents gain
|
|
33
|
+
bounded `session_history_search` / `session_history_read`; SDK and daemon
|
|
34
|
+
clients gain revision-bound `sessions.transcriptSearch()`.
|
|
35
|
+
- **Runtime active-run interrupt input.** Embedded Runtime and the shared daemon
|
|
36
|
+
now advertise `interruptInput:1`. `runtime.runs.submitInput()` queues cloned,
|
|
37
|
+
ordered input for the current active Actor Run, delivers one FIFO batch as
|
|
38
|
+
separate user messages at the next safe Runner boundary, and exposes durable
|
|
39
|
+
queued/delivered lifecycle facts without creating a continuation Run or
|
|
40
|
+
leaking terminalized input into a later Run.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- **Mailbox-driven Agent coordination (FEATURE_273).** Model-visible
|
|
45
|
+
`wait_agent` now accepts only a bounded timeout and yields on the caller's
|
|
46
|
+
mailbox, root user input, interruption, or expiry. Progress remains available
|
|
47
|
+
through Actor snapshots, event replay, and SDK long-poll without waking and
|
|
48
|
+
resampling the parent model. The tool returns only a wake acknowledgement;
|
|
49
|
+
authenticated Agent messages and structured completion metadata enter the
|
|
50
|
+
transcript once at the next safe boundary. `list_agents` owns tree-state
|
|
51
|
+
inspection and `agent_output` owns targeted result reads.
|
|
52
|
+
- **Resident Goal lifecycle contracts.** `get_goal`, `create_goal`, and
|
|
53
|
+
`update_goal` keep their complete descriptions on both SA and managed AMA
|
|
54
|
+
paths. This removes an avoidable discovery round trip while preserving the
|
|
55
|
+
explicit-create and three-turn blocked-state rules. The remaining deferred
|
|
56
|
+
set stays at exactly 11 tools; schemas, handlers, permissions, Goal state, and
|
|
57
|
+
compaction-protected receipts are unchanged.
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- **Large compaction coverage and protected-tail basis.** Major compaction now
|
|
62
|
+
protects 20% of the effective trigger rather than 20% of the model maximum,
|
|
63
|
+
summarizes the complete eligible prefix in one transaction, and uses
|
|
64
|
+
map-once/reduce-once only for physical overflow. Exact main-request prefix
|
|
65
|
+
reuse preserves prompt/KV cache on both ordinary and managed-task paths while
|
|
66
|
+
explicitly excluding the protected raw tail from the summary.
|
|
67
|
+
- **User intent retention across repeated and degraded compaction.** Genuine
|
|
68
|
+
user queries are mechanically retained in a stable JSONL checkpoint ledger,
|
|
69
|
+
including text carried beside tool results. A query is represented exactly
|
|
70
|
+
once: raw while it remains in the protected tail, then in the ledger when its
|
|
71
|
+
prefix is compacted. The explicit emergency-pruning fallback installs query
|
|
72
|
+
recovery before removing old raw evidence.
|
|
73
|
+
- **SDK/UI accounting and daemon frame safety.** The legacy compact callback now
|
|
74
|
+
reports post-compact tokens on both execution paths, and automatic managed
|
|
75
|
+
compaction emits the same post-commit canonical event/report as the standard
|
|
76
|
+
agent path. Persisted anchors include admitted post-compact attachments.
|
|
77
|
+
Space ignores child context metrics for the root gauge/activity/cost display,
|
|
78
|
+
displays the last root transition, labels active model input separately from
|
|
79
|
+
complete visible history, and reads transcripts directly through bounded
|
|
80
|
+
page/chunk calls. The legacy full-transcript daemon method rejects responses
|
|
81
|
+
above 512 KiB instead of risking the 8 MiB frame.
|
|
82
|
+
- **Compacted-history loss and maintenance replay.** Full-lineage loads now
|
|
83
|
+
merge exact sidecar entries over slim placeholders, compaction writes use a
|
|
84
|
+
durable-before-evict boundary, child compaction cannot overwrite root
|
|
85
|
+
lineage, and maintenance preserves its append watermark instead of archiving
|
|
86
|
+
the same island entries again.
|
|
87
|
+
- **Agent completion delivery and resumed transcripts.** Unacknowledged root
|
|
88
|
+
completions persist an explicit pending-delivery set and are republished after
|
|
89
|
+
a hard restart; same-process Runtime reconstruction deduplicates the projected
|
|
90
|
+
queue by child turn ID, while acknowledged and legacy historical completions
|
|
91
|
+
are not replayed. Completion acknowledgement remains after authoritative
|
|
92
|
+
transcript persistence. Session restore also deduplicates and canonically
|
|
93
|
+
repositions tool groups by tool-use ID and binds repeated text to the latest
|
|
94
|
+
persisted suffix.
|
|
95
|
+
- **Deterministic reads, bounded tool attention, and compaction round exits.**
|
|
96
|
+
Auto Mode now handles complete risk-free static reads deterministically while
|
|
97
|
+
sensitive paths, credential stores, process environments, and named secret
|
|
98
|
+
variables require confirmation. Grep clips pathological lines and exposes
|
|
99
|
+
bounded offset continuation; one batch-admission owner separates physical
|
|
100
|
+
capacity from tool-attention spill. Current user-shaped and legacy compaction
|
|
101
|
+
checkpoints no longer cause a compacted query/final pair to be appended twice.
|
|
102
|
+
- **Release-review boundary fixes.** Emergency compaction fallback accounts for
|
|
103
|
+
system/tool overhead and response reserve before pruning and reports no
|
|
104
|
+
success for unchanged or still-oversized candidates. Runtime-backed REPL paths
|
|
105
|
+
use one Session writer, first-run headless compaction seeds Session metadata,
|
|
106
|
+
persistence failure rolls back tentative context revision, and history search
|
|
107
|
+
consistently excludes system/hidden/checkpoint/placeholder content. Auto
|
|
108
|
+
permission analysis samples the middle of long operation lists, POSIX paths
|
|
109
|
+
are not mistaken for Windows switches, and continuation errors identify
|
|
110
|
+
`runtime.runs.submitInput` accurately.
|
|
111
|
+
- **Release-candidate checkpoint and PowerShell boundary closure.** Session
|
|
112
|
+
lineage now consumes and re-renders the exact compaction checkpoint bytes,
|
|
113
|
+
including recovery guidance, so the compaction entry, first-kept pointer, and
|
|
114
|
+
post-compact attachments remain on the active path; legacy suffix-free
|
|
115
|
+
checkpoints still resume. Auto Mode treats bracket wildcards on PowerShell
|
|
116
|
+
path parameters as incomplete and escalates them, while exact `LiteralPath`
|
|
117
|
+
filenames containing brackets remain supported.
|
|
118
|
+
- **Reliable continue-most-recent selection.** `kodax -c`, classic/Ink startup,
|
|
119
|
+
one-shot CLI execution, and coding-runtime auto-resume now scan beyond the
|
|
120
|
+
legacy ten-session window, skip zero-message ACP/bootstrap placeholders, and
|
|
121
|
+
preserve an explicit session ID. Interactive resume restores the saved
|
|
122
|
+
workspace runtime together with messages, UI history, lineage, artifacts,
|
|
123
|
+
extensions, title, tag, and session identity before the next turn.
|
|
124
|
+
- **Deterministic Auto mode switching.** Entering Auto now displays the resolved
|
|
125
|
+
configured engine immediately instead of a transient bare `Auto`, and Runtime
|
|
126
|
+
setting writes are serialized per Session so rapid shortcut cycling is
|
|
127
|
+
last-action-wins. Persisted or automatic `Auto[RULES]` fallback remains sticky
|
|
128
|
+
by design and can be changed explicitly with `/auto-engine llm`.
|
|
129
|
+
- **Release-review debt closure.** Imperative manual compaction now reconciles
|
|
130
|
+
the exact flat Session history into lineage before creating the compaction
|
|
131
|
+
island. A failed durable interrupt-delivery event leaves the input queued,
|
|
132
|
+
rethrows the persistence error, and emits a bounded `runtime.warning` without
|
|
133
|
+
copying user input content into diagnostics.
|
|
134
|
+
|
|
135
|
+
### Documentation
|
|
136
|
+
|
|
137
|
+
- Root and generated JSONC templates, both READMEs, architecture/design docs,
|
|
138
|
+
the SDK embedder guide, feature/issue trackers, release verification guide,
|
|
139
|
+
package READMEs, and `kodax_manual` now describe the complete v0.7.74
|
|
140
|
+
compaction, mailbox-wait, active-run input, Goal-tool, resume, Auto-switch,
|
|
141
|
+
and recovery contracts.
|
|
142
|
+
|
|
143
|
+
## [0.7.73] - 2026-07-20
|
|
144
|
+
|
|
145
|
+
### Added
|
|
146
|
+
|
|
147
|
+
- **Qwen Token Plan provider.** The new `qwen-token-plan` alias uses the
|
|
148
|
+
Anthropic-compatible Alibaba Cloud Token Plan endpoint and
|
|
149
|
+
`QWEN_TOKEN_API_KEY`. It defaults to `qwen3.8-max-preview`, exposes the
|
|
150
|
+
supported Qwen 3.7/3.6, GLM-5.2, and DeepSeek V4 Pro routes with one-million-
|
|
151
|
+
token context metadata, and declares verified reasoning, image-input, and
|
|
152
|
+
nominal subscription-cost capabilities without changing the existing `qwen`
|
|
153
|
+
provider.
|
|
154
|
+
- **First-run provider setup (FEATURE_271).** A bare interactive `kodax`
|
|
155
|
+
launch with no selected provider and no supported local credential now opens
|
|
156
|
+
a focused provider/model setup flow before Runtime, daemon, session, or REPL
|
|
157
|
+
startup. `kodax setup` reruns the same flow explicitly. It stores only
|
|
158
|
+
non-secret metadata, preserves unrelated config through a revision-checked
|
|
159
|
+
atomic write, refuses malformed existing custom providers and credential-
|
|
160
|
+
bearing endpoint URLs, and then names the required environment variable and
|
|
161
|
+
terminal restart steps.
|
|
162
|
+
- **Typed Auto Mode SDK contract (FEATURE_271).** The root and REPL SDK
|
|
163
|
+
entries now export one pure `resolveAutoModeSettings()` plus the authoritative
|
|
164
|
+
loader and related types; `loadConfig().autoMode` is declared, Runtime Session
|
|
165
|
+
settings persist `autoModeSpeculativeWindowMs` (including `0`), and side
|
|
166
|
+
queries return prompt-free provider/model/timing/retry/phase diagnostics.
|
|
167
|
+
- **Runtime-owned concrete permission grants.** Embedded and daemon SDK clients
|
|
168
|
+
can submit concrete `toolInput` and `executionCwd`, receive only opaque
|
|
169
|
+
Runtime-issued Session/persistent grant suggestions, and select a suggestion
|
|
170
|
+
without constructing or widening its hidden matcher. Exact command, known
|
|
171
|
+
file-tool path, and generic exact-call matchers remain revisioned and audited;
|
|
172
|
+
dynamic or dangerous shell calls never receive a persistent suggestion.
|
|
173
|
+
|
|
174
|
+
### Fixed
|
|
175
|
+
|
|
176
|
+
- **Reasoning, Auto Mode, and confirmation regressions.** Native
|
|
177
|
+
disabled-thinking requests now send the provider's explicit disabled form
|
|
178
|
+
only for models that declare support (including verified Qwen Token Plan 3.7
|
|
179
|
+
routes); always-thinking variants retain their declared behavior. Sidecar
|
|
180
|
+
queries preserve a supported `none` effort, persisted Runtime Auto engines
|
|
181
|
+
are not overwritten by a fresh REPL, `/mode` synchronizes before reporting
|
|
182
|
+
success, and concurrent confirmation prompts are serialized instead of
|
|
183
|
+
replacing one another.
|
|
184
|
+
- **Legacy permission-grant upgrade safety.** Matcherless grants persisted by
|
|
185
|
+
older releases remain visible and revocable but can no longer authorize a
|
|
186
|
+
concrete tool call. The next invocation requires a fresh Runtime-issued
|
|
187
|
+
matcher, so old coarse Bash grants cannot bypass exact-command, dynamic-shell,
|
|
188
|
+
or absolute-deny protections.
|
|
189
|
+
- **Classifier credential boundary.** Auto[LLM] now redacts explicitly named
|
|
190
|
+
credential values inside shell-escaped JSON before sending an action to its
|
|
191
|
+
side provider, while retaining adjacent operational fields. Redaction is
|
|
192
|
+
documented as defense in depth; arbitrary Base64/hex values are not treated
|
|
193
|
+
as secrets without a credential signal.
|
|
194
|
+
- **Todo/Actor semantic progress checkpoint (FEATURE_270 follow-up).** Worker
|
|
195
|
+
guidance now treats Todo rows as user-visible milestones rather than Actor
|
|
196
|
+
instances and requires timely updates at milestone boundaries. Structured
|
|
197
|
+
terminal child results arm one deduplicated, warn-only reconciliation
|
|
198
|
+
reminder; transcript scans are append-incremental with safe compaction
|
|
199
|
+
fallback, and Sidecar accept-time residual reconciliation emits a diagnostic
|
|
200
|
+
without changing its existing bridge contract.
|
|
201
|
+
- **Auto LLM classifier timeout and missing-model escalation.** Runtime now
|
|
202
|
+
treats omitted Auto engine as the documented LLM default and still owns the
|
|
203
|
+
guardrail, while a missing/blank/malformed effective classifier model fails
|
|
204
|
+
as a typed recoverable Runtime error or a local block in the shared
|
|
205
|
+
`createAutoModeToolGuardrail` boundary. The final guardrail check runs before
|
|
206
|
+
provider lookup and cannot invoke `askUser`, record a circuit-breaker error,
|
|
207
|
+
or downgrade to rules. Classifier requests strip assistant prose/thinking,
|
|
208
|
+
cap normalized transcript/tool-result/action/prompt bytes, remove image
|
|
209
|
+
paths, and cap the structured response at 256 tokens. The 20-second deadline remains bounded:
|
|
210
|
+
a four-call `zai-coding/glm-5.2` probe completed representative Windows
|
|
211
|
+
permission verdicts in 1.9–2.8 seconds, while the matching production session
|
|
212
|
+
revealed a 1.625 MB tool result that had bypassed the existing sanitizer.
|
|
213
|
+
- **Auto guardrail daemon and tracing semantics.** Auto-started Runtime clients
|
|
214
|
+
now require `runtimeAutoModeGuardrail:3`. It retains v2's effective
|
|
215
|
+
timeout/window defaults, bounded classifier input, and diagnostics metadata,
|
|
216
|
+
and adds opaque concrete-grant semantics. Capability negotiation is monotonic
|
|
217
|
+
(v3 satisfies v2/v1); idle older daemons use the existing fenced upgrade path,
|
|
218
|
+
while busy daemons are left untouched with a recoverable error. Guardrail
|
|
219
|
+
spans now cover the awaited callback instead of timing only final verdict
|
|
220
|
+
emission.
|
|
221
|
+
- **Concurrent daemon startup publication race.** A cleanly exiting loser now
|
|
222
|
+
gives the elected owner a bounded publication grace period, preventing an
|
|
223
|
+
SDK starter from reporting failure during the short lock/state handoff gap.
|
|
224
|
+
- **Guardrail/permission execution parity.** Both Runner paths now commit each
|
|
225
|
+
guardrail rewrite before permission policy and execution, reject correlation-
|
|
226
|
+
id rewrites, propagate blocks as visible audited tool results, and preserve
|
|
227
|
+
embedded host policy hooks while rejecting non-transportable daemon hooks.
|
|
228
|
+
Calls rewritten into Bash retain serialized shell ordering.
|
|
229
|
+
- **Managed-run capacity and tool-dispatch accounting.** A complete system
|
|
230
|
+
prompt override no longer double-counts Skills, missing provider usage rebases
|
|
231
|
+
from the final request envelope, and authoritative provider usage remains
|
|
232
|
+
intact. Non-Bash tool calls keep parallel dispatch, Bash remains sequential,
|
|
233
|
+
and aggregate tool-result spill decisions use the complete batch budget.
|
|
234
|
+
|
|
9
235
|
## [0.7.72] - 2026-07-19
|
|
10
236
|
|
|
11
237
|
### Added
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-KAI--FCL_1.0-orange?style=flat-square"></a>
|
|
18
18
|
<a href="https://github.com/icetomoyo/KodaX/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/icetomoyo/KodaX?style=flat-square&logo=github&color=f1c40f"></a>
|
|
19
19
|
<a href="https://github.com/icetomoyo/KodaX/actions"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/icetomoyo/KodaX/release.yml?style=flat-square&label=release"></a>
|
|
20
|
-
<img alt="providers" src="https://img.shields.io/badge/LLMs-
|
|
20
|
+
<img alt="providers" src="https://img.shields.io/badge/LLMs-16_aliases_+_custom-2ecc71?style=flat-square">
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<p align="center">
|
|
@@ -44,12 +44,18 @@ npm i -g @kodax-ai/kodax
|
|
|
44
44
|
# Pick any one you have an API key for:
|
|
45
45
|
export ZHIPU_API_KEY=... # or ANTHROPIC_API_KEY / OPENAI_API_KEY / KIMI_API_KEY /
|
|
46
46
|
# MINIMAX_API_KEY / MIMO_API_KEY / ARK_API_KEY / QWEN_API_KEY /
|
|
47
|
+
# QWEN_TOKEN_API_KEY /
|
|
47
48
|
# DEEPSEEK_API_KEY / GEMINI_API_KEY
|
|
48
49
|
|
|
49
50
|
kodax
|
|
50
51
|
```
|
|
51
52
|
|
|
52
|
-
That's it. You're in the REPL — ask anything in natural language.
|
|
53
|
+
That's it. You're in the REPL — ask anything in natural language. If this is a
|
|
54
|
+
new machine with no provider selection or supported API-key environment
|
|
55
|
+
variable, the bare `kodax` launch opens a metadata-only setup flow first. It
|
|
56
|
+
never asks for the key itself; after choosing a provider/model, set the named
|
|
57
|
+
environment variable, restart the terminal, and run `kodax` again. Use
|
|
58
|
+
`kodax setup` to rerun that flow explicitly.
|
|
53
59
|
|
|
54
60
|
> **No-Node target machines:** download a Bun-compiled single binary for Windows / macOS / Linux × x64 + arm64 from the [GitHub Releases](https://github.com/icetomoyo/KodaX/releases) page. See [docs/release.md](docs/release.md) for the build pipeline.
|
|
55
61
|
|
|
@@ -141,6 +147,14 @@ npm link
|
|
|
141
147
|
|
|
142
148
|
KodaX reads API keys from environment variables. For built-in providers, the fastest path is:
|
|
143
149
|
|
|
150
|
+
```bash
|
|
151
|
+
# Interactive metadata-only provider/model setup (does not collect a key)
|
|
152
|
+
kodax setup
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The command tells you the exact environment-variable name to set and exits so
|
|
156
|
+
you can restart the terminal. You can also configure it directly:
|
|
157
|
+
|
|
144
158
|
```bash
|
|
145
159
|
# macOS / Linux
|
|
146
160
|
export ZHIPU_API_KEY=your_api_key
|
|
@@ -149,6 +163,14 @@ export ZHIPU_API_KEY=your_api_key
|
|
|
149
163
|
$env:ZHIPU_API_KEY="your_api_key"
|
|
150
164
|
```
|
|
151
165
|
|
|
166
|
+
For Qwen Token Plan, select `qwen-token-plan` and use its separate credential;
|
|
167
|
+
`QWEN_API_KEY` does not authenticate this route:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
export QWEN_TOKEN_API_KEY=your_api_key
|
|
171
|
+
kodax --provider qwen-token-plan
|
|
172
|
+
```
|
|
173
|
+
|
|
152
174
|
For CLI defaults, create `~/.kodax/config.json`:
|
|
153
175
|
|
|
154
176
|
```json
|
|
@@ -386,12 +408,16 @@ context diagnostics, and daemon protocol schemas, see
|
|
|
386
408
|
The Space/IDE shared-daemon contract is documented in
|
|
387
409
|
[SDK Embedder Guide section 23](docs/SDK_EMBEDDER_GUIDE.md#23-shared-coder-daemon-for-space-and-ide-hosts-feature_269-v0769).
|
|
388
410
|
|
|
389
|
-
**v0.7.72 Runtime
|
|
411
|
+
**v0.7.72–v0.7.73 Runtime permission contract:** Auto Mode is owned by the Runtime session,
|
|
390
412
|
not by a UI hook. It reuses its LLM/rules guardrail across turns, classifies
|
|
391
413
|
before the shared permission bridge, and persists an automatic fallback to
|
|
392
414
|
rules. The same session settings can select a classifier model and bounded
|
|
393
|
-
timeout
|
|
394
|
-
|
|
415
|
+
timeout; `auto` defaults to LLM classification and fails with a recoverable
|
|
416
|
+
configuration error when no effective classifier model exists, rather than
|
|
417
|
+
silently falling back. Runtime permission prompts now offer opaque, exact
|
|
418
|
+
allow-once/session/persistent grant suggestions; persistent grants are
|
|
419
|
+
daemon-owned and revisioned. Host plan exit is exposed only when the host
|
|
420
|
+
supplies an approval callback. See the [Runtime Auto Mode integration guide](docs/SDK_EMBEDDER_GUIDE.md#24-runtime-owned-auto-mode-and-plan-approval-bridges-v0772v0773).
|
|
395
421
|
|
|
396
422
|
## Repo Intelligence
|
|
397
423
|
|
|
@@ -411,7 +437,7 @@ KodaX uses a **monorepo architecture** with npm workspaces. Source layout curren
|
|
|
411
437
|
```
|
|
412
438
|
KodaX/
|
|
413
439
|
├── packages/ # 4 workspace packages (FEATURE_194 v0.7.43)
|
|
414
|
-
│ ├── llm/ # @kodax-ai/llm - LLM abstraction (
|
|
440
|
+
│ ├── llm/ # @kodax-ai/llm - LLM abstraction (16 built-in provider aliases)
|
|
415
441
|
│ │ └── providers/ # Anthropic, OpenAI, DeepSeek, Kimi, MiMo, MiniMax, Zhipu, Ark, …
|
|
416
442
|
│ │
|
|
417
443
|
│ ├── agent/ # @kodax-ai/agent - Generic Agent framework
|
|
@@ -459,7 +485,7 @@ KodaX/
|
|
|
459
485
|
┌──────────────┐ ┌──────────────────────────┐ ┌──────────────┐
|
|
460
486
|
│@kodax-ai/ │ │@kodax-ai/agent │ │@kodax-ai/llm │
|
|
461
487
|
│coding (via │ │Runner + fan-out + │ │LLM Abstract │
|
|
462
|
-
│above) │ │idle-yield + session- │ │(
|
|
488
|
+
│above) │ │idle-yield + session- │ │(16 aliases) │
|
|
463
489
|
│ │ │lineage + skills + mcp + │ │ │
|
|
464
490
|
│ │ │tracing (FEATURE_194) │ │ │
|
|
465
491
|
└──────────────┘ └──────────────────────────┘ └──────────────┘
|
|
@@ -471,7 +497,7 @@ Source-side workspace package names (`@kodax-ai/*`). npm consumers install the s
|
|
|
471
497
|
|
|
472
498
|
| Workspace package | Purpose | Key Dependencies |
|
|
473
499
|
|---------|---------|------------------|
|
|
474
|
-
| `@kodax-ai/llm` | LLM abstraction (
|
|
500
|
+
| `@kodax-ai/llm` | LLM abstraction (16 built-in provider aliases + custom registration) | @anthropic-ai/sdk, openai |
|
|
475
501
|
| `@kodax-ai/agent` | Generic Agent framework — Runner, fan-out, idle-yield, media/input artifacts, session-lineage, capabilities (mcp + skills), tracing (ADR-036 v0.7.43 consolidation; subpaths: `/media`, `/session-lineage`, `/capabilities/mcp`, `/capabilities/skills`, `/tracing`) | @kodax-ai/llm, js-tiktoken, fflate, jimp, yaml |
|
|
476
502
|
| `@kodax-ai/coding` | Coding Agent — 50+ tools (incl. canonical Actor collaboration tools) + role prompts + auto-continue + repo-intelligence protocol | @kodax-ai/llm, @kodax-ai/agent |
|
|
477
503
|
| `@kodax-ai/repl` | Complete interactive terminal UI (Ink/React, permission modes, commands, streaming) | @kodax-ai/coding, ink, react |
|
|
@@ -487,7 +513,7 @@ KodaX has two layers that consumers should understand separately:
|
|
|
487
513
|
|
|
488
514
|
| Source package | npm subpath | Type | What you get | Example consumer |
|
|
489
515
|
|---|---|---|---|---|
|
|
490
|
-
| `packages/llm` | `@kodax-ai/kodax/llm` | Full package |
|
|
516
|
+
| `packages/llm` | `@kodax-ai/kodax/llm` | Full package | 16-alias LLM abstraction (108 exports) | Standalone LLM clients |
|
|
491
517
|
| `packages/agent` | `@kodax-ai/kodax/agent` | Full package | Runner / fan-out / external-agent plane / session-lineage / capabilities / tracing (331 exports) | Custom agent frameworks |
|
|
492
518
|
| `packages/agent` | `@kodax-ai/kodax/skills` | **Narrow subset** | Skills system only — `SkillRegistry` / `loadFullSkill` / `expandSkillForLLM` / ... (26 exports = pre-v0.7.43 `@kodax-ai/skills` complete API) | Skill loaders, IDE plugins |
|
|
493
519
|
| `packages/agent` | `@kodax-ai/kodax/mcp` | **Narrow subset** | MCP only — `McpCapabilityProvider` / `createMcpTransport` / `searchMcpCatalog` / ... (23 exports) | MCP server hosts |
|
|
@@ -511,9 +537,15 @@ KodaX has two layers that consumers should understand separately:
|
|
|
511
537
|
|
|
512
538
|
**Historical Workflow Activation Tiers (FEATURE_248 + FEATURE_249, v0.7.59; superseded by F270 in v0.7.72)**: v0.7.59 introduced AMAW and explicit-request AMA behavior. F270 retires AMAW and its complexity-driven directive. SA remains solo; AMA is the single adaptive multi-Agent mode and activates Workflow only from explicit Workflow intent. See [docs/features/v0.7.59.md](docs/features/v0.7.59.md) and [docs/features/v0.7.72.md](docs/features/v0.7.72.md).
|
|
513
539
|
|
|
514
|
-
**Progressive Disclosure on the Managed Tool Path (FEATURE_250, v0.7.60;
|
|
540
|
+
**Progressive Disclosure on the Managed Tool Path (FEATURE_250, v0.7.60; current policy corrected in v0.7.74)**: the deferred-tool mechanism applies to the managed AMA path as well as SA. The current deferred set contains exactly 11 tools: six repo-intelligence tools, four web/code discovery tools, and `run_workflow`. Their `input_schema` remains directly callable while `tool_search` provides the full description on demand. The five fixed `mcp_*` facades and the `get_goal` / `create_goal` / `update_goal` lifecycle tools stay resident with their complete contracts. The v0.7.74 goal correction adds only about 109 estimated schema tokens versus the former hints (`get_goal` is actually 12 tokens smaller when resident), removes a discovery round trip, and changes no tool schema, handler, permission, goal state, or compaction-protection behavior. See [docs/features/v0.7.60.md](docs/features/v0.7.60.md) and [docs/features/v0.7.74.md](docs/features/v0.7.74.md#feature_250-v0774-correction-resident-goal-lifecycle-tools).
|
|
541
|
+
|
|
542
|
+
**Context-Efficient Tool Results + Workflow Quality Preflight (FEATURE_251 + FEATURE_252, v0.7.61; corrected 2026-07-14)**: local tools collect complete output and apply only contract-equivalent normalization that is strictly shorter; command-specific lossy Bash filters are off by default, and compound Bash uses no semantic adapter. One owner evaluates the complete parallel-result batch against the final provider request: it solves the largest final input `Pmax` for which `Pmax + output reserve + max(2048, 3% of Pmax) <= context window`, then admits only the remaining physical capacity. Results stay verbatim whenever they fit; only real overflow persists the complete value and emits `KODAX_RESULT_INCOMPLETE`. History keeps the same physical-capacity safety rule: no default lossy microcompaction below capacity, summary-first at pressure, and typed failure without silent deletion when a recoverable request cannot be formed. FEATURE_272 supersedes FEATURE_251 only for the default major-compaction trigger. FEATURE_252's deterministic pre-start workflow contract lint is unchanged. See [docs/features/v0.7.61.md](docs/features/v0.7.61.md) and [docs/ADR.md ADR-050](docs/ADR.md).
|
|
515
543
|
|
|
516
|
-
**
|
|
544
|
+
**Reliable Always-On Context Compaction (FEATURE_272, v0.7.74)**: automatic major compaction cannot be disabled. Its percentage trigger defaults to 75% and clamps to 15-90%; optional `triggerTokens` is inactive when omitted/zero, otherwise the smaller percentage, absolute, and physical-capacity threshold wins. The protected raw tail is 20% of that effective trigger. One transaction summarizes the complete eligible prefix, preserves every genuine user request through an exact ledger, and emits success only after a physically valid token reduction and awaited durable commit. Before raw bodies are evicted, the Session owner durably flushes their exact lineage; stable entry IDs merge the sidecar and slim Session without duplicates. Root and persistent child Agents can recover omitted user/assistant/tool details through bounded `session_history_search` → `session_history_read`, with children isolated to hidden worker Sessions and never granted root-history access. SDK/Runtime clients use revision-bound `transcriptSearch`, pages, and lossless chunks. Hidden reasoning, system instructions, and synthetic checkpoints are excluded from model search. See [the feature design](docs/features/v0.7.74.md), [SDK guide §25](docs/SDK_EMBEDDER_GUIDE.md#25-always-on-context-compaction-and-bounded-transcript-recovery-v0774), and [ADR-057](docs/ADR.md#adr-057-large-compaction-is-an-always-on-context-scoped-full-coverage-transaction).
|
|
545
|
+
|
|
546
|
+
**Mailbox-Driven Agent Coordination (FEATURE_273, v0.7.74)**: `wait_agent` is now a true model-facing mailbox yield with one bounded `timeout_ms`, not an Actor progress/event reader. It wakes for scoped Agent messages or completions, root user input, interruption, or timeout; progress remains available to UI/SDK snapshot, replay, and long-poll consumers without resampling the parent model. The tool returns only a wake acknowledgement, while authenticated Agent evidence and structured task metadata enter the next safe model boundary once. Unacknowledged root completions survive a hard restart, same-process Runtime rebuilds deduplicate by child turn ID, and acknowledged or legacy historical completions are not replayed. Use `list_agents` for tree state and `agent_output` for a targeted known result. See [the feature design](docs/features/v0.7.74.md#feature_273-mailbox-driven-agent-wait-and-telemetrycontrol-separation), [SDK guide §26](docs/SDK_EMBEDDER_GUIDE.md#26-agent-mailbox-control-versus-sdk-event-telemetry-v0774), and [ADR-058](docs/ADR.md#adr-058-model-agent-wait-is-mailbox-control-not-event-telemetry).
|
|
547
|
+
|
|
548
|
+
**Active-Run Interrupt Input (v0.7.74)**: embedded Runtime and the shared daemon advertise `interruptInput:1`. `runtime.runs.submitInput()` queues an immutable, ordered input for the current active Actor Run; all inputs admitted before one safe Runner boundary are delivered FIFO as separate user messages in the next LLM request, without creating continuation Runs. Queued/delivered state is visible in typed Run snapshots/events, delivery is acknowledged against the exact consumed IDs, and terminal cleanup prevents undelivered input from leaking into later Runs.
|
|
517
549
|
|
|
518
550
|
**External Agent SDK Plane (FEATURE_258, v0.7.67)**: `/agent` exports the protocol-neutral executor, registration, policy, credential-broker, artifact-policy, catalog, and durable task contracts. `/runtime` exposes the installed plane through `admin.agentRegistrations`, `agents`, and `agentTasks`, with the same DTO service methods over embedded and daemon clients. Executor factories are host functions: install them in an inline owner or while creating a new in-process daemon owner; they cannot be injected through an existing daemon connection or across a Runtime Worker boundary. Plane shutdown is terminal: pending waits and all later service calls reject. Restricted Workflow scripts preserve validated `phase` and external `target` routing. See the [complete owner/consumer recipes and safety contract](docs/SDK_EMBEDDER_GUIDE.md#18-external-agent-executor-plane-feature_258-v0767).
|
|
519
551
|
|
|
@@ -626,7 +658,7 @@ one-time provisioning).
|
|
|
626
658
|
## Features
|
|
627
659
|
|
|
628
660
|
- **Modular Architecture** - Use as CLI, as a library, or as a Node-free single binary
|
|
629
|
-
- **
|
|
661
|
+
- **16 Built-in Provider Aliases** - Anthropic, OpenAI, DeepSeek, Kimi, Kimi Code, Qwen, Qwen Token Plan, Zhipu, Zhipu Coding, Zai Coding, MiniMax Coding, MiMo Coding, MiMo, Ark Coding, Gemini CLI, Codex CLI - plus user-defined OpenAI/Anthropic-compatible providers
|
|
630
662
|
- **Dynamic Workflows + SDK Process Surface** - Generate/reuse capability-routed workflows, observe live progress through `WorkflowProcessSnapshot`, and control workflow lifecycle from SDK hosts without parsing REPL output
|
|
631
663
|
- **V2 Worker single-loop + Sidecar Verifier (default)** - Single-agent main loop with an out-of-band Sidecar Verifier as Stop-hook (claudecode-shape; FEATURE_184 v0.7.42, ADR-030). Verifier returns accept/revise/blocked verdict on Worker text-only termination. The pre-v0.7.43 V1 chain is retired, `emit_handoff` is deleted, accept-verdict UI silently passes through, and content-aware gating skips trivial-chat sidecar calls. Adaptive child steering uses the canonical Actor collaboration tools with idle-yield waiting; specialist routing uses `spawn_agent(agent_id=...)`.
|
|
632
664
|
- **Reasoning Effort** - Effort-first control (`off/auto/low/medium/high` plus model-supported extras) across providers
|
|
@@ -728,7 +760,7 @@ For smaller surface and tree-shake-friendly imports, the SDK is also exposed via
|
|
|
728
760
|
|
|
729
761
|
```typescript
|
|
730
762
|
import { Runner } from '@kodax-ai/kodax/agent'; // agent runtime
|
|
731
|
-
import { getProvider } from '@kodax-ai/kodax/llm'; // LLM abstraction (
|
|
763
|
+
import { getProvider } from '@kodax-ai/kodax/llm'; // LLM abstraction (16 aliases)
|
|
732
764
|
import { runKodaX } from '@kodax-ai/kodax/coding'; // coding tools + prompts
|
|
733
765
|
import { createImageArtifactFromPath } from '@kodax-ai/kodax/media'; // input artifacts
|
|
734
766
|
import { SkillRegistry } from '@kodax-ai/kodax/skills'; // zero-dep skill loader
|
|
@@ -855,7 +887,7 @@ kodax --session todo-app "Write tests"
|
|
|
855
887
|
kodax Start the interactive REPL
|
|
856
888
|
-h, --help [topic] Show help or topic help
|
|
857
889
|
-p, --print <text> Run a single task and exit
|
|
858
|
-
-c, --continue Continue the most recent conversation in this directory
|
|
890
|
+
-c, --continue Continue the most recent non-empty conversation in this directory
|
|
859
891
|
-r, --resume [value] Resume by ID/exact title, or open the searchable picker
|
|
860
892
|
-m, --provider Provider to use
|
|
861
893
|
--model <name> Override the model
|
|
@@ -896,6 +928,22 @@ KodaX provides 3 permission modes for fine-grained control:
|
|
|
896
928
|
- Auto Mode runs guardrail classification before the permission UI; a safe
|
|
897
929
|
allow verdict does not create a pending approval request. The session records
|
|
898
930
|
an automatic LLM-to-rules fallback for later turns.
|
|
931
|
+
- Shift-Tab cycles `Plan -> Edits -> Auto`; Shift+Enter inserts a newline. Auto
|
|
932
|
+
immediately displays `Auto[LLM]` or `Auto[RULES]`, and rapid mode changes are
|
|
933
|
+
persisted in input order. `Auto[RULES]` is a valid sticky fallback/manual
|
|
934
|
+
state; use `/auto-engine llm` to opt back into LLM classification.
|
|
935
|
+
- Runtime-backed prompts can offer exact `allow once`, `allow this session`,
|
|
936
|
+
and `always allow` choices. Return the Runtime-issued opaque suggestion;
|
|
937
|
+
never derive or widen a permission rule from the displayed command or path.
|
|
938
|
+
Persistent grants are daemon-owned, revisioned, and can be listed/revoked
|
|
939
|
+
through `runtime.permissions` by an authorized SDK host. Dynamic shell
|
|
940
|
+
commands deliberately receive no persistent-grant suggestion.
|
|
941
|
+
|
|
942
|
+
`kodax -c` skips zero-message ACP/bootstrap placeholders even when they are
|
|
943
|
+
newer than the last real conversation. The same newest non-empty rule applies
|
|
944
|
+
to Ink, classic, one-shot CLI, and coding-runtime auto-resume; an explicit
|
|
945
|
+
session ID always wins. Interactive resume also restores the saved workspace
|
|
946
|
+
runtime before relative shell commands or the next model turn.
|
|
899
947
|
|
|
900
948
|
### CLI Help Topics
|
|
901
949
|
|
|
@@ -1059,7 +1107,7 @@ npm install @kodax-ai/kodax
|
|
|
1059
1107
|
```typescript
|
|
1060
1108
|
import { runKodaX } from '@kodax-ai/kodax'; // root: CLI helpers + runKodaX
|
|
1061
1109
|
import { Runner, runFanOut } from '@kodax-ai/kodax/agent'; // generic Agent framework
|
|
1062
|
-
import { getProvider } from '@kodax-ai/kodax/llm'; //
|
|
1110
|
+
import { getProvider } from '@kodax-ai/kodax/llm'; // 16-alias LLM abstraction
|
|
1063
1111
|
import { KODAX_TOOLS } from '@kodax-ai/kodax/coding'; // tools + prompts + agent loop
|
|
1064
1112
|
import { createImageArtifactFromPath } from '@kodax-ai/kodax/media'; // input artifact helpers
|
|
1065
1113
|
import { runInkInteractiveMode } from '@kodax-ai/kodax/repl'; // Ink TUI entrypoint
|
|
@@ -1075,7 +1123,7 @@ import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-
|
|
|
1075
1123
|
|
|
1076
1124
|
### `@kodax-ai/kodax/llm` — LLM Abstraction
|
|
1077
1125
|
|
|
1078
|
-
|
|
1126
|
+
16 built-in provider aliases (Anthropic, OpenAI, DeepSeek, Kimi, Kimi-Code, Qwen, Qwen-Token-Plan, Zhipu, Zhipu-Coding, Zai-Coding, MiniMax-Coding, MiMo, MiMo-Coding, Ark-Coding, Gemini-CLI, Codex-CLI) + custom provider registration.
|
|
1079
1127
|
|
|
1080
1128
|
```typescript
|
|
1081
1129
|
import { getProvider, KodaXBaseProvider } from '@kodax-ai/kodax/llm';
|
|
@@ -1124,6 +1172,10 @@ const tree = actors.list('/root');
|
|
|
1124
1172
|
const policy = new DefaultSummaryCompaction({ thresholdRatio: 0.8, keepRecent: 10 });
|
|
1125
1173
|
```
|
|
1126
1174
|
|
|
1175
|
+
`DefaultSummaryCompaction` is a standalone agent-layer primitive for custom
|
|
1176
|
+
loops. It does not replace or disable KodaX's always-on coding-runtime policy
|
|
1177
|
+
described under FEATURE_272 above.
|
|
1178
|
+
|
|
1127
1179
|
**Key Features**: `Runner` + per-step lifecycle · `runFanOut` (bounded-concurrency + abort + progress events) · `runWithIdleYield` (chat-while-waiting) · `AgentActorController` / `AgentTurnScheduler` · session-id generation · tiktoken-based token estimation · `CompactionPolicy` interface.
|
|
1128
1180
|
|
|
1129
1181
|
### `@kodax-ai/kodax/skills` — Skills System
|
|
@@ -1213,7 +1265,7 @@ await runInkInteractiveMode({ provider: 'zhipu-coding', effort: 'auto' });
|
|
|
1213
1265
|
|
|
1214
1266
|
| Use Case | Subpath | Why |
|
|
1215
1267
|
|----------|---------|-----|
|
|
1216
|
-
| Only need LLM abstraction | `@kodax-ai/kodax/llm` | Minimal deps;
|
|
1268
|
+
| Only need LLM abstraction | `@kodax-ai/kodax/llm` | Minimal deps; 16 built-in aliases |
|
|
1217
1269
|
| Building custom agent | `@kodax-ai/kodax/agent` | Runner + fan-out + idle-yield + session-lineage + capabilities |
|
|
1218
1270
|
| Coding tasks | `@kodax-ai/kodax/coding` | Complete coding agent + tools |
|
|
1219
1271
|
| Terminal app | `@kodax-ai/kodax/repl` | Full interactive experience |
|
|
@@ -1229,6 +1281,7 @@ await runInkInteractiveMode({ provider: 'zhipu-coding', effort: 'auto' });
|
|
|
1229
1281
|
| kimi | `KIMI_API_KEY` | Native | kimi-k2.7-code (262,144-token context; `kimi-k2.7-code-highspeed` / `kimi-k2.6` / `kimi-k2.5` via `/model`) |
|
|
1230
1282
|
| kimi-code | `KIMI_CODE_API_KEY` | Native | kimi-for-coding (`k3-256k` for Moderato / `k3` 1M for Allegretto+ / `kimi-for-coding-highspeed` via `/model`; both K3 choices use upstream `k3`) |
|
|
1231
1283
|
| qwen | `QWEN_API_KEY` | Native | qwen3.5-plus |
|
|
1284
|
+
| qwen-token-plan | `QWEN_TOKEN_API_KEY` | Native | qwen3.8-max-preview (Anthropic-compat; `qwen3.7-max` / `qwen3.7-plus` / `qwen3.6-flash` / `glm-5.2` / `deepseek-v4-pro` via `/model`; all 1M context; image input on Qwen 3.8 / 3.7 Plus / 3.6 Flash) |
|
|
1232
1285
|
| zhipu | `ZHIPU_API_KEY` | Native | glm-5 (`glm-5.2` 1M ctx / `glm-5.1` / `glm-5-turbo` via `/model`) |
|
|
1233
1286
|
| zhipu-coding | `ZHIPU_CODING_API_KEY` | Native | glm-5.2 (1M ctx; legacy `glm-5.1` and `glm-5-turbo` remain selectable via `/model`) |
|
|
1234
1287
|
| zai-coding | `ZAI_CODING_API_KEY` | Native | glm-5.2 (Zhipu Coding Plan overseas mirror via `api.z.ai`, Anthropic-compat — same model lineup as `zhipu-coding`, served from outside CN) |
|
|
@@ -1322,7 +1375,7 @@ KodaX ships 50+ built-in tools, grouped below. They are registered as a single f
|
|
|
1322
1375
|
| `spawn_agent` | Create a named child Actor and start its first Turn under inherited capabilities, session capacity, and root work budget. |
|
|
1323
1376
|
| `send_message` | Commit bounded information to an Actor mailbox without starting a new Turn. |
|
|
1324
1377
|
| `followup_task` | Join a running Actor at a safe boundary or atomically start a new Turn for an idle Actor. |
|
|
1325
|
-
| `wait_agent` |
|
|
1378
|
+
| `wait_agent` | Yield on scoped mailbox/user/interruption/timeout activity; returns a wake acknowledgement and never uses Actor progress as a model wake source. |
|
|
1326
1379
|
| `interrupt_agent` | Request interruption of an active Turn while preserving Actor identity. |
|
|
1327
1380
|
| `list_agents` | Inspect the caller-visible Actor subtree and Turn states. |
|
|
1328
1381
|
| `agent_output` | Read bounded durable output for an authorized Actor/Turn. |
|
|
@@ -1465,6 +1518,7 @@ KodaX uses an **English-first** comment style with selective Chinese brief notes
|
|
|
1465
1518
|
## Documentation
|
|
1466
1519
|
|
|
1467
1520
|
- [README_CN.md](README_CN.md) - Chinese Documentation
|
|
1521
|
+
- [docs/SDK_EMBEDDER_GUIDE.md](docs/SDK_EMBEDDER_GUIDE.md) - SDK hosting, shared Runtime daemon, Auto Mode, v0.7.74 compaction/history recovery, Agent telemetry, and active-run input contracts
|
|
1468
1522
|
- [docs/release.md](docs/release.md) - Standalone binary build & release pipeline
|
|
1469
1523
|
- [docs/PRD.md](docs/PRD.md) - Product Requirements
|
|
1470
1524
|
- [docs/ADR.md](docs/ADR.md) - Architecture Decisions
|