@undefineds.co/linx 0.2.16 → 0.2.18

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 (42) hide show
  1. package/dist/generated/version.js +3 -0
  2. package/dist/generated/version.js.map +1 -0
  3. package/dist/index.js +10 -17
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/ai-command.js +169 -301
  6. package/dist/lib/ai-command.js.map +1 -1
  7. package/dist/lib/login-command.js +30 -22
  8. package/dist/lib/login-command.js.map +1 -1
  9. package/dist/lib/models.js +2 -2
  10. package/dist/lib/models.js.map +1 -1
  11. package/dist/lib/oidc-auth.js +59 -12
  12. package/dist/lib/oidc-auth.js.map +1 -1
  13. package/dist/lib/pi-adapter/auth.js +36 -7
  14. package/dist/lib/pi-adapter/auth.js.map +1 -1
  15. package/dist/lib/pi-adapter/branding.js +215 -5
  16. package/dist/lib/pi-adapter/branding.js.map +1 -1
  17. package/dist/lib/pi-adapter/interactive.js +25 -1
  18. package/dist/lib/pi-adapter/interactive.js.map +1 -1
  19. package/dist/lib/pi-adapter/pod-mirror.js +219 -137
  20. package/dist/lib/pi-adapter/pod-mirror.js.map +1 -1
  21. package/dist/lib/pi-adapter/pod-tools.js +104 -0
  22. package/dist/lib/pi-adapter/pod-tools.js.map +1 -0
  23. package/dist/lib/pi-adapter/runtime.js +207 -23
  24. package/dist/lib/pi-adapter/runtime.js.map +1 -1
  25. package/dist/lib/pi-adapter/session.js +63 -182
  26. package/dist/lib/pi-adapter/session.js.map +1 -1
  27. package/dist/lib/pi-adapter/web-fetch.js +154 -0
  28. package/dist/lib/pi-adapter/web-fetch.js.map +1 -0
  29. package/dist/lib/pod-chat-store.js +40 -30
  30. package/dist/lib/pod-chat-store.js.map +1 -1
  31. package/dist/lib/pod-data-session.js.map +1 -1
  32. package/dist/lib/watch/pod-approval.js +275 -303
  33. package/dist/lib/watch/pod-approval.js.map +1 -1
  34. package/dist/lib/watch/pod-persistence.js +37 -35
  35. package/dist/lib/watch/pod-persistence.js.map +1 -1
  36. package/dist/skills/drizzle-solid/SKILL.md +340 -0
  37. package/dist/skills/pod-storage/SKILL.md +60 -0
  38. package/dist/skills/solid-modeling/SKILL.md +274 -0
  39. package/dist/skills/xpod-componentsjs/SKILL.md +284 -0
  40. package/package.json +2 -2
  41. package/dist/lib/pi-adapter/pod-native.js +0 -478
  42. package/dist/lib/pi-adapter/pod-native.js.map +0 -1
@@ -1,11 +1,8 @@
1
- import { UDFS } from '@undefineds.co/models/namespaces';
2
- import { ChatBaseVocab } from '@undefineds.co/models/vocab';
3
- import { AuditVocab } from '@undefineds.co/models/vocab/sidecar';
4
1
  import { DEFAULT_LINX_CLOUD_MODEL_ID } from '../default-model.js';
5
2
  import { getDefaultPodDataSession } from '../pod-data-session.js';
3
+ import { agentTable, auditResource, chatTable, drizzle, initSolidTables, messageTable, sessionTable, solidSchema, threadTable, } from '../models.js';
6
4
  export { buildPodMessageRow } from './pod-mirror-mapping.js';
