@jskit-ai/agent-docs 0.1.217 → 0.1.219

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.
@@ -17,6 +17,26 @@ Choose one transcript owner for a conversation. The [ordinary API](./assistant.m
17
17
  is the starting point; [advanced hosts](#advanced-host-facilities) and
18
18
  [testing](#testing-entrypoints) are separate reference areas.
19
19
 
20
+ ### Prepare an offline development copy
21
+
22
+ Advanced hosts that copy a stopped conversation store can call
23
+ `prepareConversationRuntimeCopy(transaction, { at })` from
24
+ `@jskit-ai/assistant-core/server/conversation` inside the destination's ordinary
25
+ storage write transaction. `at` is an ISO timestamp. The host must first isolate
26
+ the destination, stop its processes and pause native provider goals through their
27
+ owners. The helper does not establish those host conditions or invoke providers.
28
+
29
+ It preserves transcript messages, configuration and native history identity,
30
+ clears copied execution handles, interrupts running turn projections and pauses
31
+ active goal projections. Pending requests remain available for inspection with a
32
+ copy diagnostic; preparation does not replay them. Version 3 state is required,
33
+ and unfinished replacements fail before writes. Upgrade the parent through its
34
+ normal state upgrade process rather than using this helper as a migration.
35
+
36
+ `prepareCopiedConversationAgentRun(run, { at })` supplies the corresponding pure
37
+ transform for an application's separately stored legacy run projection. Neither
38
+ operation belongs in normal startup or live recovery.
39
+
20
40
  ### Native delivery diagnostics
21
41
 
22
42
  `createConversationRuntime({ onDeliveryTiming(event) {} })` accepts an optional
@@ -782,6 +802,9 @@ the application may supply one in options. `false`, `{ ok: false, error }`, or
782
802
  a thrown error retain a failed entry. Exceptions are rethrown after recording
783
803
  the visible failure. Undelivered bubbles use a neutral fill, dashed outline and
784
804
  Pending label. A failed bubble has an error outline, its error and Retry action.
805
+ Queued bubbles keep their supplied order while awaiting receipts, even when an
806
+ earlier message receives a later native timestamp. Confirmed history retains
807
+ its chronological ordering.
785
808
  Success removes the pending treatment but retains the bubble until authoritative
786
809
  history contains its `user.messageId`, so it cannot flicker away before history
787
810
  arrives. Older histories without IDs can match by text and timestamp.
@@ -3991,6 +4014,10 @@ continue to use the common runtime.
3991
4014
  The same subpath exposes the extracted `createOpenCodeSharedRuntime` for hosts
3992
4015
  whose managed service is shared by several conversation consumers. It owns server
3993
4016
  reuse, pending acquisition, verified final release and exact-server recovery.
4017
+ An expired health-probe deadline is reported to the caller without stopping the
4018
+ shared server or its other conversations. Retry the readiness operation after
4019
+ the server responds again. A refused connection still follows the existing
4020
+ server recovery path; a probe timeout alone is not evidence of process failure.
3994
4021
  Its retained Main turn and monitor maps also back the original
3995
4022
  `interruptTurn(key, target, { threadId, writeRun })` operation. The host selects
3996
4023
  the authorized target, supplies a saved identity only when no target exists, and
@@ -119,6 +119,24 @@ composed application manifest and let resolution identify its actual consumers.
119
119
  The installed-graph check does not replace application-owned non-JSKIT version
120
120
  validation or the original root lockfile checks.
121
121
 
122
+ ### Explicit development sources
123
+
124
+ Hosts composing selected source checkouts can pass `sourcePackages`, an explicit
125
+ package-name-to-directory map, to both `checkProject` and `checkInstalledGraph`.
126
+ The former exempts only these replaced names from published declaration and
127
+ root lock/installed-version comparisons. Pass the corresponding **materialized**
128
+ directories to the latter: it validates package identity and required dependencies,
129
+ rejects resolution outside each selected real path, and still rejects duplicate
130
+ singleton runtimes, including identical-version copies. Selected source versions
131
+ and their consumer ranges need not match the published catalog.
132
+
133
+ Always run both stages. Source preflight alone does not prove a usable graph.
134
+ The host still validates external dependency compatibility and prepared exports.
135
+ Unselected packages retain ordinary checks. This programmatic development option
136
+ does not modify manifests or locks, change release pins, or relax CLI/update/CI
137
+ defaults. A missing selected checkout must fail; it is not permission to choose a
138
+ published package instead.
139
+
122
140
  ## Enforce the graph in CI
123
141
 
124
142
  Run this after `npm ci`, and include it in the application's normal verifier:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.217",
3
+ "version": "0.1.219",
4
4
  "description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
5
5
  "type": "module",
6
6
  "files": [
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@jskit-ai/config-eslint": "0.1.241",
51
- "@jskit-ai/jskit-catalog": "0.1.270",
51
+ "@jskit-ai/jskit-catalog": "0.1.272",
52
52
  "@playwright/test": "1.61.1",
53
53
  "@vitejs/plugin-vue": "^6.0.7",
54
54
  "eslint": "^10.8.0",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@jskit-ai/config-eslint": "0.1.241",
53
- "@jskit-ai/jskit-catalog": "0.1.270",
53
+ "@jskit-ai/jskit-catalog": "0.1.272",
54
54
  "@playwright/test": "1.61.1",
55
55
  "@vitejs/plugin-vue": "^6.0.7",
56
56
  "eslint": "^10.8.0",
@@ -15,7 +15,7 @@ A concrete Fastify, Vue, and JSKIT application foundation for products that do n
15
15
 
16
16
  - Id: `app/minimal-foundation`
17
17
  - Keywords: `app`, `fastify`, `foundation`, `minimal`, `server`, `vite`, `vue`
18
- - Owner: `@jskit-ai/agent-docs@0.1.217`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
19
19
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md)
20
20
  - Examples: [example/](../../skills/jskit/references/patterns/app/minimal-foundation/example/)
21
21
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`
@@ -26,7 +26,7 @@ A concrete JSKIT web application foundation with responsive shell navigation, se
26
26
 
27
27
  - Id: `app/shell-foundation`
28
28
  - Keywords: `app`, `foundation`, `material`, `navigation`, `placements`, `shell`, `vite`, `vue`
29
- - Owner: `@jskit-ai/agent-docs@0.1.217`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
30
30
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/app/shell-foundation/PATTERN.md)
31
31
  - Examples: [example/](../../skills/jskit/references/patterns/app/shell-foundation/example/)
32
32
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -37,7 +37,7 @@ Configure an assistant runtime for one application surface and expose its chat a
37
37
 
38
38
  - Id: `assistant/assistant-surface`
39
39
  - Keywords: `ai`, `assistant`, `chat`, `config`, `environment`, `page`, `placement`, `settings`, `surface`
40
- - Owner: `@jskit-ai/assistant-runtime@0.1.216`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.218`
41
41
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/assistant/assistant-surface/PATTERN.md)
42
42
  - Examples: [example/](../../skills/jskit/references/patterns/assistant/assistant-surface/example/)
43
43
  - Requires: `@jskit-ai/assistant-runtime`, `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`, `@jskit-ai/shell-web`
@@ -323,7 +323,7 @@ Define a server feature through explicit capabilities and first-class actions, a
323
323
 
324
324
  - Id: `server/feature-package`
325
325
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
326
- - Owner: `@jskit-ai/agent-docs@0.1.217`
326
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
327
327
  - Read: [PATTERN.md](../../skills/jskit/references/patterns/server/feature-package/PATTERN.md)
328
328
  - Examples: [example/](../../skills/jskit/references/patterns/server/feature-package/example/)
329
329
  - Requires: `@jskit-ai/kernel`
@@ -278,6 +278,7 @@ Exports
278
278
  Exports
279
279
  - `conversationAgentRunRecord(record, normalizedRunId, { normalizeState = normalizeRunState, isActive = runStateIsActive } = {})`
280
280
  - `conversationAgentRunEvent(previous, normalizedRunId, { event = {}, patch = {} } = {}, { now = () => new Date(), normalizeState = normalizeRunState, isTerminal = runStateIsTerminal } = {})`
281
+ - `prepareCopiedConversationAgentRun(run, { at })`
281
282
  - `createCodexConversationRunStore({ storage, scope, segmentId, isCurrent, clock = () => new Date() } = {})`
282
283
  - `createCodexConversationStore({ storage, scope, segmentId, isCurrent, transcript, streams } = {})`
283
284
  Local functions
@@ -306,7 +307,7 @@ Exports
306
307
  - `deleteClaudeConversationHistory({ configRoot, workdir, conversationId })`
307
308
  - `retireClaudeConversationHistory({ configRoot, binding, beforeDelete, requireIdle, signal })`
308
309
  - `claudeHistoryPath({ configRoot, workdir, conversationId })`
309
- - `claudeMessageBlocks(frame, { includeNested = false } = {})`
310
+ - `claudeMessageBlocks(frame, { includeNested = false, commentary = false } = {})`
310
311
  - `readClaudeHistory(options)`
311
312
  - `requireClaudeSessionId(id)`
312
313
  - `archivedClaudeProjectDirectory(workdir)`
@@ -837,12 +838,14 @@ Exports
837
838
  - `finishConversationOperation`
838
839
  - `conversationAgentRunRecord`
839
840
  - `conversationAgentRunEvent`
841
+ - `prepareCopiedConversationAgentRun`
840
842
  - `createFileConversationStorage`
841
843
  - `createConversationStreams`
842
844
  - `createConversationSystemPrompt`
843
845
  - `createConversationRuntime`
844
846
  - `normalizeConversationConfiguration`
845
847
  - `upgradeConversationRuntimeState`
848
+ - `prepareConversationRuntimeCopy`
846
849
  - `createConversationHookBridge`
847
850
  - `nativeConversationStoragePolicy`
848
851
  - `createConversationProcessIdentity`
@@ -1036,6 +1039,7 @@ Local functions
1036
1039
  ### `src/server/conversation/providers/scoped.js`
1037
1040
  Exports
1038
1041
  - `runScopedConversationTurn({ operations, scope = {}, input = {}, context: options = {}, executionProfile: profileSnapshot } = {})`
1042
+ - `projectStoredPersistentConversation(options)`
1039
1043
  - `readPersistentConversation(options)`
1040
1044
  - `startPersistentConversationTurn(options)`
1041
1045
  - `inspectPersistentConversationAdmission(options)`
@@ -1048,6 +1052,7 @@ Local functions
1048
1052
  - `qualifyTranscript(turns, record, response, receipts)`
1049
1053
  - `publishTranscript({ sessionId, store, receipts, publish }, context, record, turns, response = {})`
1050
1054
  - `streamMessage({ sessionId, store, projection, publish }, context, record, event)`
1055
+ - `projectPersistentConversation(options, context, record, response, turns)`
1051
1056
 
1052
1057
  ### `src/server/conversation/runtime.js`
1053
1058
  Exports
@@ -1068,6 +1073,7 @@ Exports
1068
1073
  - `finishConversationRuntimeReplacement(state, { engine, selection, retireNative, pending, value })`
1069
1074
  - `createInertCodexConversationBinding({ workdir, configRoot })`
1070
1075
  - `upgradeConversationRuntimeState({ metadata, conversationLog, retirement })`
1076
+ - `prepareConversationRuntimeCopy(transaction, { at })`
1071
1077
  Local functions
1072
1078
  - `object(value)`
1073
1079
  - `invalid(message)`
@@ -63,8 +63,8 @@ Exports
63
63
  - `CHECK_SCRIPT`
64
64
  - `DEPENDENCY_FIELDS`
65
65
  - `UPDATE_SCRIPT`
66
- - `checkProject({ projectRoot = process.cwd(), catalog, additionalManifests = [], checkInstalled = false } = {})`
67
- - `checkInstalledGraph({ catalog, manifestPaths = [] } = {})`
66
+ - `checkProject({ projectRoot = process.cwd(), catalog, additionalManifests = [], checkInstalled = false, sourcePackages = {} } = {})`
67
+ - `checkInstalledGraph({ catalog, manifestPaths = [], sourcePackages = {} } = {})`
68
68
  - `resolveInstalledPackage(consumerDirectory, packageId)`
69
69
  - `collectLockInstallations(packageLock = {})`
70
70
  - `discoverProjectManifests(projectRoot, additionalManifests = [])`
@@ -15,7 +15,7 @@ A concrete Fastify, Vue, and JSKIT application foundation for products that do n
15
15
 
16
16
  - Id: `app/minimal-foundation`
17
17
  - Keywords: `app`, `fastify`, `foundation`, `minimal`, `server`, `vite`, `vue`
18
- - Owner: `@jskit-ai/agent-docs@0.1.217`
18
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
19
19
  - Read: [PATTERN.md](patterns/app/minimal-foundation/PATTERN.md)
20
20
  - Examples: [example/](patterns/app/minimal-foundation/example/)
21
21
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`
@@ -26,7 +26,7 @@ A concrete JSKIT web application foundation with responsive shell navigation, se
26
26
 
27
27
  - Id: `app/shell-foundation`
28
28
  - Keywords: `app`, `foundation`, `material`, `navigation`, `placements`, `shell`, `vite`, `vue`
29
- - Owner: `@jskit-ai/agent-docs@0.1.217`
29
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
30
30
  - Read: [PATTERN.md](patterns/app/shell-foundation/PATTERN.md)
31
31
  - Examples: [example/](patterns/app/shell-foundation/example/)
32
32
  - Requires: `@jskit-ai/http-runtime`, `@jskit-ai/kernel`, `@jskit-ai/shell-web`
@@ -37,7 +37,7 @@ Configure an assistant runtime for one application surface and expose its chat a
37
37
 
38
38
  - Id: `assistant/assistant-surface`
39
39
  - Keywords: `ai`, `assistant`, `chat`, `config`, `environment`, `page`, `placement`, `settings`, `surface`
40
- - Owner: `@jskit-ai/assistant-runtime@0.1.216`
40
+ - Owner: `@jskit-ai/assistant-runtime@0.1.218`
41
41
  - Read: [PATTERN.md](patterns/assistant/assistant-surface/PATTERN.md)
42
42
  - Examples: [example/](patterns/assistant/assistant-surface/example/)
43
43
  - Requires: `@jskit-ai/assistant-runtime`, `@jskit-ai/connectors-catalog`, `@jskit-ai/connectors-core`, `@jskit-ai/shell-web`
@@ -323,7 +323,7 @@ Define a server feature through explicit capabilities and first-class actions, a
323
323
 
324
324
  - Id: `server/feature-package`
325
325
  - Keywords: `actions`, `feature`, `json-rest`, `knex`, `orchestration`, `package`, `provider`, `repository`, `routes`, `server`
326
- - Owner: `@jskit-ai/agent-docs@0.1.217`
326
+ - Owner: `@jskit-ai/agent-docs@0.1.219`
327
327
  - Read: [PATTERN.md](patterns/server/feature-package/PATTERN.md)
328
328
  - Examples: [example/](patterns/server/feature-package/example/)
329
329
  - Requires: `@jskit-ai/kernel`
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@jskit-ai/config-eslint": "0.1.241",
51
- "@jskit-ai/jskit-catalog": "0.1.270",
51
+ "@jskit-ai/jskit-catalog": "0.1.272",
52
52
  "@playwright/test": "1.61.1",
53
53
  "@vitejs/plugin-vue": "^6.0.7",
54
54
  "eslint": "^10.8.0",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@jskit-ai/config-eslint": "0.1.241",
53
- "@jskit-ai/jskit-catalog": "0.1.270",
53
+ "@jskit-ai/jskit-catalog": "0.1.272",
54
54
  "@playwright/test": "1.61.1",
55
55
  "@vitejs/plugin-vue": "^6.0.7",
56
56
  "eslint": "^10.8.0",