unify agent items into a flat file-based store, drop the marketplace
Replace the marketplace service dependency and the native/global/user scope tiers with a single external directory ($OFFICER_ITEMS_DIR) holding skills, tools, tasks, processes and extensions as plain files. - tasks move from Postgres to TASK.md files (new file-backed task layer); task editing now works, which the DB path never supported - skills/tools/processes collapse into one shared file router (single dir) - remove the marketplace client (sync-marketplace/sync-version) and the boot-time sync; pi-bridge/pi-manager/sandbox point at the flat store - drop the dead tasks + vestigial skills/tools/processes/extensions + item_chats tables (migration 0004) - one-time migration script exports DB tasks and consolidates disk items Migration verified: all 6 tasks round-trip through the runtime parser identically to their DB rows (pipeline steps, triggers, script impls and agentic bodies all intact). NOTE: not yet functionally tested end-to-end — every item (each task mode, tool, skill, extension) still needs to be run/exercised in the app before this is trusted. To be done manually. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
import { mkdirSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
import { homedir } from 'node:os';
|
||||
import { DATA_PATH } from './data-path';
|
||||
import { syncMarketplaceTools, syncMarketplaceTasks } from './sync-marketplace';
|
||||
import { DATA_PATH, ensureItemDirs } from './data-path';
|
||||
import { ensureToolLoader } from './ensure-tool-loader';
|
||||
// Queue is now owned by the sidecar process
|
||||
import { startDiscordBotIfConfigured } from './channels/discord/bot';
|
||||
@@ -10,6 +9,7 @@ import { startTelegramBotIfConfigured } from './channels/telegram/bot';
|
||||
import { startWhatsAppBotIfConfigured } from './channels/whatsapp/bot';
|
||||
|
||||
mkdirSync(DATA_PATH, { recursive: true });
|
||||
ensureItemDirs();
|
||||
|
||||
/** Check common locations for the Pi package directory. */
|
||||
async function findPiPackageDir(): Promise<string | null> {
|
||||
@@ -67,8 +67,6 @@ async function installPi(): Promise<boolean> {
|
||||
}
|
||||
}
|
||||
|
||||
await syncMarketplaceTools();
|
||||
await syncMarketplaceTasks();
|
||||
ensureToolLoader();
|
||||
// Queue is initialized by the sidecar process
|
||||
|
||||
|
||||
Reference in New Issue
Block a user