@nomix-ai/nomix-harness 0.2.0 → 0.2.2
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 +4 -4
- package/dist/bundles/base/cordis.patch.yml +74 -74
- package/dist/bundles/headless/cordis.patch.yml +3 -3
- package/dist/bundles/web-app/cordis.patch.yml +51 -51
- package/dist/cli/plugins.js +1 -1
- 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/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/package.json +1 -1
- package/dist/kernel/api-remotes/package.json +1 -1
- package/dist/kernel/app-boot/lib/index.js +30 -16
- package/dist/kernel/app-boot/lib/types/profile.d.ts +12 -15
- package/dist/kernel/app-boot/lib/types/profile.js +40 -16
- package/dist/kernel/app-boot/package.json +1 -1
- package/dist/kernel/atomic-write/package.json +1 -1
- package/dist/kernel/attachment/package.json +1 -1
- package/dist/kernel/attachment-local/package.json +1 -1
- package/dist/kernel/base/package.json +1 -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/package.json +1 -1
- package/dist/kernel/client-hmr/package.json +1 -1
- package/dist/kernel/client-locale/lib/client.js +5 -5
- package/dist/kernel/client-locale/package.json +1 -1
- package/dist/kernel/client-modules/package.json +1 -1
- package/dist/kernel/client-runtime/lib/client.js +1 -1
- package/dist/kernel/client-runtime/package.json +1 -1
- package/dist/kernel/client-schema-form/package.json +1 -1
- package/dist/kernel/client-ui-agent-preset/lib/client.js +41 -41
- package/dist/kernel/client-ui-agent-preset/package.json +1 -1
- package/dist/kernel/client-ui-attachment/package.json +1 -1
- package/dist/kernel/client-ui-commands/lib/client.js +10 -10
- package/dist/kernel/client-ui-commands/package.json +1 -1
- package/dist/kernel/client-ui-conversation/lib/client.js +168 -168
- package/dist/kernel/client-ui-conversation/package.json +1 -1
- package/dist/kernel/client-ui-cordis/lib/client.js +49 -49
- package/dist/kernel/client-ui-cordis/package.json +1 -1
- package/dist/kernel/client-ui-deliverables/lib/client.js +6 -6
- package/dist/kernel/client-ui-deliverables/package.json +1 -1
- package/dist/kernel/client-ui-directory-picker-browse/lib/client.js +30 -30
- package/dist/kernel/client-ui-directory-picker-browse/package.json +1 -1
- package/dist/kernel/client-ui-directory-picker-native/package.json +1 -1
- package/dist/kernel/client-ui-goal/lib/client.js +9 -9
- package/dist/kernel/client-ui-goal/package.json +1 -1
- package/dist/kernel/client-ui-input-trigger/lib/client.js +7 -7
- package/dist/kernel/client-ui-input-trigger/package.json +1 -1
- package/dist/kernel/client-ui-jobs/lib/client.js +10 -10
- package/dist/kernel/client-ui-jobs/package.json +1 -1
- package/dist/kernel/client-ui-layout/lib/client.js +5 -5
- package/dist/kernel/client-ui-layout/package.json +1 -1
- package/dist/kernel/client-ui-message-feedback/lib/client.js +4 -4
- package/dist/kernel/client-ui-message-feedback/package.json +1 -1
- package/dist/kernel/client-ui-model-selection/lib/client.js +19 -19
- package/dist/kernel/client-ui-model-selection/package.json +1 -1
- package/dist/kernel/client-ui-permission-presets/lib/client.js +7 -7
- package/dist/kernel/client-ui-permission-presets/package.json +1 -1
- package/dist/kernel/client-ui-plan/lib/client.js +4 -4
- package/dist/kernel/client-ui-plan/package.json +1 -1
- package/dist/kernel/client-ui-primitives/package.json +1 -1
- package/dist/kernel/client-ui-settings/lib/client.js +2 -2
- package/dist/kernel/client-ui-settings/package.json +1 -1
- package/dist/kernel/client-ui-settings-general/lib/client.js +17 -17
- package/dist/kernel/client-ui-settings-general/package.json +1 -1
- package/dist/kernel/client-ui-settings-models/lib/client.js +53 -53
- package/dist/kernel/client-ui-settings-models/package.json +1 -1
- package/dist/kernel/client-ui-settings-plugin-inventory/lib/client.js +12 -12
- package/dist/kernel/client-ui-settings-plugin-inventory/package.json +1 -1
- package/dist/kernel/client-ui-settings-plugins/lib/client.js +22 -22
- package/dist/kernel/client-ui-settings-plugins/package.json +1 -1
- package/dist/kernel/client-ui-sidebar/lib/client.js +17 -17
- package/dist/kernel/client-ui-sidebar/package.json +1 -1
- package/dist/kernel/client-ui-skill/lib/client.js +12 -12
- package/dist/kernel/client-ui-skill/package.json +1 -1
- package/dist/kernel/client-ui-slots/package.json +1 -1
- package/dist/kernel/client-ui-subagent/lib/client.js +20 -20
- package/dist/kernel/client-ui-subagent/package.json +1 -1
- package/dist/kernel/client-ui-theme/lib/client.js +5 -5
- package/dist/kernel/client-ui-theme/package.json +1 -1
- package/dist/kernel/client-ui-tool/lib/client.js +39 -39
- package/dist/kernel/client-ui-tool/package.json +1 -1
- package/dist/kernel/client-ui-trajectory/lib/client.js +146 -146
- package/dist/kernel/client-ui-trajectory/package.json +1 -1
- package/dist/kernel/client-ui-user-questions/lib/client.js +29 -29
- package/dist/kernel/client-ui-user-questions/package.json +1 -1
- package/dist/kernel/client-ui-workflow-run/lib/client.js +18 -18
- package/dist/kernel/client-ui-workflow-run/package.json +1 -1
- package/dist/kernel/client-ui-workspace/lib/client.js +56 -56
- package/dist/kernel/client-ui-workspace/package.json +1 -1
- package/dist/kernel/client-web/package.json +1 -1
- package/dist/kernel/client-web-react/package.json +1 -1
- package/dist/kernel/cmdline/package.json +1 -1
- package/dist/kernel/code-runtime/package.json +1 -1
- 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/package.json +1 -1
- package/dist/kernel/commands/package.json +1 -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-client-runner/package.json +1 -1
- package/dist/kernel/cordis-host-runner/package.json +1 -1
- package/dist/kernel/credentials/package.json +1 -1
- package/dist/kernel/credentials-local/package.json +1 -1
- package/dist/kernel/e2b/package.json +1 -1
- 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/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/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/package.json +1 -1
- package/dist/kernel/host-plugin-inventory/package.json +1 -1
- 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/package.json +1 -1
- package/dist/kernel/llm-deepseek/package.json +1 -1
- package/dist/kernel/llm-pi-ai/package.json +1 -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 +213 -0
- 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/output-retention/package.json +1 -1
- package/dist/kernel/permission-presets/package.json +1 -1
- package/dist/kernel/persona/package.json +1 -1
- 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/package.json +1 -1
- package/dist/kernel/sandbox/package.json +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/scope/package.json +1 -1
- package/dist/kernel/sdk-client/package.json +1 -1
- package/dist/kernel/sdk-jsonrpc-server/package.json +1 -1
- package/dist/kernel/sdk-protocol/package.json +1 -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/lib/client.js +2 -2
- package/dist/kernel/session-log-export/package.json +1 -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/package.json +1 -1
- package/dist/kernel/session-projection/package.json +1 -1
- 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/package.json +1 -1
- 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/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/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/package.json +1 -1
- package/dist/kernel/subagent-acp/package.json +1 -1
- package/dist/kernel/subagent-claude-code/package.json +1 -1
- package/dist/kernel/subagent-codex/package.json +1 -1
- 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/package.json +1 -1
- package/dist/kernel/system-prompt/package.json +1 -1
- package/dist/kernel/terminal/package.json +1 -1
- package/dist/kernel/terminal-bash/package.json +1 -1
- package/dist/kernel/time-context/package.json +1 -1
- package/dist/kernel/timeout/package.json +1 -1
- package/dist/kernel/tmux-context/package.json +1 -1
- 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/package.json +1 -1
- package/dist/kernel/tool-call-timeout-policy/package.json +1 -1
- package/dist/kernel/tool-cordis/package.json +1 -1
- package/dist/kernel/tool-fs/package.json +1 -1
- 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-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/package.json +1 -1
- package/dist/kernel/tool-subagent-control/package.json +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/package.json +1 -1
- 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/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/package.json +1 -1
- package/dist/kernel/web-app/lib/index.js +4 -1
- package/dist/kernel/web-app/lib/types/index.js +5 -1
- package/dist/kernel/web-app/package.json +1 -1
- package/dist/kernel/web-fetch-http/package.json +1 -1
- package/dist/kernel/web-frontend/package.json +1 -1
- package/dist/kernel/web-search-deepseek/package.json +1 -1
- package/dist/kernel/web-search-exa/package.json +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/index.js +1 -1
- package/package.json +1 -1
|
@@ -46,35 +46,35 @@
|
|
|
46
46
|
# window.__NOMIX_BOOT__; the modules row is simultaneously a host row.
|
|
47
47
|
- insert:
|
|
48
48
|
- id: code-runtime
|
|
49
|
-
name: '
|
|
49
|
+
name: '@nomix-ai/nomix-code-runtime-worker-thread'
|
|
50
50
|
|
|
51
51
|
- id: storage
|
|
52
|
-
name: '
|
|
52
|
+
name: '@nomix-ai/nomix-storage'
|
|
53
53
|
|
|
54
54
|
- id: storage-json
|
|
55
|
-
name: '
|
|
55
|
+
name: '@nomix-ai/nomix-storage-json'
|
|
56
56
|
config:
|
|
57
57
|
root: !!js nomixHomePath('storages')
|
|
58
58
|
|
|
59
59
|
- id: storage-domain
|
|
60
|
-
name: '
|
|
60
|
+
name: '@nomix-ai/nomix-storage-domain'
|
|
61
61
|
config:
|
|
62
62
|
backend: json
|
|
63
63
|
|
|
64
64
|
- id: message-feedback
|
|
65
|
-
name: '
|
|
65
|
+
name: '@nomix-ai/nomix-message-feedback'
|
|
66
66
|
config:
|
|
67
67
|
maxNoteBytes: 8192
|
|
68
68
|
|
|
69
69
|
# Browser Session export: `/export` command plus the shared download dialog.
|
|
70
70
|
- id: session-log-download
|
|
71
|
-
name: '
|
|
71
|
+
name: '@nomix-ai/nomix-session-log-export'
|
|
72
72
|
|
|
73
73
|
- id: workspace
|
|
74
|
-
name: '
|
|
74
|
+
name: '@nomix-ai/nomix-workspace'
|
|
75
75
|
|
|
76
76
|
- id: session-projection-cache
|
|
77
|
-
name: '
|
|
77
|
+
name: '@nomix-ai/nomix-session-projection-cache'
|
|
78
78
|
config:
|
|
79
79
|
writeEveryEvents: 200
|
|
80
80
|
writeIntervalMs: 5000
|
|
@@ -82,30 +82,30 @@
|
|
|
82
82
|
# Whole-log turn/step counts for the chat stats strip (the sessionStats
|
|
83
83
|
# projection key); the projection registry itself is a base-layer row.
|
|
84
84
|
- id: session-stats
|
|
85
|
-
name: '
|
|
85
|
+
name: '@nomix-ai/nomix-session-stats'
|
|
86
86
|
|
|
87
87
|
# Resolve bind host, SSH launch, and display once at boot, then mount the
|
|
88
88
|
# matching dual-face directory picker. Mount -native or -browse directly in
|
|
89
89
|
# an overlay to pin the interaction.
|
|
90
90
|
- id: directory-picker
|
|
91
|
-
name: '
|
|
91
|
+
name: '@nomix-ai/nomix-host-directory-picker-auto'
|
|
92
92
|
|
|
93
93
|
# Read-only projection of current Loader entries for trusted client RPCs.
|
|
94
94
|
- id: plugin-inventory
|
|
95
|
-
name: '
|
|
95
|
+
name: '@nomix-ai/nomix-host-plugin-inventory'
|
|
96
96
|
|
|
97
97
|
# The API gateway: the transport-agnostic dispatch face every client shape
|
|
98
98
|
# shares. The base layer's agent-default-model service owns the default model.
|
|
99
99
|
- id: api-gateway
|
|
100
|
-
name: '
|
|
100
|
+
name: '@nomix-ai/nomix-host-apiproxy'
|
|
101
101
|
|
|
102
102
|
- id: cordis-host-runner
|
|
103
|
-
name: '
|
|
103
|
+
name: '@nomix-ai/nomix-cordis-host-runner'
|
|
104
104
|
|
|
105
105
|
# Ordinary provider for the parsed Web flags. Its plugin-level injection
|
|
106
106
|
# waits for cmdlineArgs; no launcher metadata or special row kind is needed.
|
|
107
107
|
- id: web-startup
|
|
108
|
-
name: '
|
|
108
|
+
name: '@nomix-ai/nomix-web-app/startup'
|
|
109
109
|
|
|
110
110
|
# ── layer 2: transport/service ──────────────────────────────────────────────
|
|
111
111
|
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
# webStartup provider, with these deployment fallbacks. The dist is served by
|
|
114
114
|
# the web-runtime row below through the fallback seat.
|
|
115
115
|
- id: webserver
|
|
116
|
-
name: '
|
|
116
|
+
name: '@nomix-ai/nomix-host-webserver'
|
|
117
117
|
inject: [webStartup]
|
|
118
118
|
config:
|
|
119
119
|
host: !!js ctx.webStartup.host ?? '127.0.0.1'
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
# complete agent-preset persona suppresses the prompt section for that
|
|
129
129
|
# agent while retaining the host-owned shell variable.
|
|
130
130
|
- id: web-runtime
|
|
131
|
-
name: '
|
|
131
|
+
name: '@nomix-ai/nomix-web-app'
|
|
132
132
|
inject: [webStartup]
|
|
133
133
|
config:
|
|
134
134
|
printUrl: true
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
# is a row rather than a child of web-runtime because its node half is a
|
|
141
141
|
# client-side package, which a host-side bundle cannot import.
|
|
142
142
|
- id: client-hmr
|
|
143
|
-
name: '
|
|
143
|
+
name: '@nomix-ai/nomix-client-hmr'
|
|
144
144
|
|
|
145
145
|
# ── browser plugin roster (nomix.client rows; node halves are layer-2 hosts) ──
|
|
146
146
|
|
|
@@ -149,12 +149,12 @@
|
|
|
149
149
|
# the shell kernel constructs before cordis exists (adopted as a plugin
|
|
150
150
|
# entry by the kernel, never fetched).
|
|
151
151
|
- id: modules
|
|
152
|
-
name: '
|
|
152
|
+
name: '@nomix-ai/nomix-client-modules'
|
|
153
153
|
|
|
154
154
|
# Owns both ends of the web transport: node half binds the gateway to the
|
|
155
155
|
# webserver under /api; browser half is the fetch/SSE client.
|
|
156
156
|
- id: connection
|
|
157
|
-
name: '
|
|
157
|
+
name: '@nomix-ai/nomix-client-connection'
|
|
158
158
|
inject: [webRuntime]
|
|
159
159
|
config:
|
|
160
160
|
# LAN literals derived from the active bind plus --trusted-host extras.
|
|
@@ -163,115 +163,115 @@
|
|
|
163
163
|
trustedHosts: !!js ctx.webRuntime.trustedHosts
|
|
164
164
|
|
|
165
165
|
- id: api-remotes
|
|
166
|
-
name: '
|
|
166
|
+
name: '@nomix-ai/nomix-api-remotes'
|
|
167
167
|
|
|
168
168
|
- id: client-runtime
|
|
169
|
-
name: '
|
|
169
|
+
name: '@nomix-ai/nomix-client-runtime'
|
|
170
170
|
|
|
171
171
|
- id: cordis-client-runner
|
|
172
|
-
name: '
|
|
172
|
+
name: '@nomix-ai/nomix-cordis-client-runner'
|
|
173
173
|
|
|
174
174
|
- id: ui-theme
|
|
175
|
-
name: '
|
|
175
|
+
name: '@nomix-ai/nomix-client-ui-theme'
|
|
176
176
|
|
|
177
177
|
- id: locale
|
|
178
|
-
name: '
|
|
178
|
+
name: '@nomix-ai/nomix-client-locale'
|
|
179
179
|
|
|
180
180
|
- id: ui-layout
|
|
181
|
-
name: '
|
|
181
|
+
name: '@nomix-ai/nomix-client-ui-layout'
|
|
182
182
|
|
|
183
183
|
- id: ui-sidebar
|
|
184
|
-
name: '
|
|
184
|
+
name: '@nomix-ai/nomix-client-ui-sidebar'
|
|
185
185
|
|
|
186
186
|
- id: ui-settings
|
|
187
|
-
name: '
|
|
187
|
+
name: '@nomix-ai/nomix-client-ui-settings'
|
|
188
188
|
|
|
189
189
|
- id: ui-settings-general
|
|
190
|
-
name: '
|
|
190
|
+
name: '@nomix-ai/nomix-client-ui-settings-general'
|
|
191
191
|
|
|
192
192
|
- id: ui-settings-models
|
|
193
|
-
name: '
|
|
193
|
+
name: '@nomix-ai/nomix-client-ui-settings-models'
|
|
194
194
|
|
|
195
195
|
- id: ui-settings-plugin-inventory
|
|
196
|
-
name: '
|
|
196
|
+
name: '@nomix-ai/nomix-client-ui-settings-plugin-inventory'
|
|
197
197
|
|
|
198
198
|
- id: ui-conversation
|
|
199
|
-
name: '
|
|
199
|
+
name: '@nomix-ai/nomix-client-ui-conversation'
|
|
200
200
|
|
|
201
201
|
# Tool call tree, generic fallback, and keyed business Tool views.
|
|
202
202
|
- id: ui-tool
|
|
203
|
-
name: '
|
|
203
|
+
name: '@nomix-ai/nomix-client-ui-tool'
|
|
204
204
|
|
|
205
205
|
- id: ui-cordis
|
|
206
|
-
name: '
|
|
206
|
+
name: '@nomix-ai/nomix-client-ui-cordis'
|
|
207
207
|
|
|
208
208
|
# Durable workflow lifecycle as an independent Chat node after the
|
|
209
209
|
# existing generic workflow tool row.
|
|
210
210
|
- id: ui-workflow-run
|
|
211
|
-
name: '
|
|
211
|
+
name: '@nomix-ai/nomix-client-ui-workflow-run'
|
|
212
212
|
|
|
213
213
|
# Turn tail: the produced-files row under each closing assistant message.
|
|
214
214
|
# Remove this entry to turn the surface off; the tail hole renders empty.
|
|
215
215
|
- id: ui-deliverables
|
|
216
|
-
name: '
|
|
216
|
+
name: '@nomix-ai/nomix-client-ui-deliverables'
|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
- id: ui-workspace
|
|
220
|
-
name: '
|
|
220
|
+
name: '@nomix-ai/nomix-client-ui-workspace'
|
|
221
221
|
|
|
222
222
|
# Input triggers: the '/' | '@' pipeline (ui-input-trigger), the command surface over
|
|
223
223
|
# it (ui-commands), and the two reference sources (ui-skill / ui-subagent).
|
|
224
224
|
- id: ui-input-trigger
|
|
225
|
-
name: '
|
|
225
|
+
name: '@nomix-ai/nomix-client-ui-input-trigger'
|
|
226
226
|
|
|
227
227
|
- id: ui-commands
|
|
228
|
-
name: '
|
|
228
|
+
name: '@nomix-ai/nomix-client-ui-commands'
|
|
229
229
|
|
|
230
230
|
- id: ui-skill
|
|
231
|
-
name: '
|
|
231
|
+
name: '@nomix-ai/nomix-client-ui-skill'
|
|
232
232
|
|
|
233
233
|
- id: ui-subagent
|
|
234
|
-
name: '
|
|
234
|
+
name: '@nomix-ai/nomix-client-ui-subagent'
|
|
235
235
|
|
|
236
236
|
# Background jobs: the session-header list over the jobsBySession mirror.
|
|
237
237
|
- id: ui-jobs
|
|
238
|
-
name: '
|
|
238
|
+
name: '@nomix-ai/nomix-client-ui-jobs'
|
|
239
239
|
|
|
240
240
|
# Goal surface: GoalBar in the input dock over the goal session projection.
|
|
241
241
|
- id: ui-goal
|
|
242
|
-
name: '
|
|
242
|
+
name: '@nomix-ai/nomix-client-ui-goal'
|
|
243
243
|
|
|
244
244
|
# Per-message feedback: Like/Dislike plus an optional note in the
|
|
245
245
|
# assistant-message action strip, over the messageFeedback Remote.
|
|
246
246
|
- id: ui-message-feedback
|
|
247
|
-
name: '
|
|
247
|
+
name: '@nomix-ai/nomix-client-ui-message-feedback'
|
|
248
248
|
|
|
249
249
|
# Model selection: the /model popupSelect + composer seat over session.models.
|
|
250
250
|
- id: ui-model-selection
|
|
251
|
-
name: '
|
|
251
|
+
name: '@nomix-ai/nomix-client-ui-model-selection'
|
|
252
252
|
|
|
253
253
|
- id: ui-permission
|
|
254
|
-
name: '
|
|
254
|
+
name: '@nomix-ai/nomix-client-ui-permission-presets'
|
|
255
255
|
|
|
256
256
|
# The agent-preset row in General settings: the default preset for
|
|
257
257
|
# sessions created later. Absent a roster it renders nothing.
|
|
258
258
|
- id: ui-agent-preset
|
|
259
|
-
name: '
|
|
259
|
+
name: '@nomix-ai/nomix-client-ui-agent-preset'
|
|
260
260
|
|
|
261
261
|
# Plugin configuration: the host-plane sections a user owns, as expandable
|
|
262
262
|
# cards. A namespace this deployment does not expose renders nothing.
|
|
263
263
|
- id: ui-settings-plugins
|
|
264
|
-
name: '
|
|
264
|
+
name: '@nomix-ai/nomix-client-ui-settings-plugins'
|
|
265
265
|
|
|
266
266
|
# Plan control: the composer plan seat over the plan projection + /plan channel.
|
|
267
267
|
- id: ui-plan
|
|
268
|
-
name: '
|
|
268
|
+
name: '@nomix-ai/nomix-client-ui-plan'
|
|
269
269
|
|
|
270
270
|
- id: ui-user-questions
|
|
271
|
-
name: '
|
|
271
|
+
name: '@nomix-ai/nomix-client-ui-user-questions'
|
|
272
272
|
|
|
273
273
|
- id: ui-trajectory
|
|
274
|
-
name: '
|
|
274
|
+
name: '@nomix-ai/nomix-client-ui-trajectory'
|
|
275
275
|
|
|
276
276
|
# ── the agent plane moves behind agent presets ─────────────────────────────
|
|
277
277
|
#
|
|
@@ -419,6 +419,6 @@
|
|
|
419
419
|
# never reaches that patch still finds a person's presets.
|
|
420
420
|
- insert:
|
|
421
421
|
- id: agent-presets
|
|
422
|
-
name: '
|
|
422
|
+
name: '@nomix-ai/nomix-agent-presets'
|
|
423
423
|
config:
|
|
424
424
|
default: standard
|
package/dist/cli/plugins.js
CHANGED
|
@@ -3,7 +3,7 @@ import { definePlugin } from "./public-plugin.js";
|
|
|
3
3
|
/** Side-effect-free catalog of plugins compiled into the Nomix npm package. */
|
|
4
4
|
/** Create a descriptor for any built-in plugin id listed in the packaged manifest. */
|
|
5
5
|
function builtin(id) {
|
|
6
|
-
return definePlugin(id,
|
|
6
|
+
return definePlugin(id, `@nomix-ai/nomix-${id}`);
|
|
7
7
|
}
|
|
8
8
|
/** Frequently used built-ins with stable, typed discovery paths. */
|
|
9
9
|
const builtins = {
|
|
@@ -2,7 +2,7 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
3
3
|
import { existsSync, lstatSync, mkdirSync, readFileSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { parseEnv } from "node:util";
|
|
5
|
-
import { basename, dirname, extname, isAbsolute, join, resolve } from "node:path";
|
|
5
|
+
import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
6
6
|
import * as yaml from "js-yaml";
|
|
7
7
|
import { Context, Service } from "@nomix-ai/cordis";
|
|
8
8
|
import Loader, { EntryGroup, EntryTree, isJsExpr } from "@nomix-ai/cordis-plugin-loader";
|
|
@@ -317,9 +317,9 @@ var Include = class extends EntryTree {
|
|
|
317
317
|
* first from the nomix installation (the launcher's own package), then from the
|
|
318
318
|
* profile directory. The Loader's `baseUrl` is the profile directory, whose
|
|
319
319
|
* `node_modules` pnpm manages for out-of-tree plugins, while the maintained
|
|
320
|
-
* flat fallback directory `$NOMIX_HOME/profiles/node_modules`
|
|
321
|
-
*
|
|
322
|
-
* plugin Node-resolvable
|
|
320
|
+
* flat fallback directory `$NOMIX_HOME/profiles/node_modules` links both the
|
|
321
|
+
* installation's dependency closure and aggregate-package kernel entries,
|
|
322
|
+
* making every in-box plugin Node-resolvable through the ordinary parent-walk.
|
|
323
323
|
* @module @nomix-ai/nomix-app-boot/profile
|
|
324
324
|
*/
|
|
325
325
|
/** Directory under the Harness home holding every profile. */
|
|
@@ -405,18 +405,15 @@ function ensureSymlink(link, target) {
|
|
|
405
405
|
}
|
|
406
406
|
}
|
|
407
407
|
/**
|
|
408
|
-
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
*
|
|
417
|
-
* reaches only through its Service Provider packages. Symlinked packages
|
|
418
|
-
* resolve their own dependencies from their real directories (Node's default
|
|
419
|
-
* symlink-following), so each package needs only its one flat link.
|
|
408
|
+
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules`. It
|
|
409
|
+
* links the nomix app's resolvable dependency closure and every package listed
|
|
410
|
+
* by an aggregate distribution's `dist/kernel/manifest.json`. Node's
|
|
411
|
+
* parent-directory walk from any profile therefore resolves in-box plugins
|
|
412
|
+
* without pnpm managing them. The dependency closure is required for
|
|
413
|
+
* out-of-tree plugin peers; the kernel manifest supplies package identities
|
|
414
|
+
* that are embedded rather than installed as standalone npm dependencies.
|
|
415
|
+
* Symlinked packages resolve their own dependencies from their real
|
|
416
|
+
* directories, so each package needs only one flat link.
|
|
420
417
|
* Idempotent: correct links are kept and moved installations are
|
|
421
418
|
* re-pointed; a stale link to a vanished package stays until its name is
|
|
422
419
|
* reused (dangling links are invisible to resolution).
|
|
@@ -447,6 +444,23 @@ function healProfilesModuleFallback(installAnchor, home = resolveNomixHome()) {
|
|
|
447
444
|
manifest: JSON.parse(readFileSync(manifestPath, "utf8"))
|
|
448
445
|
});
|
|
449
446
|
}
|
|
447
|
+
const kernelRoot = join(dirname(installAnchor), "dist", "kernel");
|
|
448
|
+
const kernelManifestPath = join(kernelRoot, "manifest.json");
|
|
449
|
+
if (existsSync(kernelManifestPath)) {
|
|
450
|
+
const packaged = JSON.parse(readFileSync(kernelManifestPath, "utf8"));
|
|
451
|
+
if (packaged === null || typeof packaged !== "object" || Array.isArray(packaged)) throw new Error("nomix: packaged kernel manifest must hold a JSON object");
|
|
452
|
+
for (const [packageName, targetRelative] of Object.entries(packaged)) {
|
|
453
|
+
if (!packageName.startsWith("@nomix-ai/nomix-") || typeof targetRelative !== "string") throw new Error(`nomix: invalid packaged kernel manifest entry ${JSON.stringify(packageName)}`);
|
|
454
|
+
const target = resolve(kernelRoot, targetRelative);
|
|
455
|
+
const fromKernel = relative(kernelRoot, target);
|
|
456
|
+
if (fromKernel === "" || isAbsolute(fromKernel) || fromKernel === ".." || fromKernel.startsWith(`..${sep}`)) throw new Error(`nomix: packaged kernel target escapes dist/kernel for ${packageName}`);
|
|
457
|
+
const targetManifestPath = join(target, "package.json");
|
|
458
|
+
if (!existsSync(targetManifestPath)) throw new Error(`nomix: packaged kernel target for ${packageName} has no package.json`);
|
|
459
|
+
const targetManifest = JSON.parse(readFileSync(targetManifestPath, "utf8"));
|
|
460
|
+
if (targetManifest.name !== packageName) throw new Error(`nomix: packaged kernel target for ${packageName} declares ${JSON.stringify(targetManifest.name)}`);
|
|
461
|
+
links.set(packageName, target);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
450
464
|
for (const [packageName, target] of links) {
|
|
451
465
|
const link = join(modulesDir, packageName);
|
|
452
466
|
mkdirSync(dirname(link), { recursive: true });
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
* first from the nomix installation (the launcher's own package), then from the
|
|
17
17
|
* profile directory. The Loader's `baseUrl` is the profile directory, whose
|
|
18
18
|
* `node_modules` pnpm manages for out-of-tree plugins, while the maintained
|
|
19
|
-
* flat fallback directory `$NOMIX_HOME/profiles/node_modules`
|
|
20
|
-
*
|
|
21
|
-
* plugin Node-resolvable
|
|
19
|
+
* flat fallback directory `$NOMIX_HOME/profiles/node_modules` links both the
|
|
20
|
+
* installation's dependency closure and aggregate-package kernel entries,
|
|
21
|
+
* making every in-box plugin Node-resolvable through the ordinary parent-walk.
|
|
22
22
|
* @module @nomix-ai/nomix-app-boot/profile
|
|
23
23
|
*/
|
|
24
24
|
import type { EntryOptions } from '@nomix-ai/cordis-plugin-loader';
|
|
@@ -98,18 +98,15 @@ export declare const DEFAULT_PROFILE_BUNDLES: readonly string[];
|
|
|
98
98
|
*/
|
|
99
99
|
export declare function initProfile(dir: string, bundles: readonly string[]): void;
|
|
100
100
|
/**
|
|
101
|
-
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* reaches only through its Service Provider packages. Symlinked packages
|
|
111
|
-
* resolve their own dependencies from their real directories (Node's default
|
|
112
|
-
* symlink-following), so each package needs only its one flat link.
|
|
101
|
+
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules`. It
|
|
102
|
+
* links the nomix app's resolvable dependency closure and every package listed
|
|
103
|
+
* by an aggregate distribution's `dist/kernel/manifest.json`. Node's
|
|
104
|
+
* parent-directory walk from any profile therefore resolves in-box plugins
|
|
105
|
+
* without pnpm managing them. The dependency closure is required for
|
|
106
|
+
* out-of-tree plugin peers; the kernel manifest supplies package identities
|
|
107
|
+
* that are embedded rather than installed as standalone npm dependencies.
|
|
108
|
+
* Symlinked packages resolve their own dependencies from their real
|
|
109
|
+
* directories, so each package needs only one flat link.
|
|
113
110
|
* Idempotent: correct links are kept and moved installations are
|
|
114
111
|
* re-pointed; a stale link to a vanished package stays until its name is
|
|
115
112
|
* reused (dangling links are invisible to resolution).
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
* first from the nomix installation (the launcher's own package), then from the
|
|
17
17
|
* profile directory. The Loader's `baseUrl` is the profile directory, whose
|
|
18
18
|
* `node_modules` pnpm manages for out-of-tree plugins, while the maintained
|
|
19
|
-
* flat fallback directory `$NOMIX_HOME/profiles/node_modules`
|
|
20
|
-
*
|
|
21
|
-
* plugin Node-resolvable
|
|
19
|
+
* flat fallback directory `$NOMIX_HOME/profiles/node_modules` links both the
|
|
20
|
+
* installation's dependency closure and aggregate-package kernel entries,
|
|
21
|
+
* making every in-box plugin Node-resolvable through the ordinary parent-walk.
|
|
22
22
|
* @module @nomix-ai/nomix-app-boot/profile
|
|
23
23
|
*/
|
|
24
24
|
import { createRequire } from 'node:module';
|
|
25
25
|
import { existsSync, lstatSync, mkdirSync, readFileSync, readlinkSync, symlinkSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
26
|
-
import { basename, dirname, join } from 'node:path';
|
|
26
|
+
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from 'node:path';
|
|
27
27
|
import { applyEntryPatches } from '@nomix-ai/cordis-plugin-include';
|
|
28
28
|
import { resolveNomixHome } from '../../../home-paths/lib/index.js';
|
|
29
29
|
import { rejectLegacyManifestSection } from "./legacy-branding.js";
|
|
@@ -136,18 +136,15 @@ function ensureSymlink(link, target) {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* reaches only through its Service Provider packages. Symlinked packages
|
|
149
|
-
* resolve their own dependencies from their real directories (Node's default
|
|
150
|
-
* symlink-following), so each package needs only its one flat link.
|
|
139
|
+
* Maintain the flat module fallback `$NOMIX_HOME/profiles/node_modules`. It
|
|
140
|
+
* links the nomix app's resolvable dependency closure and every package listed
|
|
141
|
+
* by an aggregate distribution's `dist/kernel/manifest.json`. Node's
|
|
142
|
+
* parent-directory walk from any profile therefore resolves in-box plugins
|
|
143
|
+
* without pnpm managing them. The dependency closure is required for
|
|
144
|
+
* out-of-tree plugin peers; the kernel manifest supplies package identities
|
|
145
|
+
* that are embedded rather than installed as standalone npm dependencies.
|
|
146
|
+
* Symlinked packages resolve their own dependencies from their real
|
|
147
|
+
* directories, so each package needs only one flat link.
|
|
151
148
|
* Idempotent: correct links are kept and moved installations are
|
|
152
149
|
* re-pointed; a stale link to a vanished package stays until its name is
|
|
153
150
|
* reused (dangling links are invisible to resolution).
|
|
@@ -184,6 +181,33 @@ export function healProfilesModuleFallback(installAnchor, home = resolveNomixHom
|
|
|
184
181
|
queue.push({ anchor: manifestPath, manifest: JSON.parse(readFileSync(manifestPath, 'utf8')) });
|
|
185
182
|
}
|
|
186
183
|
}
|
|
184
|
+
const kernelRoot = join(dirname(installAnchor), 'dist', 'kernel');
|
|
185
|
+
const kernelManifestPath = join(kernelRoot, 'manifest.json');
|
|
186
|
+
if (existsSync(kernelManifestPath)) {
|
|
187
|
+
const packaged = JSON.parse(readFileSync(kernelManifestPath, 'utf8'));
|
|
188
|
+
if (packaged === null || typeof packaged !== 'object' || Array.isArray(packaged)) {
|
|
189
|
+
throw new Error('nomix: packaged kernel manifest must hold a JSON object');
|
|
190
|
+
}
|
|
191
|
+
for (const [packageName, targetRelative] of Object.entries(packaged)) {
|
|
192
|
+
if (!packageName.startsWith('@nomix-ai/nomix-') || typeof targetRelative !== 'string') {
|
|
193
|
+
throw new Error(`nomix: invalid packaged kernel manifest entry ${JSON.stringify(packageName)}`);
|
|
194
|
+
}
|
|
195
|
+
const target = resolve(kernelRoot, targetRelative);
|
|
196
|
+
const fromKernel = relative(kernelRoot, target);
|
|
197
|
+
if (fromKernel === '' || isAbsolute(fromKernel) || fromKernel === '..' || fromKernel.startsWith(`..${sep}`)) {
|
|
198
|
+
throw new Error(`nomix: packaged kernel target escapes dist/kernel for ${packageName}`);
|
|
199
|
+
}
|
|
200
|
+
const targetManifestPath = join(target, 'package.json');
|
|
201
|
+
if (!existsSync(targetManifestPath)) {
|
|
202
|
+
throw new Error(`nomix: packaged kernel target for ${packageName} has no package.json`);
|
|
203
|
+
}
|
|
204
|
+
const targetManifest = JSON.parse(readFileSync(targetManifestPath, 'utf8'));
|
|
205
|
+
if (targetManifest.name !== packageName) {
|
|
206
|
+
throw new Error(`nomix: packaged kernel target for ${packageName} declares ${JSON.stringify(targetManifest.name)}`);
|
|
207
|
+
}
|
|
208
|
+
links.set(packageName, target);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
187
211
|
for (const [packageName, target] of links) {
|
|
188
212
|
const link = join(modulesDir, packageName);
|
|
189
213
|
mkdirSync(dirname(link), { recursive: true });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nomix-ai/nomix-app-boot",
|
|
3
3
|
"description": "Shared boot glue for the app bins: .env loading, fail-loud Loader guards, snapshot-aware config resolution, and the Loader boot sequence",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nomix-ai/nomix-atomic-write",
|
|
3
3
|
"description": "Zero-dependency atomic file replacement: exclusive-create random-suffix temp + rename carrying the caller-stated permissions (writeFileAtomic)",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|