@xopcai/xopc 0.0.174 → 0.0.176
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/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-CyEDJeIt.js → activity-store-DsFM1upC.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-DF7Bol6I.js → agent-avatar-dicebear-DvdMLOga.js} +1 -1
- package/dist/gateway/static/root/assets/agents-BVjlpbeZ.js +2 -0
- package/dist/gateway/static/root/assets/{api-DYunqroX.js → api-BdPLCCBm.js} +1 -1
- package/dist/gateway/static/root/assets/{api-DwyUxpgY.js → api-Bop4IQRW.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-B4xJyvDu.js → app-management-settings-panel-DMLDOHul.js} +1 -1
- package/dist/gateway/static/root/assets/appearance-settings-DbI9foFR.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-njqxLWYD.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-DWhBmmjD.js → archive-plugin-Dfdxuwvb.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BOpZfa_I.js → attachment-load-Dn3RlnYD.js} +2 -2
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-DonnL2dL.js → attachment-preview-renderer-Cmo-5BP5.js} +2 -2
- package/dist/gateway/static/root/assets/{attachment-process-heavy-RnGYy9bC.js → attachment-process-heavy-B2_kr5EA.js} +3 -3
- package/dist/gateway/static/root/assets/{automation-suggestion-card-Byu3I7Rs.js → automation-suggestion-card-Bc0Y7A9u.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-D-eweHZJ.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-6AG1qatz.js → binary-plugins-0XtB-xC0.js} +2 -2
- package/dist/gateway/static/root/assets/{block-editor-CJhrn98_.js → block-editor-C4fXWbEE.js} +6 -6
- package/dist/gateway/static/root/assets/browser-settings-page-lC86-drr.js +8 -0
- package/dist/gateway/static/root/assets/{browser-workflow-inputs-CBVb4mt9.js → browser-workflow-inputs-CZmzNymN.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-workflows-page-Cq4XUKbu.js → browser-workflows-page-CBYM9HqG.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-6tYNfHqJ.js +7 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-hbW4NAKO.js → capability-presets-api-BiJxmmhW.js} +1 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-Co-ymbd9.js +1 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-CzMjHb17.js → channel-recipient-api-BKTUZDp-.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-D46eVjaQ.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-BMRAO4zZ.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-B9Au6gMZ.js → connector-logo-Pr4RIKjj.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-Dw1eYbRi.js +2 -0
- package/dist/gateway/static/root/assets/desktop-pet-B8cZuQUt.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-settings-CNff5TFb.js → desktop-pet-settings-CEQacUDF.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-Bf956uo-.js → directory-picker-path-field-DWnxdZtc.js} +1 -1
- package/dist/gateway/static/root/assets/{dreaming-settings-CHM8FE1g.js → dreaming-settings-D2e2w2Ho.js} +3 -3
- package/dist/gateway/static/root/assets/{extension-debug-page-ZqM_0eUs.js → extension-debug-page-BLjTGbv3.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-D4hvXOMM.js → extension-page-D2_UC6hy.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-GsqxaJjA.js → extension-settings-page-BsH6o_PX.js} +1 -1
- package/dist/gateway/static/root/assets/{focus-detail-page-CE6uwrl1.js → focus-detail-page-BBXUtxRB.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-B4THmgnS.js → gateway-config-api-C-DkC6UJ.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-CPv-MxGE.js → gateway-settings-DEOGiimF.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-MP3K71pP.js → gateway-startup-retry-BlSLh1TF.js} +1 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-CSFcRE_N.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-VjRArfAJ.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DCcDuIjG.js → goals-config-api-CcdS9qek.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-BAcErdch.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-o9QMXvNq.js → goals-settings-BY7crl0z.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-DixwpXnH.js → heartbeat-settings-DtTkS0gs.js} +1 -1
- package/dist/gateway/static/root/assets/{image-generation-api-BOGH9FGi.js → image-generation-api-WGgkbwDZ.js} +1 -1
- package/dist/gateway/static/root/assets/index-2UImfRDC.js +212 -0
- package/dist/gateway/static/root/assets/index-CS9sVShT.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D4o4ZPF6.js → keyboard-shortcuts-settings-C5lpWQ3f.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Cl0fcPL4.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-GzMmpO7G.js → local-apps-page-b05wWvXG.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-CAuhEGCn.js → locale-store-sToMfHX_.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-cDE1jLJv.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-CIX8D1pv.js → markdown-split-0gPVst5y.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-Bp3eIA45.js → media-plugins-Rxyq_KTm.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CarlxqXV.js +3 -0
- package/dist/gateway/static/root/assets/{notes-page-RVFiYAoO.js → notes-page-DRhNDl_Q.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-BKNBk0Uf.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-BGAYH3Ef.js → page-tabs-cOEOQqHh.js} +1 -1
- package/dist/gateway/static/root/assets/pdf-D4PI9qAw.js +54 -0
- package/dist/gateway/static/root/assets/pdf.worker.min-CHFwMXne.mjs +29 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BM6pDkHp.js → preview-open-alternatives-BopOLFvu.js} +1 -1
- package/dist/gateway/static/root/assets/{product-open-page-BiMetEmn.js → product-open-page-DWVPmmOq.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-BhjEXNQW.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-B80e69PH.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-CwdVob6H.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BdjV8MK5.js → save-bar-controls-BfZmKe1t.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-ChlqXU46.js → schedule-field-Cpi4jCRV.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-DDKf5ZSH.js → schema-form-OXFkcZQe.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-BGt3Asj6.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BnTdM9Nn.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-CPG0KGVs.js → settings-form-section-BwqkZCHJ.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-DRSDHucM.js → settings-loading-skeleton-BbqH_S3Y.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CeB7_xD0.js → settings-page-BoxC-JSa.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-BENrkwd0.js → settings-page-layout-Ddu2iGaW.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-z1Lwv0js.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DIzczJkG.js → share-preview-page-CVazOFjy.js} +2 -2
- package/dist/gateway/static/root/assets/shares-settings-C4lXuyQj.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DSuIDkeI.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-xgZczqVe.js +2 -0
- package/dist/gateway/static/root/assets/skills-page.utils-DgyB1tSo.js +1 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-Dp4d5Q1B.js → system-settings-panel-BoLSQL65.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-CbGc1laW.js → theme-store-CBNcGOfj.js} +1 -1
- package/dist/gateway/static/root/assets/time-picker-gochWrny.js +1 -0
- package/dist/gateway/static/root/assets/{typed-models-lib-DwPk3OPL.js → typed-models-lib-DvRnr7YB.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-CXrEu2dw.js → use-channel-catalog-CA9BFVB7.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-CEfIy4WZ.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-DFoA79LB.js → voice-api-key-field-v8tgylEZ.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-page-B-3MClaf.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-CEsFEdax.js +1 -0
- package/dist/gateway/static/root/assets/work-page-CT9AHnq6.js +3 -0
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-CC3cJn5k.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-C-1-_Zp1.js +11 -0
- package/dist/gateway/static/root/index.html +7 -7
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.js +8 -8
- package/dist/src/agent/context/execution-scope.d.ts +26 -0
- package/dist/src/agent/context/execution-scope.js +84 -0
- package/dist/src/agent/context/project-context.d.ts +3 -1
- package/dist/src/agent/context/project-context.js +26 -8
- package/dist/src/agent/embedded/model-runtime.d.ts +1 -2
- package/dist/src/agent/embedded/model-runtime.js +17 -29
- package/dist/src/agent/embedded/session-runner.js +2 -3
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +1 -0
- package/dist/src/agent/prompt/system-prompt.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +7 -4
- package/dist/src/agent/service.js +1 -1
- package/dist/src/agent/session/session-config-service.d.ts +4 -1
- package/dist/src/agent/session/session-config-service.js +5 -3
- package/dist/src/agent/session/session-inspector.d.ts +6 -0
- package/dist/src/agent/session/session-inspector.js +9 -2
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/index.d.ts +2 -0
- package/dist/src/agent/skills/index.js +14 -5
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +2 -0
- package/dist/src/agent/workflow/types.d.ts +1 -0
- package/dist/src/auth/model-credential-store.d.ts +17 -0
- package/dist/src/auth/model-credential-store.js +110 -0
- package/dist/src/auth/oauth/github-copilot.js +2 -2
- package/dist/src/auth/oauth/openai-codex.js +98 -7
- package/dist/src/auth/oauth/types.d.ts +4 -1
- package/dist/src/auth/oauth/xopc-cloud.js +124 -6
- package/dist/src/automations/domain/defaults.d.ts +1 -0
- package/dist/src/automations/domain/defaults.js +4 -0
- package/dist/src/automations/domain/index.d.ts +1 -0
- package/dist/src/automations/domain/index.js +2 -1
- package/dist/src/automations/index.js +2 -1
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/skills.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/schema.d.ts +21 -0
- package/dist/src/config/schema.js +12 -2
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -0
- package/dist/src/gateway/hono/lib/config-payload.js +1 -0
- package/dist/src/gateway/hono/oauth-async.d.ts +5 -0
- package/dist/src/gateway/hono/oauth-async.js +20 -8
- package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +1 -1
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +9 -0
- package/dist/src/gateway/hono/routes/goals.js +13 -0
- package/dist/src/gateway/hono/routes/home.d.ts +16 -3
- package/dist/src/gateway/hono/routes/home.js +98 -25
- package/dist/src/gateway/hono/routes/index.js +2 -0
- package/dist/src/gateway/hono/routes/local-apps.js +1 -1
- package/dist/src/gateway/hono/routes/project-skills.d.ts +3 -0
- package/dist/src/gateway/hono/routes/project-skills.js +119 -0
- package/dist/src/gateway/hono/routes/update.js +2 -2
- package/dist/src/gateway/index.js +1 -1
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +2 -1
- package/dist/src/gateway/service.js +5 -5
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/infra/gateway-processes.js +1 -1
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +2 -2
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/mcp/channel-bridge.js +1 -1
- package/dist/src/projects/index.d.ts +1 -0
- package/dist/src/projects/index.js +2 -1
- package/dist/src/projects/project-skill-service.d.ts +67 -0
- package/dist/src/projects/project-skill-service.js +131 -0
- package/dist/src/providers/index.js +4 -2
- package/dist/src/providers/provider-auth-service.d.ts +22 -0
- package/dist/src/providers/provider-auth-service.js +66 -0
- package/dist/src/providers/register-runtime-providers.d.ts +6 -0
- package/dist/src/providers/register-runtime-providers.js +55 -0
- package/dist/src/providers/xopc-cloud-account-service.d.ts +2 -2
- package/dist/src/providers/xopc-cloud-account-service.js +6 -5
- package/dist/src/providers/xopc-cloud-config.d.ts +3 -0
- package/dist/src/providers/xopc-cloud-config.js +13 -0
- package/dist/src/providers/xopc-cloud-model-source.d.ts +2 -2
- package/dist/src/providers/xopc-cloud-model-source.js +6 -5
- package/dist/src/session/index.d.ts +1 -1
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/thinking-resolve.d.ts +8 -0
- package/dist/src/session/thinking-resolve.js +6 -3
- package/dist/src/storage/sqlite/home-attention-repository.d.ts +3 -0
- package/dist/src/storage/sqlite/home-attention-repository.js +21 -0
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/migrations/067_home_attention_acknowledgements.sql +9 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +10 -0
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +2 -2
- package/dist/src/tui/xopc-tui-keybindings.d.ts +44 -4
- package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
- package/dist/src/workflows/engine/workflow-engine.js +2 -0
- package/dist/src/workflows/service/workflow-run-service.js +11 -5
- package/dist/src/workflows/service/workflow-session-bridge.js +2 -1
- package/package.json +5 -5
- package/dist/gateway/static/root/assets/agents-BVxEFPQ5.js +0 -2
- package/dist/gateway/static/root/assets/appearance-settings-B2PQxRiu.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-BtIgd82S.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-CG_SCH5b.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-CfLqPWZC.js +0 -8
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DCJmm6cR.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-CnkAYvWI.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-DtqqFpDn.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-C-5yHbc0.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CaHfs8YF.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-CvFMKYdb.js +0 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-DAeb82xP.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-CwLSp01r.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-DvJQ6_4M.js +0 -2
- package/dist/gateway/static/root/assets/index-CfXiRNN5.css +0 -1
- package/dist/gateway/static/root/assets/index-eyttVNS_.js +0 -212
- package/dist/gateway/static/root/assets/local-app-workbench-page-CPcfqn_A.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-DXABWCZp.js +0 -7
- package/dist/gateway/static/root/assets/messages-BiBdO1-O.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-DgJzZRX3.js +0 -4
- package/dist/gateway/static/root/assets/pdf-epILhEOn.js +0 -54
- package/dist/gateway/static/root/assets/pdf.worker.min-iDqQPrd3.mjs +0 -31
- package/dist/gateway/static/root/assets/project-detail-page-DF7F70Vg.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-Cw3jyi5s.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-ChAJsaNY.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BxZIxt7z.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DcDLS0xV.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-4Xa9NA7v.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-BpN0o5Cf.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DvF2UAaL.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CGKXpNfy.js +0 -2
- package/dist/gateway/static/root/assets/time-picker-BhgCeDuO.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-Dy_fKAK_.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-BWkjb1NK.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-DLBNFse5.js +0 -1
- package/dist/gateway/static/root/assets/work-page-Bn5RXMIE.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BuniGPO0.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-_vFhRrAl.js +0 -11
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { getOAuthProviderDefinition, init_registry } from "../auth/oauth/registry.js";
|
|
3
|
+
import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
|
|
4
|
+
import { XOPC_CLOUD_PROVIDER_ID, init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
|
|
5
|
+
//#region src/providers/register-runtime-providers.ts
|
|
6
|
+
function registerRuntimeProvider(modelRuntime, source) {
|
|
7
|
+
const oauthDefinition = getOAuthProviderDefinition(source.providerId);
|
|
8
|
+
const oauth = oauthDefinition?.oauthOnly ? {
|
|
9
|
+
name: oauthDefinition.displayName,
|
|
10
|
+
login: oauthDefinition.provider.login.bind(oauthDefinition.provider),
|
|
11
|
+
refreshToken: oauthDefinition.provider.refreshToken.bind(oauthDefinition.provider),
|
|
12
|
+
getApiKey: oauthDefinition.provider.getApiKey.bind(oauthDefinition.provider)
|
|
13
|
+
} : void 0;
|
|
14
|
+
modelRuntime.registerProvider(source.providerId, {
|
|
15
|
+
name: oauthDefinition?.displayName ?? source.providerId,
|
|
16
|
+
baseUrl: source.baseUrl,
|
|
17
|
+
api: source.api,
|
|
18
|
+
oauth,
|
|
19
|
+
models: source.models.filter((model) => model.availability === "available").map((model) => ({
|
|
20
|
+
id: model.id,
|
|
21
|
+
name: model.name,
|
|
22
|
+
reasoning: false,
|
|
23
|
+
input: ["text"],
|
|
24
|
+
cost: {
|
|
25
|
+
input: 0,
|
|
26
|
+
output: 0,
|
|
27
|
+
cacheRead: 0,
|
|
28
|
+
cacheWrite: 0
|
|
29
|
+
},
|
|
30
|
+
contextWindow: 128e3,
|
|
31
|
+
maxTokens: model.maxOutputTokens ?? 16384
|
|
32
|
+
}))
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** Register dynamically discovered model providers, including their OAuth contract. */
|
|
36
|
+
function registerRuntimeProviders(modelRuntime, catalog = getModelCatalogStore().load()) {
|
|
37
|
+
for (const source of Object.values(catalog.sources)) registerRuntimeProvider(modelRuntime, source);
|
|
38
|
+
if (!catalog.sources["xopc-cloud"]) registerRuntimeProvider(modelRuntime, {
|
|
39
|
+
providerId: XOPC_CLOUD_PROVIDER_ID,
|
|
40
|
+
baseUrl: resolveXopcModelRouterUrl(),
|
|
41
|
+
api: "openai-completions",
|
|
42
|
+
etag: null,
|
|
43
|
+
recommendedModel: null,
|
|
44
|
+
lastSuccessAt: 0,
|
|
45
|
+
models: []
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
var init_register_runtime_providers = __esmMin((() => {
|
|
49
|
+
init_registry();
|
|
50
|
+
init_model_catalog_store();
|
|
51
|
+
init_xopc_cloud_config();
|
|
52
|
+
}));
|
|
53
|
+
//#endregion
|
|
54
|
+
init_register_runtime_providers();
|
|
55
|
+
export { init_register_runtime_providers, registerRuntimeProviders };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ProviderAuthService } from './provider-auth-service.js';
|
|
3
3
|
declare const accountSummarySchema: z.ZodObject<{
|
|
4
4
|
balance: z.ZodObject<{
|
|
5
5
|
credits: z.ZodNumber;
|
|
@@ -33,7 +33,7 @@ export declare class XopcCloudAccountService {
|
|
|
33
33
|
constructor(options?: {
|
|
34
34
|
fetchImpl?: typeof fetch;
|
|
35
35
|
routerUrl?: string;
|
|
36
|
-
credentials?: Pick<
|
|
36
|
+
credentials?: Pick<ProviderAuthService, 'resolveApiKey'>;
|
|
37
37
|
});
|
|
38
38
|
getSummary(days?: 1 | 7 | 30): Promise<XopcCloudAccountSummary | null>;
|
|
39
39
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
|
|
2
|
+
import { getProviderAuthService, init_provider_auth_service } from "./provider-auth-service.js";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
//#region src/providers/xopc-cloud-account-service.ts
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
init_provider_auth_service();
|
|
6
|
+
init_xopc_cloud_config();
|
|
6
7
|
const accountSummarySchema = z.object({
|
|
7
8
|
balance: z.object({
|
|
8
9
|
credits: z.number().int().nonnegative(),
|
|
@@ -41,8 +42,8 @@ var XopcCloudAccountService = class {
|
|
|
41
42
|
credentials;
|
|
42
43
|
constructor(options = {}) {
|
|
43
44
|
this.fetchImpl = options.fetchImpl ?? fetch;
|
|
44
|
-
this.routerUrl = (options.routerUrl
|
|
45
|
-
this.credentials = options.credentials ??
|
|
45
|
+
this.routerUrl = resolveXopcModelRouterUrl(options.routerUrl);
|
|
46
|
+
this.credentials = options.credentials ?? getProviderAuthService();
|
|
46
47
|
}
|
|
47
48
|
async getSummary(days = 7) {
|
|
48
49
|
const accessToken = await this.credentials.resolveApiKey("xopc-cloud");
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
//#region src/providers/xopc-cloud-config.ts
|
|
3
|
+
function resolveXopcModelRouterUrl(override) {
|
|
4
|
+
return (override ?? process.env.XOPC_MODEL_ROUTER_URL ?? "https://router.xopc.ai/v1").replace(/\/+$/, "");
|
|
5
|
+
}
|
|
6
|
+
var XOPC_CLOUD_PROVIDER_ID, DEFAULT_XOPC_MODEL_ROUTER_URL;
|
|
7
|
+
var init_xopc_cloud_config = __esmMin((() => {
|
|
8
|
+
XOPC_CLOUD_PROVIDER_ID = "xopc-cloud";
|
|
9
|
+
DEFAULT_XOPC_MODEL_ROUTER_URL = "https://router.xopc.ai/v1";
|
|
10
|
+
}));
|
|
11
|
+
//#endregion
|
|
12
|
+
init_xopc_cloud_config();
|
|
13
|
+
export { DEFAULT_XOPC_MODEL_ROUTER_URL, XOPC_CLOUD_PROVIDER_ID, init_xopc_cloud_config, resolveXopcModelRouterUrl };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type CredentialResolver } from '../auth/credentials.js';
|
|
2
1
|
import { type ModelCatalogStore } from './model-catalog-store.js';
|
|
2
|
+
import { type ProviderAuthService } from './provider-auth-service.js';
|
|
3
3
|
export type XopcCloudModelRefreshResult = {
|
|
4
4
|
status: 'skipped';
|
|
5
5
|
reason: 'not_configured';
|
|
@@ -22,7 +22,7 @@ export declare class XopcCloudModelSource {
|
|
|
22
22
|
constructor(options?: {
|
|
23
23
|
fetchImpl?: typeof fetch;
|
|
24
24
|
routerUrl?: string;
|
|
25
|
-
credentials?: Pick<
|
|
25
|
+
credentials?: Pick<ProviderAuthService, 'resolveApiKey'>;
|
|
26
26
|
catalogStore?: ModelCatalogStore;
|
|
27
27
|
refreshModels?: () => void;
|
|
28
28
|
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { getModelCatalogStore, init_model_catalog_store } from "./model-catalog-store.js";
|
|
2
2
|
import { getModelRegistry, init_model_registry } from "./model-registry.js";
|
|
3
|
-
import {
|
|
3
|
+
import { init_xopc_cloud_config, resolveXopcModelRouterUrl } from "./xopc-cloud-config.js";
|
|
4
|
+
import { getProviderAuthService, init_provider_auth_service } from "./provider-auth-service.js";
|
|
4
5
|
//#region src/providers/xopc-cloud-model-source.ts
|
|
5
|
-
init_credentials();
|
|
6
6
|
init_model_catalog_store();
|
|
7
7
|
init_model_registry();
|
|
8
|
-
|
|
8
|
+
init_provider_auth_service();
|
|
9
|
+
init_xopc_cloud_config();
|
|
9
10
|
var XopcCloudModelError = class extends Error {
|
|
10
11
|
constructor(message, status, code) {
|
|
11
12
|
super(message);
|
|
@@ -22,8 +23,8 @@ var XopcCloudModelSource = class {
|
|
|
22
23
|
refreshModels;
|
|
23
24
|
constructor(options = {}) {
|
|
24
25
|
this.fetchImpl = options.fetchImpl ?? fetch;
|
|
25
|
-
this.routerUrl = (options.routerUrl
|
|
26
|
-
this.credentials = options.credentials ??
|
|
26
|
+
this.routerUrl = resolveXopcModelRouterUrl(options.routerUrl);
|
|
27
|
+
this.credentials = options.credentials ?? getProviderAuthService();
|
|
27
28
|
this.catalogStore = options.catalogStore ?? getModelCatalogStore();
|
|
28
29
|
this.refreshModels = options.refreshModels ?? (() => getModelRegistry().refresh());
|
|
29
30
|
}
|
|
@@ -3,7 +3,7 @@ export { onSessionTranscriptUpdate, emitSessionTranscriptUpdate, type SessionTra
|
|
|
3
3
|
export { SessionStore } from './store.js';
|
|
4
4
|
export type { SessionStoreOptions } from './store.js';
|
|
5
5
|
export { SessionConfigStore, resolveThinkingLevel, resolveReasoningLevel, resolveVerboseLevel } from './config-store.js';
|
|
6
|
-
export { resolveEffectiveThinkingLevel, resolveEffectiveReasoningLevel } from './thinking-resolve.js';
|
|
6
|
+
export { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveThinkingLevel, resolveEffectiveReasoningLevel, } from './thinking-resolve.js';
|
|
7
7
|
export type { SessionAgentConfig } from './config-types.js';
|
|
8
8
|
export { normalizeWorkingDirectoryInput, effectiveWorkspacePathForSession, projectWorkspacePath, } from './session-workspace.js';
|
|
9
9
|
export { SessionStatus, type SessionMetadata, type SessionDetail, type SessionListQuery, type PaginatedResult, type SessionStats, type ExportFormat, type SessionExport, type SessionTranscriptSummary, type CompactionBoundarySummary, } from './types.js';
|
|
@@ -8,7 +8,7 @@ import { SessionStore } from "./store.js";
|
|
|
8
8
|
import { applySessionPatchToMetadata } from "./patch-metadata.js";
|
|
9
9
|
import { SessionIndex } from "./manager.js";
|
|
10
10
|
import { SessionConfigStore, resolveReasoningLevel, resolveThinkingLevel, resolveVerboseLevel } from "./config-store.js";
|
|
11
|
-
import { resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel } from "./thinking-resolve.js";
|
|
11
|
+
import { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel } from "./thinking-resolve.js";
|
|
12
12
|
import { shouldSkipWebchatInboundByAbortCutoff } from "./abort-cutoff.js";
|
|
13
13
|
import { DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, evaluateSessionFreshness, resolveDailyResetAtMs, resolveSessionResetPolicy } from "./reset-policy.js";
|
|
14
14
|
import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
|
|
@@ -17,4 +17,4 @@ import { resolveSession, resolveSessionKeyForRequest } from "./resolve-session.j
|
|
|
17
17
|
import { DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, bareResetAckMessage, matchResetTriggers, resolveResetTriggers, shouldSkipResetOverlapCommand, stripLeadingEnvelopeTimestamp } from "./reset-triggers.js";
|
|
18
18
|
import { initSessionTurn } from "./init-session-turn.js";
|
|
19
19
|
import { CURRENT_SESSION_TRANSCRIPT_VERSION, XOPC_SESSION_TRANSCRIPT_TYPE } from "./transcript-format.js";
|
|
20
|
-
export { CURRENT_SESSION_TRANSCRIPT_VERSION, DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, SessionConfigStore, SessionIndex, SessionStatus, SessionStore, XOPC_SESSION_TRANSCRIPT_TYPE, applySessionPatchToMetadata, bareResetAckMessage, buildSessionContextForLlm, effectiveWorkspacePathForSession, emitSessionTranscriptUpdate, evaluateSessionFreshness, fallbackTitleFromMessages, flattenMessageContent, generateSessionTitleFromMessages, getSessionTitleSource, initSessionTurn, isTranscriptContextEntry, isWebchatSessionKey, matchResetTriggers, maybeRefineSessionTitleWithLlm, maybeSetProvisionalSessionTitle, mergeLlmMessagesPreservingContextRows, messagesToClientHistory, normalizeWorkingDirectoryInput, onSessionTranscriptUpdate, projectWorkspacePath, provisionalTitleFromUserText, resolveChannelResetConfig, resolveDailyResetAtMs, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel, resolveReasoningLevel, resolveResetTriggers, resolveSession, resolveSessionKeyForRequest, resolveSessionLifecycleTimestamps, resolveSessionResetPolicy, resolveSessionResetType, resolveThinkingLevel, resolveVerboseLevel, sanitizeGeneratedSessionTitle, sanitizeSessionTitle, shouldAutoTitleSessionKey, shouldRefineSessionTitleWithLlm, shouldSkipResetOverlapCommand, shouldSkipWebchatInboundByAbortCutoff, stripLeadingEnvelopeTimestamp, transcriptRowsFromJsonArray };
|
|
20
|
+
export { CURRENT_SESSION_TRANSCRIPT_VERSION, DEFAULT_ACTIVITY_DETAIL_LEVEL, DEFAULT_IDLE_MINUTES, DEFAULT_RESET_AT_HOUR, DEFAULT_RESET_MODE, DEFAULT_RESET_TRIGGERS, RESET_OVERLAP_COMMANDS, SessionConfigStore, SessionIndex, SessionStatus, SessionStore, XOPC_SESSION_TRANSCRIPT_TYPE, applySessionPatchToMetadata, bareResetAckMessage, buildSessionContextForLlm, effectiveWorkspacePathForSession, emitSessionTranscriptUpdate, evaluateSessionFreshness, fallbackTitleFromMessages, flattenMessageContent, generateSessionTitleFromMessages, getSessionTitleSource, initSessionTurn, isTranscriptContextEntry, isWebchatSessionKey, matchResetTriggers, maybeRefineSessionTitleWithLlm, maybeSetProvisionalSessionTitle, mergeLlmMessagesPreservingContextRows, messagesToClientHistory, normalizeWorkingDirectoryInput, onSessionTranscriptUpdate, projectWorkspacePath, provisionalTitleFromUserText, resolveChannelResetConfig, resolveConfiguredActivityDetailDefault, resolveDailyResetAtMs, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel, resolveReasoningLevel, resolveResetTriggers, resolveSession, resolveSessionKeyForRequest, resolveSessionLifecycleTimestamps, resolveSessionResetPolicy, resolveSessionResetType, resolveThinkingLevel, resolveVerboseLevel, sanitizeGeneratedSessionTitle, sanitizeSessionTitle, shouldAutoTitleSessionKey, shouldRefineSessionTitleWithLlm, shouldSkipResetOverlapCommand, shouldSkipWebchatInboundByAbortCutoff, stripLeadingEnvelopeTimestamp, transcriptRowsFromJsonArray };
|
|
@@ -8,6 +8,14 @@ import { type ThinkLevel, type ReasoningLevel } from '../agent/transcript/thinki
|
|
|
8
8
|
* @param requestOverride - Raw value from HTTP/API (e.g. Web pill); wins over persisted session when valid.
|
|
9
9
|
*/
|
|
10
10
|
export declare function resolveEffectiveThinkingLevel(sessionConfigStore: SessionConfigStore, sessionKey: string, requestOverride?: string | null, agentDefault?: ThinkLevel): Promise<ThinkingLevel>;
|
|
11
|
+
export declare const DEFAULT_ACTIVITY_DETAIL_LEVEL: ReasoningLevel;
|
|
12
|
+
export declare function resolveConfiguredActivityDetailDefault(config?: {
|
|
13
|
+
gateway?: {
|
|
14
|
+
webchat?: {
|
|
15
|
+
activityDetailDefault?: ReasoningLevel;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
}): ReasoningLevel;
|
|
11
19
|
/**
|
|
12
20
|
* Session override > runtime default.
|
|
13
21
|
*/
|
|
@@ -12,13 +12,16 @@ async function resolveEffectiveThinkingLevel(sessionConfigStore, sessionKey, req
|
|
|
12
12
|
if (fromSession !== void 0) return fromSession;
|
|
13
13
|
return agentDefault ?? FALLBACK;
|
|
14
14
|
}
|
|
15
|
-
const
|
|
15
|
+
const DEFAULT_ACTIVITY_DETAIL_LEVEL = "on";
|
|
16
|
+
function resolveConfiguredActivityDetailDefault(config) {
|
|
17
|
+
return config?.gateway?.webchat?.activityDetailDefault ?? "on";
|
|
18
|
+
}
|
|
16
19
|
/**
|
|
17
20
|
* Session override > runtime default.
|
|
18
21
|
*/
|
|
19
22
|
async function resolveEffectiveReasoningLevel(sessionConfigStore, sessionKey, agentDefault) {
|
|
20
|
-
const def = agentDefault ??
|
|
23
|
+
const def = agentDefault ?? "on";
|
|
21
24
|
return await resolveReasoningLevel(sessionConfigStore, sessionKey, def) ?? def;
|
|
22
25
|
}
|
|
23
26
|
//#endregion
|
|
24
|
-
export { resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel };
|
|
27
|
+
export { DEFAULT_ACTIVITY_DETAIL_LEVEL, resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type HomeAttentionSubjectKind = 'automation_run' | 'workflow_run';
|
|
2
|
+
export declare function acknowledgeHomeAttention(subjectKind: HomeAttentionSubjectKind, subjectId: string, acknowledgedAt?: number): void;
|
|
3
|
+
export declare function isHomeAttentionAcknowledged(subjectKind: HomeAttentionSubjectKind, subjectId: string): boolean;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
|
|
2
|
+
//#region src/storage/sqlite/home-attention-repository.ts
|
|
3
|
+
function acknowledgeHomeAttention(subjectKind, subjectId, acknowledgedAt = Date.now()) {
|
|
4
|
+
runSqliteWriteTransaction((db) => {
|
|
5
|
+
db.prepare(`
|
|
6
|
+
INSERT INTO home_attention_acknowledgements (subject_kind, subject_id, acknowledged_at)
|
|
7
|
+
VALUES (?, ?, ?)
|
|
8
|
+
ON CONFLICT(subject_kind, subject_id) DO UPDATE SET
|
|
9
|
+
acknowledged_at = excluded.acknowledged_at
|
|
10
|
+
`).run(subjectKind, subjectId, acknowledgedAt);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function isHomeAttentionAcknowledged(subjectKind, subjectId) {
|
|
14
|
+
return getSqliteDatabase().prepare(`
|
|
15
|
+
SELECT 1
|
|
16
|
+
FROM home_attention_acknowledgements
|
|
17
|
+
WHERE subject_kind = ? AND subject_id = ?
|
|
18
|
+
`).get(subjectKind, subjectId) !== void 0;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { acknowledgeHomeAttention, isHomeAttentionAcknowledged };
|
|
@@ -5,6 +5,7 @@ export { DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, } from './m
|
|
|
5
5
|
export { discoverSqlMigrations, listRegisteredMigrationTargets } from './migrations/discover.js';
|
|
6
6
|
export { closeXopcDatabase, getXopcDatabase, isXopcDatabaseOpen, openXopcDatabase, requireXopcDatabase, resetXopcDatabaseSingletonForTest, type OpenXopcDatabaseOptions, type XopcDatabase, } from './connection.js';
|
|
7
7
|
export { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';
|
|
8
|
+
export { acknowledgeHomeAttention, isHomeAttentionAcknowledged, type HomeAttentionSubjectKind, } from './home-attention-repository.js';
|
|
8
9
|
export { getUserClaim, linkUserClaimMemoryRecord, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, removeUserClaimEvidenceForSource, reinforceUserClaim, resolveUserEntity, setUserClaimDecision, type UserClaim, type UserClaimClass, type UserClaimState, type UserEntity, } from './user-claims-repository.js';
|
|
9
10
|
export { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob, type ConnectorLearningJob, type ConnectorLearningMode, type ConnectorLearningPhase, type ConnectorLearningStatus, } from './connector-learning-repository.js';
|
|
10
11
|
export { appendComposerInputHistory, clearComposerInputHistory, listComposerInputHistory, COMPOSER_INPUT_HISTORY_LIMIT, type ComposerInputHistoryItem, } from './composer-input-history-repository.js';
|
|
@@ -6,6 +6,7 @@ import { XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_SCHEMA_VERSION, applyPendingMi
|
|
|
6
6
|
import { ensureXopcDatabaseSchema } from "./schema.js";
|
|
7
7
|
import { closeXopcDatabase, getXopcDatabase, isXopcDatabaseOpen, openXopcDatabase, requireXopcDatabase, resetXopcDatabaseSingletonForTest } from "./connection.js";
|
|
8
8
|
import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
|
|
9
|
+
import { acknowledgeHomeAttention, isHomeAttentionAcknowledged } from "./home-attention-repository.js";
|
|
9
10
|
import { getUserClaim, linkUserClaimMemoryRecord, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, reinforceUserClaim, removeUserClaimEvidenceForSource, resolveUserEntity, setUserClaimDecision } from "./user-claims-repository.js";
|
|
10
11
|
import { claimNextConnectorLearningJob, enqueueConnectorLearningJob, listConnectorLearningJobs, recoverStaleConnectorLearningJobs, setConnectorLearningPaused, updateConnectorLearningJob } from "./connector-learning-repository.js";
|
|
11
12
|
import { COMPOSER_INPUT_HISTORY_LIMIT, appendComposerInputHistory, clearComposerInputHistory, listComposerInputHistory } from "./composer-input-history-repository.js";
|
|
@@ -27,4 +28,4 @@ import { appendConnectorExecutionAudit, claimConnectorWebhookDelivery, completeC
|
|
|
27
28
|
import { getUserTrustPolicy, setUserTrustPolicy } from "./user-trust-repository.js";
|
|
28
29
|
import { consumeMemoryReferenceConsent, decideMemoryReferenceConsent, ensureMemoryReferenceConsentRequest, hasMemoryReferenceConsent, listMemoryReferenceConsents, revokeMemoryReferenceConsent } from "./memory-reference-consent-repository.js";
|
|
29
30
|
import { getUserProfilePromptState, setUserProfilePromptState } from "./user-profile-setup-repository.js";
|
|
30
|
-
export { COMPOSER_INPUT_HISTORY_LIMIT, DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, SCHEMA_META_SCHEMA_VERSION_KEY, USER_UNDERSTANDING_REMEDIATION_POLICY, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_FILENAME, XOPC_DB_SCHEMA_VERSION, appendCompactionBoundary, appendComposerInputHistory, appendConnectorExecutionAudit, appendMemorySignal, appendMemoryTraceEvent, appendTranscriptEntry, applyPendingMigrations, attachMemoryEvidence, buildDefaultSessionMetadata, buildGlobalSessionStats, buildRelationshipPrompt, claimConnectorWebhookDelivery, claimKnowledgeSourceItems, claimNextConnectorLearningJob, classifyStoredRow, clearComposerInputHistory, closeXopcDatabase, completeConnectorWebhookDelivery, completeKnowledgeSourceItemSynthesis, completeTaskOutcome, consumeConnectorApproval, consumeMemoryReferenceConsent, createConnectorApproval, createObjectLinkRecord, decideConnectorApproval, decideMemoryReferenceConsent, deleteConnectorConnection, deleteConnectorInstallation, deleteMemoryEvidenceForRecord, deleteMemoryRecord, deleteNoteAgentContextRecord, deleteNoteRecord, deleteSessionConfig, deleteSessionRecord, discoverSqlMigrations, enqueueConnectorLearningJob, ensureMemoryReferenceConsentRequest, ensureSessionRecord, ensureXopcDatabaseSchema, estimateTokensFromMessages, extractFtsContent, findLatestMemoryInjectTrace, findSessionKeyBySessionId, findTaskOutcomeForAssistant, finishKnowledgeSyncRun, getActivityEventRecord, getCachedConnectorCatalogEntry, getConnectorApproval, getConnectorConnection, getConnectorInstallation, getCurrentSessionId, getGlobalSessionStats, getInteractionState, getKnowledgeConsumerWatermark, getKnowledgeSourceCursor, getKnowledgeSourceItem, getMemoryProviderState, getMemoryRecord, getNoteAgentContextRecord, getNoteRecord, getRelationshipSettings, getSessionConfig, getSessionMetadata, getSessionPersistedLevels, getSqliteDatabase, getTaskOutcome, getUserClaim, getUserProfilePromptState, getUserTrustPolicy, getXopcDatabase, hasMemoryReferenceConsent, hasSessionConfig, hasUnresolvedMemoryConflict, incrementSessionStatsOnAppend, inspectSchemaMigrationStatus, isProactiveSupportAllowed, isXopcDatabaseOpen, linkUserClaimMemoryRecord, listActivityRecords, listCachedConnectorCatalogEntries, listCompactionBoundaries, listComposerInputHistory, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, listConnectorLearningJobs, listKnowledgeSourceChanges, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, listMemoryRecords, listMemoryReferenceConsents, listMemorySignals, listMemoryTraceEvents, listNoteRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, listRegisteredMigrationTargets, listSessionMetadata, listSessionsByAgent, listTaskOutcomes, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRows, loadTranscriptRowsForSession, markMemoryRecordsConflicted, metadataToSessionInsert, openXopcDatabase, paginateTranscriptMessages, patchSessionMetadata, pruneBoundedKnowledgeSourceItems, readSchemaVersion, readSchemaVersionForTest, recordActivityEvent, recoverStaleConnectorLearningJobs, reinforceUserClaim, releaseConnectorWebhookDelivery, removeUserClaimEvidenceForSource, replaceConnectorCatalogEntries, replaceTranscriptRows, requireXopcDatabase, resetSessionRecord, resetXopcDatabaseSingletonForTest, resolveMigrationsDir, resolveSessionAgentId, resolveUserEntity, resolveXopcDatabasePath, restoreBeforeCompactionBoundary, revokeMemoryReferenceConsent, runSqliteWriteTransaction, searchMemoryIndex, searchMemoryRecords, sessionConfigRowToConfig, sessionRowToMetadata, setConnectorLearningPaused, setInteractionState, setKnowledgeConsumerWatermark, setKnowledgeSourceCursor, setKnowledgeSourceItemSynthesisStatus, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, setSessionConfig, setTaskOutcomeFeedback, setUserClaimDecision, setUserProfilePromptState, setUserTrustPolicy, startKnowledgeSyncRun, startTaskOutcome, summarizeMemoryRecallFeedback, summarizeTaskOutcomes, summarizeUserUnderstandingQuality, syncMemoryIndex, transcriptEntryRowToStoredRow, updateConnectorLearningJob, updateInteractionStateFromMessage, updateRelationshipSettings, updateSessionConfig, updateSessionStats, updateTaskOutcome, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, upsertKnowledgeSourceItems, upsertMemoryRecord, upsertNoteAgentContextRecord, upsertNoteRecord };
|
|
31
|
+
export { COMPOSER_INPUT_HISTORY_LIMIT, DatabaseSchemaMigrationGapError, DatabaseSchemaTooNewError, SCHEMA_META_SCHEMA_VERSION_KEY, USER_UNDERSTANDING_REMEDIATION_POLICY, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_FILENAME, XOPC_DB_SCHEMA_VERSION, acknowledgeHomeAttention, appendCompactionBoundary, appendComposerInputHistory, appendConnectorExecutionAudit, appendMemorySignal, appendMemoryTraceEvent, appendTranscriptEntry, applyPendingMigrations, attachMemoryEvidence, buildDefaultSessionMetadata, buildGlobalSessionStats, buildRelationshipPrompt, claimConnectorWebhookDelivery, claimKnowledgeSourceItems, claimNextConnectorLearningJob, classifyStoredRow, clearComposerInputHistory, closeXopcDatabase, completeConnectorWebhookDelivery, completeKnowledgeSourceItemSynthesis, completeTaskOutcome, consumeConnectorApproval, consumeMemoryReferenceConsent, createConnectorApproval, createObjectLinkRecord, decideConnectorApproval, decideMemoryReferenceConsent, deleteConnectorConnection, deleteConnectorInstallation, deleteMemoryEvidenceForRecord, deleteMemoryRecord, deleteNoteAgentContextRecord, deleteNoteRecord, deleteSessionConfig, deleteSessionRecord, discoverSqlMigrations, enqueueConnectorLearningJob, ensureMemoryReferenceConsentRequest, ensureSessionRecord, ensureXopcDatabaseSchema, estimateTokensFromMessages, extractFtsContent, findLatestMemoryInjectTrace, findSessionKeyBySessionId, findTaskOutcomeForAssistant, finishKnowledgeSyncRun, getActivityEventRecord, getCachedConnectorCatalogEntry, getConnectorApproval, getConnectorConnection, getConnectorInstallation, getCurrentSessionId, getGlobalSessionStats, getInteractionState, getKnowledgeConsumerWatermark, getKnowledgeSourceCursor, getKnowledgeSourceItem, getMemoryProviderState, getMemoryRecord, getNoteAgentContextRecord, getNoteRecord, getRelationshipSettings, getSessionConfig, getSessionMetadata, getSessionPersistedLevels, getSqliteDatabase, getTaskOutcome, getUserClaim, getUserProfilePromptState, getUserTrustPolicy, getXopcDatabase, hasMemoryReferenceConsent, hasSessionConfig, hasUnresolvedMemoryConflict, incrementSessionStatsOnAppend, inspectSchemaMigrationStatus, isHomeAttentionAcknowledged, isProactiveSupportAllowed, isXopcDatabaseOpen, linkUserClaimMemoryRecord, listActivityRecords, listCachedConnectorCatalogEntries, listCompactionBoundaries, listComposerInputHistory, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, listConnectorLearningJobs, listKnowledgeSourceChanges, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, listMemoryRecords, listMemoryReferenceConsents, listMemorySignals, listMemoryTraceEvents, listNoteRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, listRegisteredMigrationTargets, listSessionMetadata, listSessionsByAgent, listTaskOutcomes, listUserClaimEvidence, listUserClaimStatsBySource, listUserClaims, listUserPeopleGraphRows, loadLlmMessagesForSession, loadTranscriptHistoryRowsForSession, loadTranscriptRows, loadTranscriptRowsForSession, markMemoryRecordsConflicted, metadataToSessionInsert, openXopcDatabase, paginateTranscriptMessages, patchSessionMetadata, pruneBoundedKnowledgeSourceItems, readSchemaVersion, readSchemaVersionForTest, recordActivityEvent, recoverStaleConnectorLearningJobs, reinforceUserClaim, releaseConnectorWebhookDelivery, removeUserClaimEvidenceForSource, replaceConnectorCatalogEntries, replaceTranscriptRows, requireXopcDatabase, resetSessionRecord, resetXopcDatabaseSingletonForTest, resolveMigrationsDir, resolveSessionAgentId, resolveUserEntity, resolveXopcDatabasePath, restoreBeforeCompactionBoundary, revokeMemoryReferenceConsent, runSqliteWriteTransaction, searchMemoryIndex, searchMemoryRecords, sessionConfigRowToConfig, sessionRowToMetadata, setConnectorLearningPaused, setInteractionState, setKnowledgeConsumerWatermark, setKnowledgeSourceCursor, setKnowledgeSourceItemSynthesisStatus, setLatestMemoryInjectFeedback, setMemoryProviderState, setMemoryTraceFeedback, setSessionConfig, setTaskOutcomeFeedback, setUserClaimDecision, setUserProfilePromptState, setUserTrustPolicy, startKnowledgeSyncRun, startTaskOutcome, summarizeMemoryRecallFeedback, summarizeTaskOutcomes, summarizeUserUnderstandingQuality, syncMemoryIndex, transcriptEntryRowToStoredRow, updateConnectorLearningJob, updateInteractionStateFromMessage, updateRelationshipSettings, updateSessionConfig, updateSessionStats, updateTaskOutcome, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, upsertKnowledgeSourceItems, upsertMemoryRecord, upsertNoteAgentContextRecord, upsertNoteRecord };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS home_attention_acknowledgements (
|
|
2
|
+
subject_kind TEXT NOT NULL CHECK (subject_kind IN ('automation_run', 'workflow_run')),
|
|
3
|
+
subject_id TEXT NOT NULL,
|
|
4
|
+
acknowledged_at INTEGER NOT NULL,
|
|
5
|
+
PRIMARY KEY (subject_kind, subject_id)
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
CREATE INDEX IF NOT EXISTS idx_home_attention_acknowledged_at
|
|
9
|
+
ON home_attention_acknowledgements(acknowledged_at DESC);
|
|
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
|
|
|
3
3
|
/** Baseline schema version applied from schema.sql on first open. */
|
|
4
4
|
export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
|
|
5
5
|
/** Latest schema version this release supports (increment when adding migrations). */
|
|
6
|
-
export declare const XOPC_DB_SCHEMA_VERSION =
|
|
6
|
+
export declare const XOPC_DB_SCHEMA_VERSION = 67;
|
|
7
7
|
export declare function resolveMigrationsDir(override?: string): string;
|
|
8
8
|
/**
|
|
9
9
|
* Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
|
|
@@ -12,7 +12,7 @@ const log = createLogger("Sqlite:Migrations");
|
|
|
12
12
|
/** Baseline schema version applied from schema.sql on first open. */
|
|
13
13
|
const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
|
|
14
14
|
/** Latest schema version this release supports (increment when adding migrations). */
|
|
15
|
-
const XOPC_DB_SCHEMA_VERSION =
|
|
15
|
+
const XOPC_DB_SCHEMA_VERSION = 67;
|
|
16
16
|
const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
|
|
17
17
|
function resolveMigrationsDir(override) {
|
|
18
18
|
if (override) return override;
|
|
@@ -46,7 +46,7 @@ function applySingleMigration(db, migration) {
|
|
|
46
46
|
* Each step runs in its own transaction and updates schema_meta on success.
|
|
47
47
|
*/
|
|
48
48
|
function applyPendingMigrations(db, options = {}) {
|
|
49
|
-
const targetVersion = options.targetVersion ??
|
|
49
|
+
const targetVersion = options.targetVersion ?? 67;
|
|
50
50
|
let currentVersion = readSchemaVersion(db);
|
|
51
51
|
if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
|
|
52
52
|
if (currentVersion >= targetVersion) return currentVersion;
|
|
@@ -62,7 +62,7 @@ function applyPendingMigrations(db, options = {}) {
|
|
|
62
62
|
}
|
|
63
63
|
/** Inspect schema version without mutating the database. */
|
|
64
64
|
function inspectSchemaMigrationStatus(db, options = {}) {
|
|
65
|
-
const appVersion = options.targetVersion ??
|
|
65
|
+
const appVersion = options.targetVersion ?? 67;
|
|
66
66
|
const dbVersion = readSchemaVersion(db);
|
|
67
67
|
if (dbVersion > appVersion) return {
|
|
68
68
|
dbVersion,
|
|
@@ -19,7 +19,7 @@ const log = createLogger('Sqlite:Migrations');
|
|
|
19
19
|
export const XOPC_DB_BASELINE_SCHEMA_VERSION = 11;
|
|
20
20
|
|
|
21
21
|
/** Latest schema version this release supports (increment when adding migrations). */
|
|
22
|
-
export const XOPC_DB_SCHEMA_VERSION =
|
|
22
|
+
export const XOPC_DB_SCHEMA_VERSION = 67;
|
|
23
23
|
|
|
24
24
|
const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
|
|
25
25
|
|
|
@@ -31,7 +31,7 @@ function ensureXopcDatabaseSchema(db) {
|
|
|
31
31
|
bootstrapFreshDatabase(db);
|
|
32
32
|
currentVersion = 11;
|
|
33
33
|
}
|
|
34
|
-
applyPendingMigrations(db, { targetVersion:
|
|
34
|
+
applyPendingMigrations(db, { targetVersion: 67 });
|
|
35
35
|
}
|
|
36
36
|
//#endregion
|
|
37
37
|
export { SCHEMA_META_SCHEMA_VERSION_KEY, XOPC_DB_BASELINE_SCHEMA_VERSION, XOPC_DB_SCHEMA_VERSION, ensureSchemaMetaTable, ensureXopcDatabaseSchema, readSchemaVersion, readSchemaVersionForTest, setSchemaVersion };
|
|
@@ -189,6 +189,16 @@ CREATE INDEX IF NOT EXISTS idx_workflow_runs_definition_created
|
|
|
189
189
|
CREATE INDEX IF NOT EXISTS idx_workflow_runs_created
|
|
190
190
|
ON workflow_runs(agent_id, created_at_ms DESC);
|
|
191
191
|
|
|
192
|
+
CREATE TABLE IF NOT EXISTS home_attention_acknowledgements (
|
|
193
|
+
subject_kind TEXT NOT NULL CHECK (subject_kind IN ('automation_run', 'workflow_run')),
|
|
194
|
+
subject_id TEXT NOT NULL,
|
|
195
|
+
acknowledged_at INTEGER NOT NULL,
|
|
196
|
+
PRIMARY KEY (subject_kind, subject_id)
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
CREATE INDEX IF NOT EXISTS idx_home_attention_acknowledged_at
|
|
200
|
+
ON home_attention_acknowledgements(acknowledged_at DESC);
|
|
201
|
+
|
|
192
202
|
CREATE TABLE IF NOT EXISTS notes (
|
|
193
203
|
note_id TEXT PRIMARY KEY,
|
|
194
204
|
title TEXT,
|
|
@@ -3,8 +3,8 @@ import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.
|
|
|
3
3
|
import { init_paths, resolveAgentProfileDir, resolveBundledSkillsDir, resolveUserProfilePath } from "../config/paths.js";
|
|
4
4
|
import { resolveBootstrapFilesSync } from "../agent/bootstrap/bootstrap-files.js";
|
|
5
5
|
import { createSkillConfigManager, isSkillEnabled } from "../agent/skills/config.js";
|
|
6
|
-
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
7
6
|
import { loadSkills } from "../agent/skills/index.js";
|
|
7
|
+
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
8
8
|
import { listConnectorInstances } from "../connectors/instances.js";
|
|
9
9
|
import { getWorkspacePath } from "../config/workspace-path-helpers.js";
|
|
10
10
|
import "../config/index.js";
|
package/dist/src/tui/tui.js
CHANGED
|
@@ -59,7 +59,7 @@ import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
|
59
59
|
import { mkdirSync, mkdtempSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
60
60
|
import { spawnSync } from "node:child_process";
|
|
61
61
|
import { randomUUID } from "node:crypto";
|
|
62
|
-
import { Container, Loader, ProcessTerminal,
|
|
62
|
+
import { Container, Loader, ProcessTerminal, TuiMainScreen, setKeybindings } from "@earendil-works/pi-tui";
|
|
63
63
|
import { Buffer } from "node:buffer";
|
|
64
64
|
//#region src/tui/tui.ts
|
|
65
65
|
init_paths();
|
|
@@ -252,7 +252,7 @@ async function runTui(opts) {
|
|
|
252
252
|
bottomBar.invalidate();
|
|
253
253
|
tui.requestRender();
|
|
254
254
|
};
|
|
255
|
-
const tui = new
|
|
255
|
+
const tui = new TuiMainScreen(new ProcessTerminal());
|
|
256
256
|
tui.setShowHardwareCursor(tuiSettings.showHardwareCursor);
|
|
257
257
|
tui.setClearOnShrink(tuiSettings.clearOnShrink);
|
|
258
258
|
const dedupeBackspace = createBackspaceDeduper();
|
|
@@ -213,6 +213,14 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
213
213
|
readonly defaultKeys: "down";
|
|
214
214
|
readonly description: "Move cursor down";
|
|
215
215
|
};
|
|
216
|
+
readonly "tui.editor.historyPrevious": {
|
|
217
|
+
readonly defaultKeys: [];
|
|
218
|
+
readonly description: "Select previous prompt history entry";
|
|
219
|
+
};
|
|
220
|
+
readonly "tui.editor.historyNext": {
|
|
221
|
+
readonly defaultKeys: [];
|
|
222
|
+
readonly description: "Select next prompt history entry";
|
|
223
|
+
};
|
|
216
224
|
readonly "tui.editor.cursorLeft": {
|
|
217
225
|
readonly defaultKeys: ["left", "ctrl+b"];
|
|
218
226
|
readonly description: "Move cursor left";
|
|
@@ -230,11 +238,11 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
230
238
|
readonly description: "Move cursor word right";
|
|
231
239
|
};
|
|
232
240
|
readonly "tui.editor.cursorLineStart": {
|
|
233
|
-
readonly defaultKeys: ["home", "ctrl+a"];
|
|
241
|
+
readonly defaultKeys: ["home", "ctrl+home", "ctrl+a"];
|
|
234
242
|
readonly description: "Move to line start";
|
|
235
243
|
};
|
|
236
244
|
readonly "tui.editor.cursorLineEnd": {
|
|
237
|
-
readonly defaultKeys: ["end", "ctrl+e"];
|
|
245
|
+
readonly defaultKeys: ["end", "ctrl+end", "ctrl+e"];
|
|
238
246
|
readonly description: "Move to line end";
|
|
239
247
|
};
|
|
240
248
|
readonly "tui.editor.jumpForward": {
|
|
@@ -246,11 +254,11 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
246
254
|
readonly description: "Jump backward to character";
|
|
247
255
|
};
|
|
248
256
|
readonly "tui.editor.pageUp": {
|
|
249
|
-
readonly defaultKeys: "pageUp";
|
|
257
|
+
readonly defaultKeys: ["pageUp", "ctrl+pageUp"];
|
|
250
258
|
readonly description: "Page up";
|
|
251
259
|
};
|
|
252
260
|
readonly "tui.editor.pageDown": {
|
|
253
|
-
readonly defaultKeys: "pageDown";
|
|
261
|
+
readonly defaultKeys: ["pageDown", "ctrl+pageDown"];
|
|
254
262
|
readonly description: "Page down";
|
|
255
263
|
};
|
|
256
264
|
readonly "tui.editor.deleteCharBackward": {
|
|
@@ -329,6 +337,38 @@ export declare const XOPC_TUI_KEYBINDINGS: {
|
|
|
329
337
|
readonly defaultKeys: ["escape", "ctrl+c"];
|
|
330
338
|
readonly description: "Cancel selection";
|
|
331
339
|
};
|
|
340
|
+
readonly "tui.altScreen.pageUp": {
|
|
341
|
+
readonly defaultKeys: "pageUp";
|
|
342
|
+
readonly description: "Scroll viewport up one page";
|
|
343
|
+
};
|
|
344
|
+
readonly "tui.altScreen.pageDown": {
|
|
345
|
+
readonly defaultKeys: "pageDown";
|
|
346
|
+
readonly description: "Scroll viewport down one page";
|
|
347
|
+
};
|
|
348
|
+
readonly "tui.altScreen.halfPageUp": {
|
|
349
|
+
readonly defaultKeys: [];
|
|
350
|
+
readonly description: "Scroll viewport up half a page";
|
|
351
|
+
};
|
|
352
|
+
readonly "tui.altScreen.halfPageDown": {
|
|
353
|
+
readonly defaultKeys: [];
|
|
354
|
+
readonly description: "Scroll viewport down half a page";
|
|
355
|
+
};
|
|
356
|
+
readonly "tui.altScreen.previousPrompt": {
|
|
357
|
+
readonly defaultKeys: "ctrl+shift+up";
|
|
358
|
+
readonly description: "Jump to previous semantic prompt";
|
|
359
|
+
};
|
|
360
|
+
readonly "tui.altScreen.nextPrompt": {
|
|
361
|
+
readonly defaultKeys: "ctrl+shift+down";
|
|
362
|
+
readonly description: "Jump to next semantic prompt";
|
|
363
|
+
};
|
|
364
|
+
readonly "tui.altScreen.top": {
|
|
365
|
+
readonly defaultKeys: "home";
|
|
366
|
+
readonly description: "Scroll viewport to top";
|
|
367
|
+
};
|
|
368
|
+
readonly "tui.altScreen.bottom": {
|
|
369
|
+
readonly defaultKeys: "end";
|
|
370
|
+
readonly description: "Scroll viewport to bottom";
|
|
371
|
+
};
|
|
332
372
|
};
|
|
333
373
|
/** Order for `/hotkeys` and docs (pi-style UX). */
|
|
334
374
|
export declare const XOPC_TUI_HOTKEY_ORDER: XopcTuiAppKeybinding[];
|
|
@@ -8,6 +8,7 @@ import type { Api, Model } from '@earendil-works/pi-ai';
|
|
|
8
8
|
import type { WorkflowAgentInvocationSnapshot } from '../domain/index.js';
|
|
9
9
|
export interface WorkflowEngineOptions {
|
|
10
10
|
cwd: string;
|
|
11
|
+
projectId?: string;
|
|
11
12
|
eventStore: WorkflowEventStore;
|
|
12
13
|
runStore: WorkflowRunStore;
|
|
13
14
|
runner: WorkflowRuntimeSubagentRunner;
|
|
@@ -164,6 +164,7 @@ var WorkflowEngine = class {
|
|
|
164
164
|
sessionKey,
|
|
165
165
|
sessionMetadata: {
|
|
166
166
|
parentSessionKey: this.options.parentSessionKey,
|
|
167
|
+
projectId: this.options.projectId,
|
|
167
168
|
workflowRunId: runId,
|
|
168
169
|
workflowDefinitionId: definition.id,
|
|
169
170
|
workflowAgentId: agentId,
|
|
@@ -370,6 +371,7 @@ var WorkflowEngine = class {
|
|
|
370
371
|
sessionKey,
|
|
371
372
|
sessionMetadata: {
|
|
372
373
|
parentSessionKey: this.options.parentSessionKey,
|
|
374
|
+
projectId: this.options.projectId,
|
|
373
375
|
workflowRunId: params.runId,
|
|
374
376
|
workflowDefinitionId: params.definition.id,
|
|
375
377
|
workflowAgentId: target.agentId,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { extractProfileAgentId } from "../../config/agent-profile.js";
|
|
1
|
+
import { extractProfileAgentId, resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
2
2
|
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
3
3
|
import { publishAutomationProductEvent } from "../../automations/product-events.js";
|
|
4
4
|
import { GoalService } from "../../goals/goal-service.js";
|
|
5
5
|
import "../../goals/index.js";
|
|
6
|
+
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
6
7
|
import { DelegateSubagentRunner } from "../../agent/workflow/subagent-runner.js";
|
|
7
8
|
import { resolveModelRef } from "../../config/agent-typed-models.js";
|
|
8
9
|
import { preflightWorkflowConnectors } from "../../connectors/workflow-preflight.js";
|
|
@@ -79,7 +80,8 @@ var WorkflowRunService = class {
|
|
|
79
80
|
const engine = this.createWorkflowEngine({
|
|
80
81
|
eventStore,
|
|
81
82
|
runStore,
|
|
82
|
-
sessionKey
|
|
83
|
+
sessionKey,
|
|
84
|
+
projectId
|
|
83
85
|
});
|
|
84
86
|
const limits = resolveWorkflowRunLimits({
|
|
85
87
|
config: this.options.service.currentConfig,
|
|
@@ -201,7 +203,8 @@ var WorkflowRunService = class {
|
|
|
201
203
|
const engine = this.createWorkflowEngine({
|
|
202
204
|
eventStore,
|
|
203
205
|
runStore: replayRunStore,
|
|
204
|
-
sessionKey
|
|
206
|
+
sessionKey,
|
|
207
|
+
projectId
|
|
205
208
|
});
|
|
206
209
|
const limits = resolveWorkflowRunLimits({
|
|
207
210
|
config: this.options.service.currentConfig,
|
|
@@ -356,8 +359,10 @@ var WorkflowRunService = class {
|
|
|
356
359
|
createWorkflowEngine(params) {
|
|
357
360
|
const gatewayService = this.options.service;
|
|
358
361
|
const profileAgentId = extractProfileAgentId(params.sessionKey, gatewayService.currentConfig);
|
|
362
|
+
const agentWorkspace = gatewayService.currentConfig.agents?.list ? resolveEffectiveAgentProfileForSession(gatewayService.currentConfig, params.sessionKey).resolvedWorkspacePath : gatewayService.currentWorkspacePath;
|
|
363
|
+
const workspace = getProjectWorkspacePathForSession(params.sessionKey) ?? agentWorkspace;
|
|
359
364
|
const runner = new DelegateSubagentRunner({
|
|
360
|
-
workspace
|
|
365
|
+
workspace,
|
|
361
366
|
bus: gatewayService.messageBusInstance,
|
|
362
367
|
agentId: profileAgentId,
|
|
363
368
|
getDefaultModel: () => resolveModel(gatewayService.agentService.getModelForSession(params.sessionKey)),
|
|
@@ -366,7 +371,8 @@ var WorkflowRunService = class {
|
|
|
366
371
|
buildChildTools: (childOptions) => this.options.buildChildTools(childOptions)
|
|
367
372
|
});
|
|
368
373
|
return new WorkflowEngine({
|
|
369
|
-
cwd:
|
|
374
|
+
cwd: workspace,
|
|
375
|
+
projectId: params.projectId,
|
|
370
376
|
eventStore: params.eventStore,
|
|
371
377
|
runStore: params.runStore,
|
|
372
378
|
runner,
|
|
@@ -5,6 +5,7 @@ import { renderWorkflowText } from "../../agent/workflow/snapshot.js";
|
|
|
5
5
|
import { runViewToSnapshot } from "./run-view-to-snapshot.js";
|
|
6
6
|
import { GoalWorkflowJudge } from "../../goals/goal-workflow-judge.js";
|
|
7
7
|
import "../../goals/index.js";
|
|
8
|
+
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
8
9
|
import { isTerminalWorkflowRunStatus } from "../domain/run.js";
|
|
9
10
|
import "../domain/index.js";
|
|
10
11
|
import { WorkItemWorkflowJudge } from "../../work-items/work-item-workflow-judge.js";
|
|
@@ -166,7 +167,7 @@ var WorkflowSessionBridge = class {
|
|
|
166
167
|
providerId: "workflow-run",
|
|
167
168
|
kind: "task_lesson",
|
|
168
169
|
sourceAgentId: agentId,
|
|
169
|
-
workspaceId: this.gateway.currentWorkspacePath,
|
|
170
|
+
workspaceId: getProjectWorkspacePathForSession(sessionKey) ?? this.gateway.currentWorkspacePath,
|
|
170
171
|
sessionKey,
|
|
171
172
|
projectId,
|
|
172
173
|
content: [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xopcai/xopc",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.176",
|
|
4
4
|
"description": "Local-first AI system that remembers context, coordinates AI, and sustains long-term progress.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"node": ">=22.19.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@earendil-works/pi-agent-core": "0.
|
|
69
|
-
"@earendil-works/pi-ai": "0.
|
|
70
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
71
|
-
"@earendil-works/pi-tui": "0.
|
|
68
|
+
"@earendil-works/pi-agent-core": "0.84.1",
|
|
69
|
+
"@earendil-works/pi-ai": "0.84.1",
|
|
70
|
+
"@earendil-works/pi-coding-agent": "0.84.1",
|
|
71
|
+
"@earendil-works/pi-tui": "0.84.1",
|
|
72
72
|
"@grammyjs/runner": "^2.0.3",
|
|
73
73
|
"@hono/node-server": "^2.0.4",
|
|
74
74
|
"@inquirer/prompts": "^8.5.0",
|