@nomix-ai/nomix-harness 0.2.5 → 0.2.6
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/README.md +2 -9
- package/dist/assets/web/assets/index-BnapMmQ_.css +1 -0
- package/dist/assets/web/assets/index-Dx7Ws_OC.js +96 -0
- package/dist/assets/web/assets/langs/{php-D-uCvoST.js → php-DDkx9sim.js} +2 -2
- package/dist/{kernel/web-frontend/dist/assets/langs/ruby-DEItuUFs.js → assets/web/assets/langs/ruby-DCxyoPen.js} +2 -2
- package/dist/assets/web/assets/{vendor-Cjbwl5VI.js → vendor-D22_Mp1f.js} +2 -2
- package/dist/assets/web/favicon.svg +8 -0
- package/dist/assets/web/index.html +5 -5
- package/dist/bundles/base/cordis.patch.yml +31 -6
- package/dist/bundles/web-app/cordis.patch.yml +27 -6
- package/dist/cli/bin.js +4 -5
- package/dist/cli/builtin-registry.js +34 -4
- package/dist/cli/{dump-config-d3ECray2.js → dump-config-BEj2GlJo.js} +1 -1
- package/dist/cli/{plugin-Bw9wgrmj.js → plugin-D_gLgCYL.js} +1 -1
- package/dist/cli/profile-boot-BSrYtiQI.js +2 -0
- package/dist/cli/{profile-boot-DFHdh9Xq.js → profile-boot-CByqUxLM.js} +0 -2
- package/dist/cli/runtime.js +0 -2
- package/dist/config/agent-presets/code/agent.cordis.yml +4 -3
- package/dist/config/agent-presets/cordis/agent.cordis.yml +4 -3
- package/dist/config/agent-presets/cordis/skills/editing-cordis-compositions/SKILL.md +13 -2
- package/dist/config/agent-presets/minimal/agent.cordis.yml +27 -1
- package/dist/config/agent-presets/standard/agent.cordis.yml +4 -3
- package/dist/kernel/acp/package.json +1 -1
- package/dist/kernel/agent/package.json +1 -1
- package/dist/kernel/agent-default-model/package.json +1 -1
- package/dist/kernel/agent-instructions/package.json +1 -1
- package/dist/kernel/agent-loop/lib/index.js +33 -10
- package/dist/kernel/agent-loop/lib/types/agent.js +26 -6
- package/dist/kernel/agent-loop/package.json +1 -1
- package/dist/kernel/agent-presets/package.json +1 -1
- package/dist/kernel/agent-tool-presentation/package.json +1 -1
- package/dist/kernel/anonymous-user-id/package.json +1 -1
- package/dist/kernel/api-gateway/lib/client.js +84 -55
- package/dist/kernel/api-gateway/lib/types/client/index.js +93 -61
- package/dist/kernel/api-gateway/package.json +1 -1
- package/dist/kernel/api-remotes/lib/client.js +166 -27
- package/dist/kernel/api-remotes/lib/index.js +1 -1
- package/dist/kernel/api-remotes/lib/types/client/index.d.ts +4 -0
- package/dist/kernel/api-remotes/lib/types/client/index.js +4 -1
- package/dist/kernel/api-remotes/lib/types/remote-events.d.ts +1 -1
- package/dist/kernel/api-remotes/lib/types/remote-events.js +1 -1
- package/dist/kernel/api-remotes/package.json +11 -7
- package/dist/kernel/app-boot/lib/index.js +19 -41
- package/dist/kernel/app-boot/lib/types/index.d.ts +0 -1
- package/dist/kernel/app-boot/lib/types/index.js +2 -3
- package/dist/kernel/app-boot/lib/types/profile.d.ts +15 -12
- package/dist/kernel/app-boot/lib/types/profile.js +15 -25
- package/dist/kernel/app-boot/package.json +1 -1
- package/dist/kernel/atomic-write/lib/index.js +36 -16
- package/dist/kernel/atomic-write/lib/types/index.d.ts +21 -5
- package/dist/kernel/atomic-write/lib/types/index.js +40 -16
- package/dist/kernel/atomic-write/package.json +1 -1
- package/dist/kernel/attachment/lib/index.js +62 -3
- package/dist/kernel/attachment/lib/types/admission.d.ts +15 -0
- package/dist/kernel/attachment/lib/types/admission.js +33 -0
- package/dist/kernel/attachment/lib/types/brand.d.ts +8 -0
- package/dist/kernel/attachment/lib/types/brand.js +8 -0
- package/dist/kernel/attachment/lib/types/error.d.ts +2 -2
- package/dist/kernel/attachment/lib/types/error.js +1 -0
- package/dist/kernel/attachment/lib/types/index.d.ts +23 -5
- package/dist/kernel/attachment/lib/types/index.js +24 -2
- package/dist/kernel/attachment/lib/types/types.d.ts +47 -2
- package/dist/kernel/attachment/package.json +3 -2
- package/dist/kernel/attachment-local/lib/index.js +640 -48
- package/dist/kernel/attachment-local/lib/types/compression-limiter.d.ts +18 -0
- package/dist/kernel/attachment-local/lib/types/compression-limiter.js +43 -0
- package/dist/kernel/attachment-local/lib/types/encoding.d.ts +23 -0
- package/dist/kernel/attachment-local/lib/types/encoding.js +33 -0
- package/dist/kernel/attachment-local/lib/types/image.d.ts +31 -2
- package/dist/kernel/attachment-local/lib/types/image.js +43 -4
- package/dist/kernel/attachment-local/lib/types/index.d.ts +45 -10
- package/dist/kernel/attachment-local/lib/types/index.js +140 -10
- package/dist/kernel/attachment-local/lib/types/normalization.d.ts +44 -0
- package/dist/kernel/attachment-local/lib/types/normalization.js +148 -0
- package/dist/kernel/attachment-local/lib/types/request-image.d.ts +35 -0
- package/dist/kernel/attachment-local/lib/types/request-image.js +208 -0
- package/dist/kernel/attachment-local/lib/types/store.d.ts +36 -9
- package/dist/kernel/attachment-local/lib/types/store.js +60 -24
- package/dist/kernel/attachment-local/package.json +1 -1
- package/dist/kernel/authorization/lib/index.js +248 -0
- package/dist/kernel/authorization/lib/invariant.js +36 -0
- package/dist/kernel/authorization/lib/types/index.d.ts +223 -0
- package/dist/kernel/authorization/lib/types/index.js +299 -0
- package/dist/kernel/authorization/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/authorization/lib/types/invariant.js +38 -0
- package/dist/kernel/authorization/lib/types/types.d.ts +83 -0
- package/dist/kernel/authorization/lib/types/types.js +8 -0
- package/dist/kernel/{client-web-react → authorization}/package.json +19 -16
- package/dist/kernel/base/cordis.patch.yml +31 -6
- package/dist/kernel/base/package.json +3 -1
- package/dist/kernel/bash-local/package.json +1 -1
- package/dist/kernel/bash-sandbox/package.json +1 -1
- package/dist/kernel/brand/package.json +1 -1
- package/dist/kernel/client-connection/lib/client.js +148 -28
- package/dist/kernel/client-connection/lib/index.js +4 -4
- package/dist/kernel/client-connection/lib/types/client/fixture.js +112 -20
- package/dist/kernel/client-connection/lib/types/client/index.d.ts +21 -1
- package/dist/kernel/client-connection/lib/types/client/index.js +3 -2
- package/dist/kernel/client-connection/lib/types/client/rpc.d.ts +4 -1
- package/dist/kernel/client-connection/lib/types/client/rpc.js +4 -2
- package/dist/kernel/client-connection/lib/types/http-bridge.d.ts +2 -2
- package/dist/kernel/client-connection/lib/types/http-bridge.js +3 -3
- package/dist/kernel/client-connection/lib/types/index.d.ts +1 -1
- package/dist/kernel/client-connection/package.json +15 -9
- package/dist/kernel/client-hmr/package.json +1 -1
- package/dist/kernel/client-locale/lib/client.js +48 -9
- package/dist/kernel/client-locale/lib/types/client/index.d.ts +19 -3
- package/dist/kernel/client-locale/lib/types/client/index.js +48 -7
- package/dist/kernel/client-locale/package.json +6 -6
- package/dist/kernel/client-modules/lib/client.js +188 -123
- package/dist/kernel/client-modules/lib/index.js +177 -31
- package/dist/kernel/client-modules/lib/types/client/index.d.ts +19 -8
- package/dist/kernel/client-modules/lib/types/client/index.js +25 -8
- package/dist/kernel/client-modules/lib/types/client/manifest.d.ts +90 -41
- package/dist/kernel/client-modules/lib/types/client/manifest.js +45 -12
- package/dist/kernel/client-modules/lib/types/client/system.d.ts +15 -17
- package/dist/kernel/client-modules/lib/types/client/system.js +85 -56
- package/dist/kernel/client-modules/lib/types/index.d.ts +28 -12
- package/dist/kernel/client-modules/lib/types/index.js +128 -34
- package/dist/kernel/client-modules/package.json +4 -2
- package/dist/kernel/client-runtime/lib/client.js +43 -8
- package/dist/kernel/client-runtime/lib/types/client/contract/session.d.ts +1 -1
- package/dist/kernel/client-runtime/lib/types/client/contract/store.d.ts +1 -1
- package/dist/kernel/client-runtime/lib/types/client/contract/store.js +2 -2
- package/dist/kernel/client-runtime/lib/types/client/index.d.ts +2 -2
- package/dist/kernel/client-runtime/lib/types/client/index.js +3 -3
- package/dist/kernel/client-runtime/lib/types/client/sessions/context-provenance.d.ts +8 -0
- package/dist/kernel/client-runtime/lib/types/client/sessions/context-provenance.js +13 -0
- package/dist/kernel/client-runtime/lib/types/client/sessions/conversation.d.ts +11 -7
- package/dist/kernel/client-runtime/lib/types/client/sessions/projection-store.d.ts +1 -1
- package/dist/kernel/client-runtime/lib/types/client/sessions/session.d.ts +1 -1
- package/dist/kernel/client-runtime/lib/types/client/sessions/session.js +4 -4
- package/dist/kernel/client-runtime/lib/types/client/slots.d.ts +1 -1
- package/dist/kernel/client-runtime/lib/types/client/slots.js +1 -1
- package/dist/kernel/client-runtime/lib/types/client/workspaces/path.d.ts +9 -0
- package/dist/kernel/client-runtime/lib/types/client/workspaces/path.js +27 -1
- package/dist/kernel/client-runtime/package.json +25 -14
- package/dist/kernel/client-ui-agent-preset/lib/client.js +55 -55
- package/dist/kernel/client-ui-agent-preset/lib/types/client/index.js +2 -2
- package/dist/kernel/client-ui-agent-preset/lib/types/client/settings-store.d.ts +7 -1
- package/dist/kernel/client-ui-agent-preset/lib/types/client/settings-store.js +21 -20
- package/dist/kernel/client-ui-agent-preset/package.json +2 -7
- package/dist/kernel/client-ui-attachment/lib/client.js +782 -0
- package/dist/kernel/client-ui-attachment/lib/index.js +5 -505
- package/dist/kernel/client-ui-attachment/lib/invariant.js +2 -3
- package/dist/kernel/client-ui-attachment/lib/types/client/ComposerAttachments.d.ts +4 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/ComposerAttachments.js +85 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/MessageImages.d.ts +4 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/MessageImages.js +8 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/index.d.ts +7 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/index.js +16 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/labels.d.ts +35 -0
- package/dist/kernel/client-ui-attachment/lib/types/client/labels.js +52 -0
- package/dist/kernel/client-ui-attachment/lib/types/index.d.ts +3 -15
- package/dist/kernel/client-ui-attachment/lib/types/index.js +3 -11
- package/dist/kernel/client-ui-attachment/lib/types/invariant.js +2 -3
- package/dist/kernel/client-ui-attachment/package.json +32 -9
- package/dist/kernel/client-ui-brand-official/lib/client.js +50 -0
- package/dist/kernel/client-ui-brand-official/lib/index.js +9 -0
- package/dist/kernel/{client-web-react → client-ui-brand-official}/lib/invariant.js +6 -8
- package/dist/kernel/client-ui-brand-official/lib/types/client/Brand.d.ts +16 -0
- package/dist/kernel/client-ui-brand-official/lib/types/client/Brand.js +18 -0
- package/dist/kernel/client-ui-brand-official/lib/types/client/index.d.ts +10 -0
- package/dist/kernel/client-ui-brand-official/lib/types/client/index.js +17 -0
- package/dist/kernel/client-ui-brand-official/lib/types/index.d.ts +7 -0
- package/dist/kernel/client-ui-brand-official/lib/types/index.js +7 -0
- package/dist/kernel/client-ui-brand-official/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/{client-web-react → client-ui-brand-official}/lib/types/invariant.js +6 -8
- package/dist/kernel/client-ui-brand-official/package.json +72 -0
- package/dist/kernel/client-ui-commands/lib/client.js +44 -15
- package/dist/kernel/client-ui-commands/lib/types/client/locales.d.ts +2 -0
- package/dist/kernel/client-ui-commands/lib/types/client/locales.js +2 -0
- package/dist/kernel/client-ui-commands/lib/types/client/service.d.ts +11 -1
- package/dist/kernel/client-ui-commands/lib/types/client/service.js +39 -7
- package/dist/kernel/client-ui-commands/package.json +2 -5
- package/dist/kernel/client-ui-conversation/lib/client.js +949 -531
- package/dist/kernel/client-ui-conversation/lib/types/client/apply.js +6 -4
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantMarkdown.d.ts +4 -5
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantMarkdown.js +6 -6
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantNodeView.d.ts +1 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/AssistantNodeView.js +2 -2
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatNodeSeat.d.ts +1 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatNodeSeat.js +5 -3
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/ChatView.js +53 -10
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/ContextInjectionRow.js +4 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/MessageItem.d.ts +4 -5
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/MessageItem.js +46 -16
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/StatsLine.d.ts +5 -3
- package/dist/kernel/client-ui-conversation/lib/types/client/chat/StatsLine.js +54 -5
- package/dist/kernel/client-ui-conversation/lib/types/client/contract/slots.d.ts +90 -8
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/assistant.js +1 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/chat-snapshot-builder.d.ts +1 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/chat-snapshot-builder.js +95 -6
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/message.d.ts +11 -3
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-error.d.ts +6 -3
- package/dist/kernel/client-ui-conversation/lib/types/client/conversation-nodes/turn-error.js +10 -26
- package/dist/kernel/client-ui-conversation/lib/types/client/image-labels.d.ts +1 -33
- package/dist/kernel/client-ui-conversation/lib/types/client/image-labels.js +5 -54
- package/dist/kernel/client-ui-conversation/lib/types/client/index.d.ts +1 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/input/contract.d.ts +17 -14
- package/dist/kernel/client-ui-conversation/lib/types/client/input/decorations.d.ts +13 -5
- package/dist/kernel/client-ui-conversation/lib/types/client/input/decorations.js +26 -10
- package/dist/kernel/client-ui-conversation/lib/types/client/input/facade.d.ts +34 -14
- package/dist/kernel/client-ui-conversation/lib/types/client/input/facade.js +116 -34
- package/dist/kernel/client-ui-conversation/lib/types/client/input/hub.d.ts +1 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/input/hub.js +21 -19
- package/dist/kernel/client-ui-conversation/lib/types/client/input/machine.d.ts +35 -14
- package/dist/kernel/client-ui-conversation/lib/types/client/input/machine.js +71 -34
- package/dist/kernel/client-ui-conversation/lib/types/client/locales.d.ts +16 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/locales.js +16 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/reference/ReferenceIcon.d.ts +16 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/reference/ReferenceIcon.js +16 -0
- package/dist/kernel/client-ui-conversation/lib/types/client/service.d.ts +14 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/service.js +26 -6
- package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/ConversationRoot.js +1 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/ConversationSession.js +18 -3
- package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/EmptyHero.d.ts +3 -1
- package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/EmptyHero.js +4 -2
- package/dist/kernel/client-ui-conversation/lib/types/client/skeleton/InputBar.js +141 -126
- package/dist/kernel/client-ui-conversation/package.json +9 -8
- package/dist/kernel/client-ui-cordis/lib/client.js +48 -48
- package/dist/kernel/client-ui-cordis/package.json +2 -5
- package/dist/kernel/client-ui-deliverables/lib/client.js +5 -5
- package/dist/kernel/client-ui-deliverables/package.json +4 -6
- package/dist/kernel/client-ui-directory-picker-browse/lib/client.js +26 -26
- package/dist/kernel/client-ui-directory-picker-browse/package.json +2 -5
- package/dist/kernel/client-ui-directory-picker-native/package.json +2 -5
- package/dist/kernel/client-ui-goal/lib/client.js +8 -8
- package/dist/kernel/client-ui-goal/package.json +6 -5
- package/dist/kernel/client-ui-input-trigger/lib/client.js +82 -26
- package/dist/kernel/client-ui-input-trigger/lib/types/client/MenuView.js +13 -9
- package/dist/kernel/client-ui-input-trigger/lib/types/client/controller.d.ts +5 -3
- package/dist/kernel/client-ui-input-trigger/lib/types/client/controller.js +19 -7
- package/dist/kernel/client-ui-input-trigger/lib/types/client/index.d.ts +1 -1
- package/dist/kernel/client-ui-input-trigger/lib/types/core/contract.d.ts +7 -2
- package/dist/kernel/client-ui-input-trigger/lib/types/core/detect.d.ts +4 -4
- package/dist/kernel/client-ui-input-trigger/lib/types/core/detect.js +24 -6
- package/dist/kernel/client-ui-input-trigger/lib/types/core/menu.d.ts +15 -2
- package/dist/kernel/client-ui-input-trigger/lib/types/core/menu.js +13 -4
- package/dist/kernel/client-ui-input-trigger/lib/types/types.d.ts +52 -8
- package/dist/kernel/client-ui-input-trigger/package.json +4 -5
- package/dist/kernel/client-ui-jobs/lib/client.js +10 -10
- package/dist/kernel/client-ui-jobs/package.json +3 -7
- package/dist/kernel/client-ui-layout/lib/client.js +3 -3
- package/dist/kernel/client-ui-layout/package.json +2 -4
- package/dist/kernel/client-ui-message-feedback/lib/client.js +174 -58
- package/dist/kernel/client-ui-message-feedback/lib/types/client/MessageFeedbackActions.d.ts +9 -3
- package/dist/kernel/client-ui-message-feedback/lib/types/client/MessageFeedbackActions.js +164 -25
- package/dist/kernel/client-ui-message-feedback/lib/types/client/locales.d.ts +2 -0
- package/dist/kernel/client-ui-message-feedback/lib/types/client/locales.js +2 -0
- package/dist/kernel/client-ui-message-feedback/package.json +3 -5
- package/dist/kernel/client-ui-model-selection/lib/client.js +18 -18
- package/dist/kernel/client-ui-model-selection/package.json +7 -9
- package/dist/kernel/client-ui-permission-presets/lib/client.js +97 -83
- package/dist/kernel/client-ui-permission-presets/lib/types/client/index.js +6 -19
- package/dist/kernel/client-ui-permission-presets/lib/types/client/settings-store.d.ts +27 -18
- package/dist/kernel/client-ui-permission-presets/lib/types/client/settings-store.js +95 -68
- package/dist/kernel/client-ui-permission-presets/package.json +2 -8
- package/dist/kernel/client-ui-plan/lib/client.js +1 -1
- package/dist/kernel/client-ui-plan/lib/types/client/index.js +1 -1
- package/dist/kernel/client-ui-plan/package.json +2 -6
- package/dist/kernel/client-ui-primitives/lib/Button.module.css +79 -0
- package/dist/kernel/client-ui-primitives/lib/ConnectionBanner.module.css +13 -0
- package/dist/kernel/client-ui-primitives/lib/DiffBlock.module.css +107 -0
- package/dist/kernel/client-ui-primitives/lib/DisclosureRow.module.css +69 -0
- package/dist/kernel/client-ui-primitives/lib/HoverCard.module.css +54 -0
- package/dist/kernel/client-ui-primitives/lib/Input.module.css +38 -0
- package/dist/kernel/client-ui-primitives/lib/JsonTree.module.css +222 -0
- package/dist/kernel/client-ui-primitives/lib/Menu.module.css +242 -0
- package/dist/kernel/client-ui-primitives/lib/Modal.module.css +103 -0
- package/dist/kernel/client-ui-primitives/lib/OnboardingSurface.module.css +29 -0
- package/dist/kernel/client-ui-primitives/lib/Pill.module.css +27 -0
- package/dist/kernel/client-ui-primitives/lib/ReadBlock.module.css +117 -0
- package/dist/kernel/client-ui-primitives/lib/RiskConfirmation.module.css +73 -0
- package/dist/kernel/client-ui-primitives/lib/SearchBlock.module.css +120 -0
- package/dist/kernel/client-ui-primitives/lib/StateDot.module.css +65 -0
- package/dist/kernel/client-ui-primitives/lib/TerminalBlock.module.css +211 -0
- package/dist/kernel/client-ui-primitives/lib/Toast.module.css +70 -0
- package/dist/kernel/client-ui-primitives/lib/Tooltip.module.css +49 -0
- package/dist/kernel/client-ui-primitives/lib/WebBlock.module.css +130 -0
- package/dist/kernel/client-ui-primitives/lib/index.js +291 -261
- package/dist/kernel/client-ui-primitives/lib/invariant.js +2 -0
- package/dist/kernel/client-ui-primitives/lib/markdown/CodeBlock.module.css +96 -0
- package/dist/kernel/client-ui-primitives/lib/markdown/JsonBlock.module.css +32 -0
- package/dist/kernel/client-ui-primitives/lib/markdown/MarkdownText.module.css +304 -0
- package/dist/kernel/client-ui-primitives/lib/markdown/MessageText.module.css +9 -0
- package/dist/kernel/client-ui-primitives/lib/types/BrandWordmark.d.ts +7 -1
- package/dist/kernel/client-ui-primitives/lib/types/BrandWordmark.js +4 -2
- package/dist/kernel/client-ui-primitives/lib/types/index.d.ts +4 -1
- package/dist/kernel/client-ui-primitives/lib/types/index.js +2 -1
- package/dist/kernel/client-ui-primitives/lib/types/markdown/render.d.ts +2 -0
- package/dist/kernel/client-ui-primitives/lib/types/markdown/render.js +10 -2
- package/dist/kernel/client-ui-primitives/lib/types/useAnchoredPosition.d.ts +32 -0
- package/dist/kernel/client-ui-primitives/lib/types/useAnchoredPosition.js +69 -0
- package/dist/kernel/client-ui-primitives/package.json +2 -1
- package/dist/kernel/client-ui-reference/lib/client.js +149 -0
- package/dist/kernel/client-ui-reference/lib/index.js +11 -0
- package/dist/kernel/{client-schema-form → client-ui-reference}/lib/invariant.js +7 -8
- package/dist/kernel/client-ui-reference/lib/types/client/index.d.ts +9 -0
- package/dist/kernel/client-ui-reference/lib/types/client/index.js +106 -0
- package/dist/kernel/client-ui-reference/lib/types/client/locales.d.ts +30 -0
- package/dist/kernel/client-ui-reference/lib/types/client/locales.js +22 -0
- package/dist/kernel/client-ui-reference/lib/types/index.d.ts +9 -0
- package/dist/kernel/client-ui-reference/lib/types/index.js +9 -0
- package/dist/kernel/{client-schema-form → client-ui-reference}/lib/types/invariant.d.ts +3 -3
- package/dist/kernel/{client-schema-form → client-ui-reference}/lib/types/invariant.js +7 -8
- package/dist/kernel/client-ui-reference/package.json +77 -0
- package/dist/kernel/client-ui-renderer/lib/client.js +989 -0
- package/dist/kernel/client-ui-renderer/lib/index.js +6 -0
- package/dist/kernel/client-ui-renderer/lib/invariant.js +23 -0
- package/dist/kernel/{client-web/lib/types → client-ui-renderer/lib/types/client}/DocumentTitle.d.ts +4 -4
- package/dist/kernel/client-ui-renderer/lib/types/client/DocumentTitle.js +17 -0
- package/dist/kernel/client-ui-renderer/lib/types/client/app.d.ts +18 -0
- package/dist/kernel/{client-web/lib/types → client-ui-renderer/lib/types/client}/app.js +5 -5
- package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/bind.d.ts +1 -1
- package/dist/kernel/client-ui-renderer/lib/types/client/index.d.ts +29 -0
- package/dist/kernel/client-ui-renderer/lib/types/client/index.js +51 -0
- package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/scoped-slots.d.ts +1 -1
- package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/scoped-slots.js +1 -1
- package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/session-provider.d.ts +1 -1
- package/dist/kernel/client-ui-renderer/lib/types/index.d.ts +4 -0
- package/dist/kernel/client-ui-renderer/lib/types/index.js +4 -0
- package/dist/kernel/{client-web-react → client-ui-renderer}/lib/types/invariant.d.ts +3 -3
- package/dist/kernel/client-ui-renderer/lib/types/invariant.js +22 -0
- package/dist/kernel/client-ui-renderer/package.json +71 -0
- package/dist/kernel/client-ui-settings/lib/client.js +1177 -67
- package/dist/kernel/client-ui-settings/lib/types/client/index.d.ts +20 -12
- package/dist/kernel/client-ui-settings/lib/types/client/index.js +25 -6
- package/dist/kernel/client-ui-settings/lib/types/client/schema.d.ts +72 -0
- package/dist/kernel/client-ui-settings/lib/types/client/schema.js +152 -0
- package/dist/kernel/client-ui-settings/lib/types/client/settings-mirror.d.ts +118 -0
- package/dist/kernel/client-ui-settings/lib/types/client/settings-mirror.js +160 -0
- package/dist/kernel/client-ui-settings/lib/types/client/settings-scope.d.ts +51 -24
- package/dist/kernel/client-ui-settings/lib/types/client/settings-scope.js +88 -71
- package/dist/kernel/client-ui-settings/package.json +7 -7
- package/dist/kernel/client-ui-settings-general/lib/client.js +60 -64
- package/dist/kernel/client-ui-settings-general/lib/types/client/SettingsDocumentAction.d.ts +7 -6
- package/dist/kernel/client-ui-settings-general/lib/types/client/index.js +10 -11
- package/dist/kernel/client-ui-settings-general/lib/types/client/settings-document-store.d.ts +13 -11
- package/dist/kernel/client-ui-settings-general/lib/types/client/settings-document-store.js +37 -40
- package/dist/kernel/client-ui-settings-general/package.json +4 -8
- package/dist/kernel/client-ui-settings-models/lib/client.js +280 -210
- package/dist/kernel/client-ui-settings-models/lib/types/client/DeepSeekOnboardingDialog.d.ts +3 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/DeepSeekOnboardingDialog.js +2 -2
- package/dist/kernel/client-ui-settings-models/lib/types/client/ModelListEditor.js +11 -1
- package/dist/kernel/client-ui-settings-models/lib/types/client/ModelsSection.d.ts +10 -5
- package/dist/kernel/client-ui-settings-models/lib/types/client/ModelsSection.js +9 -6
- package/dist/kernel/client-ui-settings-models/lib/types/client/ProviderEditor.d.ts +3 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/ProviderEditor.js +30 -29
- package/dist/kernel/client-ui-settings-models/lib/types/client/index.js +27 -22
- package/dist/kernel/client-ui-settings-models/lib/types/client/locales.d.ts +2 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/locales.js +4 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/schema-operations.d.ts +10 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/schema-operations.js +17 -0
- package/dist/kernel/client-ui-settings-models/lib/types/client/store.d.ts +15 -7
- package/dist/kernel/client-ui-settings-models/lib/types/client/store.js +30 -21
- package/dist/kernel/client-ui-settings-models/lib/types/client/welcome-store.d.ts +35 -18
- package/dist/kernel/client-ui-settings-models/lib/types/client/welcome-store.js +89 -82
- package/dist/kernel/client-ui-settings-models/package.json +3 -8
- package/dist/kernel/client-ui-settings-plugin-inventory/lib/client.js +11 -11
- package/dist/kernel/client-ui-settings-plugin-inventory/package.json +2 -5
- package/dist/kernel/client-ui-settings-plugins/lib/client.js +42 -65
- package/dist/kernel/client-ui-settings-plugins/lib/types/client/index.js +5 -8
- package/dist/kernel/client-ui-settings-plugins/lib/types/client/tab-store.d.ts +8 -17
- package/dist/kernel/client-ui-settings-plugins/lib/types/client/tab-store.js +22 -44
- package/dist/kernel/client-ui-settings-plugins/package.json +2 -7
- package/dist/kernel/client-ui-sidebar/lib/client.js +50 -20
- package/dist/kernel/client-ui-sidebar/lib/types/client/SidebarRoot.js +7 -3
- package/dist/kernel/client-ui-sidebar/lib/types/client/contract/slots.d.ts +30 -1
- package/dist/kernel/client-ui-sidebar/lib/types/client/index.d.ts +1 -1
- package/dist/kernel/client-ui-sidebar/lib/types/client/index.js +2 -0
- package/dist/kernel/client-ui-sidebar/package.json +2 -4
- package/dist/kernel/client-ui-skill/lib/client.js +12 -12
- package/dist/kernel/client-ui-skill/package.json +2 -5
- package/dist/kernel/client-ui-slots/lib/index.js +2 -0
- package/dist/kernel/client-ui-slots/lib/invariant.js +2 -0
- package/dist/kernel/client-ui-slots/lib/types/renderer.d.ts +1 -1
- package/dist/kernel/client-ui-slots/lib/types/store.d.ts +1 -1
- package/dist/kernel/client-ui-slots/package.json +1 -1
- package/dist/kernel/client-ui-subagent/lib/client.js +289 -157
- package/dist/kernel/client-ui-subagent/lib/types/client/SubagentHeaderLineage.d.ts +18 -0
- package/dist/kernel/client-ui-subagent/lib/types/client/{SubagentCatalogAction.js → SubagentHeaderLineage.js} +153 -25
- package/dist/kernel/client-ui-subagent/lib/types/client/index.d.ts +4 -16
- package/dist/kernel/client-ui-subagent/lib/types/client/index.js +7 -45
- package/dist/kernel/client-ui-subagent/lib/types/client/locales.d.ts +1 -0
- package/dist/kernel/client-ui-subagent/lib/types/client/locales.js +2 -0
- package/dist/kernel/client-ui-subagent/package.json +6 -8
- package/dist/kernel/client-ui-theme/lib/client.js +46 -3
- package/dist/kernel/client-ui-theme/lib/index.js +22 -23
- package/dist/kernel/client-ui-theme/lib/types/boot-theme.d.ts +9 -10
- package/dist/kernel/client-ui-theme/lib/types/boot-theme.js +12 -19
- package/dist/kernel/client-ui-theme/lib/types/client/index.d.ts +1 -1
- package/dist/kernel/client-ui-theme/lib/types/client/index.js +3 -1
- package/dist/kernel/client-ui-theme/lib/types/client/styles.d.ts +7 -0
- package/dist/kernel/client-ui-theme/lib/types/client/styles.js +32 -0
- package/dist/kernel/client-ui-theme/lib/types/index.d.ts +4 -3
- package/dist/kernel/client-ui-theme/lib/types/index.js +7 -6
- package/dist/kernel/client-ui-theme/package.json +4 -6
- package/dist/kernel/client-ui-tool/lib/client.js +105 -65
- package/dist/kernel/client-ui-tool/lib/types/client/apply.d.ts +1 -2
- package/dist/kernel/client-ui-tool/lib/types/client/apply.js +6 -2
- package/dist/kernel/client-ui-tool/lib/types/client/contract/slots.d.ts +13 -3
- package/dist/kernel/client-ui-tool/lib/types/client/index.d.ts +1 -1
- package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolCallTree.d.ts +1 -1
- package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolCallTree.js +8 -6
- package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolDetails.d.ts +2 -9
- package/dist/kernel/client-ui-tool/lib/types/client/tool/ToolDetails.js +4 -3
- package/dist/kernel/client-ui-tool/lib/types/client/tool/models/read-card-model.d.ts +4 -18
- package/dist/kernel/client-ui-tool/lib/types/client/tool/models/read-card-model.js +21 -4
- package/dist/kernel/client-ui-tool/lib/types/client/tool/models/tool-call-model.d.ts +2 -9
- package/dist/kernel/client-ui-tool/lib/types/client/tool/models/tool-call-model.js +22 -2
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/GenericToolCard.d.ts +1 -1
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/GenericToolCard.js +3 -3
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/file-mutation-row.d.ts +1 -1
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/file-mutation-row.js +2 -2
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/read-row.d.ts +1 -1
- package/dist/kernel/client-ui-tool/lib/types/client/tool/toolviews/read-row.js +3 -3
- package/dist/kernel/client-ui-tool/package.json +4 -6
- package/dist/kernel/client-ui-trajectory/lib/client.js +144 -143
- package/dist/kernel/client-ui-trajectory/lib/types/client/trajectory-assistant-definition.js +2 -1
- package/dist/kernel/client-ui-trajectory/package.json +2 -4
- package/dist/kernel/client-ui-user-questions/lib/client.js +73 -36
- package/dist/kernel/client-ui-user-questions/lib/types/client/QuestionComposer.js +24 -6
- package/dist/kernel/client-ui-user-questions/package.json +12 -10
- package/dist/kernel/client-ui-workflow-run/lib/client.js +262 -87
- package/dist/kernel/client-ui-workflow-run/lib/types/client/WorkflowRunPanel.js +162 -23
- package/dist/kernel/client-ui-workflow-run/package.json +3 -7
- package/dist/kernel/client-ui-workspace/lib/client.js +96 -60
- package/dist/kernel/client-ui-workspace/lib/types/client/WorkspaceBrowser.d.ts +1 -1
- package/dist/kernel/client-ui-workspace/lib/types/client/WorkspaceBrowser.js +38 -6
- package/dist/kernel/client-ui-workspace/lib/types/client/contract/slots.d.ts +9 -7
- package/dist/kernel/client-ui-workspace/lib/types/client/index.js +4 -2
- package/dist/kernel/client-ui-workspace/lib/types/client/rows/Rows.d.ts +4 -1
- package/dist/kernel/client-ui-workspace/lib/types/client/rows/Rows.js +5 -3
- package/dist/kernel/client-ui-workspace/package.json +6 -4
- package/dist/kernel/client-web/lib/base.css +41 -0
- package/dist/kernel/client-web/lib/boot-page.module.css +104 -0
- package/dist/kernel/client-web/lib/index.js +154 -308
- package/dist/kernel/client-web/lib/invariant.js +2 -0
- package/dist/kernel/client-web/lib/types/boot-page.d.ts +46 -0
- package/dist/kernel/client-web/lib/types/boot-page.js +93 -0
- package/dist/kernel/client-web/lib/types/boot.d.ts +20 -33
- package/dist/kernel/client-web/lib/types/boot.js +76 -149
- package/dist/kernel/client-web/lib/types/index.d.ts +5 -11
- package/dist/kernel/client-web/lib/types/index.js +4 -10
- package/dist/kernel/client-web/lib/types/loader-status.d.ts +3 -51
- package/dist/kernel/client-web/lib/types/loader-status.js +0 -35
- package/dist/kernel/client-web/lib/types/platform.d.ts +3 -1
- package/dist/kernel/client-web/lib/types/platform.js +4 -3
- package/dist/kernel/client-web/lib/types/seed.js +0 -6
- package/dist/kernel/client-web/package.json +8 -15
- package/dist/kernel/cmdline/package.json +1 -1
- package/dist/kernel/code-runtime/package.json +1 -1
- package/dist/kernel/code-runtime-python/lib/index.js +413 -0
- package/dist/kernel/code-runtime-python/lib/invariant.js +24 -0
- package/dist/kernel/code-runtime-python/lib/types/index.d.ts +12 -0
- package/dist/kernel/code-runtime-python/lib/types/index.js +11 -0
- package/dist/kernel/code-runtime-python/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/code-runtime-python/lib/types/invariant.js +23 -0
- package/dist/kernel/code-runtime-python/lib/types/protocol.d.ts +329 -0
- package/dist/kernel/code-runtime-python/lib/types/protocol.js +496 -0
- package/dist/kernel/{client-schema-form → code-runtime-python}/package.json +11 -14
- package/dist/kernel/code-runtime-python/py/protocol.py +138 -0
- package/dist/kernel/code-runtime-worker-thread/package.json +1 -1
- package/dist/kernel/command-compact/package.json +1 -1
- package/dist/kernel/command-feedback/package.json +1 -1
- package/dist/kernel/command-goal/lib/index.js +40 -6
- package/dist/kernel/command-goal/lib/types/index.js +35 -6
- package/dist/kernel/command-goal/package.json +2 -1
- package/dist/kernel/commands/lib/index.js +78 -21
- package/dist/kernel/commands/lib/typert.host.js +53 -9
- package/dist/kernel/commands/lib/typert.remote-client.d.ts +4 -3
- package/dist/kernel/commands/lib/typert.remote-client.js +18 -2
- package/dist/kernel/commands/lib/types/index.d.ts +20 -1
- package/dist/kernel/commands/lib/types/index.js +77 -20
- package/dist/kernel/commands/lib/types/types.d.ts +8 -0
- package/dist/kernel/commands/package.json +5 -1
- package/dist/kernel/compaction/package.json +1 -1
- package/dist/kernel/compaction-basic/package.json +1 -1
- package/dist/kernel/compaction-tool-result-pruner/package.json +1 -1
- package/dist/kernel/cordis/package.json +3 -1
- package/dist/kernel/cordis-client-runner/lib/client.js +171 -37
- package/dist/kernel/cordis-client-runner/lib/types/client/api-catalog.js +3 -3
- package/dist/kernel/cordis-client-runner/lib/types/client/slot-catalog.js +208 -30
- package/dist/kernel/cordis-client-runner/package.json +2 -5
- package/dist/kernel/cordis-host-runner/lib/index.js +28 -5
- package/dist/kernel/cordis-host-runner/lib/typert.host.js +54 -6
- package/dist/kernel/cordis-host-runner/lib/types/sandbox.d.ts +9 -3
- package/dist/kernel/cordis-host-runner/lib/types/sandbox.js +34 -6
- package/dist/kernel/cordis-host-runner/package.json +1 -1
- package/dist/kernel/cordis-plugin-group/package.json +3 -1
- package/dist/kernel/cordis-plugin-hmr/lib/types/index.js +1 -1
- package/dist/kernel/cordis-plugin-hmr/package.json +3 -1
- package/dist/kernel/cordis-plugin-include/lib/index.js +2 -2
- package/dist/kernel/cordis-plugin-include/lib/types/index.d.ts +2 -2
- package/dist/kernel/cordis-plugin-include/lib/types/index.js +2 -2
- package/dist/kernel/cordis-plugin-include/package.json +3 -1
- package/dist/kernel/cordis-plugin-loader/package.json +3 -1
- package/dist/kernel/cordis-plugin-logger-console/package.json +3 -1
- package/dist/kernel/cordis-plugin-timer/package.json +3 -1
- package/dist/kernel/cosmokit/package.json +3 -1
- package/dist/kernel/credentials/lib/index.js +104 -13
- package/dist/kernel/credentials/lib/invariant.js +3 -3
- package/dist/kernel/credentials/lib/types/index.d.ts +136 -7
- package/dist/kernel/credentials/lib/types/index.js +114 -15
- package/dist/kernel/credentials/lib/types/invariant.js +3 -3
- package/dist/kernel/credentials/lib/types/types.d.ts +58 -5
- package/dist/kernel/credentials/lib/types/types.js +4 -4
- package/dist/kernel/credentials/package.json +1 -1
- package/dist/kernel/credentials-local/lib/index.js +387 -29
- package/dist/kernel/credentials-local/lib/invariant.js +1 -1
- package/dist/kernel/credentials-local/lib/types/index.d.ts +57 -12
- package/dist/kernel/credentials-local/lib/types/index.js +445 -30
- package/dist/kernel/credentials-local/lib/types/invariant.js +1 -1
- package/dist/kernel/credentials-local/package.json +1 -1
- package/dist/kernel/e2b/package.json +1 -1
- package/dist/kernel/experimental-agent-team/lib/index.js +1728 -0
- package/dist/kernel/experimental-agent-team/lib/invariant.js +354 -0
- package/dist/kernel/experimental-agent-team/lib/types/activity.d.ts +23 -0
- package/dist/kernel/experimental-agent-team/lib/types/activity.js +85 -0
- package/dist/kernel/experimental-agent-team/lib/types/error.d.ts +13 -0
- package/dist/kernel/experimental-agent-team/lib/types/error.js +23 -0
- package/dist/kernel/experimental-agent-team/lib/types/fold.d.ts +44 -0
- package/dist/kernel/experimental-agent-team/lib/types/fold.js +243 -0
- package/dist/kernel/experimental-agent-team/lib/types/index.d.ts +115 -0
- package/dist/kernel/experimental-agent-team/lib/types/index.js +205 -0
- package/dist/kernel/experimental-agent-team/lib/types/invariant.d.ts +9 -0
- package/dist/kernel/experimental-agent-team/lib/types/invariant.js +29 -0
- package/dist/kernel/experimental-agent-team/lib/types/journal.d.ts +39 -0
- package/dist/kernel/experimental-agent-team/lib/types/journal.js +59 -0
- package/dist/kernel/experimental-agent-team/lib/types/lifecycle.d.ts +33 -0
- package/dist/kernel/experimental-agent-team/lib/types/lifecycle.js +85 -0
- package/dist/kernel/experimental-agent-team/lib/types/mailbox.d.ts +79 -0
- package/dist/kernel/experimental-agent-team/lib/types/mailbox.js +303 -0
- package/dist/kernel/experimental-agent-team/lib/types/roster.d.ts +113 -0
- package/dist/kernel/experimental-agent-team/lib/types/roster.js +445 -0
- package/dist/kernel/experimental-agent-team/lib/types/session-message.d.ts +11 -0
- package/dist/kernel/experimental-agent-team/lib/types/session-message.js +23 -0
- package/dist/kernel/experimental-agent-team/lib/types/task-board.d.ts +62 -0
- package/dist/kernel/experimental-agent-team/lib/types/task-board.js +275 -0
- package/dist/kernel/experimental-agent-team/lib/types/task-graph.d.ts +21 -0
- package/dist/kernel/experimental-agent-team/lib/types/task-graph.js +62 -0
- package/dist/kernel/experimental-agent-team/lib/types/types.d.ts +192 -0
- package/dist/kernel/experimental-agent-team/lib/types/types.js +26 -0
- package/dist/kernel/experimental-agent-team/lib/types/validation.d.ts +16 -0
- package/dist/kernel/experimental-agent-team/lib/types/validation.js +33 -0
- package/dist/kernel/experimental-agent-team/package.json +62 -0
- package/dist/kernel/experimental-tool-agent-team/lib/index.js +555 -0
- package/dist/kernel/experimental-tool-agent-team/lib/invariant.js +13 -0
- package/dist/kernel/experimental-tool-agent-team/lib/types/index.d.ts +19 -0
- package/dist/kernel/experimental-tool-agent-team/lib/types/index.js +379 -0
- package/dist/kernel/experimental-tool-agent-team/lib/types/invariant.d.ts +9 -0
- package/dist/kernel/experimental-tool-agent-team/lib/types/invariant.js +11 -0
- package/dist/kernel/experimental-tool-agent-team/package.json +61 -0
- package/dist/kernel/file-reference/lib/index.js +138 -0
- package/dist/kernel/file-reference/lib/invariant.js +23 -0
- package/dist/kernel/file-reference/lib/typert.host.d.ts +3 -0
- package/dist/kernel/file-reference/lib/typert.host.js +436 -0
- package/dist/kernel/file-reference/lib/typert.remote-client.d.ts +26 -0
- package/dist/kernel/file-reference/lib/typert.remote-client.js +59 -0
- package/dist/kernel/file-reference/lib/types/grammar.d.ts +33 -0
- package/dist/kernel/file-reference/lib/types/grammar.js +43 -0
- package/dist/kernel/file-reference/lib/types/index.d.ts +42 -0
- package/dist/kernel/file-reference/lib/types/index.js +75 -0
- package/dist/kernel/file-reference/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/file-reference/lib/types/invariant.js +22 -0
- package/dist/kernel/file-reference/lib/types/types.d.ts +13 -0
- package/dist/kernel/file-reference/lib/types/types.js +7 -0
- package/dist/kernel/file-reference/package.json +70 -0
- package/dist/kernel/file-reference-local/lib/index.js +327 -0
- package/dist/kernel/file-reference-local/lib/invariant.js +23 -0
- package/dist/kernel/file-reference-local/lib/types/index.d.ts +35 -0
- package/dist/kernel/file-reference-local/lib/types/index.js +105 -0
- package/dist/kernel/file-reference-local/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/file-reference-local/lib/types/invariant.js +22 -0
- package/dist/kernel/file-reference-local/lib/types/search.d.ts +52 -0
- package/dist/kernel/file-reference-local/lib/types/search.js +258 -0
- package/dist/kernel/file-reference-local/package.json +58 -0
- package/dist/kernel/fs/package.json +1 -1
- package/dist/kernel/fs-e2b/package.json +1 -1
- package/dist/kernel/fs-local/package.json +1 -1
- package/dist/kernel/fs-observation-policy/package.json +1 -1
- package/dist/kernel/fs-sandbox/package.json +1 -1
- package/dist/kernel/goal/lib/index.js +5 -2
- package/dist/kernel/goal/lib/typert.host.js +27 -3
- package/dist/kernel/goal/lib/types/index.js +2 -2
- package/dist/kernel/goal/lib/types/types.d.ts +3 -0
- package/dist/kernel/goal/package.json +1 -1
- package/dist/kernel/goal-round-driver/package.json +1 -1
- package/dist/kernel/headless/package.json +1 -1
- package/dist/kernel/home-paths/package.json +1 -1
- package/dist/kernel/hook-protocol/package.json +1 -1
- package/dist/kernel/hooks-claude-code/package.json +1 -1
- package/dist/kernel/hooks-codex/package.json +1 -1
- package/dist/kernel/host-apiproxy/lib/index.js +25 -57
- package/dist/kernel/host-apiproxy/lib/types/api/host.d.ts +2 -0
- package/dist/kernel/host-apiproxy/lib/types/api/host.schema.d.ts +1 -0
- package/dist/kernel/host-apiproxy/lib/types/api/host.schema.js +1 -0
- package/dist/kernel/host-apiproxy/lib/types/api/sessions.d.ts +4 -0
- package/dist/kernel/host-apiproxy/lib/types/api/sessions.schema.js +1 -0
- package/dist/kernel/host-apiproxy/lib/types/api-proxy.js +15 -53
- package/dist/kernel/host-apiproxy/package.json +1 -1
- package/dist/kernel/host-directory-picker/package.json +1 -1
- package/dist/kernel/host-directory-picker-auto/package.json +1 -1
- package/dist/kernel/host-directory-picker-browse/package.json +1 -1
- package/dist/kernel/host-directory-picker-native/package.json +1 -1
- package/dist/kernel/host-frontend-static/lib/index.js +34 -26
- package/dist/kernel/host-frontend-static/lib/types/index.d.ts +10 -10
- package/dist/kernel/host-frontend-static/lib/types/index.js +38 -27
- package/dist/kernel/host-frontend-static/package.json +2 -2
- package/dist/kernel/host-plugin-inventory/package.json +1 -1
- package/dist/kernel/host-webserver/lib/index.js +102 -6
- package/dist/kernel/host-webserver/lib/types/index.d.ts +33 -5
- package/dist/kernel/host-webserver/lib/types/index.js +28 -5
- package/dist/kernel/host-webserver/lib/types/injections.d.ts +56 -0
- package/dist/kernel/host-webserver/lib/types/injections.js +82 -0
- package/dist/kernel/host-webserver/package.json +1 -1
- package/dist/kernel/invariants/package.json +1 -1
- package/dist/kernel/jobs/package.json +1 -1
- package/dist/kernel/jobs-local/package.json +1 -1
- package/dist/kernel/launch-environment/package.json +1 -1
- package/dist/kernel/llm/lib/index.js +247 -25
- package/dist/kernel/llm/lib/types/assembler.d.ts +10 -1
- package/dist/kernel/llm/lib/types/assembler.js +20 -1
- package/dist/kernel/llm/lib/types/content.d.ts +59 -0
- package/dist/kernel/llm/lib/types/content.js +149 -0
- package/dist/kernel/llm/lib/types/index.d.ts +24 -1
- package/dist/kernel/llm/lib/types/index.js +61 -8
- package/dist/kernel/llm/lib/types/retry-policy.d.ts +1 -1
- package/dist/kernel/llm/lib/types/retry-policy.js +6 -2
- package/dist/kernel/llm/package.json +1 -1
- package/dist/kernel/llm-deepseek/lib/index.js +1100 -70
- package/dist/kernel/llm-deepseek/lib/types/adapter.d.ts +69 -1
- package/dist/kernel/llm-deepseek/lib/types/adapter.js +296 -60
- package/dist/kernel/llm-deepseek/lib/types/file-id.d.ts +19 -0
- package/dist/kernel/llm-deepseek/lib/types/file-id.js +18 -0
- package/dist/kernel/llm-deepseek/lib/types/file-store.d.ts +83 -0
- package/dist/kernel/llm-deepseek/lib/types/file-store.js +261 -0
- package/dist/kernel/llm-deepseek/lib/types/files-api.d.ts +103 -0
- package/dist/kernel/llm-deepseek/lib/types/files-api.js +206 -0
- package/dist/kernel/llm-deepseek/lib/types/index.d.ts +31 -3
- package/dist/kernel/llm-deepseek/lib/types/index.js +139 -3
- package/dist/kernel/llm-deepseek/lib/types/serialize.d.ts +55 -6
- package/dist/kernel/llm-deepseek/lib/types/serialize.js +179 -23
- package/dist/kernel/llm-deepseek/lib/types/types.d.ts +28 -5
- package/dist/kernel/llm-deepseek/lib/types/upload-index.d.ts +68 -0
- package/dist/kernel/llm-deepseek/lib/types/upload-index.js +171 -0
- package/dist/kernel/llm-deepseek/package.json +9 -1
- package/dist/kernel/llm-pi-ai/lib/index.js +1758 -1171
- package/dist/kernel/llm-pi-ai/lib/types/adapter.d.ts +30 -5
- package/dist/kernel/llm-pi-ai/lib/types/adapter.js +43 -23
- package/dist/kernel/llm-pi-ai/lib/types/auth.d.ts +60 -0
- package/dist/kernel/llm-pi-ai/lib/types/auth.js +196 -0
- package/dist/kernel/llm-pi-ai/lib/types/catalog.d.ts +176 -38
- package/dist/kernel/llm-pi-ai/lib/types/catalog.js +245 -50
- package/dist/kernel/llm-pi-ai/lib/types/config.d.ts +37 -5
- package/dist/kernel/llm-pi-ai/lib/types/config.js +67 -2
- package/dist/kernel/llm-pi-ai/lib/types/context.d.ts +8 -3
- package/dist/kernel/llm-pi-ai/lib/types/context.js +60 -16
- package/dist/kernel/llm-pi-ai/lib/types/index.d.ts +1 -0
- package/dist/kernel/llm-pi-ai/lib/types/index.js +21 -19
- package/dist/kernel/llm-pi-ai/lib/types/login.d.ts +21 -0
- package/dist/kernel/llm-pi-ai/lib/types/login.js +154 -0
- package/dist/kernel/llm-pi-ai/lib/types/stream.js +4 -0
- package/dist/kernel/llm-pi-ai/package.json +3 -1
- package/dist/kernel/llm-retry/package.json +1 -1
- package/dist/kernel/lsp/package.json +1 -1
- package/dist/kernel/lsp-stdio/package.json +1 -1
- package/dist/kernel/manifest.json +10 -2
- package/dist/kernel/mcp-client/package.json +1 -1
- package/dist/kernel/message-feedback/package.json +1 -1
- package/dist/kernel/native-command/package.json +1 -1
- package/dist/kernel/node-addon-landlock-run/lib/index.js +1 -1
- package/dist/kernel/node-addon-landlock-run/package.json +4 -2
- package/dist/kernel/output-retention/package.json +1 -1
- package/dist/kernel/permission-presets/lib/index.js +14 -2
- package/dist/kernel/permission-presets/lib/types/index.d.ts +5 -0
- package/dist/kernel/permission-presets/lib/types/index.js +11 -2
- package/dist/kernel/permission-presets/package.json +1 -1
- package/dist/kernel/persona/package.json +1 -1
- package/dist/kernel/plan-mode/lib/index.js +49 -15
- package/dist/kernel/plan-mode/lib/types/index.d.ts +22 -0
- package/dist/kernel/plan-mode/lib/types/index.js +45 -19
- package/dist/kernel/plan-mode/lib/types/types.d.ts +5 -4
- package/dist/kernel/plan-mode/package.json +1 -1
- package/dist/kernel/pwsh-local/package.json +1 -1
- package/dist/kernel/pwsh-sandbox/package.json +1 -1
- package/dist/kernel/repeat-tool-reminder/lib/index.js +1 -1
- package/dist/kernel/repeat-tool-reminder/package.json +1 -1
- package/dist/kernel/sandbox/package.json +1 -1
- package/dist/kernel/sandbox-local/lib/index.js +8 -13
- package/dist/kernel/sandbox-local/lib/types/index.d.ts +1 -3
- package/dist/kernel/sandbox-local/lib/types/index.js +4 -7
- package/dist/kernel/sandbox-local/lib/types/profiles.js +1 -1
- package/dist/kernel/sandbox-local/package.json +1 -1
- package/dist/kernel/sandbox-policy/package.json +1 -1
- package/dist/kernel/sandbox-windows-acl/package.json +1 -1
- package/dist/kernel/schedule/package.json +1 -1
- package/dist/kernel/schemastery/package.json +3 -1
- package/dist/kernel/scope/package.json +1 -1
- package/dist/kernel/sdk-client/lib/index.js +2 -2
- package/dist/kernel/sdk-client/lib/types/api.js +2 -2
- package/dist/kernel/sdk-client/lib/types/types.d.ts +4 -4
- package/dist/kernel/sdk-client/package.json +1 -1
- package/dist/kernel/sdk-jsonrpc-server/lib/index.js +12 -5
- package/dist/kernel/sdk-jsonrpc-server/lib/types/index.js +7 -0
- package/dist/kernel/sdk-jsonrpc-server/lib/types/server.d.ts +2 -1
- package/dist/kernel/sdk-jsonrpc-server/lib/types/server.js +15 -6
- package/dist/kernel/sdk-jsonrpc-server/package.json +2 -1
- package/dist/kernel/sdk-protocol/package.json +1 -1
- package/dist/kernel/session/lib/index.js +4 -0
- package/dist/kernel/session/lib/types/known-event-types.js +4 -0
- package/dist/kernel/session/lib/types/types.d.ts +6 -1
- package/dist/kernel/session/package.json +1 -1
- package/dist/kernel/session-checkpoint-policy/package.json +1 -1
- package/dist/kernel/session-log-export/package.json +2 -5
- package/dist/kernel/session-persistence/lib/index.js +1 -1
- package/dist/kernel/session-persistence/lib/types/coordinator.js +2 -1
- package/dist/kernel/session-persistence/package.json +1 -1
- package/dist/kernel/session-persistence-jsonl/package.json +1 -1
- package/dist/kernel/session-persistence-sqlite/lib/index.js +1105 -375
- package/dist/kernel/session-persistence-sqlite/lib/invariant.js +2 -2
- package/dist/kernel/session-persistence-sqlite/lib/types/codec.d.ts +72 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/codec.js +304 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/compression.d.ts +46 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/compression.js +234 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/index.d.ts +22 -80
- package/dist/kernel/session-persistence-sqlite/lib/types/index.js +27 -278
- package/dist/kernel/session-persistence-sqlite/lib/types/invariant.js +2 -2
- package/dist/kernel/session-persistence-sqlite/lib/types/schema.d.ts +63 -85
- package/dist/kernel/session-persistence-sqlite/lib/types/schema.js +293 -159
- package/dist/kernel/session-persistence-sqlite/lib/types/sql.d.ts +15 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/sql.js +57 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/store.d.ts +66 -0
- package/dist/kernel/session-persistence-sqlite/lib/types/store.js +394 -0
- package/dist/kernel/session-persistence-sqlite/package.json +9 -3
- package/dist/kernel/session-persistence-sqlite/resources/sql/begin-immediate.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/begin.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/commit.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/delete-events-from.sql +2 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/foreign-keys-on.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/insert-event.sql +3 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/insert-persistence-state.sql +2 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-delete.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-persist.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-truncate.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/journal-mode-wal.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/mmap-off.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/rollback.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/schema.sql +30 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-application-id.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-events-from.sql +4 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-events.sql +4 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-mmap-size.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-packed-predecessors.sql +6 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-schema-objects.sql +4 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-session.sql +4 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-sessions.sql +3 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-store-id.sql +3 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-synchronous.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-tail-events.sql +5 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-trusted-schema.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-user-object-count.sql +3 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/select-user-version.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/set-application-id.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/set-user-version-17.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/synchronous-full.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/trusted-schema-off.sql +1 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/update-session-revision.sql +3 -0
- package/dist/kernel/session-persistence-sqlite/resources/sql/upsert-session.sql +13 -0
- package/dist/kernel/session-projection/lib/index.js +55 -30
- package/dist/kernel/session-projection/lib/types/index.d.ts +57 -34
- package/dist/kernel/session-projection/lib/types/index.js +61 -36
- package/dist/kernel/session-projection/lib/types/types.d.ts +11 -4
- package/dist/kernel/session-projection/package.json +1 -1
- package/dist/kernel/session-projection-cache/lib/index.js +1 -1
- package/dist/kernel/session-projection-cache/lib/types/index.d.ts +1 -1
- package/dist/kernel/session-projection-cache/lib/types/index.js +4 -5
- package/dist/kernel/session-projection-cache/package.json +1 -1
- package/dist/kernel/session-query/package.json +1 -1
- package/dist/kernel/session-query-sqlite/package.json +1 -1
- package/dist/kernel/session-reference/lib/index.js +232 -110
- package/dist/kernel/session-reference/lib/typert.host.d.ts +3 -0
- package/dist/kernel/session-reference/lib/typert.host.js +458 -0
- package/dist/kernel/session-reference/lib/typert.remote-client.d.ts +26 -0
- package/dist/kernel/session-reference/lib/typert.remote-client.js +62 -0
- package/dist/kernel/session-reference/lib/types/index.d.ts +25 -5
- package/dist/kernel/session-reference/lib/types/index.js +230 -126
- package/dist/kernel/session-reference/lib/types/types.d.ts +14 -3
- package/dist/kernel/session-reference/lib/types/types.js +6 -1
- package/dist/kernel/session-reference/package.json +23 -3
- package/dist/kernel/session-stats/lib/index.js +31 -12
- package/dist/kernel/session-stats/lib/types/projection.d.ts +64 -2
- package/dist/kernel/session-stats/lib/types/projection.js +31 -12
- package/dist/kernel/session-stats/package.json +1 -1
- package/dist/kernel/session-telemetry/package.json +1 -1
- package/dist/kernel/session-telemetry-otel/package.json +1 -1
- package/dist/kernel/session-title/lib/index.js +6 -2
- package/dist/kernel/session-title/lib/types/index.js +3 -2
- package/dist/kernel/session-title/lib/types/types.d.ts +3 -0
- package/dist/kernel/session-title/package.json +1 -1
- package/dist/kernel/session-title-all-prompts-llm/package.json +1 -1
- package/dist/kernel/session-title-first-prompt-llm/package.json +1 -1
- package/dist/kernel/session-title-llm/package.json +1 -1
- package/dist/kernel/settings/package.json +1 -1
- package/dist/kernel/settings-file/package.json +1 -1
- package/dist/kernel/shell/package.json +1 -1
- package/dist/kernel/shell-env/package.json +1 -1
- package/dist/kernel/skill/package.json +1 -1
- package/dist/kernel/skill-badge/assets/nomix-badge.md +6 -6
- package/dist/kernel/skill-badge/assets/nomix-badge.png +0 -0
- package/dist/kernel/skill-badge/lib/index.js +1 -1
- package/dist/kernel/skill-badge/lib/types/index.js +1 -1
- package/dist/kernel/skill-badge/package.json +1 -1
- package/dist/kernel/skill-filesystem/package.json +1 -1
- package/dist/kernel/spill/package.json +1 -1
- package/dist/kernel/spill-local/package.json +1 -1
- package/dist/kernel/spill-policy/package.json +1 -1
- package/dist/kernel/storage/package.json +1 -1
- package/dist/kernel/storage-domain/package.json +1 -1
- package/dist/kernel/storage-json/package.json +1 -1
- package/dist/kernel/storage-sqlite/package.json +1 -1
- package/dist/kernel/subagent/lib/index.js +123 -20
- package/dist/kernel/subagent/lib/types/continuation.d.ts +21 -2
- package/dist/kernel/subagent/lib/types/continuation.js +58 -7
- package/dist/kernel/subagent/lib/types/index.d.ts +11 -0
- package/dist/kernel/subagent/lib/types/index.js +16 -0
- package/dist/kernel/subagent/lib/types/out-of-process.d.ts +2 -0
- package/dist/kernel/subagent/lib/types/out-of-process.js +31 -1
- package/dist/kernel/subagent/lib/types/projection.d.ts +55 -8
- package/dist/kernel/subagent/lib/types/projection.js +30 -15
- package/dist/kernel/subagent/lib/types/run-settlement.js +10 -3
- package/dist/kernel/subagent/lib/types/types.d.ts +7 -0
- package/dist/kernel/subagent/package.json +1 -1
- package/dist/kernel/subagent-acp/package.json +1 -1
- package/dist/kernel/subagent-claude-code/cordis.patch.yml +6 -0
- package/dist/kernel/subagent-claude-code/lib/index.js +267 -73
- package/dist/kernel/subagent-claude-code/lib/types/index.d.ts +16 -6
- package/dist/kernel/subagent-claude-code/lib/types/index.js +35 -14
- package/dist/kernel/subagent-claude-code/lib/types/process.d.ts +5 -7
- package/dist/kernel/subagent-claude-code/lib/types/process.js +12 -24
- package/dist/kernel/subagent-claude-code/lib/types/run.d.ts +24 -7
- package/dist/kernel/subagent-claude-code/lib/types/run.js +266 -40
- package/dist/kernel/subagent-claude-code/package.json +10 -2
- package/dist/kernel/subagent-codex/cordis.patch.yml +5 -0
- package/dist/kernel/subagent-codex/lib/index.js +482 -91
- package/dist/kernel/subagent-codex/lib/types/index.d.ts +11 -6
- package/dist/kernel/subagent-codex/lib/types/index.js +33 -12
- package/dist/kernel/subagent-codex/lib/types/run.d.ts +17 -8
- package/dist/kernel/subagent-codex/lib/types/run.js +235 -42
- package/dist/kernel/subagent-codex/lib/types/wire.d.ts +49 -1
- package/dist/kernel/subagent-codex/lib/types/wire.js +280 -33
- package/dist/kernel/subagent-codex/package.json +10 -5
- package/dist/kernel/subagent-fork-in-process/package.json +1 -1
- package/dist/kernel/subagent-in-process-driver/package.json +1 -1
- package/dist/kernel/subagent-nomix-sdk/package.json +1 -1
- package/dist/kernel/subagent-spawn-in-process/package.json +1 -1
- package/dist/kernel/subprocess/package.json +1 -1
- package/dist/kernel/subprocess-e2b/package.json +1 -1
- package/dist/kernel/subprocess-local/lib/index.js +303 -1
- package/dist/kernel/subprocess-local/lib/types/process-inspector.js +3 -0
- package/dist/kernel/subprocess-local/lib/types/terminal.d.ts +6 -1
- package/dist/kernel/subprocess-local/lib/types/terminal.js +78 -1
- package/dist/kernel/subprocess-local/lib/types/windows-inspector.d.ts +80 -0
- package/dist/kernel/subprocess-local/lib/types/windows-inspector.js +259 -0
- package/dist/kernel/subprocess-local/package.json +2 -1
- package/dist/kernel/system-prompt/package.json +1 -1
- package/dist/kernel/terminal/package.json +1 -1
- package/dist/kernel/terminal-bash/lib/index.js +85 -20
- package/dist/kernel/terminal-bash/lib/types/config.d.ts +29 -5
- package/dist/kernel/terminal-bash/lib/types/config.js +33 -3
- package/dist/kernel/terminal-bash/lib/types/index.d.ts +7 -0
- package/dist/kernel/terminal-bash/lib/types/index.js +65 -13
- package/dist/kernel/terminal-bash/package.json +2 -1
- package/dist/kernel/time-context/lib/index.js +1 -1
- package/dist/kernel/time-context/lib/invariant.js +1 -1
- package/dist/kernel/time-context/package.json +1 -1
- package/dist/kernel/timeout/package.json +1 -1
- package/dist/kernel/tmux-context/lib/index.js +1 -1
- package/dist/kernel/tmux-context/package.json +1 -1
- package/dist/kernel/token-meter/lib/index.js +77 -21
- package/dist/kernel/token-meter/lib/types/breakdown-projection.d.ts +76 -9
- package/dist/kernel/token-meter/lib/types/breakdown-projection.js +22 -6
- package/dist/kernel/token-meter/lib/types/usage-projection.d.ts +186 -25
- package/dist/kernel/token-meter/lib/types/usage-projection.js +44 -15
- package/dist/kernel/token-meter/package.json +1 -1
- package/dist/kernel/tool-ask-user/package.json +1 -1
- package/dist/kernel/tool-bash/package.json +1 -1
- package/dist/kernel/tool-bash-persistent/lib/index.js +15 -5
- package/dist/kernel/tool-bash-persistent/lib/types/index.js +23 -6
- package/dist/kernel/tool-bash-persistent/package.json +1 -1
- package/dist/kernel/tool-call-timeout-policy/package.json +1 -1
- package/dist/kernel/tool-cordis/lib/index.js +655 -83
- package/dist/kernel/tool-cordis/lib/types/api-catalog.js +439 -41
- package/dist/kernel/tool-cordis/package.json +1 -1
- package/dist/kernel/tool-fs/lib/index.js +80 -52
- package/dist/kernel/tool-fs/lib/types/read-image.d.ts +16 -12
- package/dist/kernel/tool-fs/lib/types/read-image.js +73 -29
- package/dist/kernel/tool-fs/package.json +1 -1
- package/dist/kernel/tool-fs-search/lib/index.js +11 -7
- package/dist/kernel/tool-fs-search/lib/types/search-core.d.ts +5 -6
- package/dist/kernel/tool-fs-search/lib/types/search-core.js +12 -7
- package/dist/kernel/tool-fs-search/package.json +1 -1
- package/dist/kernel/tool-goal/package.json +1 -1
- package/dist/kernel/tool-jobs/package.json +1 -1
- package/dist/kernel/tool-lsp/package.json +1 -1
- package/dist/kernel/tool-pwsh/package.json +1 -1
- package/dist/kernel/tool-pwsh-persistent/lib/index.js +407 -0
- package/dist/kernel/tool-pwsh-persistent/lib/invariant.js +24 -0
- package/dist/kernel/tool-pwsh-persistent/lib/types/index.d.ts +24 -0
- package/dist/kernel/tool-pwsh-persistent/lib/types/index.js +465 -0
- package/dist/kernel/tool-pwsh-persistent/lib/types/invariant.d.ts +16 -0
- package/dist/kernel/tool-pwsh-persistent/lib/types/invariant.js +23 -0
- package/dist/kernel/tool-pwsh-persistent/package.json +62 -0
- package/dist/kernel/tool-ralph/package.json +1 -1
- package/dist/kernel/tool-session-query/package.json +1 -1
- package/dist/kernel/tool-skill/package.json +1 -1
- package/dist/kernel/tool-str-replace-editor/package.json +1 -1
- package/dist/kernel/tool-subagent/lib/index.js +10 -8
- package/dist/kernel/tool-subagent/lib/types/index.js +15 -8
- package/dist/kernel/tool-subagent/package.json +1 -1
- package/dist/kernel/tool-subagent-control/package.json +1 -1
- package/dist/kernel/tool-subagent-report/lib/index.js +1 -1
- package/dist/kernel/tool-subagent-report/lib/types/index.d.ts +3 -3
- package/dist/kernel/tool-subagent-report/lib/types/index.js +1 -1
- package/dist/kernel/tool-subagent-report/package.json +1 -1
- package/dist/kernel/tool-terminal/package.json +1 -1
- package/dist/kernel/tool-todo/lib/index.js +5 -2
- package/dist/kernel/tool-todo/lib/types/index.js +2 -2
- package/dist/kernel/tool-todo/lib/types/types.d.ts +3 -0
- package/dist/kernel/tool-todo/package.json +1 -1
- package/dist/kernel/tool-web/lib/index.js +101 -26
- package/dist/kernel/tool-web/lib/types/index.d.ts +4 -2
- package/dist/kernel/tool-web/lib/types/index.js +5 -3
- package/dist/kernel/tool-web/lib/types/search.d.ts +23 -20
- package/dist/kernel/tool-web/lib/types/search.js +109 -20
- package/dist/kernel/tool-web/package.json +1 -1
- package/dist/kernel/tool-workflow/package.json +1 -1
- package/dist/kernel/tools/package.json +1 -1
- package/dist/kernel/typert-generator/lib/index.js +8 -3
- package/dist/kernel/typert-generator/lib/types/cordis-catalog.js +8 -3
- package/dist/kernel/typert-generator/package.json +1 -1
- package/dist/kernel/typert-loader/package.json +1 -1
- package/dist/kernel/typert-protocol/package.json +1 -1
- package/dist/kernel/typert-registry/package.json +1 -1
- package/dist/kernel/user-approval/package.json +1 -1
- package/dist/kernel/user-questions/package.json +1 -1
- package/dist/kernel/web/lib/types/types.d.ts +4 -3
- package/dist/kernel/web/package.json +1 -1
- package/dist/kernel/web-app/cordis.patch.yml +27 -6
- package/dist/kernel/web-app/lib/index.js +111 -15
- package/dist/kernel/web-app/lib/startup.js +4 -2
- package/dist/kernel/web-app/lib/types/index.d.ts +8 -4
- package/dist/kernel/web-app/lib/types/index.js +116 -23
- package/dist/kernel/web-app/lib/types/startup.d.ts +3 -1
- package/dist/kernel/web-app/lib/types/startup.js +4 -1
- package/dist/kernel/web-app/package.json +12 -2
- package/dist/kernel/web-fetch-http/lib/index.js +1 -1
- package/dist/kernel/web-fetch-http/lib/types/index.d.ts +1 -1
- package/dist/kernel/web-fetch-http/lib/types/index.js +1 -1
- package/dist/kernel/web-fetch-http/package.json +1 -1
- package/dist/kernel/web-frontend/dist/assets/index-BnapMmQ_.css +1 -0
- package/dist/kernel/web-frontend/dist/assets/index-Dx7Ws_OC.js +96 -0
- package/dist/kernel/web-frontend/dist/assets/langs/{php-D-uCvoST.js → php-DDkx9sim.js} +2 -2
- package/dist/{assets/web/assets/langs/ruby-DEItuUFs.js → kernel/web-frontend/dist/assets/langs/ruby-DCxyoPen.js} +2 -2
- package/dist/kernel/web-frontend/dist/assets/{vendor-Cjbwl5VI.js → vendor-D22_Mp1f.js} +2 -2
- package/dist/kernel/web-frontend/dist/favicon.svg +8 -0
- package/dist/kernel/web-frontend/dist/index.html +5 -5
- package/dist/kernel/web-frontend/package.json +5 -8
- package/dist/kernel/web-search-deepseek/lib/index.js +1 -1
- package/dist/kernel/web-search-deepseek/lib/types/provider.js +1 -1
- package/dist/kernel/web-search-deepseek/package.json +1 -1
- package/dist/kernel/web-search-exa/lib/index.js +1 -1
- package/dist/kernel/web-search-exa/lib/types/provider.js +1 -1
- package/dist/kernel/web-search-exa/package.json +1 -1
- package/dist/kernel/web-search-perplexity/lib/index.js +1 -1
- package/dist/kernel/web-search-perplexity/lib/types/provider.js +1 -1
- package/dist/kernel/web-search-perplexity/package.json +1 -1
- package/dist/kernel/workflow/package.json +1 -1
- package/dist/kernel/workflow-worker-thread/package.json +1 -1
- package/dist/kernel/workspace/package.json +1 -1
- package/dist/plugins/manifest.json +50 -10
- package/dist/runtime/index.js +0 -2
- package/package.json +8 -6
- package/dist/assets/web/assets/index-B_fSXASy.css +0 -1
- package/dist/assets/web/assets/index-B_sZ-Gsu.js +0 -112
- package/dist/cli/builtin-registry.d.ts +0 -5
- package/dist/cli/profile-boot-CeU09iFc.js +0 -2
- package/dist/kernel/app-boot/lib/types/legacy-branding.d.ts +0 -6
- package/dist/kernel/app-boot/lib/types/legacy-branding.js +0 -18
- package/dist/kernel/client-schema-form/lib/index.js +0 -137
- package/dist/kernel/client-schema-form/lib/types/index.d.ts +0 -10
- package/dist/kernel/client-schema-form/lib/types/index.js +0 -9
- package/dist/kernel/client-schema-form/lib/types/model.d.ts +0 -66
- package/dist/kernel/client-schema-form/lib/types/model.js +0 -153
- package/dist/kernel/client-ui-subagent/lib/types/client/SubagentCatalogAction.d.ts +0 -18
- package/dist/kernel/client-ui-theme/lib/styles/base.css +0 -15
- package/dist/kernel/client-ui-theme/lib/styles/design-platform.css +0 -338
- package/dist/kernel/client-ui-theme/lib/styles/gradient-shadow-text.css +0 -232
- package/dist/kernel/client-ui-theme/lib/styles/scrollbar.css +0 -90
- package/dist/kernel/client-ui-theme/lib/styles/shiki.css +0 -31
- package/dist/kernel/client-web/lib/types/AppRoot.d.ts +0 -16
- package/dist/kernel/client-web/lib/types/AppRoot.js +0 -27
- package/dist/kernel/client-web/lib/types/DocumentTitle.js +0 -16
- package/dist/kernel/client-web/lib/types/app-shell.d.ts +0 -28
- package/dist/kernel/client-web/lib/types/app-shell.js +0 -27
- package/dist/kernel/client-web/lib/types/app.d.ts +0 -21
- package/dist/kernel/client-web-react/lib/index.js +0 -810
- package/dist/kernel/client-web-react/lib/types/index.d.ts +0 -16
- package/dist/kernel/client-web-react/lib/types/index.js +0 -6
- package/dist/kernel/client-web-react/lib/types/use-invoke.d.ts +0 -9
- package/dist/kernel/client-web-react/lib/types/use-invoke.js +0 -52
- package/dist/kernel/skill-badge/assets/nomix-badge.svg +0 -8
- package/dist/kernel/web-frontend/dist/assets/index-B_fSXASy.css +0 -1
- package/dist/kernel/web-frontend/dist/assets/index-B_sZ-Gsu.js +0 -112
- /package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/bind.js +0 -0
- /package/dist/kernel/{client-web-react/lib/types → client-ui-renderer/lib/types/client}/session-provider.js +0 -0
|
@@ -39,11 +39,11 @@ import z from '../../../schemastery/lib/index.mjs';
|
|
|
39
39
|
import { watch as chokidarWatch } from 'chokidar';
|
|
40
40
|
import { mkdir, readFile, stat } from 'node:fs/promises';
|
|
41
41
|
import { dirname, join, resolve } from 'node:path';
|
|
42
|
-
import { Document, parseDocument } from 'yaml';
|
|
42
|
+
import { Document, isMap, isScalar, parseDocument } from 'yaml';
|
|
43
43
|
import { withFileLock, writeFileAtomic } from '../../../atomic-write/lib/index.js';
|
|
44
44
|
import { canonicalizeWatchPath, resolveNomixHome } from '../../../home-paths/lib/index.js';
|
|
45
45
|
import { launchEnvironmentOf } from '../../../launch-environment/lib/index.js';
|
|
46
|
-
import { CredentialProvider, credentialRef } from '../../../credentials/lib/index.js';
|
|
46
|
+
import { CredentialProvider, credentialRef, parseCredentialKey } from '../../../credentials/lib/index.js';
|
|
47
47
|
/** Basename of the credentials document inside the harness home. */
|
|
48
48
|
export const CREDENTIALS_FILENAME = '.credentials.yaml';
|
|
49
49
|
/**
|
|
@@ -61,6 +61,20 @@ export function resolveSpec(config) {
|
|
|
61
61
|
}
|
|
62
62
|
/** Permission bits outside the owner; a credentials document must have none of them. */
|
|
63
63
|
const GROUP_OTHER_BITS = 0o077;
|
|
64
|
+
/**
|
|
65
|
+
* How long a record write waits for the cross-process writer lock. A record
|
|
66
|
+
* mutation runs its caller's decision while holding the lock, and for the
|
|
67
|
+
* operation this half exists to serve — an owner refreshing an expired token —
|
|
68
|
+
* that decision includes a network round trip. The file-work default would
|
|
69
|
+
* fail every other writer of this document for its duration. A contender's
|
|
70
|
+
* wait is sized by the longest holder it can meet, and refs and records share
|
|
71
|
+
* one file and one lock, so every writer of this document — reference writes
|
|
72
|
+
* and record deletes included — waits this long, not only the mutation that
|
|
73
|
+
* holds it. Like the retry cadence in `nomix-atomic-write`, this is a
|
|
74
|
+
* robustness bound of the write protocol rather than a deployment choice: it
|
|
75
|
+
* is sized by what a provider request costs, which no deployment varies.
|
|
76
|
+
*/
|
|
77
|
+
const DOCUMENT_LOCK_WAIT_MS = 30_000;
|
|
64
78
|
/**
|
|
65
79
|
* Reject a credentials document other OS users can read, before its contents
|
|
66
80
|
* are read at all. The provider creates and replaces the file at `0600`, but a
|
|
@@ -112,17 +126,18 @@ function describeYamlError(error) {
|
|
|
112
126
|
const where = at === undefined ? '' : ` at line ${String(at.line)}, column ${String(at.col)}`;
|
|
113
127
|
return `${error.code}${where}`;
|
|
114
128
|
}
|
|
129
|
+
/** The document layout this build reads and writes. */
|
|
130
|
+
export const DOCUMENT_VERSION = 1;
|
|
115
131
|
/**
|
|
116
|
-
* Parse one credentials document
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* empty store.
|
|
132
|
+
* Parse one credentials document. Everything is rejected rather than skipped —
|
|
133
|
+
* an unversioned root, an unknown top-level key, a key that is not addressable,
|
|
134
|
+
* a wrong-typed value, an unknown record tag or field — because this file holds
|
|
135
|
+
* nothing but credentials and a silently ignored entry reads as "the credential
|
|
136
|
+
* I stored has no effect". Duplicate keys surface as parser errors. An empty
|
|
137
|
+
* document is an empty store and needs no version.
|
|
123
138
|
* @param text - the document's text.
|
|
124
139
|
* @param filename - absolute path, quoted in errors.
|
|
125
|
-
* @returns the parsed
|
|
140
|
+
* @returns the parsed references and records.
|
|
126
141
|
*/
|
|
127
142
|
export function parseCredentialsDocument(text, filename) {
|
|
128
143
|
// `prettyErrors` is on only for `linePos`; `error.message` is never used,
|
|
@@ -136,10 +151,78 @@ export function parseCredentialsDocument(text, filename) {
|
|
|
136
151
|
}
|
|
137
152
|
const root = document.toJS() ?? {};
|
|
138
153
|
if (typeof root !== 'object' || root === null || Array.isArray(root)) {
|
|
139
|
-
throw new TypeError(`credentials-local: ${filename} must be a mapping
|
|
154
|
+
throw new TypeError(`credentials-local: ${filename} must be a mapping`);
|
|
155
|
+
}
|
|
156
|
+
const fields = root;
|
|
157
|
+
const keys = Object.keys(fields);
|
|
158
|
+
// An empty (or comment-only) document is the empty store and needs no
|
|
159
|
+
// version: there is nothing in it a later layout could have meant.
|
|
160
|
+
if (keys.length === 0)
|
|
161
|
+
return { refs: new Map(), records: new Map() };
|
|
162
|
+
if (!('version' in fields)) {
|
|
163
|
+
throw new Error(`credentials-local: ${filename} uses the pre-release flat layout. Add \`version: ${DOCUMENT_VERSION}\``
|
|
164
|
+
+ ` and nest the existing ${keys.length} ${keys.length === 1 ? 'entry' : 'entries'} under \`refs:\`.`
|
|
165
|
+
+ ' No values need to change.');
|
|
166
|
+
}
|
|
167
|
+
if (fields['version'] !== DOCUMENT_VERSION) {
|
|
168
|
+
throw new Error(`credentials-local: ${filename} declares version ${JSON.stringify(fields['version'])};`
|
|
169
|
+
+ ` this build reads version ${DOCUMENT_VERSION}`);
|
|
170
|
+
}
|
|
171
|
+
for (const key of keys) {
|
|
172
|
+
if (key !== 'version' && key !== 'refs' && key !== 'records') {
|
|
173
|
+
throw new Error(`credentials-local: unknown top-level key "${key}" in ${filename}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return { refs: parseRefs(fields['refs'], filename), records: parseRecords(fields['records'], filename) };
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Render the version-1 layout for a pre-release flat document, or `undefined`
|
|
180
|
+
* for anything else. The flat layout is recognized exactly — a non-empty
|
|
181
|
+
* top-level mapping of addressable reference names to non-empty string
|
|
182
|
+
* scalars, with no `version` key and no document directives — and the rewrite
|
|
183
|
+
* nests the original lines verbatim under `refs:` at two spaces' indent, so
|
|
184
|
+
* comments, blank lines, and each value's spelling survive byte for byte.
|
|
185
|
+
* Anything the recognizer declines keeps {@link parseCredentialsDocument}'s
|
|
186
|
+
* loud rejection: a document this build cannot prove it understands is never
|
|
187
|
+
* rewritten. Remove with the pre-release stance at the first tagged release.
|
|
188
|
+
* @param text - the document's text.
|
|
189
|
+
* @returns the migrated text, or `undefined` when the text is not the recognized flat layout.
|
|
190
|
+
*/
|
|
191
|
+
export function renderFlatLayoutMigration(text) {
|
|
192
|
+
const document = parseDocument(text, { prettyErrors: true, uniqueKeys: true });
|
|
193
|
+
if (document.errors.length > 0)
|
|
194
|
+
return undefined;
|
|
195
|
+
const flat = document.contents;
|
|
196
|
+
if (!isMap(flat) || flat.items.length === 0)
|
|
197
|
+
return undefined;
|
|
198
|
+
for (const line of text.split('\n')) {
|
|
199
|
+
// A directive or document marker would not survive being indented into
|
|
200
|
+
// the `refs:` block; no shipped writer ever emitted one here.
|
|
201
|
+
if (/^(%|---|\.\.\.)/.test(line))
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
for (const pair of flat.items) {
|
|
205
|
+
if (!isScalar(pair.key) || typeof pair.key.value !== 'string' || pair.key.value === 'version')
|
|
206
|
+
return undefined;
|
|
207
|
+
try {
|
|
208
|
+
credentialRef(pair.key.value);
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// Only credentialRef's rejection of a non-POSIX name lands here; the
|
|
212
|
+
// flat reader refused such a key too, so this is not the recognized
|
|
213
|
+
// layout and the loud rejection stands.
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
216
|
+
if (!isScalar(pair.value) || typeof pair.value.value !== 'string' || pair.value.value.length === 0)
|
|
217
|
+
return undefined;
|
|
140
218
|
}
|
|
219
|
+
const body = text.split('\n').map(line => (line.length === 0 ? line : ` ${line}`)).join('\n');
|
|
220
|
+
return `version: ${DOCUMENT_VERSION}\nrefs:\n${body}${text.endsWith('\n') ? '' : '\n'}`;
|
|
221
|
+
}
|
|
222
|
+
/** Admit a `refs` section: POSIX-identifier keys over non-empty string values. */
|
|
223
|
+
function parseRefs(section, filename) {
|
|
141
224
|
const entries = new Map();
|
|
142
|
-
for (const [key, value] of Object.entries(
|
|
225
|
+
for (const [key, value] of Object.entries(asSection(section, 'refs', filename))) {
|
|
143
226
|
// credentialRef throws on anything that is not a POSIX identifier, which
|
|
144
227
|
// is exactly the constraint a stored reference must satisfy to be
|
|
145
228
|
// addressable through the seam.
|
|
@@ -156,25 +239,230 @@ export function parseCredentialsDocument(text, filename) {
|
|
|
156
239
|
}
|
|
157
240
|
return entries;
|
|
158
241
|
}
|
|
242
|
+
/** Admit a `records` section: `<scope>/<id>` keys over tagged record mappings. */
|
|
243
|
+
function parseRecords(section, filename) {
|
|
244
|
+
const entries = new Map();
|
|
245
|
+
for (const [key, value] of Object.entries(asSection(section, 'records', filename))) {
|
|
246
|
+
parseCredentialKey(key);
|
|
247
|
+
entries.set(key, parseRecord(key, value, filename));
|
|
248
|
+
}
|
|
249
|
+
return entries;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Refuse an api-key record the read path could not admit, before it is
|
|
253
|
+
* rendered: an empty key, an env name outside the reference grammar, or an
|
|
254
|
+
* empty env value would persist a document `parseRecord` rejects at the next
|
|
255
|
+
* boot — a durable-boundary write is validated where it is written.
|
|
256
|
+
* @param key - the record's credential key, for the failure message.
|
|
257
|
+
* @param record - the api-key record a mutation returned.
|
|
258
|
+
*/
|
|
259
|
+
function assertStorableApiKey(key, record) {
|
|
260
|
+
if (record.key !== undefined && record.key.length === 0) {
|
|
261
|
+
throw new TypeError(`credentials-local: record "${key}" has an empty key; omit the field instead`);
|
|
262
|
+
}
|
|
263
|
+
for (const [name, value] of Object.entries(record.env ?? {})) {
|
|
264
|
+
credentialRef(name);
|
|
265
|
+
if (value.length === 0) {
|
|
266
|
+
throw new TypeError(`credentials-local: record "${key}" env "${name}" must be a non-empty string`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/** One section of the document as a plain mapping; absent and null both mean empty. */
|
|
271
|
+
function asSection(section, name, filename) {
|
|
272
|
+
if (section === undefined || section === null)
|
|
273
|
+
return {};
|
|
274
|
+
if (typeof section !== 'object' || Array.isArray(section)) {
|
|
275
|
+
throw new TypeError(`credentials-local: "${name}" in ${filename} must be a mapping`);
|
|
276
|
+
}
|
|
277
|
+
return section;
|
|
278
|
+
}
|
|
279
|
+
/** Admit one record entry, rejecting an unknown tag or field rather than dropping it. */
|
|
280
|
+
function parseRecord(key, value, filename) {
|
|
281
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
282
|
+
throw new TypeError(`credentials-local: record "${key}" in ${filename} must be a mapping`);
|
|
283
|
+
}
|
|
284
|
+
const fields = value;
|
|
285
|
+
const kind = fields['kind'];
|
|
286
|
+
if (kind === 'api-key') {
|
|
287
|
+
assertFields(key, fields, ['kind', 'key', 'env'], filename);
|
|
288
|
+
const apiKey = fields['key'];
|
|
289
|
+
if (apiKey !== undefined && (typeof apiKey !== 'string' || apiKey.length === 0)) {
|
|
290
|
+
throw new TypeError(`credentials-local: record "${key}" in ${filename} has a non-string or empty key`);
|
|
291
|
+
}
|
|
292
|
+
const env = parseRecordEnv(key, fields['env'], filename);
|
|
293
|
+
return {
|
|
294
|
+
kind: 'api-key',
|
|
295
|
+
...apiKey === undefined ? {} : { key: apiKey },
|
|
296
|
+
...env === undefined ? {} : { env },
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
if (kind === 'grant') {
|
|
300
|
+
assertFields(key, fields, ['kind', 'payload'], filename);
|
|
301
|
+
if (!('payload' in fields)) {
|
|
302
|
+
throw new Error(`credentials-local: record "${key}" in ${filename} has no payload`);
|
|
303
|
+
}
|
|
304
|
+
assertJsonValue(`record "${key}" payload in ${filename}`, fields['payload'], new Set());
|
|
305
|
+
return { kind: 'grant', payload: fields['payload'] };
|
|
306
|
+
}
|
|
307
|
+
if (kind === undefined)
|
|
308
|
+
throw new Error(`credentials-local: record "${key}" in ${filename} has no kind`);
|
|
309
|
+
throw new Error(`credentials-local: record "${key}" in ${filename} has unknown kind ${JSON.stringify(kind)}`);
|
|
310
|
+
}
|
|
311
|
+
/** Reject a field the tag does not define, so a typo is not silently dropped. */
|
|
312
|
+
function assertFields(key, fields, allowed, filename) {
|
|
313
|
+
for (const field of Object.keys(fields)) {
|
|
314
|
+
if (!allowed.includes(field)) {
|
|
315
|
+
throw new Error(`credentials-local: record "${key}" in ${filename} has unknown field "${field}"`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/** Admit an api-key record's provider environment: POSIX names over non-empty strings. */
|
|
320
|
+
function parseRecordEnv(key, env, filename) {
|
|
321
|
+
if (env === undefined)
|
|
322
|
+
return undefined;
|
|
323
|
+
if (typeof env !== 'object' || env === null || Array.isArray(env)) {
|
|
324
|
+
throw new TypeError(`credentials-local: record "${key}" in ${filename} has a non-mapping env`);
|
|
325
|
+
}
|
|
326
|
+
const parsed = {};
|
|
327
|
+
for (const [name, value] of Object.entries(env)) {
|
|
328
|
+
credentialRef(name);
|
|
329
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
330
|
+
throw new TypeError(`credentials-local: record "${key}" env "${name}" in ${filename} must be a non-empty string`);
|
|
331
|
+
}
|
|
332
|
+
parsed[name] = value;
|
|
333
|
+
}
|
|
334
|
+
return parsed;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Reject a payload that cannot survive a JSON round trip, on the way in and on
|
|
338
|
+
* the way out. The seam promises owners their payload comes back exactly as
|
|
339
|
+
* written, and both directions can break that: a document may spell `.inf` or
|
|
340
|
+
* an alias cycle, and an owner may hand over a `Date`, a class instance, or a
|
|
341
|
+
* `bigint` that this document has no faithful spelling for. Neither the value
|
|
342
|
+
* nor any nested value is quoted in a diagnostic.
|
|
343
|
+
* @param where - the subject named in a diagnostic, already free of any value.
|
|
344
|
+
* @param value - the payload or nested value to admit.
|
|
345
|
+
* @param seen - objects on the current path, for cycle detection.
|
|
346
|
+
* @throws TypeError naming `where` when the value cannot round-trip.
|
|
347
|
+
*/
|
|
348
|
+
function assertJsonValue(where, value, seen) {
|
|
349
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
350
|
+
return;
|
|
351
|
+
if (typeof value === 'number') {
|
|
352
|
+
if (Number.isFinite(value))
|
|
353
|
+
return;
|
|
354
|
+
throw new TypeError(`credentials-local: ${where} holds a non-finite number`);
|
|
355
|
+
}
|
|
356
|
+
if (typeof value === 'object') {
|
|
357
|
+
if (seen.has(value))
|
|
358
|
+
throw new TypeError(`credentials-local: ${where} is cyclic`);
|
|
359
|
+
if (Object.getPrototypeOf(value) === Object.prototype || Array.isArray(value)) {
|
|
360
|
+
seen.add(value);
|
|
361
|
+
for (const nested of Object.values(value))
|
|
362
|
+
assertJsonValue(where, nested, seen);
|
|
363
|
+
seen.delete(value);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
throw new TypeError(`credentials-local: ${where} holds a value JSON cannot represent`);
|
|
368
|
+
}
|
|
159
369
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
370
|
+
* The comment-preserving mutable tree one edit renders from. Editing the
|
|
371
|
+
* parsed document rather than rebuilding it keeps comments and the formatting
|
|
372
|
+
* of every untouched entry; an absent document starts a fresh one.
|
|
163
373
|
* @param text - the current document text, `undefined` while the file is absent.
|
|
164
|
-
* @
|
|
165
|
-
* @param value - the new value, or `undefined` to delete the key.
|
|
166
|
-
* @returns the text to persist.
|
|
374
|
+
* @returns the tree to edit, carrying this build's version stamp.
|
|
167
375
|
*/
|
|
168
|
-
function
|
|
376
|
+
function mutableDocument(text) {
|
|
169
377
|
// `text` only ever caches content that parsed successfully, so this re-parse
|
|
170
378
|
// for the mutable comment-preserving tree cannot fail.
|
|
171
379
|
const document = text === undefined ? new Document({}) : parseDocument(text);
|
|
380
|
+
// Stamped on every edit so a document this provider creates is readable by
|
|
381
|
+
// the same parser that admitted the one it edits; an existing stamp is
|
|
382
|
+
// rewritten to the identical value.
|
|
383
|
+
document.setIn(['version'], DOCUMENT_VERSION);
|
|
384
|
+
return document;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Render the next document text with one reference set or deleted.
|
|
388
|
+
* @param text - the current document text, `undefined` while the file is absent.
|
|
389
|
+
* @param ref - the reference to write.
|
|
390
|
+
* @param value - the new value, or `undefined` to delete the key.
|
|
391
|
+
* @returns the text to persist.
|
|
392
|
+
*/
|
|
393
|
+
function renderRef(text, ref, value) {
|
|
394
|
+
const document = mutableDocument(text);
|
|
172
395
|
if (value === undefined)
|
|
173
|
-
document
|
|
396
|
+
deleteSectionEntry(document, 'refs', ref);
|
|
397
|
+
else
|
|
398
|
+
document.setIn(['refs', ref], value);
|
|
399
|
+
return document.toString();
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Render the next document text with one record written or deleted. The record
|
|
403
|
+
* node is replaced wholesale rather than edited field by field: records are
|
|
404
|
+
* machine-written, so there is no hand formatting inside one to preserve.
|
|
405
|
+
* @param text - the current document text, `undefined` while the file is absent.
|
|
406
|
+
* @param key - the record to write.
|
|
407
|
+
* @param record - the new record, or `undefined` to delete it.
|
|
408
|
+
* @returns the text to persist.
|
|
409
|
+
*/
|
|
410
|
+
function renderRecord(text, key, record) {
|
|
411
|
+
const document = mutableDocument(text);
|
|
412
|
+
if (record === undefined)
|
|
413
|
+
deleteSectionEntry(document, 'records', key);
|
|
174
414
|
else
|
|
175
|
-
document.setIn([
|
|
415
|
+
document.setIn(['records', key], record);
|
|
176
416
|
return document.toString();
|
|
177
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Remove one entry from a section, taking its annotation with it. A comment
|
|
420
|
+
* block written above a section's first entry annotates that entry, but the
|
|
421
|
+
* parser attaches it to the section's map rather than to the pair — leaving it
|
|
422
|
+
* behind would move it onto whichever entry became first, which reads as an
|
|
423
|
+
* annotation of a credential nobody wrote it for.
|
|
424
|
+
* @param document - the mutable tree being edited.
|
|
425
|
+
* @param section - the section holding the entry.
|
|
426
|
+
* @param key - the entry to remove.
|
|
427
|
+
*/
|
|
428
|
+
function deleteSectionEntry(document, section, key) {
|
|
429
|
+
const map = document.get(section, true);
|
|
430
|
+
/* v8 ignore next -- both callers render a delete only for an entry they just
|
|
431
|
+
found in the parsed snapshot, so the section it lives in is always a map;
|
|
432
|
+
the guard is what narrows `get`'s `unknown`. */
|
|
433
|
+
if (isMap(map)) {
|
|
434
|
+
const first = map.items[0];
|
|
435
|
+
/* v8 ignore next -- a map that holds the entry has a first item, and the
|
|
436
|
+
parser admits only scalar keys, so only the identity test can be false. */
|
|
437
|
+
if (first !== undefined && isScalar(first.key) && first.key.value === key) {
|
|
438
|
+
map.commentBefore = null;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
document.deleteIn([section, key]);
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Structural equality over two admitted JSON values. Records reach this after
|
|
445
|
+
* {@link assertJsonValue}, so the walk meets only JSON shapes; key order is
|
|
446
|
+
* ignored because an external editor may reorder a record's fields without
|
|
447
|
+
* changing what it stores.
|
|
448
|
+
* @param left - one value.
|
|
449
|
+
* @param right - the other value.
|
|
450
|
+
* @returns whether the two carry the same JSON content.
|
|
451
|
+
*/
|
|
452
|
+
function sameJsonValue(left, right) {
|
|
453
|
+
if (left === right)
|
|
454
|
+
return true;
|
|
455
|
+
if (typeof left !== 'object' || typeof right !== 'object' || left === null || right === null)
|
|
456
|
+
return false;
|
|
457
|
+
if (Array.isArray(left) !== Array.isArray(right))
|
|
458
|
+
return false;
|
|
459
|
+
const leftKeys = Object.keys(left);
|
|
460
|
+
const rightKeys = Object.keys(right);
|
|
461
|
+
if (leftKeys.length !== rightKeys.length)
|
|
462
|
+
return false;
|
|
463
|
+
return leftKeys.every(key => key in right
|
|
464
|
+
&& sameJsonValue(left[key], right[key]));
|
|
465
|
+
}
|
|
178
466
|
/** File-backed credentials provider (`$NOMIX_HOME/.credentials.yaml`). */
|
|
179
467
|
export class LocalCredentialProvider extends CredentialProvider {
|
|
180
468
|
config;
|
|
@@ -194,8 +482,10 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
194
482
|
* which is also the self-write suppression.
|
|
195
483
|
*/
|
|
196
484
|
text;
|
|
197
|
-
/** Parsed
|
|
485
|
+
/** Parsed reference snapshot; replaced wholesale on every reload. */
|
|
198
486
|
values = new Map();
|
|
487
|
+
/** Parsed record snapshot; replaced wholesale on every reload. */
|
|
488
|
+
records = new Map();
|
|
199
489
|
/**
|
|
200
490
|
* Single exclusive operation chain: watcher reloads and line edits run one
|
|
201
491
|
* at a time in queue order (settled tail), so an edit can never render from
|
|
@@ -312,6 +602,81 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
312
602
|
async unset(ref) {
|
|
313
603
|
await this.write(ref, undefined);
|
|
314
604
|
}
|
|
605
|
+
readRecord(key) {
|
|
606
|
+
return Promise.resolve(this.records.get(key));
|
|
607
|
+
}
|
|
608
|
+
describeRecord(key) {
|
|
609
|
+
const stored = this.records.get(key);
|
|
610
|
+
// Presence is the whole fact here: no layer ranks above this document for
|
|
611
|
+
// a record, so nothing can shadow one, and an api-key record carrying
|
|
612
|
+
// neither a key nor environment values is a deliberate statement rather
|
|
613
|
+
// than a blank.
|
|
614
|
+
if (stored === undefined)
|
|
615
|
+
return Promise.resolve({ configured: false, writable: true });
|
|
616
|
+
return Promise.resolve({ configured: true, kind: stored.kind, writable: true });
|
|
617
|
+
}
|
|
618
|
+
listRecords() {
|
|
619
|
+
return Promise.resolve([...this.records].map(([key, record]) => ({
|
|
620
|
+
// The parser has already proven every stored key addressable.
|
|
621
|
+
key: parseCredentialKey(key),
|
|
622
|
+
kind: record.kind,
|
|
623
|
+
})));
|
|
624
|
+
}
|
|
625
|
+
async modifyRecord(key, mutate) {
|
|
626
|
+
if (this.isClosed())
|
|
627
|
+
throw new Error(`credentials-local is disposed: cannot modify "${key}"`);
|
|
628
|
+
return this.enqueue(async () => {
|
|
629
|
+
if (this.isClosed()) {
|
|
630
|
+
throw new Error(`credentials-local was disposed before the queued "${key}" modify ran`);
|
|
631
|
+
}
|
|
632
|
+
await mkdir(dirname(this.spec.filename), { recursive: true, mode: 0o700 });
|
|
633
|
+
return withFileLock(this.spec.filename, async () => {
|
|
634
|
+
// Read-modify-write: `mutate` must decide against the record as it
|
|
635
|
+
// stands now, not as this process last saw it — another process may
|
|
636
|
+
// have rotated it since.
|
|
637
|
+
await this.reconcileFromDisk();
|
|
638
|
+
const current = this.records.get(key);
|
|
639
|
+
const next = await mutate(current);
|
|
640
|
+
if (next === undefined)
|
|
641
|
+
return current;
|
|
642
|
+
// Admitted before it is rendered: what the read path would refuse is
|
|
643
|
+
// refused here first, so a caller can never persist a document the
|
|
644
|
+
// next boot rejects, and a value refused here has not been stored.
|
|
645
|
+
if (next.kind === 'grant')
|
|
646
|
+
assertJsonValue(`record "${key}" payload`, next.payload, new Set());
|
|
647
|
+
else
|
|
648
|
+
assertStorableApiKey(key, next);
|
|
649
|
+
const nextText = renderRecord(this.text, key, next);
|
|
650
|
+
// 0600: a document holding secrets is never world-readable.
|
|
651
|
+
await writeFileAtomic(this.spec.filename, nextText, { mode: 0o600, dirMode: 0o700 });
|
|
652
|
+
this.text = nextText;
|
|
653
|
+
this.records.set(key, next);
|
|
654
|
+
// After the commit, on the same terms as a reference write.
|
|
655
|
+
this.notifyRecordUpdated(key);
|
|
656
|
+
return next;
|
|
657
|
+
}, { waitMs: DOCUMENT_LOCK_WAIT_MS });
|
|
658
|
+
});
|
|
659
|
+
}
|
|
660
|
+
async deleteRecord(key) {
|
|
661
|
+
if (this.isClosed())
|
|
662
|
+
throw new Error(`credentials-local is disposed: cannot delete "${key}"`);
|
|
663
|
+
await this.enqueue(async () => {
|
|
664
|
+
if (this.isClosed()) {
|
|
665
|
+
throw new Error(`credentials-local was disposed before the queued "${key}" delete ran`);
|
|
666
|
+
}
|
|
667
|
+
await mkdir(dirname(this.spec.filename), { recursive: true, mode: 0o700 });
|
|
668
|
+
await withFileLock(this.spec.filename, async () => {
|
|
669
|
+
await this.reconcileFromDisk();
|
|
670
|
+
if (!this.records.has(key))
|
|
671
|
+
return;
|
|
672
|
+
const nextText = renderRecord(this.text, key, undefined);
|
|
673
|
+
await writeFileAtomic(this.spec.filename, nextText, { mode: 0o600, dirMode: 0o700 });
|
|
674
|
+
this.text = nextText;
|
|
675
|
+
this.records.delete(key);
|
|
676
|
+
this.notifyRecordUpdated(key);
|
|
677
|
+
}, { waitMs: DOCUMENT_LOCK_WAIT_MS });
|
|
678
|
+
});
|
|
679
|
+
}
|
|
315
680
|
/* jscpd:ignore-start -- the operation-chain and reload lifecycle is the same
|
|
316
681
|
reviewed contract as settings-file, deliberately mirrored (prefer symmetry
|
|
317
682
|
for parallel values); the two providers own different documents and
|
|
@@ -359,7 +724,7 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
359
724
|
const existing = this.values.get(ref);
|
|
360
725
|
if (value === undefined && existing === undefined)
|
|
361
726
|
return;
|
|
362
|
-
const nextText =
|
|
727
|
+
const nextText = renderRef(this.text, ref, value);
|
|
363
728
|
// 0600: a document holding secrets is never world-readable.
|
|
364
729
|
await writeFileAtomic(this.spec.filename, nextText, { mode: 0o600, dirMode: 0o700 });
|
|
365
730
|
this.text = nextText;
|
|
@@ -370,7 +735,7 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
370
735
|
// After the commit: a broken observer must never make the durable
|
|
371
736
|
// write look failed (an INVARIANT failure still rethrows).
|
|
372
737
|
this.notifyUpdated(ref);
|
|
373
|
-
});
|
|
738
|
+
}, { waitMs: DOCUMENT_LOCK_WAIT_MS });
|
|
374
739
|
});
|
|
375
740
|
}
|
|
376
741
|
/**
|
|
@@ -387,7 +752,10 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
387
752
|
/**
|
|
388
753
|
* Boot read: an absent file is an empty store; an invalid one fails the
|
|
389
754
|
* plugin's activation, because a credentials document that exists but
|
|
390
|
-
* cannot be trusted must never be treated as "no credentials stored".
|
|
755
|
+
* cannot be trusted must never be treated as "no credentials stored". The
|
|
756
|
+
* one exception is the recognized pre-release flat layout, which is
|
|
757
|
+
* upgraded in place first — a key stored by an earlier build must survive
|
|
758
|
+
* the layout change without a hand edit.
|
|
391
759
|
*/
|
|
392
760
|
async loadInitial() {
|
|
393
761
|
await assertOwnerOnly(this.spec.filename);
|
|
@@ -400,9 +768,40 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
400
768
|
throw error;
|
|
401
769
|
return;
|
|
402
770
|
}
|
|
403
|
-
|
|
771
|
+
if (renderFlatLayoutMigration(text) !== undefined)
|
|
772
|
+
text = await this.migrateFlatDocument();
|
|
773
|
+
const document = parseCredentialsDocument(text, this.spec.filename);
|
|
774
|
+
this.values = document.refs;
|
|
775
|
+
this.records = document.records;
|
|
404
776
|
this.text = text;
|
|
405
777
|
}
|
|
778
|
+
/**
|
|
779
|
+
* One-shot upgrade of the recognized pre-release flat layout, before the
|
|
780
|
+
* watcher exists. The rewrite runs under the document's writer lock and
|
|
781
|
+
* re-reads first — a concurrent boot may have migrated already — and
|
|
782
|
+
* whatever the re-read finds that is not the flat layout is returned
|
|
783
|
+
* untouched for the ordinary parse. Values are carried verbatim; only the
|
|
784
|
+
* enclosing layout changes. Remove with the pre-release stance at the
|
|
785
|
+
* first tagged release.
|
|
786
|
+
* @returns the document text this boot should parse.
|
|
787
|
+
*/
|
|
788
|
+
async migrateFlatDocument() {
|
|
789
|
+
return withFileLock(this.spec.filename, async () => {
|
|
790
|
+
const current = await readFile(this.spec.filename, 'utf8');
|
|
791
|
+
const migrated = renderFlatLayoutMigration(current);
|
|
792
|
+
/* v8 ignore next 2 -- the losing side of the cross-process migration race:
|
|
793
|
+
another boot rewrote the document between the unlocked recognize and
|
|
794
|
+
this lock. That interleaving cannot be scheduled deterministically
|
|
795
|
+
through a whole boot (migration.spec drives it best-effort); the
|
|
796
|
+
decision itself is the recognizer's covered versioned-document decline. */
|
|
797
|
+
if (migrated === undefined)
|
|
798
|
+
return current;
|
|
799
|
+
// 0600: a document holding secrets is never world-readable.
|
|
800
|
+
await writeFileAtomic(this.spec.filename, migrated, { mode: 0o600, dirMode: 0o700 });
|
|
801
|
+
this.ctx.logger.info('credentials-local: migrated %s to the version %d layout; values are unchanged', this.spec.filename, DOCUMENT_VERSION);
|
|
802
|
+
return migrated;
|
|
803
|
+
}, { waitMs: DOCUMENT_LOCK_WAIT_MS });
|
|
804
|
+
}
|
|
406
805
|
/* jscpd:ignore-start -- same deliberate mirror of settings-file's reload and
|
|
407
806
|
reconcile policy: warn-and-keep on a reload, throw on a write, invariant
|
|
408
807
|
failures propagate. */
|
|
@@ -448,12 +847,18 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
448
847
|
}
|
|
449
848
|
if (text === this.text || this.isClosed())
|
|
450
849
|
return;
|
|
451
|
-
const next = text === undefined
|
|
452
|
-
|
|
850
|
+
const next = text === undefined
|
|
851
|
+
? { refs: new Map(), records: new Map() }
|
|
852
|
+
: parseCredentialsDocument(text, this.spec.filename);
|
|
853
|
+
const changedRefs = this.changedRefs(this.values, next.refs);
|
|
854
|
+
const changedRecords = this.changedRecords(this.records, next.records);
|
|
453
855
|
this.text = text;
|
|
454
|
-
this.values = next;
|
|
455
|
-
|
|
856
|
+
this.values = next.refs;
|
|
857
|
+
this.records = next.records;
|
|
858
|
+
for (const ref of changedRefs)
|
|
456
859
|
this.notifyUpdated(ref);
|
|
860
|
+
for (const key of changedRecords)
|
|
861
|
+
this.notifyRecordUpdated(key);
|
|
457
862
|
}
|
|
458
863
|
/* jscpd:ignore-end */
|
|
459
864
|
/** Entries whose stored value changed; the parser has already proven every key addressable. */
|
|
@@ -466,6 +871,16 @@ export class LocalCredentialProvider extends CredentialProvider {
|
|
|
466
871
|
}
|
|
467
872
|
return changed;
|
|
468
873
|
}
|
|
874
|
+
/** Records whose stored value changed; the parser has already proven every key addressable. */
|
|
875
|
+
changedRecords(prev, next) {
|
|
876
|
+
const changed = [];
|
|
877
|
+
for (const key of new Set([...prev.keys(), ...next.keys()])) {
|
|
878
|
+
if (sameJsonValue(prev.get(key), next.get(key)))
|
|
879
|
+
continue;
|
|
880
|
+
changed.push(parseCredentialKey(key));
|
|
881
|
+
}
|
|
882
|
+
return changed;
|
|
883
|
+
}
|
|
469
884
|
}
|
|
470
885
|
export default LocalCredentialProvider;
|
|
471
886
|
//# sourceMappingURL=index.js.map
|
|
@@ -9,7 +9,7 @@ export const name = 'credentials-local-invariant';
|
|
|
9
9
|
export const inject = ['invariants'];
|
|
10
10
|
/**
|
|
11
11
|
* No runtime invariant: the Service Definition companion (`nomix-credentials/invariant`) owns the
|
|
12
|
-
* `credentials/updated` lifecycle contract; this provider's file/environment layering is
|
|
12
|
+
* `credentials/reference-updated` lifecycle contract; this provider's file/environment layering is
|
|
13
13
|
* asynchronous I/O pinned by its unit suite.
|
|
14
14
|
*/
|
|
15
15
|
const install = () => { };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nomix-ai/nomix-credentials-local",
|
|
3
3
|
"description": "File-backed credentials provider ($NOMIX_HOME/.env under the live process environment) for the Nomix Harness",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.6",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|