psadk 1.4.8 → 1.5.0

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.
Files changed (205) hide show
  1. package/build/main/index.d.ts +1 -0
  2. package/build/main/lib/PSAI.js +1 -2
  3. package/build/main/lib/PSAgent.d.ts +46 -44
  4. package/build/main/lib/PSAgent.js +176 -961
  5. package/build/main/lib/PSAgentConfig.d.ts +110 -26
  6. package/build/main/lib/PSAgentLogger.js +1 -2
  7. package/build/main/lib/PSAgentTool.d.ts +8 -3
  8. package/build/main/lib/PSAgentTool.js +3 -3
  9. package/build/main/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  10. package/build/main/lib/agent-core/src/agent-loop.js +514 -0
  11. package/build/{module/lib/agent-core → main/lib/agent-core/src}/agent.d.ts +2 -2
  12. package/build/main/lib/agent-core/src/agent.js +419 -0
  13. package/build/main/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  14. package/build/main/lib/agent-core/src/harness/agent-harness.js +1028 -0
  15. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  16. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  17. package/build/main/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  18. package/build/main/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  19. package/build/main/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  20. package/build/main/lib/agent-core/src/harness/compaction/utils.js +131 -0
  21. package/build/main/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  22. package/build/main/lib/agent-core/src/harness/env/nodejs.js +494 -0
  23. package/build/main/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  24. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/messages.js +1 -1
  25. package/build/main/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  26. package/build/main/lib/agent-core/src/harness/prompt-templates.js +235 -0
  27. package/build/{module/lib/agent-core/harness/session/repo/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  28. package/build/main/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  29. package/build/{module/lib/agent-core/harness/session/storage/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  30. package/build/main/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  31. package/build/main/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  32. package/build/main/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  33. package/build/main/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  34. package/build/main/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  35. package/build/main/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  36. package/build/main/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  37. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  38. package/build/main/lib/agent-core/src/harness/session/session.js +213 -0
  39. package/build/main/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  40. package/build/main/lib/agent-core/src/harness/session/uuid.js +54 -0
  41. package/build/main/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  42. package/build/main/lib/agent-core/src/harness/skills.js +353 -0
  43. package/build/main/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  44. package/build/main/lib/agent-core/src/harness/system-prompt.js +30 -0
  45. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/types.d.ts +160 -70
  46. package/build/main/lib/agent-core/src/harness/types.js +94 -0
  47. package/build/main/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  48. package/build/main/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  49. package/build/main/lib/agent-core/src/harness/utils/truncate.js +294 -0
  50. package/build/main/lib/agent-core/src/index.d.ts +19 -0
  51. package/build/main/lib/agent-core/src/index.js +25 -0
  52. package/build/main/lib/agent-core/src/node.d.ts +2 -0
  53. package/build/main/lib/agent-core/src/node.js +3 -0
  54. package/build/main/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  55. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.d.ts +13 -1
  56. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.js +1 -1
  57. package/build/main/lib/localAgent.d.ts +35 -0
  58. package/build/main/lib/localAgent.js +329 -0
  59. package/build/main/lib/remoteAgent.d.ts +25 -0
  60. package/build/main/lib/remoteAgent.js +311 -0
  61. package/build/main/lib/tools/BraveWebSearchTool.js +1 -2
  62. package/build/main/lib/tools/PSArtifactTool.js +1 -2
  63. package/build/main/lib/tools/PSClarifyTool.js +1 -2
  64. package/build/main/lib/tools/PSCommandLineTool.js +1 -2
  65. package/build/main/lib/tools/PSMemoryTool.js +1 -2
  66. package/build/main/lib/tools/PSReadFileTool.js +1 -2
  67. package/build/main/lib/tools/PSRetrievalTool.js +1 -2
  68. package/build/main/lib/tools/PSSkillTool.js +1 -2
  69. package/build/main/lib/tools/PSSubAgentTool.js +1 -1
  70. package/build/main/lib/tools/PSWriteFileTool.js +1 -2
  71. package/build/main/lib/tools/TodoTool.js +1 -2
  72. package/build/main/lib/utils/debuglogger.js +1 -2
  73. package/build/main/lib/utils/helpers.js +1 -6
  74. package/build/module/index.d.ts +1 -0
  75. package/build/module/lib/PSAI.js +1 -2
  76. package/build/module/lib/PSAgent.d.ts +46 -44
  77. package/build/module/lib/PSAgent.js +176 -961
  78. package/build/module/lib/PSAgentConfig.d.ts +110 -26
  79. package/build/module/lib/PSAgentLogger.js +1 -2
  80. package/build/module/lib/PSAgentTool.d.ts +8 -3
  81. package/build/module/lib/PSAgentTool.js +3 -3
  82. package/build/module/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  83. package/build/module/lib/agent-core/src/agent-loop.js +514 -0
  84. package/build/{main/lib/agent-core → module/lib/agent-core/src}/agent.d.ts +2 -2
  85. package/build/module/lib/agent-core/src/agent.js +419 -0
  86. package/build/module/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  87. package/build/module/lib/agent-core/src/harness/agent-harness.js +1028 -0
  88. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  89. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  90. package/build/module/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  91. package/build/module/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  92. package/build/module/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  93. package/build/module/lib/agent-core/src/harness/compaction/utils.js +131 -0
  94. package/build/module/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  95. package/build/module/lib/agent-core/src/harness/env/nodejs.js +494 -0
  96. package/build/module/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  97. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/messages.js +1 -1
  98. package/build/module/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  99. package/build/module/lib/agent-core/src/harness/prompt-templates.js +235 -0
  100. package/build/{main/lib/agent-core/harness/session/repo/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  101. package/build/module/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  102. package/build/{main/lib/agent-core/harness/session/storage/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  103. package/build/module/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  104. package/build/module/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  105. package/build/module/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  106. package/build/module/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  107. package/build/module/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  108. package/build/module/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  109. package/build/module/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  110. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  111. package/build/module/lib/agent-core/src/harness/session/session.js +213 -0
  112. package/build/module/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  113. package/build/module/lib/agent-core/src/harness/session/uuid.js +54 -0
  114. package/build/module/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  115. package/build/module/lib/agent-core/src/harness/skills.js +353 -0
  116. package/build/module/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  117. package/build/module/lib/agent-core/src/harness/system-prompt.js +30 -0
  118. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/types.d.ts +160 -70
  119. package/build/module/lib/agent-core/src/harness/types.js +94 -0
  120. package/build/module/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  121. package/build/module/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  122. package/build/module/lib/agent-core/src/harness/utils/truncate.js +294 -0
  123. package/build/module/lib/agent-core/src/index.d.ts +19 -0
  124. package/build/module/lib/agent-core/src/index.js +25 -0
  125. package/build/module/lib/agent-core/src/node.d.ts +2 -0
  126. package/build/module/lib/agent-core/src/node.js +3 -0
  127. package/build/module/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  128. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.d.ts +13 -1
  129. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.js +1 -1
  130. package/build/module/lib/localAgent.d.ts +35 -0
  131. package/build/module/lib/localAgent.js +329 -0
  132. package/build/module/lib/remoteAgent.d.ts +25 -0
  133. package/build/module/lib/remoteAgent.js +311 -0
  134. package/build/module/lib/tools/BraveWebSearchTool.js +1 -2
  135. package/build/module/lib/tools/PSArtifactTool.js +1 -2
  136. package/build/module/lib/tools/PSClarifyTool.js +1 -2
  137. package/build/module/lib/tools/PSCommandLineTool.js +1 -2
  138. package/build/module/lib/tools/PSMemoryTool.js +1 -2
  139. package/build/module/lib/tools/PSReadFileTool.js +1 -2
  140. package/build/module/lib/tools/PSRetrievalTool.js +1 -2
  141. package/build/module/lib/tools/PSSkillTool.js +1 -2
  142. package/build/module/lib/tools/PSSubAgentTool.js +1 -1
  143. package/build/module/lib/tools/PSWriteFileTool.js +1 -2
  144. package/build/module/lib/tools/TodoTool.js +1 -2
  145. package/build/module/lib/utils/debuglogger.js +1 -2
  146. package/build/module/lib/utils/helpers.js +1 -6
  147. package/package.json +2 -1
  148. package/build/main/lib/agent-core/agent-loop.js +0 -483
  149. package/build/main/lib/agent-core/agent.js +0 -419
  150. package/build/main/lib/agent-core/harness/agent-harness.js +0 -772
  151. package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  152. package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  153. package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  154. package/build/main/lib/agent-core/harness/compaction/compaction.js +0 -637
  155. package/build/main/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  156. package/build/main/lib/agent-core/harness/compaction/utils.js +0 -153
  157. package/build/main/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  158. package/build/main/lib/agent-core/harness/env/nodejs.js +0 -353
  159. package/build/main/lib/agent-core/harness/execution-env.d.ts +0 -3
  160. package/build/main/lib/agent-core/harness/execution-env.js +0 -3
  161. package/build/main/lib/agent-core/harness/prompt-templates.js +0 -204
  162. package/build/main/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  163. package/build/main/lib/agent-core/harness/session/repo/memory.js +0 -46
  164. package/build/main/lib/agent-core/harness/session/repo/shared.js +0 -31
  165. package/build/main/lib/agent-core/harness/session/session.js +0 -199
  166. package/build/main/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  167. package/build/main/lib/agent-core/harness/session/storage/memory.js +0 -94
  168. package/build/main/lib/agent-core/harness/skills.js +0 -266
  169. package/build/main/lib/agent-core/harness/system-prompt.js +0 -30
  170. package/build/main/lib/agent-core/harness/types.js +0 -16
  171. package/build/main/lib/agent-core/harness/utils/shell-output.js +0 -101
  172. package/build/main/lib/agent-core/harness/utils/truncate.js +0 -208
  173. package/build/main/lib/agent-core/index.d.ts +0 -19
  174. package/build/main/lib/agent-core/index.js +0 -25
  175. package/build/module/lib/agent-core/agent-loop.js +0 -483
  176. package/build/module/lib/agent-core/agent.js +0 -419
  177. package/build/module/lib/agent-core/harness/agent-harness.js +0 -772
  178. package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  179. package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  180. package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  181. package/build/module/lib/agent-core/harness/compaction/compaction.js +0 -637
  182. package/build/module/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  183. package/build/module/lib/agent-core/harness/compaction/utils.js +0 -153
  184. package/build/module/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  185. package/build/module/lib/agent-core/harness/env/nodejs.js +0 -353
  186. package/build/module/lib/agent-core/harness/execution-env.d.ts +0 -3
  187. package/build/module/lib/agent-core/harness/execution-env.js +0 -3
  188. package/build/module/lib/agent-core/harness/prompt-templates.js +0 -204
  189. package/build/module/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  190. package/build/module/lib/agent-core/harness/session/repo/memory.js +0 -46
  191. package/build/module/lib/agent-core/harness/session/repo/shared.js +0 -31
  192. package/build/module/lib/agent-core/harness/session/session.js +0 -199
  193. package/build/module/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  194. package/build/module/lib/agent-core/harness/session/storage/memory.js +0 -94
  195. package/build/module/lib/agent-core/harness/skills.js +0 -266
  196. package/build/module/lib/agent-core/harness/system-prompt.js +0 -30
  197. package/build/module/lib/agent-core/harness/types.js +0 -16
  198. package/build/module/lib/agent-core/harness/utils/shell-output.js +0 -101
  199. package/build/module/lib/agent-core/harness/utils/truncate.js +0 -208
  200. package/build/module/lib/agent-core/index.d.ts +0 -19
  201. package/build/module/lib/agent-core/index.js +0 -25
  202. /package/build/main/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  203. /package/build/main/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
  204. /package/build/module/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  205. /package/build/module/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
@@ -0,0 +1,213 @@
1
+ import { createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, } from "../messages.js";
2
+ import { SessionError } from "../types.js";
3
+ export function buildSessionContext(pathEntries) {
4
+ let thinkingLevel = 'off';
5
+ let model = null;
6
+ let activeToolNames = null;
7
+ let compaction = null;
8
+ for (const entry of pathEntries) {
9
+ if (entry.type === 'thinking_level_change') {
10
+ thinkingLevel = entry.thinkingLevel;
11
+ }
12
+ else if (entry.type === 'model_change') {
13
+ model = { provider: entry.provider, modelId: entry.modelId };
14
+ }
15
+ else if (entry.type === 'message' && entry.message.role === 'assistant') {
16
+ model = {
17
+ provider: entry.message.provider,
18
+ modelId: entry.message.model,
19
+ };
20
+ }
21
+ else if (entry.type === 'active_tools_change') {
22
+ activeToolNames = [...entry.activeToolNames];
23
+ }
24
+ else if (entry.type === 'compaction') {
25
+ compaction = entry;
26
+ }
27
+ }
28
+ const messages = [];
29
+ const appendMessage = (entry) => {
30
+ if (entry.type === 'message') {
31
+ messages.push(entry.message);
32
+ }
33
+ else if (entry.type === 'custom_message') {
34
+ messages.push(createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp));
35
+ }
36
+ else if (entry.type === 'branch_summary' && entry.summary) {
37
+ messages.push(createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp));
38
+ }
39
+ };
40
+ if (compaction) {
41
+ messages.push(createCompactionSummaryMessage(compaction.summary, compaction.tokensBefore, compaction.timestamp));
42
+ const compactionIdx = pathEntries.findIndex((e) => e.type === 'compaction' && e.id === compaction.id);
43
+ let foundFirstKept = false;
44
+ for (let i = 0; i < compactionIdx; i++) {
45
+ const entry = pathEntries[i];
46
+ if (entry.id === compaction.firstKeptEntryId)
47
+ foundFirstKept = true;
48
+ if (foundFirstKept)
49
+ appendMessage(entry);
50
+ }
51
+ for (let i = compactionIdx + 1; i < pathEntries.length; i++) {
52
+ appendMessage(pathEntries[i]);
53
+ }
54
+ }
55
+ else {
56
+ for (const entry of pathEntries) {
57
+ appendMessage(entry);
58
+ }
59
+ }
60
+ return { messages, thinkingLevel, model, activeToolNames };
61
+ }
62
+ export class Session {
63
+ storage;
64
+ constructor(storage) {
65
+ this.storage = storage;
66
+ }
67
+ getMetadata() {
68
+ return this.storage.getMetadata();
69
+ }
70
+ getStorage() {
71
+ return this.storage;
72
+ }
73
+ getLeafId() {
74
+ return this.storage.getLeafId();
75
+ }
76
+ getEntry(id) {
77
+ return this.storage.getEntry(id);
78
+ }
79
+ getEntries() {
80
+ return this.storage.getEntries();
81
+ }
82
+ async getBranch(fromId) {
83
+ const leafId = fromId ?? (await this.storage.getLeafId());
84
+ return this.storage.getPathToRoot(leafId);
85
+ }
86
+ async buildContext() {
87
+ return buildSessionContext(await this.getBranch());
88
+ }
89
+ getLabel(id) {
90
+ return this.storage.getLabel(id);
91
+ }
92
+ async getSessionName() {
93
+ const entries = await this.storage.findEntries('session_info');
94
+ return entries[entries.length - 1]?.name?.trim() || undefined;
95
+ }
96
+ async appendTypedEntry(entry) {
97
+ await this.storage.appendEntry(entry);
98
+ return entry.id;
99
+ }
100
+ async appendMessage(message) {
101
+ return this.appendTypedEntry({
102
+ type: 'message',
103
+ id: await this.storage.createEntryId(),
104
+ parentId: await this.storage.getLeafId(),
105
+ timestamp: new Date().toISOString(),
106
+ message,
107
+ });
108
+ }
109
+ async appendThinkingLevelChange(thinkingLevel) {
110
+ return this.appendTypedEntry({
111
+ type: 'thinking_level_change',
112
+ id: await this.storage.createEntryId(),
113
+ parentId: await this.storage.getLeafId(),
114
+ timestamp: new Date().toISOString(),
115
+ thinkingLevel,
116
+ });
117
+ }
118
+ async appendModelChange(provider, modelId) {
119
+ return this.appendTypedEntry({
120
+ type: 'model_change',
121
+ id: await this.storage.createEntryId(),
122
+ parentId: await this.storage.getLeafId(),
123
+ timestamp: new Date().toISOString(),
124
+ provider,
125
+ modelId,
126
+ });
127
+ }
128
+ async appendActiveToolsChange(activeToolNames) {
129
+ return this.appendTypedEntry({
130
+ type: 'active_tools_change',
131
+ id: await this.storage.createEntryId(),
132
+ parentId: await this.storage.getLeafId(),
133
+ timestamp: new Date().toISOString(),
134
+ activeToolNames: [...activeToolNames],
135
+ });
136
+ }
137
+ async appendCompaction(summary, firstKeptEntryId, tokensBefore, details, fromHook) {
138
+ return this.appendTypedEntry({
139
+ type: 'compaction',
140
+ id: await this.storage.createEntryId(),
141
+ parentId: await this.storage.getLeafId(),
142
+ timestamp: new Date().toISOString(),
143
+ summary,
144
+ firstKeptEntryId,
145
+ tokensBefore,
146
+ details,
147
+ fromHook,
148
+ });
149
+ }
150
+ async appendCustomEntry(customType, data) {
151
+ return this.appendTypedEntry({
152
+ type: 'custom',
153
+ id: await this.storage.createEntryId(),
154
+ parentId: await this.storage.getLeafId(),
155
+ timestamp: new Date().toISOString(),
156
+ customType,
157
+ data,
158
+ });
159
+ }
160
+ async appendCustomMessageEntry(customType, content, display, details) {
161
+ return this.appendTypedEntry({
162
+ type: 'custom_message',
163
+ id: await this.storage.createEntryId(),
164
+ parentId: await this.storage.getLeafId(),
165
+ timestamp: new Date().toISOString(),
166
+ customType,
167
+ content,
168
+ display,
169
+ details,
170
+ });
171
+ }
172
+ async appendLabel(targetId, label) {
173
+ if (!(await this.storage.getEntry(targetId))) {
174
+ throw new SessionError('not_found', `Entry ${targetId} not found`);
175
+ }
176
+ return this.appendTypedEntry({
177
+ type: 'label',
178
+ id: await this.storage.createEntryId(),
179
+ parentId: await this.storage.getLeafId(),
180
+ timestamp: new Date().toISOString(),
181
+ targetId,
182
+ label,
183
+ });
184
+ }
185
+ async appendSessionName(name) {
186
+ return this.appendTypedEntry({
187
+ type: 'session_info',
188
+ id: await this.storage.createEntryId(),
189
+ parentId: await this.storage.getLeafId(),
190
+ timestamp: new Date().toISOString(),
191
+ name: name.trim(),
192
+ });
193
+ }
194
+ async moveTo(entryId, summary) {
195
+ if (entryId !== null && !(await this.storage.getEntry(entryId))) {
196
+ throw new SessionError('not_found', `Entry ${entryId} not found`);
197
+ }
198
+ await this.storage.setLeafId(entryId);
199
+ if (!summary)
200
+ return undefined;
201
+ return this.appendTypedEntry({
202
+ type: 'branch_summary',
203
+ id: await this.storage.createEntryId(),
204
+ parentId: entryId,
205
+ timestamp: new Date().toISOString(),
206
+ fromId: entryId ?? 'root',
207
+ summary: summary.summary,
208
+ details: summary.details,
209
+ fromHook: summary.fromHook,
210
+ });
211
+ }
212
+ }
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYWdlbnQtY29yZS9zcmMvaGFybmVzcy9zZXNzaW9uL3Nlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUNMLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFpQnhCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0MsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxXQUErQjtJQUUvQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDMUIsSUFBSSxLQUFLLEdBQWlELElBQUksQ0FBQztJQUMvRCxJQUFJLGVBQWUsR0FBb0IsSUFBSSxDQUFDO0lBQzVDLElBQUksVUFBVSxHQUEyQixJQUFJLENBQUM7SUFFOUMsS0FBSyxNQUFNLEtBQUssSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssdUJBQXVCLEVBQUUsQ0FBQztZQUMzQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN0QyxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3pDLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDMUUsS0FBSyxHQUFHO2dCQUNOLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVE7Z0JBQ2hDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUs7YUFDN0Is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
@@ -0,0 +1 @@
1
+ export declare function uuidv7(): string;
@@ -0,0 +1,54 @@
1
+ let lastTimestamp = -Infinity;
2
+ let sequence = 0;
3
+ function fillRandomBytes(bytes) {
4
+ const crypto = globalThis.crypto;
5
+ if (crypto?.getRandomValues) {
6
+ crypto.getRandomValues(bytes);
7
+ return;
8
+ }
9
+ for (let i = 0; i < bytes.length; i++) {
10
+ bytes[i] = Math.floor(Math.random() * 256);
11
+ }
12
+ }
13
+ export function uuidv7() {
14
+ const random = new Uint8Array(16);
15
+ fillRandomBytes(random);
16
+ const timestamp = Date.now();
17
+ if (timestamp > lastTimestamp) {
18
+ sequence =
19
+ random[6] * 0x1000000 +
20
+ random[7] * 0x10000 +
21
+ random[8] * 0x100 +
22
+ random[9];
23
+ lastTimestamp = timestamp;
24
+ }
25
+ else {
26
+ sequence = (sequence + 1) >>> 0;
27
+ if (sequence === 0) {
28
+ lastTimestamp++;
29
+ }
30
+ }
31
+ const bytes = new Uint8Array(16);
32
+ bytes[0] = (lastTimestamp / 0x10000000000) & 0xff;
33
+ bytes[1] = (lastTimestamp / 0x100000000) & 0xff;
34
+ bytes[2] = (lastTimestamp / 0x1000000) & 0xff;
35
+ bytes[3] = (lastTimestamp / 0x10000) & 0xff;
36
+ bytes[4] = (lastTimestamp / 0x100) & 0xff;
37
+ bytes[5] = lastTimestamp & 0xff;
38
+ bytes[6] = 0x70 | ((sequence >>> 28) & 0x0f);
39
+ bytes[7] = (sequence >>> 20) & 0xff;
40
+ bytes[8] = 0x80 | ((sequence >>> 14) & 0x3f);
41
+ bytes[9] = (sequence >>> 6) & 0xff;
42
+ bytes[10] = ((sequence & 0x3f) << 2) | (random[10] & 0x03);
43
+ bytes[11] = random[11];
44
+ bytes[12] = random[12];
45
+ bytes[13] = random[13];
46
+ bytes[14] = random[14];
47
+ bytes[15] = random[15];
48
+ return formatUuid(bytes);
49
+ }
50
+ function formatUuid(bytes) {
51
+ const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0'));
52
+ return `${hex.slice(0, 4).join('')}-${hex.slice(4, 6).join('')}-${hex.slice(6, 8).join('')}-${hex.slice(8, 10).join('')}-${hex.slice(10, 16).join('')}`;
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYWdlbnQtY29yZS9zcmMvaGFybmVzcy9zZXNzaW9uL3V1aWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxhQUFhLEdBQUcsQ0FBQyxRQUFRLENBQUM7QUFDOUIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLFNBQVMsZUFBZSxDQUFDLEtBQWlCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxNQUFNLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPO0lBQ1QsQ0FBQztJQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU07SUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU3QixJQUFJLFNBQVMsR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUM5QixRQUFRO1lBQ04sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVM7Z0JBQ3JCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPO2dCQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSztnQkFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1osYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkIsYUFBYSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2xELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDaEQsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM5QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzVDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDaEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDcEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzdDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDbkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDM0QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFpQjtJQUNuQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUMxSixDQUFDIn0=
@@ -1,8 +1,11 @@
1
- import type { ExecutionEnv, Skill } from './types.js';
1
+ import { type ExecutionEnv, type Skill } from './types.ts';
2
+ export type SkillDiagnosticCode = 'file_info_failed' | 'list_failed' | 'read_failed' | 'parse_failed' | 'invalid_metadata';
2
3
  /** Warning produced while loading skills. */
3
4
  export interface SkillDiagnostic {
4
5
  /** Diagnostic severity. Currently only warnings are emitted. */
5
6
  type: 'warning';
7
+ /** Stable diagnostic code. */
8
+ code: SkillDiagnosticCode;
6
9
  /** Human-readable diagnostic message. */
7
10
  message: string;
8
11
  /** Path associated with the diagnostic. */