@rebon/cli-darwin-arm64 1.8.6 → 1.9.1
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/bin/compose-runtime/payload/compose/shims/dsh-environment.js +34 -0
- package/bin/compose-runtime/src/commands-runtime.mjs +72 -0
- package/bin/compose-runtime/src/loader.mjs +7 -0
- package/bin/compose-runtime/src/probe.mjs +77 -0
- package/bin/compose-runtime/src/provided-modules.json +38 -0
- package/bin/compose-runtime/src/realm.mjs +5 -3
- package/bin/compose-runtime/src/registry.mjs +15 -2
- package/bin/compose-runtime/src/resolve.mjs +3 -33
- package/bin/marketplace/.claude-plugin/marketplace.json +258 -0
- package/bin/marketplace/plugins/dsh-llm-deepseek/LICENSE +21 -0
- package/bin/marketplace/plugins/dsh-llm-deepseek/llm-deepseek.js +672 -0
- package/bin/marketplace/plugins/dsh-llm-deepseek/rebon-plugin.json +27 -0
- package/bin/marketplace/plugins/dsh-tool-todo/LICENSE +21 -0
- package/bin/marketplace/plugins/dsh-tool-todo/rebon-plugin.json +27 -0
- package/bin/marketplace/plugins/dsh-tool-todo/tool-todo.js +143 -0
- package/bin/marketplace/plugins/dsh-tool-web/LICENSE +21 -0
- package/bin/marketplace/plugins/dsh-tool-web/rebon-plugin.json +27 -0
- package/bin/marketplace/plugins/dsh-tool-web/tool-web.js +1527 -0
- package/bin/marketplace/plugins/dsh-web-search-exa/LICENSE +21 -0
- package/bin/marketplace/plugins/dsh-web-search-exa/rebon-plugin.json +27 -0
- package/bin/marketplace/plugins/dsh-web-search-exa/web-search-exa.js +122 -0
- package/bin/mods-runtime/package.json +13 -0
- package/bin/mods-runtime/src/chain.mjs +188 -0
- package/bin/mods-runtime/src/classic.mjs +217 -0
- package/bin/mods-runtime/src/claude-code.mjs +101 -0
- package/bin/mods-runtime/src/client.mjs +316 -0
- package/bin/mods-runtime/src/engine.mjs +196 -0
- package/bin/mods-runtime/src/index.mjs +58 -0
- package/bin/mods-runtime/src/jsx-transform.mjs +324 -0
- package/bin/mods-runtime/src/mod.mjs +370 -0
- package/bin/mods-runtime/src/render.mjs +122 -0
- package/bin/mods-runtime/src/transpile.mjs +167 -0
- package/bin/plugin-host/src/cli.mjs +13 -0
- package/bin/plugin-host/src/host.mjs +11 -1
- package/bin/plugin-host/src/methods.mjs +4 -1
- package/bin/plugin-host/src/protocol.mjs +38 -4
- package/bin/rebon +2 -2
- package/bin/rebon-boa-helper +0 -0
- package/bin/rebon-browser-mcp +0 -0
- package/bin/rebon-computer-use +0 -0
- package/bin/rebon-lsp-mcp +0 -0
- package/bin/sandbox-win +0 -0
- package/package.json +1 -1
|
@@ -322,7 +322,17 @@ export class PluginHost {
|
|
|
322
322
|
});
|
|
323
323
|
}
|
|
324
324
|
this.#cancelled.delete(envelope.call_id);
|
|
325
|
-
|
|
325
|
+
try {
|
|
326
|
+
await this.#sendTerminal(envelope, 'success', payload);
|
|
327
|
+
} catch (error) {
|
|
328
|
+
if (error instanceof FramingError || !(error instanceof ProtocolError)) throw error;
|
|
329
|
+
// The answer itself could not be written. The call still ends, as the
|
|
330
|
+
// failure it is, rather than leaving rebon to wait out its bound.
|
|
331
|
+
return this.#sendTerminal(envelope, 'error', {
|
|
332
|
+
code: '[INVALID_ANSWER]',
|
|
333
|
+
message: `the handler answered a value that is not JSON: ${error.message}`.slice(0, 256),
|
|
334
|
+
});
|
|
335
|
+
}
|
|
326
336
|
if (plan.finalize) await plan.finalize();
|
|
327
337
|
}
|
|
328
338
|
#plan(value) {
|
|
@@ -156,8 +156,11 @@ export function pluginCommandDefinition(input) {
|
|
|
156
156
|
shape(kind, ['type', 'dialog'], [], 'command kind');
|
|
157
157
|
validateName('dialog', string(kind.dialog, 'kind dialog'));
|
|
158
158
|
break;
|
|
159
|
+
case 'output':
|
|
160
|
+
shape(kind, ['type'], [], 'command kind');
|
|
161
|
+
break;
|
|
159
162
|
default:
|
|
160
|
-
throw new ProtocolError('[WRONG_SHAPE]', 'command kind must be prompt, explain or
|
|
163
|
+
throw new ProtocolError('[WRONG_SHAPE]', 'command kind must be prompt, explain, panel or output');
|
|
161
164
|
}
|
|
162
165
|
return Object.freeze({ ...input });
|
|
163
166
|
}
|
|
@@ -120,10 +120,44 @@ export function identityOf(envelope) {
|
|
|
120
120
|
return Object.freeze({ host_epoch: envelope.host_epoch, plugin_id: envelope.plugin_id, scope_id: envelope.scope_id,
|
|
121
121
|
scope_generation: envelope.scope_generation, call_id: envelope.call_id });
|
|
122
122
|
}
|
|
123
|
+
/// A value a plugin produced, as `JSON.stringify` would write it.
|
|
124
|
+
///
|
|
125
|
+
/// What a handler returns or a plugin sends is ordinary JavaScript, and
|
|
126
|
+
/// ordinary JavaScript leaves `undefined` in objects (`{ text, context }` with
|
|
127
|
+
/// no context), carries a `Date`, or builds its result with a class. The wire
|
|
128
|
+
/// takes plain JSON only, and refusing such a value used to mean the call was
|
|
129
|
+
/// never answered at all. This is the normalisation every JS author already
|
|
130
|
+
/// expects: `toJSON` is honoured; an `undefined`, function or symbol property
|
|
131
|
+
/// is left out, and in an array becomes `null`; a class instance is written as
|
|
132
|
+
/// its own enumerable fields. A non-finite number becomes `null`. What still
|
|
133
|
+
/// cannot be written — a cycle, a `BigInt` — is refused with a reason.
|
|
134
|
+
export function toWireJson(value, seen = new Set(), inArray = false) {
|
|
135
|
+
if (value instanceof RawJsonNumber) return value;
|
|
136
|
+
if (value !== null && typeof value === 'object' && typeof value.toJSON === 'function') value = value.toJSON();
|
|
137
|
+
if (value === undefined || typeof value === 'function' || typeof value === 'symbol') return inArray ? null : undefined;
|
|
138
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean') return value;
|
|
139
|
+
if (typeof value === 'number') return Number.isFinite(value) ? value : null;
|
|
140
|
+
if (typeof value === 'bigint') throw new ProtocolError('invalid_payload', 'a BigInt cannot be written as JSON; convert it to a number or a string');
|
|
141
|
+
if (seen.has(value)) throw new ProtocolError('invalid_payload', 'payload must not be cyclic');
|
|
142
|
+
seen.add(value);
|
|
143
|
+
let copy;
|
|
144
|
+
if (Array.isArray(value)) copy = value.map((item) => toWireJson(item, seen, true));
|
|
145
|
+
else {
|
|
146
|
+
copy = {};
|
|
147
|
+
for (const key of Object.keys(value)) {
|
|
148
|
+
const item = toWireJson(value[key], seen, false);
|
|
149
|
+
if (item !== undefined) copy[key] = item;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
seen.delete(value);
|
|
153
|
+
return copy;
|
|
154
|
+
}
|
|
155
|
+
const wire = (payload) => (payload === undefined ? null : toWireJson(payload));
|
|
156
|
+
|
|
123
157
|
export function envelope(identity, message) { return validateEnvelope({ protocol_version: PROTOCOL_VERSION, ...identity, message }); }
|
|
124
|
-
export function terminal(identity, status, payload) { return envelope(identity, { type: 'terminal', status, payload }); }
|
|
125
|
-
export function request(identity, method, payload) { return envelope(identity, { type: 'request', method, payload }); }
|
|
126
|
-
export function notification(identity, method, payload) { return envelope(identity, { type: 'notification', method, payload }); }
|
|
127
|
-
export function chunk(identity, payload) { return envelope(identity, { type: 'chunk', payload }); }
|
|
158
|
+
export function terminal(identity, status, payload) { return envelope(identity, { type: 'terminal', status, payload: wire(payload) }); }
|
|
159
|
+
export function request(identity, method, payload) { return envelope(identity, { type: 'request', method, payload: wire(payload) }); }
|
|
160
|
+
export function notification(identity, method, payload) { return envelope(identity, { type: 'notification', method, payload: wire(payload) }); }
|
|
161
|
+
export function chunk(identity, payload) { return envelope(identity, { type: 'chunk', payload: wire(payload) }); }
|
|
128
162
|
export function cancel(target) { return notification(target, CALL_CANCEL_METHOD, null); }
|
|
129
163
|
export function isPlatformControl(value) { return value.plugin_id === PLATFORM_PLUGIN_ID && value.scope_id === PLATFORM_CONTROL_SCOPE_ID && value.scope_generation === 0; }
|
package/bin/rebon
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
2
|
name: package/bin/rebon
|
|
3
|
-
size:
|
|
4
|
-
sha256:
|
|
3
|
+
size: 55819024 bytes
|
|
4
|
+
sha256: 65dacb976347fb2495540a0d1fb76e44aec3322026076db94529445f4e88516b
|
package/bin/rebon-boa-helper
CHANGED
|
Binary file
|
package/bin/rebon-browser-mcp
CHANGED
|
Binary file
|
package/bin/rebon-computer-use
CHANGED
|
Binary file
|
package/bin/rebon-lsp-mcp
CHANGED
|
Binary file
|
package/bin/sandbox-win
CHANGED
|
Binary file
|