kiokuko-dsh 0.2.41 → 0.2.42
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 +2 -2
- package/dist/client.cjs +19 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/dsh/core/host.d.ts.map +1 -1
- package/dist/dsh/core/host.js +8 -6
- package/dist/dsh/core/host.js.map +1 -1
- package/dist/dsh/core/tasks.d.ts.map +1 -1
- package/dist/dsh/core/tasks.js +10 -2
- package/dist/dsh/core/tasks.js.map +1 -1
- package/dist/dsh/decisions/akinator-answers.d.ts +12 -0
- package/dist/dsh/decisions/akinator-answers.d.ts.map +1 -0
- package/dist/dsh/decisions/akinator-answers.js +30 -0
- package/dist/dsh/decisions/akinator-answers.js.map +1 -0
- package/dist/dsh/decisions/service.d.ts.map +1 -1
- package/dist/dsh/decisions/service.js +13 -1
- package/dist/dsh/decisions/service.js.map +1 -1
- package/dist/dsh/existing-task-intake.d.ts +3 -0
- package/dist/dsh/existing-task-intake.d.ts.map +1 -1
- package/dist/dsh/existing-task-intake.js +6 -2
- package/dist/dsh/existing-task-intake.js.map +1 -1
- package/dist/dsh/harness/factory.d.ts +2 -1
- package/dist/dsh/harness/factory.d.ts.map +1 -1
- package/dist/dsh/harness/factory.js +21 -5
- package/dist/dsh/harness/factory.js.map +1 -1
- package/dist/dsh/host-adapter.d.ts.map +1 -1
- package/dist/dsh/host-adapter.js +6 -2
- package/dist/dsh/host-adapter.js.map +1 -1
- package/dist/dsh/intake-gate.d.ts.map +1 -1
- package/dist/dsh/intake-gate.js +7 -2
- package/dist/dsh/intake-gate.js.map +1 -1
- package/dist/dsh/intake-profile-resolver.d.ts.map +1 -1
- package/dist/dsh/intake-profile-resolver.js +4 -9
- package/dist/dsh/intake-profile-resolver.js.map +1 -1
- package/dist/dsh/lisp/native-child-ownership.d.ts +31 -0
- package/dist/dsh/lisp/native-child-ownership.d.ts.map +1 -0
- package/dist/dsh/lisp/native-child-ownership.js +66 -0
- package/dist/dsh/lisp/native-child-ownership.js.map +1 -0
- package/dist/dsh/lisp/surface.d.ts.map +1 -1
- package/dist/dsh/lisp/surface.js +7 -2
- package/dist/dsh/lisp/surface.js.map +1 -1
- package/dist/dsh/model-routing.d.ts.map +1 -1
- package/dist/dsh/model-routing.js +8 -2
- package/dist/dsh/model-routing.js.map +1 -1
- package/dist/dsh/models/profiles.d.ts.map +1 -1
- package/dist/dsh/models/profiles.js +4 -1
- package/dist/dsh/models/profiles.js.map +1 -1
- package/dist/dsh/models/service.d.ts +8 -0
- package/dist/dsh/models/service.d.ts.map +1 -1
- package/dist/dsh/models/service.js +29 -5
- package/dist/dsh/models/service.js.map +1 -1
- package/dist/dsh/models/vendor/infron-listing.d.ts +17 -0
- package/dist/dsh/models/vendor/infron-listing.d.ts.map +1 -0
- package/dist/dsh/models/vendor/infron-listing.js +97 -0
- package/dist/dsh/models/vendor/infron-listing.js.map +1 -0
- package/dist/dsh/models/vendor/opencode-adapter.d.ts.map +1 -1
- package/dist/dsh/models/vendor/opencode-adapter.js +6 -1
- package/dist/dsh/models/vendor/opencode-adapter.js.map +1 -1
- package/dist/dsh/native-task-authority.js +1 -1
- package/dist/dsh/native-task-authority.js.map +1 -1
- package/dist/dsh/native-worker-routing.d.ts.map +1 -1
- package/dist/dsh/native-worker-routing.js +5 -3
- package/dist/dsh/native-worker-routing.js.map +1 -1
- package/dist/dsh/on-demand-intake.d.ts +9 -2
- package/dist/dsh/on-demand-intake.d.ts.map +1 -1
- package/dist/dsh/on-demand-intake.js +39 -1
- package/dist/dsh/on-demand-intake.js.map +1 -1
- package/dist/dsh/orchestration/managed-agent-executor.d.ts +14 -13
- package/dist/dsh/orchestration/managed-agent-executor.d.ts.map +1 -1
- package/dist/dsh/orchestration/managed-agent-executor.js +7 -2
- package/dist/dsh/orchestration/managed-agent-executor.js.map +1 -1
- package/dist/dsh/repository-learning.d.ts +1 -0
- package/dist/dsh/repository-learning.d.ts.map +1 -1
- package/dist/dsh/repository-learning.js +70 -9
- package/dist/dsh/repository-learning.js.map +1 -1
- package/dist/dsh/task-startup.d.ts.map +1 -1
- package/dist/dsh/task-startup.js +4 -7
- package/dist/dsh/task-startup.js.map +1 -1
- package/dist/dsh/task-state-host.d.ts +4 -0
- package/dist/dsh/task-state-host.d.ts.map +1 -1
- package/dist/dsh/task-state-host.js +20 -1
- package/dist/dsh/task-state-host.js.map +1 -1
- package/dist/locale/en.json +1 -1
- package/dist/locale/ja.json +1 -1
- package/dist/locale/ko.json +1 -1
- package/dist/locale/zh-CN.json +1 -1
- package/dist/models-client.cjs +1 -0
- package/docs/kiokuko-harness.md +2 -2
- package/docs/kiokuko-models.md +8 -0
- package/docs/lisp.md +1 -1
- package/docs/on-demand-intake.md +4 -2
- package/docs/repository-learning.md +14 -37
- package/docs/typed-decisions.md +3 -2
- package/package.json +1 -1
package/docs/lisp.md
CHANGED
|
@@ -605,6 +605,6 @@ Clean installation and platform status: [code intelligence setup](code-intellige
|
|
|
605
605
|
## Coding task choice and recovery
|
|
606
606
|
|
|
607
607
|
For a new coding task, `coding_workflow` first defines and displays the Goal, implementation items and observable conditions. The host then asks whether to use Lisp. Configuration alone never implies yes; an explicit manual session ON is reused as the selected route.
|
|
608
|
-
`startupDefaults.lisp` (default `ask`) only preselects the Lisp answer on the task-startup card, which stays editable; a saved answer still wins. The default never enables the module or satisfies a yes: a missing runtime or failed startup remains the same recoverable blocker. Closing the question leaves it pending and `coding_workflow next` reopens the same question.
|
|
608
|
+
`startupDefaults.lisp` (default `ask`) only preselects the Lisp answer on the task-startup card, which stays editable; a saved answer still wins. The default never enables the module or satisfies a yes: a missing runtime or failed startup remains the same recoverable blocker. Closing the question leaves it pending and `coding_workflow next` reopens the same question. The combined startup card reuses the chat choice after restart and on ordinary follow-ups. A different chat or repository asks separately; explicit Lisp commands still override the inherited choice. A saved yes followed by startup failure remains a visible blocker; recover the runtime or explicitly change the task route with `/kioku-lisp disable`. No uses ordinary tools and still requires fresh item checks followed by a final user-entry Goal check. Lisp evaluation success alone is insufficient: bind `task_completion` and collect actual host process evidence. See [coding workflow](coding-workflow.md).
|
|
609
609
|
|
|
610
610
|
Live opt-in condition/restart recovery: see [bounded recovery](lisp-recovery.md).
|
package/docs/on-demand-intake.md
CHANGED
|
@@ -9,13 +9,15 @@ await mountCore(context, {
|
|
|
9
9
|
})
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
An explicit `intakeMode: 'eager'` retains upfront preparation for known intent. Native
|
|
12
|
+
An explicit `intakeMode: 'eager'` retains upfront preparation for known intent. Native Akinator first asks the configured decision provider to answer each missing intake question. A decision below 51% certainty, abstention, failure or rejected input sends that question to the human through the native question UI. The original request is retained; explicitly prepared and owned effects still require their preparation and existing host checks. Ordinary native Bash remains on its native permission path, independently of optional preparation. Disabling typed decisions defers interpretation to the main model using the same source-bound contract. Unknown mode values are rejected.
|
|
13
13
|
|
|
14
14
|
A separately supplied custom execution host can use the exported `createDshHostAdapter`, or must implement the same native `onDemandIntake` ownership contract; it cannot be safely synthesized from a tool list. Unsupported custom execution hosts fail with an actionable error rather than silently reverting to upfront questions. They may be updated or deliberately configured with the legacy eager opt-out. Prompt/Skill-only custom hosts own no execution ingress and remain supported.
|
|
15
15
|
|
|
16
16
|
## Conversation before execution
|
|
17
17
|
|
|
18
|
-
The native model receives the complete original user messages and
|
|
18
|
+
The native model receives the complete original user messages. Akinator resolves purpose, target and success criteria through decisions first. Answers at or above 51% certainty are accepted; lower certainty, abstention or unavailable decisions ask the human the unresolved question. Probability-based providers use the selected answer's probability; TypeSafe uses its confidence. This threshold applies only to Akinator and does not change execution or permission decisions. Target and success answers must select actual request or current task evidence; the working directory and a generic completion promise are not substitutes. Human and decision answers are labelled separately alongside the unchanged request.
|
|
19
|
+
|
|
20
|
+
When decisions are explicitly OFF, ordinary conversation proceeds normally, while unresolved action references such as “Fix it” still ask for missing target and success criteria. Prepared task intake likewise leaves missing fields unanswered. Clarification creates no execution authority, active ledger run or completed task. A queued human request after a normal turn is classified independently rather than inheriting that stale turn's execution readiness.
|
|
19
21
|
|
|
20
22
|
Research, writing and action requests remain work requests. The host guidance tells the assistant to prepare requested tool-backed work rather than silently substitute a text answer or claim unperformed work.
|
|
21
23
|
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
# Continuous repository learning
|
|
2
2
|
|
|
3
|
-
Kiokuko
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
unknown turns are retained as those lifecycle observations, never as verified task
|
|
7
|
-
success.
|
|
3
|
+
Kiokuko offers review after each completed or failed **native conversation turn**, including answers without tools. First it asks whether to organize the turn. It then shows the exact proposed summary, lessons and sources and asks whether to save them. Neither a completed turn nor model output authorizes persistence.
|
|
4
|
+
|
|
5
|
+
Decline, dismissal, missing question UI, Stop, a new turn and plugin reload save no pending proposal. Cancelled and unknown turns do not open review or create memories. Existing stored memories are preserved.
|
|
8
6
|
|
|
9
7
|
## Normal startup and data flow
|
|
10
8
|
|
|
11
9
|
The public plugin's lifecycle memory mounts the repository-learning coordinator.
|
|
12
10
|
At a turn boundary it freezes bounded, redacted native user/tool/result/assistant
|
|
13
|
-
observations, the native session/turn identity and the current model route.
|
|
11
|
+
observations, the native session/turn identity and the current model route. After the human chooses to organize, it uses
|
|
14
12
|
the host's actual `llm.prepareCall` / `llm.stream` API on that route, with no tools,
|
|
15
13
|
to propose up to four source-cited hypotheses. An externally registered
|
|
16
14
|
`kiokukoReplayReflector` service is **not required** for this path.
|
|
17
15
|
|
|
18
16
|
The reflector receives the previous repository compact and this turn's evidence.
|
|
19
|
-
It can refine previous hypotheses in light of new evidence. SQLite appends the
|
|
17
|
+
It can refine previous hypotheses in light of new evidence. After approval of the displayed proposal, SQLite appends the
|
|
20
18
|
turn and atomically updates a bounded projection: recent observations and compact
|
|
21
19
|
hypotheses, including provenance, uncertainty, repeated occurrence counts and
|
|
22
20
|
repository tags. A correction may name existing hypothesis IDs in `supersedes`, supply a
|
|
@@ -27,8 +25,7 @@ model-proposed corrections, not established truth. Distinct remaining hypotheses
|
|
|
27
25
|
retain an unresolved-compatibility assessment. History remains in SQLite while the
|
|
28
26
|
model-visible projection has a whole-point budget; omitted points are counted.
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
learning and reads that repository's projection directly. **Keyword overlap is not
|
|
28
|
+
A new turn cancels any pending review, then reads the repository's approved projection. **Keyword overlap is not
|
|
32
29
|
required**. A new session in the same canonical repository gets the accumulated
|
|
33
30
|
compact; another repository does not. Root identity comes from trusted host cwd
|
|
34
31
|
and repository resolution, not model-supplied tags. The injected section is
|
|
@@ -42,20 +39,17 @@ on the active prompt surface.
|
|
|
42
39
|
Migration `048_repository_learning.sql` adds the append-only turn ledger and
|
|
43
40
|
bounded repository projection. Idempotent session/turn identities prevent duplicate
|
|
44
41
|
records. Updates use an immediate SQLite transaction and capture-policy revision
|
|
45
|
-
checks. At plugin reload
|
|
46
|
-
session events (excluding inherited fork history); already saved turns are not
|
|
47
|
-
reflected again. Earlier unsaved turns beyond this bounded recovery window are not
|
|
48
|
-
claimed recovered.
|
|
42
|
+
checks. At plugin reload, up to 512 session events reconstruct an active turn, excluding inherited history. Historical terminal events do not reopen review or repeat reflection. Approval closures do not survive reload.
|
|
49
43
|
|
|
50
44
|
Ignorable session plugin records named `plugin:kiokuko-dsh/repository-learning`
|
|
51
45
|
(and live host events `kiokuko/repository-learning`) report capture and retrieval:
|
|
52
46
|
|
|
53
|
-
- capture: saved, duplicate, excluded or unavailable; revision and reflection status;
|
|
47
|
+
- capture: saved, duplicate, declined, review_unavailable, discarded, excluded or unavailable; revision and reflection status;
|
|
54
48
|
- retrieval: injected, empty or unavailable; injected and omitted point counts.
|
|
55
49
|
|
|
56
50
|
A missing model route, malformed/ungrounded result or 15-second model deadline
|
|
57
51
|
produces an explicit unavailable/invalid reflection status. The observed turn can
|
|
58
|
-
still be
|
|
52
|
+
still be proposed without invented model lessons, but requires approval before saving. Database/capture failures are
|
|
59
53
|
reported as unavailable, not silently described as successful saving. This feature
|
|
60
54
|
never launches DSH, changes repository source, runs learned commands or grants tool
|
|
61
55
|
permissions.
|
|
@@ -85,25 +79,8 @@ process.
|
|
|
85
79
|
|
|
86
80
|
## Interrupted saves and recovery
|
|
87
81
|
|
|
88
|
-
Reflection has a bounded deadline and no automatic network retry. A
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| Boundary | Durable result and recovery |
|
|
95
|
-
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
96
|
-
| Before/during/after the model response | Save observations only if reflection fails; the next turn remains usable. |
|
|
97
|
-
| Failure inside the save transaction | Roll back turn and projection together. Capture diagnostics report `saveState: not_saved`; reload the plugin to retry the latest retained native turn, or use `/kioku-memory learning reset` to discard it. |
|
|
98
|
-
| Commit succeeded but acknowledgement was lost | Re-read the exact repository/session/turn. Report `saved` when found, `unknown` if storage cannot be read. Do not assume rollback or repeat tools. Reload reconciles the stored identity before any new reflection. |
|
|
99
|
-
| Process exits before/after commit | SQLite rollback or committed turn survives reopening. The exact identity prevents a second save. Recovery remains limited to the latest 512 retained native events. |
|
|
100
|
-
| Explicit native Stop or agent/workspace ownership loss | Discard unsaved in-flight reflection, retain only a payload-free retired identity, and reject its late result after reload. Already committed observations are not undone. |
|
|
101
|
-
| Plugin reload | Abort the old coordinator; reconstruct the latest retained turn. A saved turn is a duplicate, an unsaved turn can be retried. No raw reflection response is persisted for retry. |
|
|
102
|
-
| New instruction or next turn | Completed earlier turns append in order to the current projection; they do not replace a newer snapshot with an old snapshot. Stop can cancel outstanding reflection so the next instruction can proceed. |
|
|
103
|
-
| Reset/forget | Existing admission epochs and tombstones reject pre-reset results. Reset also clears current-repository pending admissions; new turns remain enabled. |
|
|
104
|
-
|
|
105
|
-
Capture diagnostics retain only safe identities/counts, `saveState`, and a
|
|
106
|
-
`reload_or_reset` recovery hint when a save is absent or uncertain. There is no
|
|
107
|
-
background retry queue or indefinite lease on a model request. A model timeout,
|
|
108
|
-
unknown save outcome or exhausted SQLite retry is not claimed automatically
|
|
109
|
-
recovered. Reset does not erase native logs or user data.
|
|
82
|
+
Reflection has a bounded deadline and no automatic network retry. A failed model call may produce a summary-only proposal; it never permits an automatic save. Foreground work remains usable.
|
|
83
|
+
|
|
84
|
+
SQLite retries recognized lock contention under its finite backoff policy only while the same approval remains active. An uncertain commit is reconciled against the exact repository/session/turn identity. A failed save is reported as absent or unknown; reload never recreates its approval or retries the old proposal. A new completed turn offers a new review.
|
|
85
|
+
|
|
86
|
+
Reset, forgetting, native Stop, owner changes and capture exclusions retain their existing fences. Already saved records are not undone by cancelling a later proposal. Native conversation logs are separate from reusable memory and are not erased by declining a save.
|
package/docs/typed-decisions.md
CHANGED
|
@@ -145,8 +145,9 @@ shown in the card; selection does not prove authentication or successful inferen
|
|
|
145
145
|
options as the preset; the native question UI preselects a label ending in
|
|
146
146
|
` (Recommended)`, so the card still opens editable. A preset grants no authority.
|
|
147
147
|
Immutable existing decision bindings also retain the task choice, without granting
|
|
148
|
-
tool or file authority.
|
|
149
|
-
|
|
148
|
+
tool or file authority. Later turns in the same chat and repository reuse the accepted
|
|
149
|
+
choice, including new tasks and session reloads. Cancel/Skip starts no task and is not
|
|
150
|
+
inherited by a later turn. Headless operation with `ask` keeps the
|
|
150
151
|
configured decision mode and explicit manual Lisp preference; `on`/`off` supply that
|
|
151
152
|
answer instead. An explicit
|
|
152
153
|
`typedDecisions.startup: { decision: true, lisp: true }` config selects both and
|