aimeat 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.env.example +9 -4
- package/dist/locales/en.json +28 -0
- package/dist/locales/fi.json +28 -0
- package/dist/public/cortex-bundled/aimeat-charts.js +158 -10
- package/dist/public/cortex-bundled/aimeat-charts.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-dag.js +515 -173
- package/dist/public/cortex-bundled/aimeat-dag.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-i18n.js +6 -1
- package/dist/public/cortex-bundled/aimeat-i18n.yaml +1 -1
- package/dist/public/cortex-bundled/aimeat-surface.js +577 -0
- package/dist/public/cortex-bundled/aimeat-surface.yaml +107 -0
- package/dist/public/cortex-bundled/aimeat-viewport.js +405 -0
- package/dist/public/cortex-bundled/aimeat-viewport.yaml +100 -0
- package/dist/public/css/views/inbox.css +1 -1
- package/dist/public/css/views/profile.css +9 -0
- package/dist/public/lib/VENDORED.md +6 -3
- package/dist/public/lib/aimeat-daisyui-bridge.css +39 -2
- package/dist/public/lib/aimeat-theme.css +538 -0
- package/dist/public/lib/fonts/LICENSE.md +11 -4
- package/dist/public/lib/fonts/fraunces-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/fraunces-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/inter-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/inter-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/jetbrains-mono-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/jetbrains-mono-var-latin.woff2 +0 -0
- package/dist/public/lib/fonts/space-grotesk-var-latin-ext.woff2 +0 -0
- package/dist/public/lib/fonts/space-grotesk-var-latin.woff2 +0 -0
- package/dist/public/lib/samples/theme-check.html +92 -0
- package/dist/public/lib/samples/themes-boot.js +20 -0
- package/dist/public/lib/samples/themes.html +154 -0
- package/dist/public/lib/samples/themes.js +60 -0
- package/dist/public/views/profile/access-tab/connected-apps.js +81 -5
- package/dist/public/views/profile/extensions-tab.maturity.js +4 -1
- package/dist/public/views/profile/inbox-tab/components.js +17 -1
- package/dist/public/views/profile/inbox-tab/use-thread-ux.js +29 -2
- package/dist/public/views/profile/libraries-tab.js +10 -2
- package/dist/public/views/profile/wallet-tab.js +64 -0
- package/dist/scripts/check-openapi.d.ts +2 -0
- package/dist/scripts/check-openapi.d.ts.map +1 -0
- package/dist/scripts/check-openapi.js +139 -0
- package/dist/scripts/check-openapi.js.map +1 -0
- package/dist/scripts/embed-viewport.d.ts +23 -0
- package/dist/scripts/embed-viewport.d.ts.map +1 -0
- package/dist/scripts/embed-viewport.js +116 -0
- package/dist/scripts/embed-viewport.js.map +1 -0
- package/dist/src/auth/sse-domain-scopes.d.ts +50 -0
- package/dist/src/auth/sse-domain-scopes.d.ts.map +1 -0
- package/dist/src/auth/sse-domain-scopes.js +111 -0
- package/dist/src/auth/sse-domain-scopes.js.map +1 -0
- package/dist/src/cli/connect/mcp/tools/agent-tasks.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js +4 -1
- package/dist/src/cli/connect/mcp/tools/agent-tasks.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/core.js +14 -3
- package/dist/src/cli/connect/mcp/tools/core.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts +3 -0
- package/dist/src/cli/connect/mcp/tools/workspaces.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/workspaces.js +4 -2
- package/dist/src/cli/connect/mcp/tools/workspaces.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-core.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-core.js +13 -1
- package/dist/src/cli/connect/tool-call-defs-core.js.map +1 -1
- package/dist/src/commerce/__tests__/x402-registry.test.d.ts +2 -0
- package/dist/src/commerce/__tests__/x402-registry.test.d.ts.map +1 -0
- package/dist/src/commerce/__tests__/x402-registry.test.js +105 -0
- package/dist/src/commerce/__tests__/x402-registry.test.js.map +1 -0
- package/dist/src/commerce/evm-address.d.ts +21 -0
- package/dist/src/commerce/evm-address.d.ts.map +1 -0
- package/dist/src/commerce/evm-address.js +94 -0
- package/dist/src/commerce/evm-address.js.map +1 -0
- package/dist/src/commerce/money.d.ts +18 -5
- package/dist/src/commerce/money.d.ts.map +1 -1
- package/dist/src/commerce/money.js +27 -6
- package/dist/src/commerce/money.js.map +1 -1
- package/dist/src/commerce/x402-facilitator.d.ts +64 -13
- package/dist/src/commerce/x402-facilitator.d.ts.map +1 -1
- package/dist/src/commerce/x402-facilitator.js +71 -19
- package/dist/src/commerce/x402-facilitator.js.map +1 -1
- package/dist/src/commerce/x402-handler.d.ts +13 -7
- package/dist/src/commerce/x402-handler.d.ts.map +1 -1
- package/dist/src/commerce/x402-handler.js +23 -10
- package/dist/src/commerce/x402-handler.js.map +1 -1
- package/dist/src/commerce/x402.d.ts +11 -6
- package/dist/src/commerce/x402.d.ts.map +1 -1
- package/dist/src/commerce/x402.js +10 -7
- package/dist/src/commerce/x402.js.map +1 -1
- package/dist/src/config-types.d.ts +12 -0
- package/dist/src/config-types.d.ts.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +8 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/data/app-templates/shells.d.ts +11 -3
- package/dist/src/data/app-templates/shells.d.ts.map +1 -1
- package/dist/src/data/app-templates/shells.js +87 -6
- package/dist/src/data/app-templates/shells.js.map +1 -1
- package/dist/src/data/app-templates.js +2 -2
- package/dist/src/data/app-templates.js.map +1 -1
- package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
- package/dist/src/data/library-packs/cortex.js +108 -5
- package/dist/src/data/library-packs/cortex.js.map +1 -1
- package/dist/src/data/library-packs/sdk.d.ts.map +1 -1
- package/dist/src/data/library-packs/sdk.js +32 -8
- package/dist/src/data/library-packs/sdk.js.map +1 -1
- package/dist/src/data/library-packs/vendored.d.ts.map +1 -1
- package/dist/src/data/library-packs/vendored.js +83 -6
- package/dist/src/data/library-packs/vendored.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +478 -19
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.d.ts +4 -0
- package/dist/src/mcp/agent-tasks.d.ts.map +1 -1
- package/dist/src/mcp/agent-tasks.js +20 -2
- package/dist/src/mcp/agent-tasks.js.map +1 -1
- package/dist/src/mcp/capabilities.d.ts +7 -1
- package/dist/src/mcp/capabilities.d.ts.map +1 -1
- package/dist/src/mcp/capabilities.js +5 -2
- package/dist/src/mcp/capabilities.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/commerce.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/commerce.js +4 -2
- package/dist/src/mcp/catalog/definitions/commerce.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js +4 -3
- package/dist/src/mcp/catalog/definitions/discovery-work-boards.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js +1 -1
- package/dist/src/mcp/catalog/definitions/organisms-workspaces-apps.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +3 -2
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
- package/dist/src/mcp/catalog/output-schemas.d.ts +6 -1
- package/dist/src/mcp/catalog/output-schemas.d.ts.map +1 -1
- package/dist/src/mcp/catalog/output-schemas.js +6 -1
- package/dist/src/mcp/catalog/output-schemas.js.map +1 -1
- package/dist/src/mcp/commerce.d.ts.map +1 -1
- package/dist/src/mcp/commerce.js +15 -3
- package/dist/src/mcp/commerce.js.map +1 -1
- package/dist/src/mcp/core-storage.d.ts +23 -0
- package/dist/src/mcp/core-storage.d.ts.map +1 -0
- package/dist/src/mcp/core-storage.js +157 -0
- package/dist/src/mcp/core-storage.js.map +1 -0
- package/dist/src/mcp/core.d.ts +16 -0
- package/dist/src/mcp/core.d.ts.map +1 -1
- package/dist/src/mcp/core.js +75 -119
- package/dist/src/mcp/core.js.map +1 -1
- package/dist/src/mcp/dm-messages.d.ts +4 -0
- package/dist/src/mcp/dm-messages.d.ts.map +1 -1
- package/dist/src/mcp/dm-messages.js +43 -2
- package/dist/src/mcp/dm-messages.js.map +1 -1
- package/dist/src/mcp/exchange.d.ts.map +1 -1
- package/dist/src/mcp/exchange.js +3 -2
- package/dist/src/mcp/exchange.js.map +1 -1
- package/dist/src/mcp/extensions.d.ts.map +1 -1
- package/dist/src/mcp/extensions.js +6 -2
- package/dist/src/mcp/extensions.js.map +1 -1
- package/dist/src/mcp/index.d.ts +5 -0
- package/dist/src/mcp/index.d.ts.map +1 -1
- package/dist/src/mcp/index.js +23 -4
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/memory-namespace-hints.d.ts +33 -0
- package/dist/src/mcp/memory-namespace-hints.d.ts.map +1 -0
- package/dist/src/mcp/memory-namespace-hints.js +60 -0
- package/dist/src/mcp/memory-namespace-hints.js.map +1 -0
- package/dist/src/mcp/workspaces.d.ts +5 -0
- package/dist/src/mcp/workspaces.d.ts.map +1 -1
- package/dist/src/mcp/workspaces.js +5 -3
- package/dist/src/mcp/workspaces.js.map +1 -1
- package/dist/src/models/agent-task-schemas.d.ts +25 -3
- package/dist/src/models/agent-task-schemas.d.ts.map +1 -1
- package/dist/src/models/agent-task-schemas.js +16 -0
- package/dist/src/models/agent-task-schemas.js.map +1 -1
- package/dist/src/models/app-tool-schemas.d.ts +518 -1
- package/dist/src/models/app-tool-schemas.d.ts.map +1 -1
- package/dist/src/models/app-tool-schemas.js +53 -1
- package/dist/src/models/app-tool-schemas.js.map +1 -1
- package/dist/src/models/odps-schemas.d.ts +305 -0
- package/dist/src/models/odps-schemas.d.ts.map +1 -0
- package/dist/src/models/odps-schemas.js +182 -0
- package/dist/src/models/odps-schemas.js.map +1 -0
- package/dist/src/models/offer-schemas.d.ts +357 -2
- package/dist/src/models/offer-schemas.d.ts.map +1 -1
- package/dist/src/models/offer-schemas.js +37 -0
- package/dist/src/models/offer-schemas.js.map +1 -1
- package/dist/src/models/schemas.d.ts +6 -3
- package/dist/src/models/schemas.d.ts.map +1 -1
- package/dist/src/models/schemas.js +10 -1
- package/dist/src/models/schemas.js.map +1 -1
- package/dist/src/models/webhook-schemas.d.ts +8 -8
- package/dist/src/routes/agent-tasks/create-read.d.ts +4 -0
- package/dist/src/routes/agent-tasks/create-read.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/create-read.js +20 -1
- package/dist/src/routes/agent-tasks/create-read.js.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.d.ts.map +1 -1
- package/dist/src/routes/agent-tasks/lifecycle.js +10 -0
- package/dist/src/routes/agent-tasks/lifecycle.js.map +1 -1
- package/dist/src/routes/agents/offers.d.ts +2 -0
- package/dist/src/routes/agents/offers.d.ts.map +1 -1
- package/dist/src/routes/agents/offers.js +0 -0
- package/dist/src/routes/agents/offers.js.map +1 -1
- package/dist/src/routes/app-grants.d.ts +6 -0
- package/dist/src/routes/app-grants.d.ts.map +1 -1
- package/dist/src/routes/app-grants.js +55 -25
- package/dist/src/routes/app-grants.js.map +1 -1
- package/dist/src/routes/apps/drafts.d.ts +3 -0
- package/dist/src/routes/apps/drafts.d.ts.map +1 -1
- package/dist/src/routes/apps/drafts.js +63 -1
- package/dist/src/routes/apps/drafts.js.map +1 -1
- package/dist/src/routes/apps/publish.d.ts +2 -0
- package/dist/src/routes/apps/publish.d.ts.map +1 -1
- package/dist/src/routes/apps/publish.js +17 -2
- package/dist/src/routes/apps/publish.js.map +1 -1
- package/dist/src/routes/commerce.d.ts.map +1 -1
- package/dist/src/routes/commerce.js +122 -2
- package/dist/src/routes/commerce.js.map +1 -1
- package/dist/src/routes/exchange-market.d.ts +6 -2
- package/dist/src/routes/exchange-market.d.ts.map +1 -1
- package/dist/src/routes/exchange-market.js +154 -28
- package/dist/src/routes/exchange-market.js.map +1 -1
- package/dist/src/routes/exchange.d.ts.map +1 -1
- package/dist/src/routes/exchange.js +5 -2
- package/dist/src/routes/exchange.js.map +1 -1
- package/dist/src/routes/extensions/actions.d.ts.map +1 -1
- package/dist/src/routes/extensions/actions.js +18 -0
- package/dist/src/routes/extensions/actions.js.map +1 -1
- package/dist/src/routes/extensions/crud.d.ts.map +1 -1
- package/dist/src/routes/extensions/crud.js +36 -3
- package/dist/src/routes/extensions/crud.js.map +1 -1
- package/dist/src/routes/extensions/entitlement-gate.d.ts.map +1 -1
- package/dist/src/routes/extensions/entitlement-gate.js +13 -0
- package/dist/src/routes/extensions/entitlement-gate.js.map +1 -1
- package/dist/src/routes/extensions/manifest.d.ts +6 -0
- package/dist/src/routes/extensions/manifest.d.ts.map +1 -1
- package/dist/src/routes/extensions/manifest.js +68 -1
- package/dist/src/routes/extensions/manifest.js.map +1 -1
- package/dist/src/routes/extensions/pacing.d.ts +31 -0
- package/dist/src/routes/extensions/pacing.d.ts.map +1 -0
- package/dist/src/routes/extensions/pacing.js +73 -0
- package/dist/src/routes/extensions/pacing.js.map +1 -0
- package/dist/src/routes/extensions/paywall.d.ts.map +1 -1
- package/dist/src/routes/extensions/paywall.js +17 -17
- package/dist/src/routes/extensions/paywall.js.map +1 -1
- package/dist/src/routes/memory/crud.d.ts.map +1 -1
- package/dist/src/routes/memory/crud.js +10 -0
- package/dist/src/routes/memory/crud.js.map +1 -1
- package/dist/src/routes/organisms/crud.d.ts +3 -0
- package/dist/src/routes/organisms/crud.d.ts.map +1 -1
- package/dist/src/routes/organisms/crud.js +5 -2
- package/dist/src/routes/organisms/crud.js.map +1 -1
- package/dist/src/routes/organisms/workspace-read.d.ts.map +1 -1
- package/dist/src/routes/organisms/workspace-read.js +7 -2
- package/dist/src/routes/organisms/workspace-read.js.map +1 -1
- package/dist/src/routes/public-stats.d.ts +7 -0
- package/dist/src/routes/public-stats.d.ts.map +1 -1
- package/dist/src/routes/public-stats.js +28 -7
- package/dist/src/routes/public-stats.js.map +1 -1
- package/dist/src/routes/sse.d.ts +7 -0
- package/dist/src/routes/sse.d.ts.map +1 -1
- package/dist/src/routes/sse.js +36 -6
- package/dist/src/routes/sse.js.map +1 -1
- package/dist/src/routes/storage-files.d.ts +11 -0
- package/dist/src/routes/storage-files.d.ts.map +1 -1
- package/dist/src/routes/storage-files.js +58 -51
- package/dist/src/routes/storage-files.js.map +1 -1
- package/dist/src/routes/subdomains.d.ts +4 -0
- package/dist/src/routes/subdomains.d.ts.map +1 -1
- package/dist/src/routes/subdomains.js +42 -5
- package/dist/src/routes/subdomains.js.map +1 -1
- package/dist/src/routes/upload.d.ts +11 -0
- package/dist/src/routes/upload.d.ts.map +1 -1
- package/dist/src/routes/upload.js +108 -28
- package/dist/src/routes/upload.js.map +1 -1
- package/dist/src/routes/webmcp.d.ts.map +1 -1
- package/dist/src/routes/webmcp.js +4 -0
- package/dist/src/routes/webmcp.js.map +1 -1
- package/dist/src/schemas/knowledge-package.d.ts +1 -1
- package/dist/src/server-bootstrap/static-files.d.ts +4 -0
- package/dist/src/server-bootstrap/static-files.d.ts.map +1 -1
- package/dist/src/server-bootstrap/static-files.js +11 -0
- package/dist/src/server-bootstrap/static-files.js.map +1 -1
- package/dist/src/services/build-app-prompt.d.ts +19 -0
- package/dist/src/services/build-app-prompt.d.ts.map +1 -1
- package/dist/src/services/build-app-prompt.js +97 -11
- package/dist/src/services/build-app-prompt.js.map +1 -1
- package/dist/src/services/call-timing.d.ts +51 -0
- package/dist/src/services/call-timing.d.ts.map +1 -0
- package/dist/src/services/call-timing.js +91 -0
- package/dist/src/services/call-timing.js.map +1 -0
- package/dist/src/services/capability-invoke.d.ts +2 -0
- package/dist/src/services/capability-invoke.d.ts.map +1 -1
- package/dist/src/services/capability-invoke.js +10 -0
- package/dist/src/services/capability-invoke.js.map +1 -1
- package/dist/src/services/config-schema.d.ts.map +1 -1
- package/dist/src/services/config-schema.js +6 -0
- package/dist/src/services/config-schema.js.map +1 -1
- package/dist/src/services/draft-token.d.ts +22 -2
- package/dist/src/services/draft-token.d.ts.map +1 -1
- package/dist/src/services/draft-token.js +52 -3
- package/dist/src/services/draft-token.js.map +1 -1
- package/dist/src/services/exchange-market.d.ts +41 -8
- package/dist/src/services/exchange-market.d.ts.map +1 -1
- package/dist/src/services/exchange-market.js +24 -2
- package/dist/src/services/exchange-market.js.map +1 -1
- package/dist/src/services/exchange-odps.d.ts +58 -0
- package/dist/src/services/exchange-odps.d.ts.map +1 -0
- package/dist/src/services/exchange-odps.js +400 -0
- package/dist/src/services/exchange-odps.js.map +1 -0
- package/dist/src/services/exchange-projection.d.ts +61 -0
- package/dist/src/services/exchange-projection.d.ts.map +1 -0
- package/dist/src/services/exchange-projection.js +504 -0
- package/dist/src/services/exchange-projection.js.map +1 -0
- package/dist/src/services/exchange-proposals.d.ts.map +1 -1
- package/dist/src/services/exchange-proposals.js +2 -0
- package/dist/src/services/exchange-proposals.js.map +1 -1
- package/dist/src/services/extension-files.d.ts +64 -0
- package/dist/src/services/extension-files.d.ts.map +1 -0
- package/dist/src/services/extension-files.js +88 -0
- package/dist/src/services/extension-files.js.map +1 -0
- package/dist/src/services/extension-runtime.d.ts +33 -0
- package/dist/src/services/extension-runtime.d.ts.map +1 -1
- package/dist/src/services/extension-runtime.js +52 -0
- package/dist/src/services/extension-runtime.js.map +1 -1
- package/dist/src/services/file-refs.d.ts +105 -0
- package/dist/src/services/file-refs.d.ts.map +1 -0
- package/dist/src/services/file-refs.js +106 -0
- package/dist/src/services/file-refs.js.map +1 -0
- package/dist/src/services/metered-entitlements.d.ts +7 -0
- package/dist/src/services/metered-entitlements.d.ts.map +1 -1
- package/dist/src/services/metered-entitlements.js +4 -0
- package/dist/src/services/metered-entitlements.js.map +1 -1
- package/dist/src/services/owner-memory.d.ts +14 -1
- package/dist/src/services/owner-memory.d.ts.map +1 -1
- package/dist/src/services/owner-memory.js +8 -14
- package/dist/src/services/owner-memory.js.map +1 -1
- package/dist/src/services/task-files.d.ts +51 -0
- package/dist/src/services/task-files.d.ts.map +1 -0
- package/dist/src/services/task-files.js +58 -0
- package/dist/src/services/task-files.js.map +1 -0
- package/dist/src/services/upload-token.d.ts +29 -0
- package/dist/src/services/upload-token.d.ts.map +1 -1
- package/dist/src/services/upload-token.js +37 -0
- package/dist/src/services/upload-token.js.map +1 -1
- package/dist/src/services/upload-zip.d.ts +2 -0
- package/dist/src/services/upload-zip.d.ts.map +1 -1
- package/dist/src/services/upload-zip.js +5 -1
- package/dist/src/services/upload-zip.js.map +1 -1
- package/dist/src/services/workspace-meta.d.ts +15 -0
- package/dist/src/services/workspace-meta.d.ts.map +1 -1
- package/dist/src/services/workspace-meta.js +17 -0
- package/dist/src/services/workspace-meta.js.map +1 -1
- package/dist/src/services/workspace-provision.d.ts +3 -0
- package/dist/src/services/workspace-provision.d.ts.map +1 -1
- package/dist/src/services/workspace-provision.js +5 -3
- package/dist/src/services/workspace-provision.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js +10 -0
- package/dist/src/storage/providers/postgres-kysely/methods/app-grants.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts +2 -0
- package/dist/src/storage/providers/postgres-kysely/methods/memory.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.js +12 -1
- package/dist/src/storage/providers/postgres-kysely/methods/memory.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js +5 -1
- package/dist/src/storage/providers/postgres-kysely/methods/organisms.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrations/0012_unique_live_app_grant.sql +29 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/methods/apps.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/apps.js +7 -0
- package/dist/src/storage/providers/sqlite/methods/apps.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/governance.d.ts +1 -0
- package/dist/src/storage/providers/sqlite/methods/governance.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/governance.js +4 -1
- package/dist/src/storage/providers/sqlite/methods/governance.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.js +8 -0
- package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +20 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts +9 -1
- package/dist/src/storage/repositories/app-grant.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/memory.repository.d.ts +14 -0
- package/dist/src/storage/repositories/memory.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories-impl/memory-repository.d.ts +8 -1
- package/dist/src/storage/repositories-impl/memory-repository.d.ts.map +1 -1
- package/dist/src/storage/repositories-impl/memory-repository.js +15 -4
- package/dist/src/storage/repositories-impl/memory-repository.js.map +1 -1
- package/dist/src/storage/types/agents-messaging.d.ts +19 -0
- package/dist/src/storage/types/agents-messaging.d.ts.map +1 -1
- package/dist/src/storage/types/agents-messaging.js.map +1 -1
- package/dist/src/storage/types/organisms-federation.d.ts +29 -0
- package/dist/src/storage/types/organisms-federation.d.ts.map +1 -1
- package/dist/src/utils/app-badge.d.ts.map +1 -1
- package/dist/src/utils/app-badge.js +7 -3
- package/dist/src/utils/app-badge.js.map +1 -1
- package/dist/static/app-catalog/_template.html +6 -5
- package/dist/static/app-catalog/js/cortex.js +3 -1
- package/dist/static/app-catalog/js/detail.js +411 -36
- package/dist/static/app-catalog/js/i18n-data.js +279 -3
- package/dist/static/app-catalog/js/main.js +28 -37
- package/dist/static/app-catalog/js/monetize.js +204 -16
- package/dist/static/app-catalog/js/odps.js +489 -0
- package/dist/static/app-catalog/js/render.js +3 -0
- package/dist/static/app-catalog/js/workcopy.js +198 -0
- package/dist/static/app-catalog/styles/app-catalog.css +60 -0
- package/dist/static/app-catalog.html +1450 -137
- package/dist/static/sdk-libs/agents/index.js +45 -7
- package/dist/static/sdk-libs/auth/cluster.js +97 -0
- package/dist/static/sdk-libs/auth/index.js +25 -1
- package/dist/static/sdk-libs/auth/locale.js +151 -0
- package/dist/static/sdk-libs/auth/modal.js +11 -2
- package/dist/static/sdk-libs/auth/palette.js +172 -0
- package/dist/static/sdk-libs/auth/pill.js +37 -6
- package/dist/static/sdk-libs/auth/theme.js +61 -20
- package/dist/static/sdk-libs/data/index.js +70 -8
- package/dist/static/sdk-libs/dist/aimeat-agents.js +41 -8
- package/dist/static/sdk-libs/dist/aimeat-auth.js +422 -21
- package/dist/static/sdk-libs/dist/aimeat-data.js +50 -8
- package/dist/static/sdk-libs/dist/aimeat-live.js +54 -2
- package/dist/static/sdk-libs/dist/aimeat-markdown.js +32 -1
- package/dist/static/sdk-libs/live/index.js +71 -4
- package/dist/static/sdk-libs/markdown/index.js +49 -1
- package/package.json +6 -2
|
@@ -160,6 +160,9 @@ export const I18N = {
|
|
|
160
160
|
'pb.promptPreview': 'Prompt preview',
|
|
161
161
|
'pb.addBtn': '➕ Add your app — paste it or upload the file',
|
|
162
162
|
'pb.improving': 'Improving',
|
|
163
|
+
'pb.tier.any': 'ANY MODEL',
|
|
164
|
+
'pb.tier.frontier': 'VERSION TRAP',
|
|
165
|
+
'pb.tier.needs-doc': 'READ THE DOC',
|
|
163
166
|
'pb.copied': 'Copied!',
|
|
164
167
|
'pb.new': 'New App',
|
|
165
168
|
'pb.improve': 'Improve This App',
|
|
@@ -343,6 +346,90 @@ export const I18N = {
|
|
|
343
346
|
'monetize.priceMorsels': 'Price (morsels)',
|
|
344
347
|
'monetize.priceMoney': 'Money price',
|
|
345
348
|
'monetize.currency': 'Currency',
|
|
349
|
+
'monetize.money2': 'Second money price',
|
|
350
|
+
'monetize.currency2': 'Currency',
|
|
351
|
+
'monetize.money2Hint': 'Optional: sell the same call in a second currency. Buyers pick one when they open a contract.',
|
|
352
|
+
'odps.title': 'EXCHANGE & ODPS',
|
|
353
|
+
'odps.hint': 'Whether this app sells anything on the marketplace, and the product description every listing carries. A listed tool is published as an Open Data Product Specification v4.1 document that outside catalogues and buying agents can read.',
|
|
354
|
+
'odps.statusOn': 'On the marketplace: {live} of {total} tools',
|
|
355
|
+
'odps.statusOff': 'Not on the marketplace ({total} tools declared)',
|
|
356
|
+
'odps.statusBlocked': '{n} tool(s) are flagged for EXCHANGE but cannot be listed yet — see the reason on the tool.',
|
|
357
|
+
'odps.noTools': 'This app declares no sellable tools yet. Add one under Monetize to sell a capability on the marketplace.',
|
|
358
|
+
'odps.editDefaults': 'ODPS defaults for this app',
|
|
359
|
+
'odps.close': 'Close',
|
|
360
|
+
'odps.defaultsHint': 'Filled once per app and inherited by every tool it sells. A tool can override any of it.',
|
|
361
|
+
'odps.legalName': 'Legal entity (data holder)',
|
|
362
|
+
'odps.businessId': 'Business ID',
|
|
363
|
+
'odps.holderEmail': 'Contact email',
|
|
364
|
+
'odps.holderUrl': 'Website',
|
|
365
|
+
'odps.country': 'Country',
|
|
366
|
+
'odps.logoUrl': 'Logo URL',
|
|
367
|
+
'odps.brandSlogan': 'Brand slogan',
|
|
368
|
+
'odps.governance': 'Governance profile',
|
|
369
|
+
'odps.priority': 'Portfolio priority',
|
|
370
|
+
'odps.language': 'Language',
|
|
371
|
+
'odps.geoArea': 'Licence area',
|
|
372
|
+
'odps.applicableLaws': 'Applicable law',
|
|
373
|
+
'odps.attestation': 'Provenance (your attestation)',
|
|
374
|
+
'odps.attestationHint': 'Where the material comes from and on what basis you may sell it. These are promises with legal weight, so AI never fills them — you state them.',
|
|
375
|
+
'odps.source': 'Source',
|
|
376
|
+
'odps.legalBasis': 'Legal basis',
|
|
377
|
+
'odps.consentStatus': 'Consent status',
|
|
378
|
+
'odps.retention': 'Retention',
|
|
379
|
+
'odps.saveDefaults': 'Save defaults',
|
|
380
|
+
'odps.defaultsSaved': 'ODPS defaults saved',
|
|
381
|
+
'odps.toolTitle': 'ODPS description',
|
|
382
|
+
'odps.toolHint': 'What a buyer sees before contracting. The node fills price, access, licence rights and measured use by itself.',
|
|
383
|
+
'odps.viewYaml': 'View odps.yaml',
|
|
384
|
+
'odps.productType': 'Product type',
|
|
385
|
+
'odps.valueProposition': 'Value proposition',
|
|
386
|
+
'odps.valuePlaceholder': 'One sentence: what does the buyer get?',
|
|
387
|
+
'odps.categories': 'Categories (comma separated)',
|
|
388
|
+
'odps.standards': 'Standards (comma separated)',
|
|
389
|
+
'odps.useCases': 'Use cases (one per line: title | description | url)',
|
|
390
|
+
'odps.useCasesPlaceholder': 'KYB onboarding | Verify a counterparty before opening an account',
|
|
391
|
+
'odps.contentSample': 'Sample output URL',
|
|
392
|
+
'odps.sla': 'Service commitments (one per line: dimension value unit — description)',
|
|
393
|
+
'odps.slaPlaceholder': 'uptime 99.5 percent — Monthly availability',
|
|
394
|
+
'odps.quality': 'Quality commitments (one per line: dimension value unit — description)',
|
|
395
|
+
'odps.qualityPlaceholder': 'accuracy 99 percentage — Names match the register',
|
|
396
|
+
'odps.toolAttestation': 'Provenance for this capability',
|
|
397
|
+
'odps.toolAttestationHint': 'Only what differs from the app defaults. Left empty, the app-level attestation applies.',
|
|
398
|
+
'odps.inherited': 'inherited from the app',
|
|
399
|
+
'odps.transformations': 'What was done to the raw material',
|
|
400
|
+
'odps.transformationsPlaceholder': 'Normalised names, joined municipality codes, dropped discontinued companies.',
|
|
401
|
+
'odps.suggest': 'Draft with AI',
|
|
402
|
+
'odps.suggesting': 'Drafting…',
|
|
403
|
+
'odps.suggestDone': 'Draft ready — review it before saving',
|
|
404
|
+
'odps.suggestFailed': 'Draft failed',
|
|
405
|
+
'odps.suggestUnparseable': 'The model did not return usable JSON',
|
|
406
|
+
'odps.needLogin': 'Sign in to use your own AI key',
|
|
407
|
+
'odps.aiUnavailable': 'AI is not available here',
|
|
408
|
+
'odps.genSample': "Generate from a real call",
|
|
409
|
+
'odps.genSampleHint': "Runs this capability once as you (free on your own capability), stores the answer as a public file, and puts its URL above. A buyer can then open the sample instead of taking your word for it.",
|
|
410
|
+
'odps.genSampleInput': "{ \"query\": \"Nokia\" } — the input to call with",
|
|
411
|
+
'odps.genSampleRunning': "Calling the capability…",
|
|
412
|
+
'odps.genSampleDone': "Sample stored and linked",
|
|
413
|
+
'odps.genSampleFailed': "The call did not produce a sample",
|
|
414
|
+
'odps.genSampleBadJson': "That input is not valid JSON.",
|
|
415
|
+
'odps.genSampleNoBinding': "This tool has no capability binding to call.",
|
|
416
|
+
'odps.measured': "Measured: {n} calls, median {p50} ms, p95 {p95} ms.",
|
|
417
|
+
'odps.measuredNote': "measured p95 with headroom",
|
|
418
|
+
'odps.useMeasured': "Use measured + 30%",
|
|
419
|
+
'odps.noMeasurement': "No delivery time measured yet. Serve some calls first, then commit to a number you can keep.",
|
|
420
|
+
'odps.inheritedIs': "inherited:",
|
|
421
|
+
'odps.inheritedNone': "no app-level attestation set yet",
|
|
422
|
+
'odps.openAppDefaults': "Edit app-level defaults",
|
|
423
|
+
'odps.blockedSchema': 'Cannot be listed: the tool needs a non-empty input AND output schema.',
|
|
424
|
+
'odps.blockedBinding': 'Cannot be listed: the tool needs a capability binding (action_id).',
|
|
425
|
+
'odps.blockedPrice': 'Cannot be listed: the tool needs a price.',
|
|
426
|
+
'monetize.exchange': 'List in EXCHANGE',
|
|
427
|
+
'monetize.toll': 'Pacing burn per call (morsels)',
|
|
428
|
+
'monetize.tollHint': 'Not a price: morsels burned per call to cap how fast this tool can be consumed. Nobody is credited them, and your own calls are free. Leave empty to use the node default; set 0 to switch pacing off for this tool.',
|
|
429
|
+
'monetize.tollInvalid': 'Pacing burn must be a whole number between 0 and 100.',
|
|
430
|
+
'monetize.exchangeHint': 'On: this tool is offered publicly on the marketplace and its listing follows the price you set here. Off: it is removed from the marketplace. Contracts already agreed are unaffected.',
|
|
431
|
+
'monetize.exchangeOn': 'in EXCHANGE',
|
|
432
|
+
'monetize.exchangeNeedsSchema': 'To list in EXCHANGE the tool needs an input and output schema plus a capability binding. Publish those first (MCP: aimeat_app_tools_publish).',
|
|
346
433
|
'monetize.actionId': 'Capability binding (action id)',
|
|
347
434
|
'monetize.actionIdHint': 'Optional. A capability id (e.g. ext:my-extension:summarize) invoked instantly on purchase. Leave empty to fulfill as an agent task instead.',
|
|
348
435
|
'monetize.agent': 'Fulfilling agent',
|
|
@@ -384,7 +471,7 @@ export const I18N = {
|
|
|
384
471
|
'detail.accessCodeCleared': 'Access code removed — this app is public again.',
|
|
385
472
|
'detail.needServerVersions': 'Set the AIMEAT server URL in Settings to see published versions.',
|
|
386
473
|
'detail.editAi': '✨ Edit with AI',
|
|
387
|
-
'detail.editAiHint': 'Describe a change. The AI rewrites the app
|
|
474
|
+
'detail.editAiHint': 'Describe a change. The AI rewrites the app with your own OpenRouter key and proposes it — nothing changes until you save it to your working copy.',
|
|
388
475
|
'detail.editAiPh': 'e.g. add a dark mode toggle in the top-right corner',
|
|
389
476
|
'detail.run': '✨ Generate change',
|
|
390
477
|
'detail.running': 'Generating…',
|
|
@@ -393,7 +480,7 @@ export const I18N = {
|
|
|
393
480
|
'detail.publishTested': '🚀 Publish tested version',
|
|
394
481
|
'detail.keep': '✔ Keep draft',
|
|
395
482
|
'detail.discard': '✕ Discard',
|
|
396
|
-
'detail.draftReady': '
|
|
483
|
+
'detail.draftReady': 'AI proposal ready — nothing is saved yet.',
|
|
397
484
|
'detail.draftUploading': 'Preparing your test version…',
|
|
398
485
|
'detail.draftOpened': 'Draft opened in a new tab — it runs just like the published app. Your live app is unchanged.',
|
|
399
486
|
'detail.draftNeedsPublished': 'Publish this app first, then you can test edits before they go live.',
|
|
@@ -401,6 +488,57 @@ export const I18N = {
|
|
|
401
488
|
'detail.draftPublishConfirm': 'Publish the tested draft as the new live version?',
|
|
402
489
|
'detail.draftPublished': '✔ Published as v{v}. It is now the live app.',
|
|
403
490
|
'detail.kept': 'Draft kept as your local copy.',
|
|
491
|
+
// ── Working copy → published (TARGET-048). One vocabulary for the whole edit loop: the
|
|
492
|
+
// word "draft" is deliberately gone — it used to mean three different things here. ──
|
|
493
|
+
'wc.lifecycle': 'Where your work is',
|
|
494
|
+
'wc.title': 'Working copy',
|
|
495
|
+
'wc.published': 'Published',
|
|
496
|
+
'wc.privateNote': 'only you can see it',
|
|
497
|
+
'wc.visibleToOthers': 'everyone can see it',
|
|
498
|
+
'wc.notVisibleYet': 'nobody can see it yet',
|
|
499
|
+
'wc.notPublishedYet': 'not published',
|
|
500
|
+
'wc.sameAsPublished': 'same as published',
|
|
501
|
+
'wc.nothingYet': 'nothing saved yet',
|
|
502
|
+
'wc.savedAt': 'saved {t}',
|
|
503
|
+
'wc.savedEarlier': 'saved earlier',
|
|
504
|
+
'wc.pending': 'AI proposal waiting',
|
|
505
|
+
'wc.explainPending': 'The AI wrote a change but nothing is saved yet. Save it to your working copy — you can always get back to where you are now.',
|
|
506
|
+
'wc.explainSaved': 'You have a saved working copy that nobody else can see. Publish it as v{v} when it is ready.',
|
|
507
|
+
'wc.explainSavedUnpublished': 'You have a saved working copy. Publish it when it is ready.',
|
|
508
|
+
'wc.explainClean': 'Your working copy matches the published app. Edit it below — every save keeps the previous state, so nothing gets lost.',
|
|
509
|
+
'wc.explainUnpublished': 'This app is not published yet. Publish it to give it a version other people can open.',
|
|
510
|
+
'wc.save': '💾 Save to working copy',
|
|
511
|
+
'wc.saving': 'Saving…',
|
|
512
|
+
'wc.saved': 'Saved to your working copy — it survives a reload and stays private until you publish.',
|
|
513
|
+
'wc.savedShort': 'Saved!',
|
|
514
|
+
'wc.saveFailed': 'Could not save',
|
|
515
|
+
'wc.keptLocalOnly': 'Kept in this tab only — publish the app first to get a working copy that lasts.',
|
|
516
|
+
'wc.try': '▶ Try it safely',
|
|
517
|
+
'wc.tryLocal': '▶ Quick preview',
|
|
518
|
+
'wc.publishAs': '🚀 Publish as v{v}',
|
|
519
|
+
'wc.publishNew': '🚀 Publish as a new version',
|
|
520
|
+
'wc.discardProposal': '✕ Discard proposal',
|
|
521
|
+
'wc.discardWork': '✕ Discard working copy',
|
|
522
|
+
'wc.confirmDiscardWork': 'Throw away your saved working copy and go back to the published app?',
|
|
523
|
+
'wc.discardedWork': 'Working copy discarded — you are back on the published app.',
|
|
524
|
+
'wc.verbsHint': 'Save keeps it for you only. Try opens it on its real address without changing the live app. Publish is what other people see.',
|
|
525
|
+
'wc.history': 'Working-copy history',
|
|
526
|
+
'wc.historyHint': 'Every save leaves a checkpoint here, so you can always go back. These are private to you — the published versions below are the ones other people see.',
|
|
527
|
+
'wc.none': 'No checkpoints yet — your first save creates one.',
|
|
528
|
+
'wc.before': 'before: {note}',
|
|
529
|
+
'wc.beforeUnnamed': 'before an edit',
|
|
530
|
+
'wc.preview': 'Preview',
|
|
531
|
+
'wc.restore': 'Restore',
|
|
532
|
+
'wc.delete': 'Delete',
|
|
533
|
+
'wc.previewTitle': 'checkpoint preview',
|
|
534
|
+
'wc.confirmRestore': 'Restore this checkpoint into your working copy? The current working copy is checkpointed first, so you can undo this.',
|
|
535
|
+
'wc.confirmDelete': 'Delete this checkpoint permanently?',
|
|
536
|
+
'wc.restored': 'Restored into your working copy. The published app is unchanged.',
|
|
537
|
+
'wc.gone': 'That checkpoint is no longer stored.',
|
|
538
|
+
'wc.loginNeeded': 'Sign in to save a working copy.',
|
|
539
|
+
'wc.noteManual': 'manual source edit',
|
|
540
|
+
'wc.noteRestore': 'restored an earlier checkpoint',
|
|
541
|
+
'versions.publishedHint': 'Published versions — these are what other people see.',
|
|
404
542
|
'detail.discarded': 'Draft discarded.',
|
|
405
543
|
'detail.aiUnavailable': 'AI editing needs an OpenRouter key. Add one in AIMEAT settings, then reload.',
|
|
406
544
|
'detail.aiLoginNeeded': 'Sign in to your AIMEAT node to use AI editing.',
|
|
@@ -627,6 +765,9 @@ export const I18N = {
|
|
|
627
765
|
'pb.promptPreview': 'Promptin esikatselu',
|
|
628
766
|
'pb.addBtn': '➕ Lisää sovelluksesi — liitä se tai lataa tiedosto',
|
|
629
767
|
'pb.improving': 'Parannetaan',
|
|
768
|
+
'pb.tier.any': 'KAIKILLE MALLEILLE',
|
|
769
|
+
'pb.tier.frontier': 'VERSIOANSA',
|
|
770
|
+
'pb.tier.needs-doc': 'LUE DOKUMENTTI',
|
|
630
771
|
'pb.copied': 'Kopioitu!',
|
|
631
772
|
'pb.new': 'Uusi sovellus',
|
|
632
773
|
'pb.improve': 'Paranna tätä sovellusta',
|
|
@@ -808,6 +949,90 @@ export const I18N = {
|
|
|
808
949
|
'monetize.priceMorsels': 'Hinta (morselit)',
|
|
809
950
|
'monetize.priceMoney': 'Rahahinta',
|
|
810
951
|
'monetize.currency': 'Valuutta',
|
|
952
|
+
'monetize.money2': 'Toinen rahahinta',
|
|
953
|
+
'monetize.currency2': 'Valuutta',
|
|
954
|
+
'monetize.money2Hint': 'Valinnainen: myy sama kutsu toisessa valuutassa. Ostaja valitsee valuutan sopimusta avatessaan.',
|
|
955
|
+
'odps.title': 'EXCHANGE ja ODPS',
|
|
956
|
+
'odps.hint': 'Myykö tämä appi jotain markkinalla, ja mikä tuotekuvaus jokaisen listauksen mukana kulkee. Listattu työkalu julkaistaan Open Data Product Specification v4.1 -dokumenttina, jota ulkoiset katalogit ja ostavat agentit osaavat lukea.',
|
|
957
|
+
'odps.statusOn': 'Markkinalla: {live} / {total} työkalua',
|
|
958
|
+
'odps.statusOff': 'Ei markkinalla ({total} työkalua määritelty)',
|
|
959
|
+
'odps.statusBlocked': '{n} työkalua on merkitty EXCHANGEen mutta ei vielä listaudu — syy näkyy työkalun kohdalla.',
|
|
960
|
+
'odps.noTools': 'Tällä apilla ei ole vielä myytäviä työkaluja. Lisää työkalu Monetize-osiossa, niin voit myydä kyvykkyyden markkinalla.',
|
|
961
|
+
'odps.editDefaults': 'Appin ODPS-oletukset',
|
|
962
|
+
'odps.close': 'Sulje',
|
|
963
|
+
'odps.defaultsHint': 'Täytetään kerran appille ja periytyy jokaiselle sen myymälle työkalulle. Työkalu voi ylikirjoittaa minkä tahansa niistä.',
|
|
964
|
+
'odps.legalName': 'Juridinen yhtiö (datan haltija)',
|
|
965
|
+
'odps.businessId': 'Y-tunnus',
|
|
966
|
+
'odps.holderEmail': 'Yhteyssähköposti',
|
|
967
|
+
'odps.holderUrl': 'Verkkosivu',
|
|
968
|
+
'odps.country': 'Maa',
|
|
969
|
+
'odps.logoUrl': 'Logon URL',
|
|
970
|
+
'odps.brandSlogan': 'Brändislogan',
|
|
971
|
+
'odps.governance': 'Hallintaprofiili',
|
|
972
|
+
'odps.priority': 'Portfolioprioriteetti',
|
|
973
|
+
'odps.language': 'Kieli',
|
|
974
|
+
'odps.geoArea': 'Lisenssialue',
|
|
975
|
+
'odps.applicableLaws': 'Sovellettava laki',
|
|
976
|
+
'odps.attestation': 'Provenienssi (sinun vakuutuksesi)',
|
|
977
|
+
'odps.attestationHint': 'Mistä aineisto tulee ja millä perusteella saat myydä sitä. Nämä ovat lupauksia joilla on oikeudellinen paino, joten tekoäly ei täytä niitä koskaan — sinä ilmoitat ne.',
|
|
978
|
+
'odps.source': 'Lähde',
|
|
979
|
+
'odps.legalBasis': 'Oikeusperuste',
|
|
980
|
+
'odps.consentStatus': 'Suostumuksen tila',
|
|
981
|
+
'odps.retention': 'Säilytysaika',
|
|
982
|
+
'odps.saveDefaults': 'Tallenna oletukset',
|
|
983
|
+
'odps.defaultsSaved': 'ODPS-oletukset tallennettu',
|
|
984
|
+
'odps.toolTitle': 'ODPS-kuvaus',
|
|
985
|
+
'odps.toolHint': 'Se mitä ostaja näkee ennen sopimusta. Hinnan, pääsyn, lisenssioikeudet ja mitatun käytön node täyttää itse.',
|
|
986
|
+
'odps.viewYaml': 'Näytä odps.yaml',
|
|
987
|
+
'odps.productType': 'Tuotetyyppi',
|
|
988
|
+
'odps.valueProposition': 'Arvolupaus',
|
|
989
|
+
'odps.valuePlaceholder': 'Yksi lause: mitä ostaja saa?',
|
|
990
|
+
'odps.categories': 'Kategoriat (pilkulla eroteltuna)',
|
|
991
|
+
'odps.standards': 'Standardit (pilkulla eroteltuna)',
|
|
992
|
+
'odps.useCases': 'Käyttötapaukset (yksi riviä kohti: otsikko | kuvaus | url)',
|
|
993
|
+
'odps.useCasesPlaceholder': 'KYB-onboarding | Varmenna vastapuoli ennen tilin avaamista',
|
|
994
|
+
'odps.contentSample': 'Näytetulosteen URL',
|
|
995
|
+
'odps.sla': 'Palvelulupaukset (yksi riviä kohti: ulottuvuus arvo yksikkö — kuvaus)',
|
|
996
|
+
'odps.slaPlaceholder': 'uptime 99.5 percent — Kuukausittainen saatavuus',
|
|
997
|
+
'odps.quality': 'Laatulupaukset (yksi riviä kohti: ulottuvuus arvo yksikkö — kuvaus)',
|
|
998
|
+
'odps.qualityPlaceholder': 'accuracy 99 percentage — Nimet täsmäävät rekisteriin',
|
|
999
|
+
'odps.toolAttestation': 'Tämän kyvykkyyden provenienssi',
|
|
1000
|
+
'odps.toolAttestationHint': 'Vain se mikä poikkeaa appin oletuksista. Tyhjänä appitason vakuutus pätee.',
|
|
1001
|
+
'odps.inherited': 'peritään apilta',
|
|
1002
|
+
'odps.transformations': 'Mitä raaka-aineelle tehtiin',
|
|
1003
|
+
'odps.transformationsPlaceholder': 'Nimet normalisoitu, kuntakoodit liitetty, lakanneet yritykset poistettu.',
|
|
1004
|
+
'odps.suggest': 'Luonnostele tekoälyllä',
|
|
1005
|
+
'odps.suggesting': 'Luonnostellaan…',
|
|
1006
|
+
'odps.suggestDone': 'Luonnos valmis — tarkista ennen tallennusta',
|
|
1007
|
+
'odps.suggestFailed': 'Luonnostelu epäonnistui',
|
|
1008
|
+
'odps.suggestUnparseable': 'Malli ei palauttanut käyttökelpoista JSONia',
|
|
1009
|
+
'odps.needLogin': 'Kirjaudu sisään käyttääksesi omaa AI-avaintasi',
|
|
1010
|
+
'odps.aiUnavailable': 'Tekoäly ei ole käytettävissä täällä',
|
|
1011
|
+
'odps.genSample': "Luo oikeasta kutsusta",
|
|
1012
|
+
'odps.genSampleHint': "Ajaa tämän kyvykkyyden kerran sinuna (oma kyvykkyys on maksuton), tallentaa vastauksen julkiseksi tiedostoksi ja asettaa sen osoitteen yllä olevaan kenttään. Ostaja voi silloin avata näytteen sen sijaan että uskoisi sanaasi.",
|
|
1013
|
+
'odps.genSampleInput': "{ \"query\": \"Nokia\" } — syöte jolla kutsutaan",
|
|
1014
|
+
'odps.genSampleRunning': "Kutsutaan kyvykkyyttä…",
|
|
1015
|
+
'odps.genSampleDone': "Näyte tallennettu ja linkitetty",
|
|
1016
|
+
'odps.genSampleFailed': "Kutsu ei tuottanut näytettä",
|
|
1017
|
+
'odps.genSampleBadJson': "Syöte ei ole kelvollista JSONia.",
|
|
1018
|
+
'odps.genSampleNoBinding': "Tällä työkalulla ei ole kyvykkyyssidontaa jota kutsua.",
|
|
1019
|
+
'odps.measured': "Mitattu: {n} kutsua, mediaani {p50} ms, p95 {p95} ms.",
|
|
1020
|
+
'odps.measuredNote': "mitattu p95 pelivaralla",
|
|
1021
|
+
'odps.useMeasured': "Käytä mitattua + 30 %",
|
|
1022
|
+
'odps.noMeasurement': "Toimitusaikaa ei ole vielä mitattu. Palvele ensin kutsuja, sitoudu vasta sitten lukuun jonka pystyt pitämään.",
|
|
1023
|
+
'odps.inheritedIs': "peritään:",
|
|
1024
|
+
'odps.inheritedNone': "appitason vakuutusta ei ole vielä asetettu",
|
|
1025
|
+
'odps.openAppDefaults': "Muokkaa appitason oletuksia",
|
|
1026
|
+
'odps.blockedSchema': 'Ei listaudu: työkalu tarvitsee ei-tyhjän syöte- JA tulosskeeman.',
|
|
1027
|
+
'odps.blockedBinding': 'Ei listaudu: työkalu tarvitsee kyvykkyyssidonnan (action_id).',
|
|
1028
|
+
'odps.blockedPrice': 'Ei listaudu: työkalu tarvitsee hinnan.',
|
|
1029
|
+
'monetize.exchange': 'Listaa EXCHANGEssa',
|
|
1030
|
+
'monetize.toll': 'Tahdistuspoltto per kutsu (morselia)',
|
|
1031
|
+
'monetize.tollHint': 'Ei hinta: morselit jotka palavat jokaisella kutsulla ja rajaavat kuinka nopeasti työkalua voi kuluttaa. Niitä ei hyvitetä kenellekään, ja omat kutsusi ovat ilmaisia. Jätä tyhjäksi niin noden oletus pätee; 0 poistaa tahdistuksen tästä työkalusta.',
|
|
1032
|
+
'monetize.tollInvalid': 'Tahdistuspoltto on kokonaisluku väliltä 0-100.',
|
|
1033
|
+
'monetize.exchangeHint': 'Päällä: työkalu on julkisesti markkinalla ja listaus seuraa tässä asetettua hintaa. Pois: se poistuu markkinalta. Jo sovitut sopimukset eivät muutu.',
|
|
1034
|
+
'monetize.exchangeOn': 'EXCHANGEssa',
|
|
1035
|
+
'monetize.exchangeNeedsSchema': 'EXCHANGE-listaus vaatii työkalulta syöte- ja tulosskeeman sekä kyvykkyyssidonnan. Julkaise ne ensin (MCP: aimeat_app_tools_publish).',
|
|
811
1036
|
'monetize.actionId': 'Kyvykkyyssidonta (action id)',
|
|
812
1037
|
'monetize.actionIdHint': 'Valinnainen. Kyvykkyyden id (esim. ext:oma-laajennus:summarize), joka ajetaan heti oston yhteydessä. Jätä tyhjäksi, jos haluat toimittaa agenttitehtävänä.',
|
|
813
1038
|
'monetize.agent': 'Toimittava agentti',
|
|
@@ -860,7 +1085,7 @@ export const I18N = {
|
|
|
860
1085
|
'detail.publishTested': '🚀 Julkaise testattu versio',
|
|
861
1086
|
'detail.keep': '✔ Säilytä luonnos',
|
|
862
1087
|
'detail.discard': '✕ Hylkää',
|
|
863
|
-
'detail.draftReady': '
|
|
1088
|
+
'detail.draftReady': 'AI-ehdotus valmis — mitään ei ole vielä tallennettu.',
|
|
864
1089
|
'detail.draftUploading': 'Valmistellaan testiversiota…',
|
|
865
1090
|
'detail.draftOpened': 'Luonnos avattu uuteen välilehteen — toimii kuten julkaistu appi. Live-appi pysyy ennallaan.',
|
|
866
1091
|
'detail.draftNeedsPublished': 'Julkaise appi ensin, niin voit testata muutoksia ennen kuin ne menevät liveksi.',
|
|
@@ -868,6 +1093,57 @@ export const I18N = {
|
|
|
868
1093
|
'detail.draftPublishConfirm': 'Julkaistaanko testattu luonnos uutena live-versiona?',
|
|
869
1094
|
'detail.draftPublished': '✔ Julkaistu versiona v{v}. Se on nyt live-appi.',
|
|
870
1095
|
'detail.kept': 'Luonnos säilytetty paikallisena kopiona.',
|
|
1096
|
+
// ── Työkopio → julkaistu (TARGET-048). Yksi sanasto koko muokkaussilmukalle: sana
|
|
1097
|
+
// "luonnos" on tarkoituksella poissa — se tarkoitti täällä kolmea eri asiaa. ──
|
|
1098
|
+
'wc.lifecycle': 'Missä työsi on',
|
|
1099
|
+
'wc.title': 'Työkopio',
|
|
1100
|
+
'wc.published': 'Julkaistu',
|
|
1101
|
+
'wc.privateNote': 'vain sinä näet',
|
|
1102
|
+
'wc.visibleToOthers': 'kaikki näkevät',
|
|
1103
|
+
'wc.notVisibleYet': 'kukaan ei näe vielä',
|
|
1104
|
+
'wc.notPublishedYet': 'ei julkaistu',
|
|
1105
|
+
'wc.sameAsPublished': 'sama kuin julkaistu',
|
|
1106
|
+
'wc.nothingYet': 'ei vielä tallennettu',
|
|
1107
|
+
'wc.savedAt': 'tallennettu {t}',
|
|
1108
|
+
'wc.savedEarlier': 'tallennettu aiemmin',
|
|
1109
|
+
'wc.pending': 'AI-ehdotus odottaa',
|
|
1110
|
+
'wc.explainPending': 'Tekoäly kirjoitti muutoksen, mutta mitään ei ole vielä tallennettu. Tallenna se työkopioon — pääset aina takaisin nykyiseen tilaan.',
|
|
1111
|
+
'wc.explainSaved': 'Sinulla on tallennettu työkopio, jota kukaan muu ei näe. Julkaise se versiona v{v}, kun se on valmis.',
|
|
1112
|
+
'wc.explainSavedUnpublished': 'Sinulla on tallennettu työkopio. Julkaise se, kun se on valmis.',
|
|
1113
|
+
'wc.explainClean': 'Työkopiosi on sama kuin julkaistu appi. Muokkaa alla — jokainen tallennus säilyttää edellisen tilan, joten mikään ei katoa.',
|
|
1114
|
+
'wc.explainUnpublished': 'Tätä appia ei ole vielä julkaistu. Julkaise se, niin sillä on versio jonka muut voivat avata.',
|
|
1115
|
+
'wc.save': '💾 Tallenna työkopioon',
|
|
1116
|
+
'wc.saving': 'Tallennetaan…',
|
|
1117
|
+
'wc.saved': 'Tallennettu työkopioon — säilyy sivun päivityksen yli ja pysyy yksityisenä kunnes julkaiset.',
|
|
1118
|
+
'wc.savedShort': 'Tallennettu!',
|
|
1119
|
+
'wc.saveFailed': 'Tallennus ei onnistunut',
|
|
1120
|
+
'wc.keptLocalOnly': 'Säilytetty vain tässä välilehdessä — julkaise appi ensin, niin saat pysyvän työkopion.',
|
|
1121
|
+
'wc.try': '▶ Kokeile turvallisesti',
|
|
1122
|
+
'wc.tryLocal': '▶ Pikaesikatselu',
|
|
1123
|
+
'wc.publishAs': '🚀 Julkaise versiona v{v}',
|
|
1124
|
+
'wc.publishNew': '🚀 Julkaise uutena versiona',
|
|
1125
|
+
'wc.discardProposal': '✕ Hylkää ehdotus',
|
|
1126
|
+
'wc.discardWork': '✕ Hylkää työkopio',
|
|
1127
|
+
'wc.confirmDiscardWork': 'Heitetäänkö tallennettu työkopio pois ja palataan julkaistuun appiin?',
|
|
1128
|
+
'wc.discardedWork': 'Työkopio hylätty — olet takaisin julkaistussa apissa.',
|
|
1129
|
+
'wc.verbsHint': 'Tallenna säilyttää muutoksen vain sinulle. Kokeile avaa sen oikeassa osoitteessa muuttamatta live-appia. Julkaise on se minkä muut näkevät.',
|
|
1130
|
+
'wc.history': 'Työkopion historia',
|
|
1131
|
+
'wc.historyHint': 'Jokainen tallennus jättää tänne tarkistuspisteen, joten voit aina palata taaksepäin. Nämä ovat vain sinun — julkaistut versiot alempana ovat ne jotka muut näkevät.',
|
|
1132
|
+
'wc.none': 'Ei vielä tarkistuspisteitä — ensimmäinen tallennus luo sellaisen.',
|
|
1133
|
+
'wc.before': 'ennen muutosta: {note}',
|
|
1134
|
+
'wc.beforeUnnamed': 'ennen muokkausta',
|
|
1135
|
+
'wc.preview': 'Esikatsele',
|
|
1136
|
+
'wc.restore': 'Palauta',
|
|
1137
|
+
'wc.delete': 'Poista',
|
|
1138
|
+
'wc.previewTitle': 'tarkistuspisteen esikatselu',
|
|
1139
|
+
'wc.confirmRestore': 'Palautetaanko tämä tarkistuspiste työkopioon? Nykyisestä työkopiosta tehdään ensin tarkistuspiste, joten voit kumota tämän.',
|
|
1140
|
+
'wc.confirmDelete': 'Poistetaanko tämä tarkistuspiste pysyvästi?',
|
|
1141
|
+
'wc.restored': 'Palautettu työkopioon. Julkaistu appi on ennallaan.',
|
|
1142
|
+
'wc.gone': 'Tätä tarkistuspistettä ei ole enää tallessa.',
|
|
1143
|
+
'wc.loginNeeded': 'Kirjaudu sisään tallentaaksesi työkopion.',
|
|
1144
|
+
'wc.noteManual': 'käsin muokattu lähdekoodi',
|
|
1145
|
+
'wc.noteRestore': 'palautettu aiempi tarkistuspiste',
|
|
1146
|
+
'versions.publishedHint': 'Julkaistut versiot — nämä muut näkevät.',
|
|
871
1147
|
'detail.discarded': 'Luonnos hylätty.',
|
|
872
1148
|
'detail.aiUnavailable': 'Tekoälymuokkaus vaatii OpenRouter-avaimen. Lisää se AIMEAT-asetuksiin ja lataa sivu uudelleen.',
|
|
873
1149
|
'detail.aiLoginNeeded': 'Kirjaudu AIMEAT-nodeen käyttääksesi tekoälymuokkausta.',
|
|
@@ -16,8 +16,10 @@ import { getAllApps, saveApp, deleteApp } from './db.js';
|
|
|
16
16
|
import { showConfirm, closeConfirm, showNotice, dismissNotice, dtlBtn } from './ui.js';
|
|
17
17
|
import { loadConfig, saveConfig } from './config.js';
|
|
18
18
|
import { extractZip, bundleZip } from './zip.js';
|
|
19
|
-
import { initDetail, refreshServerMgmt, openDetailView, editAppDetails, closeDetailView, detailLaunch, mountLoginPill, detailAboutEdit, detailAboutCancel, detailAboutSave, detailTranslateDesc, detailPromoteSave, detailPromoteClear, detailToggleFavorite, detailAccessCodeEdit, detailAccessCodeCancel, detailAccessCodeSave, detailSkillAttachToggle, detailSkillAttach, detailSkillDetach, detailSetScreenshot, detailRefreshScreenshot, detailAiRun, detailAiTest, detailAiKeep, detailAiDiscard, detailTestDraftLive, detailPublishTestedDraft, openStagingPreview, sourceTestDraftLive, sourcePublishTested, detailEditSource, detailImproveExternal, detailSharePrompt, detailPublish, detailDelete, openPublishedDetail, fetchAppContentBase64, showLineageModal, showProtectionModal, saveProtection, showVersionsModal, restoreVersion, forkVersion } from './detail.js';
|
|
20
|
-
import { monetizeAddTool, monetizeEditTool, monetizeCancelEdit, monetizeSaveTool, monetizeDeleteTool
|
|
19
|
+
import { initDetail, refreshServerMgmt, openDetailView, editAppDetails, closeDetailView, detailLaunch, mountLoginPill, detailAboutEdit, detailAboutCancel, detailAboutSave, detailTranslateDesc, detailPromoteSave, detailPromoteClear, detailToggleFavorite, detailAccessCodeEdit, detailAccessCodeCancel, detailAccessCodeSave, detailSkillAttachToggle, detailSkillAttach, detailSkillDetach, detailSetScreenshot, detailRefreshScreenshot, detailAiRun, detailAiTest, detailAiKeep, detailAiDiscard, detailTestDraftLive, detailPublishTestedDraft, detailWorkTry, detailWorkPublish, detailWorkDiscard, detailCheckpointPreview, detailCheckpointRestore, detailCheckpointDelete, saveSourceAsWorkingCopy, openStagingPreview, sourceTestDraftLive, sourcePublishTested, detailEditSource, detailImproveExternal, detailSharePrompt, detailPublish, detailDelete, openPublishedDetail, fetchAppContentBase64, showLineageModal, showProtectionModal, saveProtection, showVersionsModal, restoreVersion, forkVersion } from './detail.js';
|
|
20
|
+
import { monetizeAddTool, monetizeEditTool, monetizeCancelEdit, monetizeSaveTool, monetizeDeleteTool,
|
|
21
|
+
odpsToggleDefaultsUi, odpsToggleToolUi, odpsSuggestUi, odpsSaveDefaults,
|
|
22
|
+
odpsGenerateSampleUi, odpsUseMeasuredUi } from './monetize.js';
|
|
21
23
|
import { loadCortexExtensions, showCortexPopup, cortexCopy, getCortexOwnerToken, openCortexEditor, cortexEditorAddLib, cortexEditorSave, cortexEditorExport, closeCortexEditor, openPromptBuilder, closePbPanel, buildPromptFromBuilder, updatePbPreview } from './cortex.js';
|
|
22
24
|
import { initSettings, applyTheme, updateThemeToggle, toggleTheme, getThemePref, openSettings, saveSettings, syncConfigToServer, loadConfigFromServer, closeSettings, openHelp, closeHelp } from './settings.js';
|
|
23
25
|
import { initAppsIo, setEditingAppId, showModal, requireSignInThen, parseAppMeta, closeModal, switchTab, handleFileDrop, handleSave } from './apps-io.js';
|
|
@@ -140,6 +142,12 @@ import { toggleFavorite } from './favorites.js';
|
|
|
140
142
|
monetizeCancelEdit: monetizeCancelEdit,
|
|
141
143
|
monetizeSaveTool: monetizeSaveTool,
|
|
142
144
|
monetizeDeleteTool: monetizeDeleteTool,
|
|
145
|
+
odpsToggleDefaults: odpsToggleDefaultsUi,
|
|
146
|
+
odpsToggleTool: odpsToggleToolUi,
|
|
147
|
+
odpsSuggest: odpsSuggestUi,
|
|
148
|
+
odpsSaveDefaults: odpsSaveDefaults,
|
|
149
|
+
odpsGenerateSample: odpsGenerateSampleUi,
|
|
150
|
+
odpsUseMeasured: odpsUseMeasuredUi,
|
|
143
151
|
editAppDetails: editAppDetails,
|
|
144
152
|
showSubdomainModal: showSubdomainModal,
|
|
145
153
|
openConsents: openConsents,
|
|
@@ -173,6 +181,12 @@ import { toggleFavorite } from './favorites.js';
|
|
|
173
181
|
detailAiDiscard: detailAiDiscard,
|
|
174
182
|
detailTestDraftLive: detailTestDraftLive,
|
|
175
183
|
detailPublishTestedDraft: detailPublishTestedDraft,
|
|
184
|
+
detailWorkTry: detailWorkTry,
|
|
185
|
+
detailWorkPublish: detailWorkPublish,
|
|
186
|
+
detailWorkDiscard: detailWorkDiscard,
|
|
187
|
+
detailCheckpointPreview: detailCheckpointPreview,
|
|
188
|
+
detailCheckpointRestore: detailCheckpointRestore,
|
|
189
|
+
detailCheckpointDelete: detailCheckpointDelete,
|
|
176
190
|
openStagingPreview: openStagingPreview,
|
|
177
191
|
detailEditSource: detailEditSource,
|
|
178
192
|
detailImproveExternal: detailImproveExternal,
|
|
@@ -604,52 +618,29 @@ import { toggleFavorite } from './favorites.js';
|
|
|
604
618
|
saveBtn.disabled = (this.value === original);
|
|
605
619
|
});
|
|
606
620
|
|
|
607
|
-
// ── Save
|
|
621
|
+
// ── Save working copy ────────────────────────────
|
|
622
|
+
// Delegates to detail.js saveSourceAsWorkingCopy: checkpoint the replaced bytes, then persist
|
|
623
|
+
// to the app's server draft slot. (It used to only overwrite a transient in-memory blob, which
|
|
624
|
+
// a reload discarded — the root of "my edits kept disappearing".)
|
|
608
625
|
document.getElementById('save-source-btn').addEventListener('click', function() {
|
|
609
626
|
var overlay = document.getElementById('source-overlay');
|
|
610
627
|
var textarea = document.getElementById('source-code');
|
|
611
|
-
var appId = overlay.dataset.appId;
|
|
612
628
|
var btn = this;
|
|
613
|
-
|
|
614
|
-
if (!appId) {
|
|
615
|
-
showNotice('Cannot save: no app ID found.');
|
|
616
|
-
return;
|
|
617
|
-
}
|
|
629
|
+
if (!overlay.dataset.appId) { showNotice('Cannot save: no app ID found.'); return; }
|
|
618
630
|
|
|
619
631
|
var newSource = textarea.value;
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
// Find the app in allApps and update it
|
|
624
|
-
var app = null;
|
|
625
|
-
for (var i = 0; i < allApps.length; i++) {
|
|
626
|
-
if (allApps[i].id === appId) {
|
|
627
|
-
app = allApps[i];
|
|
628
|
-
break;
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
if (!app) {
|
|
633
|
-
showNotice('App not found in library.');
|
|
634
|
-
return;
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
app.blob = newBlob;
|
|
638
|
-
btn.textContent = 'Saving...';
|
|
632
|
+
var idle = t('source.save');
|
|
633
|
+
btn.textContent = t('wc.saving');
|
|
639
634
|
btn.disabled = true;
|
|
640
635
|
|
|
641
|
-
|
|
642
|
-
btn.textContent = '
|
|
636
|
+
saveSourceAsWorkingCopy().then(function() {
|
|
637
|
+
btn.textContent = t('wc.savedShort');
|
|
643
638
|
overlay.dataset.originalSource = newSource;
|
|
644
|
-
setTimeout(function() {
|
|
645
|
-
btn.textContent = 'Save Changes';
|
|
646
|
-
btn.disabled = true;
|
|
647
|
-
}, 1500);
|
|
648
|
-
renderApps();
|
|
639
|
+
setTimeout(function() { btn.textContent = idle; btn.disabled = true; }, 1500);
|
|
649
640
|
}).catch(function(err) {
|
|
650
|
-
btn.textContent =
|
|
641
|
+
btn.textContent = idle;
|
|
651
642
|
btn.disabled = false;
|
|
652
|
-
showNotice('Failed to save: ' + (err.message || err));
|
|
643
|
+
showNotice((t('wc.saveFailed') || 'Failed to save') + ': ' + ((err && err.message) || err));
|
|
653
644
|
});
|
|
654
645
|
});
|
|
655
646
|
|