7
- import { DEFAULT_SECRETARY_CHAT_ID, PI_AGENT_ID, buildAgentUri, buildChatUri, buildPodMessageRow as buildPodMessageRowFromMapping, buildThreadTitle, buildThreadUri, buildToolAuditId, calculateTokenUsage, pathToWorkspaceUri, } from './pod-mirror-mapping.js';
8
- import { DCT_CREATED, DCT_MODIFIED, DCT_TITLE, FOAF_MAKER, MEETING_LONG_CHAT, MEETING_MESSAGE, RDF_TYPE, SIOC_CONTENT, SIOC_HAS_MEMBER, SIOC_RICH_CONTENT, SIOC_THREAD, UDFS_AGENT, UDFS_CHAT_TYPE, UDFS_CONVERSATION, UDFS_CONVERSATION_TITLE, UDFS_CONVERSATION_TYPE, UDFS_HAS_THREAD, UDFS_IN_THREAD, UDFS_LAST_ACTIVE_AT, UDFS_MESSAGE_STATUS, UDFS_MESSAGE_TYPE, UDFS_METADATA, UDFS_MODEL, UDFS_PROVIDER, UDFS_SESSION, UDFS_SESSION_STATUS, UDFS_SESSION_TOOL, UDFS_TOKEN_USAGE, UDFS_WORKSPACE, WF_MESSAGE, buildAgentResourceUrl, buildAuditDocumentUrl, buildAuditResourceUrl, buildChatIndexResourceUrl, buildMessageResourceUrl, buildMessageSubjectUrl, buildSessionResourceUrl, dateLiteral, integerLiteral, iri, literal, upsertManagedTurtleBlock, } from './pod-native.js';
5
+ import { DEFAULT_SECRETARY_CHAT_ID, PI_AGENT_ID, buildPodMessageRow as buildPodMessageRowFromMapping, buildThreadTitle, buildToolAuditId, calculateTokenUsage, pathToWorkspaceUri, } from './pod-mirror-mapping.js';
9
6
  const PI_POLICY_VERSION = 'linx-pi-pod-mirror/v1';
10
7
  export class LinxPiPodMirror {
11
8
  options;
@@ -60,7 +57,7 @@ export class LinxPiPodMirror {
60
57
  if (!context) {
61
58
  return;
62
59
  }
63
- await persistRuntimeSession(context, this.options, 'completed', this.messageResourceUrls);
60
+ await persistRuntimeSession(context, this.options, resolvePiResourceRefs(context, this.options), 'completed', this.messageResourceUrls);
64
61
  });
65
62
  await this.queue;
66
63
  }
@@ -100,16 +97,17 @@ export class LinxPiPodMirror {
100
97
  if (!context || entry.type !== 'message') {
101
98
  return;
102
99
  }
103
- await ensurePiConversationRoot(context, this.options);
104
- await persistRuntimeSession(context, this.options, 'active', this.messageResourceUrls);
100
+ const refs = resolvePiResourceRefs(context, this.options);
101
+ await ensurePiConversationRoot(context, this.options, refs);
102
+ await persistRuntimeSession(context, this.options, refs, 'active', this.messageResourceUrls);
105
103
  const row = buildPodMessageRowFromMapping(context.webId, this.options, entry);
106
104
  if (!row) {
107
105
  return;
108
106
  }
109
- const resourceUrl = await persistMessage(context, row);
107
+ const resourceUrl = await persistMessage(context, normalizePodMessageRow(context, row, refs));
110
108
  this.messageResourceUrls.add(resourceUrl);
111
- await persistRuntimeSession(context, this.options, 'active', this.messageResourceUrls);
112
- await touchPiConversation(context, this.options, row.content);
109
+ await persistRuntimeSession(context, this.options, refs, 'active', this.messageResourceUrls);
110
+ await touchPiConversation(context, this.options, refs, row.content);
113
111
  }
114
112
  async persistUnseenMessageEntries() {
115
113
  for (const entry of this.options.sessionManager.getEntries()) {
@@ -128,27 +126,33 @@ export class LinxPiPodMirror {
128
126
  const toolCallId = typeof event.toolCallId === 'string' && event.toolCallId
129
127
  ? event.toolCallId
130
128
  : crypto.randomUUID();
131
- await ensurePiConversationRoot(context, this.options);
132
- await persistRuntimeSession(context, this.options, 'active', this.messageResourceUrls);
129
+ const refs = resolvePiResourceRefs(context, this.options);
130
+ await ensurePiConversationRoot(context, this.options, refs);
131
+ await persistRuntimeSession(context, this.options, refs, 'active', this.messageResourceUrls);
133
132
  const id = buildToolAuditId(this.options.sessionManager.getSessionId(), toolCallId, action);
134
133
  const createdAt = new Date();
135
- const documentUrl = buildAuditDocumentUrl(context.webId, createdAt);
136
- const subjectUrl = buildAuditResourceUrl(context.webId, id, createdAt);
137
- await upsertManagedTurtleBlock(context.fetch, documentUrl, {
138
- subject: subjectUrl,
139
- triples: [
140
- { predicate: RDF_TYPE, object: iri(UDFS.AuditEntry) },
141
- { predicate: AuditVocab.action, object: literal(action) },
142
- { predicate: AuditVocab.actor, object: iri(buildAgentUri(context.webId)) },
143
- { predicate: AuditVocab.actorRole, object: literal('assistant') },
144
- { predicate: AuditVocab.onBehalfOf, object: iri(context.webId) },
145
- { predicate: AuditVocab.session, object: iri(buildSessionResourceUrl(context.webId, this.options.sessionManager.getSessionId(), createdAt)) },
146
- { predicate: AuditVocab.entry, object: iri(buildThreadUri(context.webId, DEFAULT_SECRETARY_CHAT_ID, this.options.sessionManager.getSessionId())) },
147
- { predicate: AuditVocab.toolCallId, object: literal(toolCallId) },
148
- ...(typeof event.toolName === 'string' && event.toolName ? [{ predicate: AuditVocab.toolName, object: literal(event.toolName) }] : []),
149
- { predicate: AuditVocab.policyVersion, object: literal(PI_POLICY_VERSION) },
150
- { predicate: AuditVocab.createdAt, object: dateLiteral(createdAt) },
151
- ],
134
+ await upsertByLocator(context.db, auditResource, { id, createdAt }, {
135
+ id,
136
+ action,
137
+ actor: refs.agentUri,
138
+ actorRole: 'assistant',
139
+ onBehalfOf: context.webId,
140
+ session: refs.sessionUri,
141
+ entry: refs.threadUri,
142
+ toolCallId,
143
+ ...(typeof event.toolName === 'string' && event.toolName ? { toolName: event.toolName } : {}),
144
+ policyVersion: PI_POLICY_VERSION,
145
+ createdAt,
146
+ }, {
147
+ action,
148
+ actor: refs.agentUri,
149
+ actorRole: 'assistant',
150
+ onBehalfOf: context.webId,
151
+ session: refs.sessionUri,
152
+ entry: refs.threadUri,
153
+ toolCallId,
154
+ ...(typeof event.toolName === 'string' && event.toolName ? { toolName: event.toolName } : {}),
155
+ policyVersion: PI_POLICY_VERSION,
152
156
  });
153
157
  }
154
158
  async getContext() {
@@ -166,145 +170,223 @@ export class LinxPiPodMirror {
166
170
  if (!session) {
167
171
  return null;
168
172
  }
173
+ const db = runtime.createDb?.(session) ?? createPodMirrorDb(session);
174
+ await initSolidTables(db, [
175
+ chatTable,
176
+ threadTable,
177
+ messageTable,
178
+ sessionTable,
179
+ agentTable,
180
+ auditResource,
181
+ ]).catch((error) => {
182
+ this.options.onError?.(error);
183
+ });
169
184
  return {
170
- credentials: session.credentials,
185
+ db,
171
186
  webId: session.webId,
172
- fetch: session.fetch,
173
187
  };
174
188
  }
175
189
  }
176
- async function ensurePiConversationRoot(context, options) {
190
+ async function ensurePiConversationRoot(context, options, refs) {
177
191
  const now = new Date();
178
192
  const threadId = options.sessionManager.getSessionId();
179
- const chatUri = buildChatUri(context.webId);
180
- const threadUri = buildThreadUri(context.webId, DEFAULT_SECRETARY_CHAT_ID, threadId);
181
- await upsertManagedTurtleBlock(context.fetch, buildChatIndexResourceUrl(context.webId, DEFAULT_SECRETARY_CHAT_ID), {
182
- subject: chatUri,
183
- triples: [
184
- { predicate: RDF_TYPE, object: iri(MEETING_LONG_CHAT) },
185
- { predicate: UDFS_CHAT_TYPE, object: literal('ai-secretary') },
186
- { predicate: UDFS_CONVERSATION_TITLE, object: literal('AI Secretary') },
187
- { predicate: DCT_TITLE, object: literal('AI Secretary') },
188
- { predicate: UDFS_HAS_THREAD, object: iri(threadUri) },
189
- { predicate: UDFS_LAST_ACTIVE_AT, object: dateLiteral(now) },
190
- { predicate: DCT_CREATED, object: dateLiteral(now) },
191
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
192
- ],
193
+ await upsertByLocator(context.db, chatTable, { id: DEFAULT_SECRETARY_CHAT_ID }, {
194
+ id: DEFAULT_SECRETARY_CHAT_ID,
195
+ title: 'AI Secretary',
196
+ participants: [context.webId, refs.agentUri],
197
+ metadata: {
198
+ kind: 'ai-secretary',
199
+ surface: 'cli',
200
+ agent: refs.agentUri,
201
+ },
202
+ lastActiveAt: now,
203
+ createdAt: now,
204
+ updatedAt: now,
205
+ }, {
206
+ title: 'AI Secretary',
207
+ participants: [context.webId, refs.agentUri],
208
+ metadata: {
209
+ kind: 'ai-secretary',
210
+ surface: 'cli',
211
+ agent: refs.agentUri,
212
+ },
213
+ lastActiveAt: now,
214
+ updatedAt: now,
193
215
  });
194
- await upsertManagedTurtleBlock(context.fetch, buildChatIndexResourceUrl(context.webId, DEFAULT_SECRETARY_CHAT_ID), {
195
- subject: threadUri,
196
- triples: [
197
- { predicate: RDF_TYPE, object: iri(SIOC_THREAD) },
198
- { predicate: UDFS_CONVERSATION, object: iri(chatUri) },
199
- { predicate: DCT_TITLE, object: literal(buildThreadTitle(options.sessionManager)) },
200
- ...(pathToWorkspaceUri(options.cwd)
201
- ? [{ predicate: UDFS_WORKSPACE, object: iri(pathToWorkspaceUri(options.cwd)) }]
202
- : []),
203
- { predicate: UDFS_METADATA, object: literal(JSON.stringify(buildThreadMetadata(options))) },
204
- { predicate: DCT_CREATED, object: dateLiteral(now) },
205
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
206
- ],
216
+ await upsertByLocator(context.db, threadTable, { id: threadId, chat: refs.chatUri }, {
217
+ id: threadId,
218
+ chat: refs.chatUri,
219
+ title: buildThreadTitle(options.sessionManager),
220
+ workspace: pathToWorkspaceUri(options.cwd),
221
+ metadata: buildThreadMetadata(options),
222
+ createdAt: getSessionCreatedAt(options.sessionManager),
223
+ updatedAt: now,
224
+ }, {
225
+ title: buildThreadTitle(options.sessionManager),
226
+ workspace: pathToWorkspaceUri(options.cwd),
227
+ metadata: buildThreadMetadata(options),
228
+ updatedAt: now,
207
229
  });
208
- await upsertManagedTurtleBlock(context.fetch, buildAgentResourceUrl(context.webId, PI_AGENT_ID), {
209
- subject: buildAgentUri(context.webId),
210
- triples: [
211
- { predicate: RDF_TYPE, object: iri(UDFS_AGENT) },
212
- { predicate: DCT_TITLE, object: literal('LinX CLI Assistant') },
213
- { predicate: UDFS_PROVIDER, object: literal('undefineds') },
214
- { predicate: UDFS_MODEL, object: literal(DEFAULT_LINX_CLOUD_MODEL_ID) },
215
- { predicate: DCT_CREATED, object: dateLiteral(now) },
216
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
217
- ],
230
+ await upsertByLocator(context.db, agentTable, { id: PI_AGENT_ID }, {
231
+ id: PI_AGENT_ID,
232
+ name: 'LinX CLI Assistant',
233
+ provider: 'undefineds',
234
+ model: DEFAULT_LINX_CLOUD_MODEL_ID,
235
+ createdAt: now,
236
+ updatedAt: now,
237
+ }, {
238
+ name: 'LinX CLI Assistant',
239
+ provider: 'undefineds',
240
+ model: DEFAULT_LINX_CLOUD_MODEL_ID,
241
+ updatedAt: now,
218
242
  });
219
243
  }
220
- async function persistRuntimeSession(context, options, status = 'active', messageResourceUrls = new Set()) {
244
+ async function persistRuntimeSession(context, options, refs, status = 'active', messageResourceUrls = new Set()) {
221
245
  const now = new Date();
222
246
  const threadId = options.sessionManager.getSessionId();
223
247
  const runtimeSessionId = threadId;
224
- const chatUri = buildChatUri(context.webId);
225
- const threadUri = buildThreadUri(context.webId, DEFAULT_SECRETARY_CHAT_ID, threadId);
248
+ const createdAt = getSessionCreatedAt(options.sessionManager);
226
249
  const metadata = {
227
250
  cwd: options.cwd,
228
251
  sessionFile: options.sessionManager.getSessionFile(),
229
252
  runtime: 'pi',
230
253
  runtimeSessionId,
231
254
  surface: 'cli',
232
- threadUri,
255
+ threadUri: refs.threadUri,
233
256
  messageResources: [...messageResourceUrls],
234
257
  };
235
- const sessionDocumentUrl = buildSessionResourceUrl(context.webId, runtimeSessionId, now).split('#')[0];
236
- const sessionSubjectUrl = buildSessionResourceUrl(context.webId, runtimeSessionId, now);
237
- await upsertManagedTurtleBlock(context.fetch, sessionDocumentUrl, {
238
- subject: sessionSubjectUrl,
239
- triples: [
240
- { predicate: RDF_TYPE, object: iri(UDFS_SESSION) },
241
- { predicate: UDFS.actor, object: iri(context.webId) },
242
- { predicate: UDFS_CONVERSATION, object: iri(chatUri) },
243
- { predicate: UDFS_IN_THREAD, object: iri(threadUri) },
244
- { predicate: UDFS_CONVERSATION_TYPE, object: literal('direct') },
245
- { predicate: UDFS_SESSION_STATUS, object: literal(status) },
246
- { predicate: UDFS_SESSION_TOOL, object: literal('linx') },
247
- { predicate: UDFS_TOKEN_USAGE, object: integerLiteral(calculateTokenUsage(options.sessionManager.getEntries())) },
248
- { predicate: UDFS.policyVersion, object: literal(PI_POLICY_VERSION) },
249
- { predicate: UDFS_METADATA, object: literal(JSON.stringify(metadata)) },
250
- { predicate: DCT_CREATED, object: dateLiteral(now) },
251
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
252
- ],
258
+ const row = {
259
+ id: runtimeSessionId,
260
+ ownerWebId: context.webId,
261
+ chat: refs.chatUri,
262
+ thread: refs.threadUri,
263
+ sessionType: 'direct',
264
+ status,
265
+ tool: 'linx',
266
+ tokenUsage: calculateTokenUsage(options.sessionManager.getEntries()),
267
+ policyVersion: PI_POLICY_VERSION,
268
+ metadata,
269
+ createdAt,
270
+ updatedAt: now,
271
+ };
272
+ await upsertByLocator(context.db, sessionTable, { id: runtimeSessionId, createdAt }, row, {
273
+ status,
274
+ tokenUsage: row.tokenUsage,
275
+ metadata,
276
+ updatedAt: now,
253
277
  });
254
278
  }
255
279
  async function persistMessage(context, row) {
256
- const resourceUrl = buildMessageResourceUrl(context.webId, DEFAULT_SECRETARY_CHAT_ID, row.createdAt);
257
- const subject = buildMessageSubjectUrl(resourceUrl, row.id);
258
- await upsertManagedTurtleBlock(context.fetch, resourceUrl, {
259
- subject,
260
- triples: [
261
- { predicate: RDF_TYPE, object: iri(MEETING_MESSAGE) },
262
- { predicate: FOAF_MAKER, object: iri(row.maker) },
263
- { predicate: UDFS_MESSAGE_TYPE, object: literal(row.role) },
264
- { predicate: SIOC_CONTENT, object: literal(row.content) },
265
- ...(row.richContent ? [{ predicate: SIOC_RICH_CONTENT, object: literal(row.richContent) }] : []),
266
- { predicate: UDFS_MESSAGE_STATUS, object: literal(row.status) },
267
- { predicate: DCT_CREATED, object: dateLiteral(row.createdAt) },
268
- { predicate: DCT_MODIFIED, object: dateLiteral(row.updatedAt) },
269
- ],
270
- extraStatements: [
271
- `<${row.chat}> <${WF_MESSAGE}> <${subject}> .`,
272
- `<${row.thread}> <${SIOC_HAS_MEMBER}> <${subject}> .`,
273
- ],
280
+ const insert = {
281
+ id: row.id,
282
+ chat: row.chat,
283
+ thread: row.thread,
284
+ maker: row.maker,
285
+ role: row.role,
286
+ content: row.content,
287
+ ...(row.richContent ? { richContent: row.richContent } : {}),
288
+ status: row.status,
289
+ createdAt: row.createdAt,
290
+ updatedAt: row.updatedAt,
291
+ };
292
+ await upsertByLocator(context.db, messageTable, { id: row.id, chat: row.chat, createdAt: row.createdAt }, insert, {
293
+ maker: row.maker,
294
+ role: row.role,
295
+ content: row.content,
296
+ richContent: row.richContent,
297
+ status: row.status,
298
+ updatedAt: row.updatedAt,
274
299
  });
275
- return resourceUrl;
300
+ return context.db.resolveLocatorIri(messageTable, { id: row.id, chat: row.chat, createdAt: row.createdAt }).split('#')[0];
276
301
  }
277
- async function touchPiConversation(context, options, preview) {
302
+ async function touchPiConversation(context, options, refs, preview) {
278
303
  const now = new Date();
279
304
  const threadId = options.sessionManager.getSessionId();
280
- const chatUri = buildChatUri(context.webId);
281
- const threadUri = buildThreadUri(context.webId, DEFAULT_SECRETARY_CHAT_ID, threadId);
282
- await upsertManagedTurtleBlock(context.fetch, buildChatIndexResourceUrl(context.webId, DEFAULT_SECRETARY_CHAT_ID), {
283
- subject: chatUri,
284
- triples: [
285
- { predicate: RDF_TYPE, object: iri(MEETING_LONG_CHAT) },
286
- { predicate: UDFS_CHAT_TYPE, object: literal('ai-secretary') },
287
- { predicate: UDFS_CONVERSATION_TITLE, object: literal('AI Secretary') },
288
- { predicate: ChatBaseVocab.lastMessagePreview, object: literal(preview.slice(0, 100)) },
289
- { predicate: UDFS_HAS_THREAD, object: iri(threadUri) },
290
- { predicate: UDFS_LAST_ACTIVE_AT, object: dateLiteral(now) },
291
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
292
- ],
305
+ await context.db.updateByLocator(chatTable, { id: DEFAULT_SECRETARY_CHAT_ID }, {
306
+ lastMessagePreview: preview.slice(0, 100),
307
+ lastActiveAt: now,
308
+ updatedAt: now,
293
309
  });
294
- await upsertManagedTurtleBlock(context.fetch, buildChatIndexResourceUrl(context.webId, DEFAULT_SECRETARY_CHAT_ID), {
295
- subject: threadUri,
296
- triples: [
297
- { predicate: RDF_TYPE, object: iri(SIOC_THREAD) },
298
- { predicate: UDFS_CONVERSATION, object: iri(chatUri) },
299
- { predicate: DCT_TITLE, object: literal(buildThreadTitle(options.sessionManager)) },
300
- ...(pathToWorkspaceUri(options.cwd)
301
- ? [{ predicate: UDFS_WORKSPACE, object: iri(pathToWorkspaceUri(options.cwd)) }]
302
- : []),
303
- { predicate: UDFS_METADATA, object: literal(JSON.stringify(buildThreadMetadata(options))) },
304
- { predicate: DCT_MODIFIED, object: dateLiteral(now) },
305
- ],
310
+ await context.db.updateByLocator(threadTable, { id: threadId, chat: refs.chatUri }, {
311
+ title: buildThreadTitle(options.sessionManager),
312
+ workspace: pathToWorkspaceUri(options.cwd),
313
+ metadata: buildThreadMetadata(options),
314
+ updatedAt: now,
306
315
  });
307
316
  }
317
+ function createPodMirrorDb(session) {
318
+ const solidSession = session.solidSession ?? {
319
+ info: {
320
+ isLoggedIn: true,
321
+ webId: session.webId,
322
+ },
323
+ fetch: session.fetch,
324
+ logout: async () => { },
325
+ };
326
+ return drizzle(solidSession, {
327
+ logger: false,
328
+ disableInteropDiscovery: true,
329
+ schema: solidSchema,
330
+ });
331
+ }
332
+ function resolvePiResourceRefs(context, options) {
333
+ const sessionId = options.sessionManager.getSessionId();
334
+ const createdAt = getSessionCreatedAt(options.sessionManager);
335
+ const chatUri = context.db.resolveLocatorIri(chatTable, { id: DEFAULT_SECRETARY_CHAT_ID });
336
+ return {
337
+ agentUri: context.db.resolveLocatorIri(agentTable, { id: PI_AGENT_ID }),
338
+ chatUri,
339
+ sessionUri: context.db.resolveLocatorIri(sessionTable, { id: sessionId, createdAt }),
340
+ threadUri: context.db.resolveLocatorIri(threadTable, { id: sessionId, chat: chatUri }),
341
+ };
342
+ }
343
+ function normalizePodMessageRow(context, row, refs) {
344
+ return {
345
+ ...row,
346
+ chat: refs.chatUri,
347
+ thread: refs.threadUri,
348
+ maker: row.role === 'user' ? context.webId : refs.agentUri,
349
+ };
350
+ }
351
+ async function upsertByLocator(db, table, locator, insert, update) {
352
+ const existing = await db.findByLocator(table, locator);
353
+ if (!existing) {
354
+ await db.insert(table).values(insert).execute();
355
+ return;
356
+ }
357
+ await db.updateByLocator(table, locator, update);
358
+ }
359
+ function getSessionCreatedAt(sessionManager) {
360
+ const firstEntryDate = sessionManager.getEntries()
361
+ .map((entry) => toDate(entry.timestamp))
362
+ .find((date) => date instanceof Date);
363
+ if (firstEntryDate) {
364
+ return firstEntryDate;
365
+ }
366
+ return parseTimestampFromUuidLikeId(sessionManager.getSessionId()) ?? new Date();
367
+ }
368
+ function parseTimestampFromUuidLikeId(id) {
369
+ const prefix = id.replace(/-/g, '').slice(0, 12);
370
+ if (!/^[\da-f]{12}$/i.test(prefix)) {
371
+ return null;
372
+ }
373
+ const millis = Number.parseInt(prefix, 16);
374
+ if (!Number.isFinite(millis) || millis <= 0) {
375
+ return null;
376
+ }
377
+ const date = new Date(millis);
378
+ return Number.isNaN(date.getTime()) ? null : date;
379
+ }
380
+ function toDate(value) {
381
+ if (value instanceof Date && !Number.isNaN(value.getTime())) {
382
+ return value;
383
+ }
384
+ if (typeof value === 'number' || typeof value === 'string') {
385
+ const date = new Date(value);
386
+ return Number.isNaN(date.getTime()) ? null : date;
387
+ }
388
+ return null;
389
+ }
308
390
  async function createDefaultRuntime(overrides) {
309
391
  if (isCompletePodMirrorRuntime(overrides)) {
310
392
  return overrides;
@@ -1 +1 @@
1
- {"version":3,"file":"pod-mirror.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/pod-mirror.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pod-mirror.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/pod-mirror.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Pod Read/Write tools — LLM-facing tools for Pod filesystem access.
3
+ *
4
+ * These tools provide the LLM with the same familiar read/write interface
5
+ * as local files, but routed through the authenticated Pod HTTP API.
6
+ *
7
+ * The LLM should prefer these over local read/write when the path starts
8
+ * with a Pod root (e.g., /alice/). For local files, use read/write.
9
+ */
10
+ import { Type } from '@sinclair/typebox';
11
+ import { getDefaultPodDataSession } from '../pod-data-session.js';
12
+ // ── Parameter Schemas ──────────────────────────────────────────────────────
13
+ const PodReadParams = Type.Object({
14
+ path: Type.String({ description: 'Pod resource path (e.g., /alice/settings/credentials.ttl)' }),
15
+ });
16
+ const PodWriteParams = Type.Object({
17
+ path: Type.String({ description: 'Pod resource path (e.g., /alice/settings/credentials.ttl)' }),
18
+ content: Type.String({ description: 'Content to write' }),
19
+ contentType: Type.Optional(Type.String({ description: 'Content-Type header. Default: text/turtle for .ttl, text/markdown for .md, application/json for .json' })),
20
+ });
21
+ // ── Content-Type inference ──────────────────────────────────────────────────
22
+ function inferContentType(path) {
23
+ if (path.endsWith('.ttl'))
24
+ return 'text/turtle';
25
+ if (path.endsWith('.md'))
26
+ return 'text/markdown';
27
+ if (path.endsWith('.json'))
28
+ return 'application/json';
29
+ if (path.endsWith('.html'))
30
+ return 'text/html';
31
+ return 'text/plain';
32
+ }
33
+ // ── Tool Definitions ────────────────────────────────────────────────────────
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ export const podReadTool = {
36
+ name: 'pod_read',
37
+ label: 'Pod Read',
38
+ description: [
39
+ 'Read a file from the user\'s Pod. Use this for any path under the Pod root (e.g., /alice/...).',
40
+ 'For local files, use the regular read tool instead.',
41
+ ].join('\n'),
42
+ parameters: PodReadParams,
43
+ async execute(_callId, params) {
44
+ const path = params.path.trim();
45
+ if (!path)
46
+ return { content: [{ type: 'text', text: 'Error: path is required' }], isError: true };
47
+ const pod = await getDefaultPodDataSession();
48
+ if (!pod)
49
+ return { content: [{ type: 'text', text: 'Error: not connected to Pod' }], isError: true };
50
+ try {
51
+ const res = await pod.fetch(path);
52
+ if (!res.ok) {
53
+ const body = await res.text().catch(() => '');
54
+ return { content: [{ type: 'text', text: `Pod read failed: HTTP ${res.status} — ${body.slice(0, 500)}` }], isError: true };
55
+ }
56
+ const text = await res.text();
57
+ return { content: [{ type: 'text', text }] };
58
+ }
59
+ catch (e) {
60
+ return { content: [{ type: 'text', text: `Pod read error: ${e instanceof Error ? e.message : String(e)}` }], isError: true };
61
+ }
62
+ },
63
+ };
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ export const podWriteTool = {
66
+ name: 'pod_write',
67
+ label: 'Pod Write',
68
+ description: [
69
+ 'Write content to a file in the user\'s Pod. Use this for any path under the Pod root (e.g., /alice/...).',
70
+ 'Content-Type is inferred from the file extension (.ttl → text/turtle, .md → text/markdown, .json → application/json).',
71
+ 'For local files, use the regular write tool instead.',
72
+ ].join('\n'),
73
+ parameters: PodWriteParams,
74
+ async execute(_callId, params) {
75
+ const path = params.path.trim();
76
+ if (!path)
77
+ return { content: [{ type: 'text', text: 'Error: path is required' }], isError: true };
78
+ const pod = await getDefaultPodDataSession();
79
+ if (!pod)
80
+ return { content: [{ type: 'text', text: 'Error: not connected to Pod' }], isError: true };
81
+ const ct = params.contentType?.trim() || inferContentType(path);
82
+ try {
83
+ const res = await pod.fetch(path, {
84
+ method: 'PUT',
85
+ headers: { 'Content-Type': ct },
86
+ body: params.content,
87
+ });
88
+ if (!res.ok) {
89
+ const body = await res.text().catch(() => '');
90
+ return { content: [{ type: 'text', text: `Pod write failed: HTTP ${res.status} — ${body.slice(0, 500)}` }], isError: true };
91
+ }
92
+ return { content: [{ type: 'text', text: `Written: ${path}` }] };
93
+ }
94
+ catch (e) {
95
+ return { content: [{ type: 'text', text: `Pod write error: ${e instanceof Error ? e.message : String(e)}` }], isError: true };
96
+ }
97
+ },
98
+ };
99
+ // ── Pi Extension ────────────────────────────────────────────────────────────
100
+ export default function (pi) {
101
+ pi.registerTool(podReadTool);
102
+ pi.registerTool(podWriteTool);
103
+ }
104
+ //# sourceMappingURL=pod-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod-tools.js","sourceRoot":"","sources":["../../../src/lib/pi-adapter/pod-tools.ts"],"names":[],"mappings":"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"}