opensip-cli 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap/artifact-seams.d.ts +7 -0
- package/dist/bootstrap/artifact-seams.d.ts.map +1 -0
- package/dist/bootstrap/artifact-seams.js +53 -0
- package/dist/bootstrap/artifact-seams.js.map +1 -0
- package/dist/bootstrap/atomic-artifact-write.d.ts +19 -0
- package/dist/bootstrap/atomic-artifact-write.d.ts.map +1 -0
- package/dist/bootstrap/atomic-artifact-write.js +68 -0
- package/dist/bootstrap/atomic-artifact-write.js.map +1 -0
- package/dist/bootstrap/baseline-seams.d.ts.map +1 -1
- package/dist/bootstrap/baseline-seams.js +79 -27
- package/dist/bootstrap/baseline-seams.js.map +1 -1
- package/dist/bootstrap/build-external-worker-child-env.d.ts +25 -0
- package/dist/bootstrap/build-external-worker-child-env.d.ts.map +1 -0
- package/dist/bootstrap/build-external-worker-child-env.js +71 -0
- package/dist/bootstrap/build-external-worker-child-env.js.map +1 -0
- package/dist/bootstrap/build-per-run-scope.js +1 -1
- package/dist/bootstrap/build-per-run-scope.js.map +1 -1
- package/dist/bootstrap/build-targets.d.ts.map +1 -1
- package/dist/bootstrap/build-targets.js +2 -7
- package/dist/bootstrap/build-targets.js.map +1 -1
- package/dist/bootstrap/config-and-capabilities.d.ts.map +1 -1
- package/dist/bootstrap/config-and-capabilities.js +15 -101
- package/dist/bootstrap/config-and-capabilities.js.map +1 -1
- package/dist/bootstrap/config-declarations.d.ts +23 -0
- package/dist/bootstrap/config-declarations.d.ts.map +1 -0
- package/dist/bootstrap/config-declarations.js +73 -0
- package/dist/bootstrap/config-declarations.js.map +1 -0
- package/dist/bootstrap/deliver-envelope.d.ts +4 -1
- package/dist/bootstrap/deliver-envelope.d.ts.map +1 -1
- package/dist/bootstrap/deliver-envelope.js +12 -5
- package/dist/bootstrap/deliver-envelope.js.map +1 -1
- package/dist/bootstrap/dispatch-fork-core.d.ts +1 -1
- package/dist/bootstrap/dispatch-fork-core.d.ts.map +1 -1
- package/dist/bootstrap/dispatch-fork-core.js +73 -75
- package/dist/bootstrap/dispatch-fork-core.js.map +1 -1
- package/dist/bootstrap/dispatch-host-rpc-handler.d.ts.map +1 -1
- package/dist/bootstrap/dispatch-host-rpc-handler.js +4 -0
- package/dist/bootstrap/dispatch-host-rpc-handler.js.map +1 -1
- package/dist/bootstrap/dispatch-replay-result.d.ts.map +1 -1
- package/dist/bootstrap/dispatch-replay-result.js +3 -0
- package/dist/bootstrap/dispatch-replay-result.js.map +1 -1
- package/dist/bootstrap/load-tool-capabilities.d.ts.map +1 -1
- package/dist/bootstrap/load-tool-capabilities.js +34 -3
- package/dist/bootstrap/load-tool-capabilities.js.map +1 -1
- package/dist/bootstrap/register-tools-discovery.d.ts.map +1 -1
- package/dist/bootstrap/register-tools-discovery.js +2 -0
- package/dist/bootstrap/register-tools-discovery.js.map +1 -1
- package/dist/bootstrap/report-failure.d.ts +28 -0
- package/dist/bootstrap/report-failure.d.ts.map +1 -0
- package/dist/bootstrap/report-failure.js +135 -0
- package/dist/bootstrap/report-failure.js.map +1 -0
- package/dist/bootstrap/run-plane.d.ts.map +1 -1
- package/dist/bootstrap/run-plane.js +1 -0
- package/dist/bootstrap/run-plane.js.map +1 -1
- package/dist/bootstrap/scope-access.d.ts +1 -1
- package/dist/bootstrap/scope-access.d.ts.map +1 -1
- package/dist/bootstrap/scope-access.js +7 -2
- package/dist/bootstrap/scope-access.js.map +1 -1
- package/dist/bootstrap/state-lock-policy.d.ts +19 -0
- package/dist/bootstrap/state-lock-policy.d.ts.map +1 -0
- package/dist/bootstrap/state-lock-policy.js +86 -0
- package/dist/bootstrap/state-lock-policy.js.map +1 -0
- package/dist/bootstrap/synthesize-external-tool.d.ts.map +1 -1
- package/dist/bootstrap/synthesize-external-tool.js +11 -1
- package/dist/bootstrap/synthesize-external-tool.js.map +1 -1
- package/dist/bootstrap/tool-command-dispatch-types.d.ts +23 -2
- package/dist/bootstrap/tool-command-dispatch-types.d.ts.map +1 -1
- package/dist/bootstrap/tool-command-worker-context.d.ts +4 -3
- package/dist/bootstrap/tool-command-worker-context.d.ts.map +1 -1
- package/dist/bootstrap/tool-command-worker-context.js +28 -4
- package/dist/bootstrap/tool-command-worker-context.js.map +1 -1
- package/dist/bootstrap/tool-command-worker-entry.d.ts.map +1 -1
- package/dist/bootstrap/tool-command-worker-entry.js +38 -31
- package/dist/bootstrap/tool-command-worker-entry.js.map +1 -1
- package/dist/bootstrap/tool-command-worker-result.d.ts +25 -0
- package/dist/bootstrap/tool-command-worker-result.d.ts.map +1 -0
- package/dist/bootstrap/tool-command-worker-result.js +60 -0
- package/dist/bootstrap/tool-command-worker-result.js.map +1 -0
- package/dist/bootstrap/tool-trust.d.ts +12 -0
- package/dist/bootstrap/tool-trust.d.ts.map +1 -1
- package/dist/bootstrap/tool-trust.js +29 -5
- package/dist/bootstrap/tool-trust.js.map +1 -1
- package/dist/cli-context.d.ts.map +1 -1
- package/dist/cli-context.js +22 -3
- package/dist/cli-context.js.map +1 -1
- package/dist/commands/agent-catalog.d.ts +8 -7
- package/dist/commands/agent-catalog.d.ts.map +1 -1
- package/dist/commands/agent-catalog.js +108 -60
- package/dist/commands/agent-catalog.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +1 -0
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/config.d.ts +22 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +135 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/host-command-specs.d.ts.map +1 -1
- package/dist/commands/host-command-specs.js +8 -4
- package/dist/commands/host-command-specs.js.map +1 -1
- package/dist/commands/host-subcommand-config.d.ts +7 -0
- package/dist/commands/host-subcommand-config.d.ts.map +1 -0
- package/dist/commands/host-subcommand-config.js +75 -0
- package/dist/commands/host-subcommand-config.js.map +1 -0
- package/dist/commands/host-subcommand-groups.d.ts.map +1 -1
- package/dist/commands/host-subcommand-groups.js +7 -1
- package/dist/commands/host-subcommand-groups.js.map +1 -1
- package/dist/commands/host-subcommand-plugins.d.ts.map +1 -1
- package/dist/commands/host-subcommand-plugins.js +11 -13
- package/dist/commands/host-subcommand-plugins.js.map +1 -1
- package/dist/commands/host-subcommand-sessions.d.ts.map +1 -1
- package/dist/commands/host-subcommand-sessions.js +3 -3
- package/dist/commands/host-subcommand-sessions.js.map +1 -1
- package/dist/commands/init/language-detection.d.ts.map +1 -1
- package/dist/commands/init/language-detection.js +3 -2
- package/dist/commands/init/language-detection.js.map +1 -1
- package/dist/commands/init/scaffold-writer.d.ts.map +1 -1
- package/dist/commands/init/scaffold-writer.js +0 -1
- package/dist/commands/init/scaffold-writer.js.map +1 -1
- package/dist/commands/init.d.ts +5 -4
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +5 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mount-command-spec.d.ts +3 -1
- package/dist/commands/mount-command-spec.d.ts.map +1 -1
- package/dist/commands/mount-command-spec.js +27 -4
- package/dist/commands/mount-command-spec.js.map +1 -1
- package/dist/commands/plugin/config-edit.d.ts.map +1 -1
- package/dist/commands/plugin/config-edit.js +0 -1
- package/dist/commands/plugin/config-edit.js.map +1 -1
- package/dist/commands/plugin/host-dir.d.ts.map +1 -1
- package/dist/commands/plugin/host-dir.js +0 -1
- package/dist/commands/plugin/host-dir.js.map +1 -1
- package/dist/commands/shared.d.ts +5 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/tools/create-template-writer.d.ts +16 -0
- package/dist/commands/tools/create-template-writer.d.ts.map +1 -0
- package/dist/commands/tools/create-template-writer.js +39 -0
- package/dist/commands/tools/create-template-writer.js.map +1 -0
- package/dist/commands/tools/create-templates.d.ts +19 -0
- package/dist/commands/tools/create-templates.d.ts.map +1 -0
- package/dist/commands/tools/create-templates.js +228 -0
- package/dist/commands/tools/create-templates.js.map +1 -0
- package/dist/commands/tools/create.d.ts +4 -1
- package/dist/commands/tools/create.d.ts.map +1 -1
- package/dist/commands/tools/create.js +35 -50
- package/dist/commands/tools/create.js.map +1 -1
- package/dist/commands/tools/index.d.ts.map +1 -1
- package/dist/commands/tools/index.js +8 -0
- package/dist/commands/tools/index.js.map +1 -1
- package/dist/commands/tools/install.d.ts.map +1 -1
- package/dist/commands/tools/install.js +14 -1
- package/dist/commands/tools/install.js.map +1 -1
- package/dist/commands/tools/validate.d.ts.map +1 -1
- package/dist/commands/tools/validate.js +46 -5
- package/dist/commands/tools/validate.js.map +1 -1
- package/dist/commands/uninstall/targets.d.ts +1 -1
- package/dist/commands/uninstall/targets.d.ts.map +1 -1
- package/dist/commands/uninstall/targets.js +6 -14
- package/dist/commands/uninstall/targets.js.map +1 -1
- package/dist/env/host-env-specs.d.ts.map +1 -1
- package/dist/env/host-env-specs.js +63 -4
- package/dist/env/host-env-specs.js.map +1 -1
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +28 -6
- package/dist/error-handler.js.map +1 -1
- package/dist/format-bytes.d.ts +2 -0
- package/dist/format-bytes.d.ts.map +1 -0
- package/dist/format-bytes.js +10 -0
- package/dist/format-bytes.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/report-compose.d.ts.map +1 -1
- package/dist/report-compose.js +21 -3
- package/dist/report-compose.js.map +1 -1
- package/dist/session-replay-registry.d.ts.map +1 -1
- package/dist/session-replay-registry.js +0 -1
- package/dist/session-replay-registry.js.map +1 -1
- package/dist/ui/result-to-view.d.ts.map +1 -1
- package/dist/ui/result-to-view.js +10 -1
- package/dist/ui/result-to-view.js.map +1 -1
- package/dist/ui/views/misc-views.d.ts +13 -0
- package/dist/ui/views/misc-views.d.ts.map +1 -1
- package/dist/ui/views/misc-views.js +54 -10
- package/dist/ui/views/misc-views.js.map +1 -1
- package/dist/ui/views/tools-views.d.ts.map +1 -1
- package/dist/ui/views/tools-views.js +8 -7
- package/dist/ui/views/tools-views.js.map +1 -1
- package/dist/update-notifier.d.ts +3 -0
- package/dist/update-notifier.d.ts.map +1 -1
- package/dist/update-notifier.js +3 -0
- package/dist/update-notifier.js.map +1 -1
- package/dist/update-state.d.ts.map +1 -1
- package/dist/update-state.js +0 -1
- package/dist/update-state.js.map +1 -1
- package/package.json +33 -33
package/dist/commands/init.js
CHANGED
|
@@ -29,10 +29,11 @@
|
|
|
29
29
|
* Promotion path: when a customer's pack outgrows a handful of .mjs
|
|
30
30
|
* files (shared helpers, tests, more than a dozen checks/scenarios),
|
|
31
31
|
* `opensip-cli/<domain>/` can graduate to a real workspace npm
|
|
32
|
-
* package —
|
|
33
|
-
* `
|
|
34
|
-
*
|
|
35
|
-
*
|
|
32
|
+
* package — fit packs declare the `fit-pack` marker plus target-domain epoch;
|
|
33
|
+
* sim packs use the `scenarios-*` package-name pattern. Add `tsconfig.json` and
|
|
34
|
+
* an `index.ts` re-exporting checks/recipes or scenarios/recipes. Marker-based
|
|
35
|
+
* discovery picks up a fit workspace package automatically regardless of npm
|
|
36
|
+
* scope. The init scaffold stays loose-`.mjs` to
|
|
36
37
|
* preserve the fast first-touch experience; graduation is a manual
|
|
37
38
|
* step the customer takes when their coverage becomes substantial.
|
|
38
39
|
* See docs/public/50-extend/01-plugin-authoring.md.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `ctx.emitEnvelope`), so the handler contract stayed byte-identical (§5.5).
|
|
15
15
|
*/
|
|
16
16
|
import { type CliProgram, type CommandResult } from '@opensip-cli/contracts';
|
|
17
|
-
import { type LiveViewContext, type ToolRunCompletion, type CommandSpec, type ToolCliContext } from '@opensip-cli/core';
|
|
17
|
+
import { type LiveViewContext, type ReportFailureDetail, type ToolRunCompletion, type CommandSpec, type ToolCliContext } from '@opensip-cli/core';
|
|
18
18
|
import { type RunActionHooks } from '../bootstrap/run-plane.js';
|
|
19
19
|
/**
|
|
20
20
|
* A {@link CommandSpec} whose handler receives the concrete host
|
|
@@ -47,6 +47,8 @@ export type HostCommandSpec<TOpts = Record<string, unknown>> = CommandSpec<TOpts
|
|
|
47
47
|
export interface CommandMountContext extends RunActionHooks {
|
|
48
48
|
readonly render: (result: CommandResult) => Promise<void>;
|
|
49
49
|
readonly setExitCode: (code: number) => void;
|
|
50
|
+
/** Host-owned command-failure fan-out (Plan 06). Optional on lean host contexts. */
|
|
51
|
+
readonly reportFailure?: (detail: ReportFailureDetail) => Promise<void>;
|
|
50
52
|
readonly emitEnvelope?: (envelope: unknown) => void;
|
|
51
53
|
/**
|
|
52
54
|
* Optional live view dispatch. When the command declares output:'live-view',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-command-spec.d.ts","sourceRoot":"","sources":["../../src/commands/mount-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"mount-command-spec.d.ts","sourceRoot":"","sources":["../../src/commands/mount-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAOhE;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAElG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,oFAAoF;IACpF,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,WAAW,CAAC,EAAE,eAAe,KAC1B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAS,mBAAmB,EAC/D,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAChC,GAAG,EAAE,IAAI,GACR,UAAU,CA+GZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,wBAAsB,cAAc,CAAC,IAAI,SAAS,mBAAmB,EACnE,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,SAAS,OAAO,EAAE,EAC/B,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,IAAI,CAAC,CAiEf"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `ctx.emitEnvelope`), so the handler contract stayed byte-identical (§5.5).
|
|
15
15
|
*/
|
|
16
16
|
import { applyCommonFlags, mapToolErrorToExitCode, } from '@opensip-cli/contracts';
|
|
17
|
-
import { ToolError, currentScope, } from '@opensip-cli/core';
|
|
17
|
+
import { SystemError, ToolError, currentScope, } from '@opensip-cli/core';
|
|
18
18
|
import { showInternalCommands } from './internal-command-visibility.js';
|
|
19
19
|
import { splitActionArgs } from './mount-command-action.js';
|
|
20
20
|
import { buildOption, formatArgUsage } from './mount-command-spec-wiring.js';
|
|
@@ -93,6 +93,15 @@ export function mountCommandSpec(program, spec, ctx) {
|
|
|
93
93
|
cmd.action(async (...actionArgs) => {
|
|
94
94
|
const { opts, positionals } = splitActionArgs(actionArgs);
|
|
95
95
|
const optsWithArgs = { ...opts, _args: positionals };
|
|
96
|
+
let failureReported = false;
|
|
97
|
+
const actionCtx = ctx.reportFailure === undefined
|
|
98
|
+
? ctx
|
|
99
|
+
: Object.assign(Object.create(ctx), {
|
|
100
|
+
reportFailure: async (detail) => {
|
|
101
|
+
failureReported = true;
|
|
102
|
+
await ctx.reportFailure?.(detail);
|
|
103
|
+
},
|
|
104
|
+
});
|
|
96
105
|
// Lifecycle diagnostics (§5.10): bracket the handler with `execute` events so
|
|
97
106
|
// every CommandOutcome carries a record that this command ran. Scope-bound via
|
|
98
107
|
// the pre-action hook's enterScope; a no-op when no scope is present (tests).
|
|
@@ -116,18 +125,27 @@ export function mountCommandSpec(program, spec, ctx) {
|
|
|
116
125
|
diagnostics?.event('execute', 'debug', `command '${spec.name}' dispatched out-of-process`);
|
|
117
126
|
return;
|
|
118
127
|
}
|
|
119
|
-
const result = await spec.handler(optsWithArgs,
|
|
128
|
+
const result = await spec.handler(optsWithArgs, actionCtx);
|
|
120
129
|
diagnostics?.event('execute', 'debug', `command '${spec.name}' completed`);
|
|
121
130
|
// Static-path completion: if the handler returned a ToolRunCompletion with
|
|
122
131
|
// a session contribution, the host freezes the lifecycle and persists it.
|
|
123
132
|
// A plain CommandResult (no session) is a no-op — there is no tool-side
|
|
124
133
|
// generic-session writer. The live-view path persists after renderLive.
|
|
125
134
|
ctx.completeRun?.(result);
|
|
135
|
+
if (failureReported && result === undefined) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
126
138
|
await dispatchOutput(result, spec, optsWithArgs, positionals, ctx);
|
|
127
139
|
}
|
|
128
140
|
catch (error) {
|
|
129
141
|
if (error instanceof ToolError) {
|
|
130
|
-
|
|
142
|
+
if (ctx.reportFailure !== undefined) {
|
|
143
|
+
await ctx.reportFailure({
|
|
144
|
+
error,
|
|
145
|
+
jsonRequested: optsWithArgs.json === true,
|
|
146
|
+
});
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
131
149
|
ctx.setExitCode(mapToolErrorToExitCode(error));
|
|
132
150
|
return;
|
|
133
151
|
}
|
|
@@ -165,6 +183,9 @@ export async function dispatchOutput(result, spec, opts, positionals, ctx) {
|
|
|
165
183
|
const jsonRequested = opts.json === true;
|
|
166
184
|
switch (spec.output) {
|
|
167
185
|
case 'command-result': {
|
|
186
|
+
if (result === undefined) {
|
|
187
|
+
throw new SystemError(`mountCommandSpec: command '${spec.name}' declares output 'command-result' but its handler returned undefined. Return a CommandResult, throw a ToolError, or call reportFailure and return.`, { code: 'SYSTEM.COMMAND_RESULT.UNDEFINED' });
|
|
188
|
+
}
|
|
168
189
|
await emitCommandResult(result, {
|
|
169
190
|
render: (r) => ctx.render(r),
|
|
170
191
|
jsonRequested,
|
|
@@ -207,7 +228,9 @@ export async function dispatchOutput(result, spec, opts, positionals, ctx) {
|
|
|
207
228
|
// ToolCliContext (tool live-view commands) will have runSession; lean
|
|
208
229
|
// host contexts won't reach here.
|
|
209
230
|
const liveContext = ctx.runSession
|
|
210
|
-
? {
|
|
231
|
+
? {
|
|
232
|
+
runSession: ctx.runSession,
|
|
233
|
+
}
|
|
211
234
|
: undefined;
|
|
212
235
|
await ctx.renderLive(spec.name, { ...opts, _args: positionals }, liveContext);
|
|
213
236
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-command-spec.js","sourceRoot":"","sources":["../../src/commands/mount-command-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,SAAS,EACT,YAAY,
|
|
1
|
+
{"version":3,"file":"mount-command-spec.js","sourceRoot":"","sources":["../../src/commands/mount-command-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-edit.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/config-edit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-edit.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/config-edit.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAcH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,KAAK,GAAG,QAAQ,GACnB,OAAO,CAwCT;AAuDD,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAET"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @fitness-ignore-file silent-early-returns -- config-edit helpers (editPluginList/appendToPluginList/removeFromPluginList) return boolean as their documented "did I modify?" contract: false means "no-op / idempotent (already present, already absent, nothing to remove)"; explicit idempotency signals, not silent failures.
|
|
2
|
-
// @fitness-ignore-file unbounded-memory -- reads opensip-cli.config.yml; bounded by configuration shape.
|
|
3
2
|
/**
|
|
4
3
|
* @fileoverview YAML-driven edits to `plugins.<domain>` in
|
|
5
4
|
* `opensip-cli.config.yml`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-edit.js","sourceRoot":"","sources":["../../../src/commands/plugin/config-edit.ts"],"names":[],"mappings":"AAAA,mUAAmU;AACnU
|
|
1
|
+
{"version":3,"file":"config-edit.js","sourceRoot":"","sources":["../../../src/commands/plugin/config-edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-dir.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/host-dir.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"host-dir.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/host-dir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED,uFAAuF;AACvF,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoBjE;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,IAAI,CAsBN;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,MAAM,GAAG,SAAS,CAEpB;AA2BD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAG7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-dir.js","sourceRoot":"","sources":["../../../src/commands/plugin/host-dir.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"host-dir.js","sourceRoot":"","sources":["../../../src/commands/plugin/host-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import type { SpecLike } from './completion.js';
|
|
13
13
|
import type { SessionReplayRegistry } from '../session-replay-registry.js';
|
|
14
14
|
import type { CommandResult } from '@opensip-cli/contracts';
|
|
15
|
-
import type { PluginLayout, ScaffoldContext, ScaffoldFile, ToolRegistry } from '@opensip-cli/core';
|
|
15
|
+
import type { PluginLayout, ScaffoldContext, ScaffoldFile, ToolPluginManifest, ToolProvenance, ToolRegistry } from '@opensip-cli/core';
|
|
16
16
|
/**
|
|
17
17
|
* One registered tool's `init`-scaffold contribution (ADR-0038): its structural
|
|
18
18
|
* `pluginLayout` (domain + userSubdirs the host `mkdir`s) plus the optional
|
|
@@ -101,6 +101,10 @@ export interface CliCommandsContext {
|
|
|
101
101
|
readonly toolInternalCommands?: ReadonlySet<string>;
|
|
102
102
|
/** Live tool registry for identity-aware host commands (optional in tests). */
|
|
103
103
|
readonly tools?: ToolRegistry;
|
|
104
|
+
/** Admitted tool manifests for config declaration composition (optional in tests). */
|
|
105
|
+
readonly manifests?: readonly ToolPluginManifest[];
|
|
106
|
+
/** Per-run tool provenance for config declaration composition (optional in tests). */
|
|
107
|
+
readonly provenance?: readonly ToolProvenance[];
|
|
104
108
|
/**
|
|
105
109
|
* Persistence accessor (thunk). Calling this returns the project-local
|
|
106
110
|
* DataStore, opening it lazily on first access. Commands that don't read
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,SAAS,YAAY,EAAE,CAAC;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxB,KAAK,IAAI,CAAC;IACX;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IACvD;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpD,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;CACnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TemplateRenderedFile } from './create-templates.js';
|
|
2
|
+
export interface WriteTemplateFilesInput {
|
|
3
|
+
readonly toolDir: string;
|
|
4
|
+
readonly files: readonly TemplateRenderedFile[];
|
|
5
|
+
readonly force?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface WriteTemplateFilesResult {
|
|
8
|
+
readonly success: boolean;
|
|
9
|
+
readonly files: readonly string[];
|
|
10
|
+
readonly error?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Write rendered template files under `toolDir`, rejecting unsafe relative paths.
|
|
14
|
+
*/
|
|
15
|
+
export declare function writeTemplateFiles(input: WriteTemplateFilesInput): WriteTemplateFilesResult;
|
|
16
|
+
//# sourceMappingURL=create-template-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-template-writer.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/create-template-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AASlE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,wBAAwB,CA6B3F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join, resolve, sep } from 'node:path';
|
|
3
|
+
function isSafeRelativePath(toolDir, relativePath) {
|
|
4
|
+
if (relativePath.length === 0)
|
|
5
|
+
return false;
|
|
6
|
+
const resolved = resolve(toolDir, relativePath);
|
|
7
|
+
const root = resolve(toolDir);
|
|
8
|
+
return resolved === root || resolved.startsWith(`${root}${sep}`);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Write rendered template files under `toolDir`, rejecting unsafe relative paths.
|
|
12
|
+
*/
|
|
13
|
+
export function writeTemplateFiles(input) {
|
|
14
|
+
if (existsSync(input.toolDir) && !input.force) {
|
|
15
|
+
return {
|
|
16
|
+
success: false,
|
|
17
|
+
files: [],
|
|
18
|
+
error: `directory already exists: ${input.toolDir} (pass --force to overwrite scaffold files)`,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
for (const file of input.files) {
|
|
22
|
+
if (!isSafeRelativePath(input.toolDir, file.relativePath)) {
|
|
23
|
+
return {
|
|
24
|
+
success: false,
|
|
25
|
+
files: [],
|
|
26
|
+
error: `unsafe template path rejected: ${file.relativePath}`,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const written = [];
|
|
31
|
+
for (const file of input.files) {
|
|
32
|
+
const absolutePath = join(input.toolDir, file.relativePath);
|
|
33
|
+
mkdirSync(join(absolutePath, '..'), { recursive: true });
|
|
34
|
+
writeFileSync(absolutePath, file.content, 'utf8');
|
|
35
|
+
written.push(absolutePath);
|
|
36
|
+
}
|
|
37
|
+
return { success: true, files: written };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=create-template-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-template-writer.js","sourceRoot":"","sources":["../../../src/commands/tools/create-template-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAI/C,SAAS,kBAAkB,CAAC,OAAe,EAAE,YAAoB;IAC/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;AACnE,CAAC;AAcD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,6BAA6B,KAAK,CAAC,OAAO,6CAA6C;SAC/F,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,kCAAkC,IAAI,CAAC,YAAY,EAAE;aAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type ToolsCreateTemplate = 'minimal-js' | 'ts-local';
|
|
2
|
+
export interface TemplateRenderedFile {
|
|
3
|
+
readonly relativePath: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
}
|
|
6
|
+
export interface TemplateRenderContext {
|
|
7
|
+
readonly toolId: string;
|
|
8
|
+
readonly stableId: string;
|
|
9
|
+
readonly commandName: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TemplateRenderResult {
|
|
12
|
+
readonly files: readonly TemplateRenderedFile[];
|
|
13
|
+
readonly nextSteps: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
export type TemplateRenderer = (ctx: TemplateRenderContext) => TemplateRenderResult;
|
|
16
|
+
export declare const TOOLS_CREATE_TEMPLATES: readonly ToolsCreateTemplate[];
|
|
17
|
+
export declare function isToolsCreateTemplate(value: string): value is ToolsCreateTemplate;
|
|
18
|
+
export declare const TOOLS_CREATE_TEMPLATE_RENDERERS: Record<ToolsCreateTemplate, TemplateRenderer>;
|
|
19
|
+
//# sourceMappingURL=create-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-templates.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/create-templates.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,qBAAqB,KAAK,oBAAoB,CAAC;AA2NpF,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAA+B,CAAC;AAEjG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,mBAAmB,CAEjF;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAyBzF,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { PLUGIN_API_VERSION, PROJECT_LOCAL_MANIFEST_FILE, readPackageVersion, } from '@opensip-cli/core';
|
|
2
|
+
const CORE_PACKAGE_VERSION = readPackageVersion(new URL('../../../../core/package.json', import.meta.url).href);
|
|
3
|
+
function manifestBlock(ctx, main) {
|
|
4
|
+
return {
|
|
5
|
+
kind: 'tool',
|
|
6
|
+
id: ctx.toolId,
|
|
7
|
+
identity: { name: ctx.toolId },
|
|
8
|
+
stableId: ctx.stableId,
|
|
9
|
+
name: ctx.toolId,
|
|
10
|
+
version: '0.1.0',
|
|
11
|
+
apiVersion: PLUGIN_API_VERSION,
|
|
12
|
+
main,
|
|
13
|
+
commands: [{ name: ctx.commandName, description: `Run ${ctx.toolId}` }],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function manifestJson(ctx, main) {
|
|
17
|
+
return `${JSON.stringify(manifestBlock(ctx, main), null, 2)}\n`;
|
|
18
|
+
}
|
|
19
|
+
function minimalJsRuntime(ctx) {
|
|
20
|
+
return `export const tool = {
|
|
21
|
+
identity: { name: '${ctx.toolId}' },
|
|
22
|
+
metadata: {
|
|
23
|
+
id: '${ctx.stableId}',
|
|
24
|
+
name: '${ctx.toolId}',
|
|
25
|
+
version: '0.1.0',
|
|
26
|
+
description: 'Project-local tool scaffolded by opensip tools create',
|
|
27
|
+
},
|
|
28
|
+
commandSpecs: [
|
|
29
|
+
{
|
|
30
|
+
name: '${ctx.commandName}',
|
|
31
|
+
description: 'Run ${ctx.toolId}',
|
|
32
|
+
commonFlags: ['json'],
|
|
33
|
+
scope: 'none',
|
|
34
|
+
output: 'command-result',
|
|
35
|
+
handler: async (opts, cli) => {
|
|
36
|
+
cli.logger.info({ evt: '${ctx.toolId}.run.start', module: '${ctx.toolId}:cli' });
|
|
37
|
+
try {
|
|
38
|
+
return {
|
|
39
|
+
type: 'text-lines',
|
|
40
|
+
title: '${ctx.toolId}',
|
|
41
|
+
lines: ['Your project-local tool is ready — allowlist it, then run opensip ${ctx.commandName}.'],
|
|
42
|
+
};
|
|
43
|
+
} catch (error) {
|
|
44
|
+
// The host normalizes any caught value; return after reporting so this
|
|
45
|
+
// command-result handler does not fall through to an undefined result.
|
|
46
|
+
await cli.reportFailure({ error, jsonRequested: opts.json === true });
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
function minimalJsNextSteps(ctx) {
|
|
56
|
+
const toolDir = `opensip-cli/tools/${ctx.toolId}`;
|
|
57
|
+
return [
|
|
58
|
+
`export OPENSIP_CLI_ALLOW_PROJECT_TOOLS='${ctx.toolId}'`,
|
|
59
|
+
`opensip tools validate ${toolDir}`,
|
|
60
|
+
`opensip ${ctx.commandName}`,
|
|
61
|
+
'Run logs land under opensip-cli/.runtime/logs/ when the host configures logging.',
|
|
62
|
+
'Validation executes candidate code in a child process; it is not a security sandbox.',
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
function tsLocalIndexTs(ctx) {
|
|
66
|
+
return `import { createTool, createToolLogger } from '@opensip-cli/core';
|
|
67
|
+
|
|
68
|
+
const log = createToolLogger('${ctx.toolId}:cli');
|
|
69
|
+
|
|
70
|
+
function isJsonRequested(opts: unknown): boolean {
|
|
71
|
+
return typeof opts === 'object' && opts !== null && 'json' in opts && opts.json === true;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const tool = createTool({
|
|
75
|
+
identity: { name: '${ctx.toolId}' },
|
|
76
|
+
metadata: {
|
|
77
|
+
id: '${ctx.stableId}',
|
|
78
|
+
version: '0.1.0',
|
|
79
|
+
description: 'Project-local typed tool scaffolded by opensip tools create',
|
|
80
|
+
},
|
|
81
|
+
primaryCommand: {
|
|
82
|
+
description: 'Run ${ctx.toolId}',
|
|
83
|
+
commonFlags: ['json'],
|
|
84
|
+
scope: 'none',
|
|
85
|
+
output: 'command-result',
|
|
86
|
+
handler: async (opts, cli) => {
|
|
87
|
+
log.info({ evt: '${ctx.toolId}.run.start' });
|
|
88
|
+
try {
|
|
89
|
+
return {
|
|
90
|
+
type: 'text-lines',
|
|
91
|
+
title: '${ctx.toolId}',
|
|
92
|
+
lines: ['Your typed project-local tool is ready — build, validate, allowlist, then run.'],
|
|
93
|
+
};
|
|
94
|
+
} catch (error) {
|
|
95
|
+
// The host normalizes any caught value; return after reporting so this
|
|
96
|
+
// command-result handler does not fall through to an undefined result.
|
|
97
|
+
await cli.reportFailure({ error, jsonRequested: isJsonRequested(opts) });
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
`;
|
|
104
|
+
}
|
|
105
|
+
function tsLocalIndexTest(ctx) {
|
|
106
|
+
return `import { describe, expect, it } from 'vitest';
|
|
107
|
+
|
|
108
|
+
import { tool } from './index.js';
|
|
109
|
+
|
|
110
|
+
describe('${ctx.toolId} tool', () => {
|
|
111
|
+
it('exports identity-derived metadata and commands without extension hooks', () => {
|
|
112
|
+
expect(tool.metadata.name).toBe('${ctx.toolId}');
|
|
113
|
+
expect(tool.metadata.id).toBe('${ctx.stableId}');
|
|
114
|
+
expect(tool.commandSpecs?.map((spec) => spec.name)).toEqual(['${ctx.commandName}']);
|
|
115
|
+
expect(tool.extensionPoints).toBeUndefined();
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
`;
|
|
119
|
+
}
|
|
120
|
+
function tsLocalPackageJson(ctx) {
|
|
121
|
+
return `${JSON.stringify({
|
|
122
|
+
name: `@opensip-cli/tool-${ctx.toolId}`,
|
|
123
|
+
private: true,
|
|
124
|
+
version: '0.1.0',
|
|
125
|
+
type: 'module',
|
|
126
|
+
scripts: {
|
|
127
|
+
build: 'tsc',
|
|
128
|
+
test: 'vitest run',
|
|
129
|
+
validate: 'opensip tools validate . --install-deps',
|
|
130
|
+
},
|
|
131
|
+
dependencies: {
|
|
132
|
+
'@opensip-cli/core': `^${CORE_PACKAGE_VERSION}`,
|
|
133
|
+
},
|
|
134
|
+
devDependencies: {
|
|
135
|
+
'@types/node': '^24.13.2',
|
|
136
|
+
typescript: '~6.0.3',
|
|
137
|
+
vitest: '^4.1.8',
|
|
138
|
+
},
|
|
139
|
+
}, null, 2)}\n`;
|
|
140
|
+
}
|
|
141
|
+
function tsLocalTsconfig() {
|
|
142
|
+
return `${JSON.stringify({
|
|
143
|
+
compilerOptions: {
|
|
144
|
+
target: 'ES2022',
|
|
145
|
+
module: 'NodeNext',
|
|
146
|
+
moduleResolution: 'NodeNext',
|
|
147
|
+
outDir: 'dist',
|
|
148
|
+
rootDir: 'src',
|
|
149
|
+
strict: true,
|
|
150
|
+
declaration: true,
|
|
151
|
+
skipLibCheck: true,
|
|
152
|
+
},
|
|
153
|
+
include: ['src/**/*.ts'],
|
|
154
|
+
}, null, 2)}\n`;
|
|
155
|
+
}
|
|
156
|
+
function tsLocalReadme(ctx) {
|
|
157
|
+
const toolDir = `opensip-cli/tools/${ctx.toolId}`;
|
|
158
|
+
return `# ${ctx.toolId}
|
|
159
|
+
|
|
160
|
+
Typed project-local Tool scaffolded by \`opensip tools create --template ts-local\`.
|
|
161
|
+
|
|
162
|
+
## Build and validate
|
|
163
|
+
|
|
164
|
+
\`\`\`bash
|
|
165
|
+
cd ${toolDir}
|
|
166
|
+
pnpm install # or npm install
|
|
167
|
+
pnpm run build
|
|
168
|
+
pnpm test
|
|
169
|
+
opensip tools validate ${toolDir} --install-deps
|
|
170
|
+
\`\`\`
|
|
171
|
+
|
|
172
|
+
## Allowlist and run
|
|
173
|
+
|
|
174
|
+
Project-local tools are executable code and deny-by-default until allowlisted:
|
|
175
|
+
|
|
176
|
+
\`\`\`bash
|
|
177
|
+
export OPENSIP_CLI_ALLOW_PROJECT_TOOLS='${ctx.toolId}'
|
|
178
|
+
opensip ${ctx.commandName}
|
|
179
|
+
\`\`\`
|
|
180
|
+
|
|
181
|
+
Do not use wildcard allowlists unless you trust every project-local tool in the repo.
|
|
182
|
+
Run logs land under \`opensip-cli/.runtime/logs/\` when the host configures logging.
|
|
183
|
+
Validation executes candidate code in a child process; it is not a security sandbox.
|
|
184
|
+
`;
|
|
185
|
+
}
|
|
186
|
+
function tsLocalNextSteps(ctx) {
|
|
187
|
+
const toolDir = `opensip-cli/tools/${ctx.toolId}`;
|
|
188
|
+
return [
|
|
189
|
+
`cd ${toolDir} && pnpm install`,
|
|
190
|
+
'pnpm run build',
|
|
191
|
+
'pnpm test',
|
|
192
|
+
`opensip tools validate ${toolDir} --install-deps`,
|
|
193
|
+
`export OPENSIP_CLI_ALLOW_PROJECT_TOOLS='${ctx.toolId}'`,
|
|
194
|
+
`opensip ${ctx.commandName}`,
|
|
195
|
+
'Validation executes candidate code in a child process; it is not a security sandbox.',
|
|
196
|
+
];
|
|
197
|
+
}
|
|
198
|
+
export const TOOLS_CREATE_TEMPLATES = ['minimal-js', 'ts-local'];
|
|
199
|
+
export function isToolsCreateTemplate(value) {
|
|
200
|
+
return TOOLS_CREATE_TEMPLATES.includes(value);
|
|
201
|
+
}
|
|
202
|
+
export const TOOLS_CREATE_TEMPLATE_RENDERERS = {
|
|
203
|
+
'minimal-js': (ctx) => ({
|
|
204
|
+
files: [
|
|
205
|
+
{
|
|
206
|
+
relativePath: PROJECT_LOCAL_MANIFEST_FILE,
|
|
207
|
+
content: manifestJson(ctx, './index.mjs'),
|
|
208
|
+
},
|
|
209
|
+
{ relativePath: 'index.mjs', content: minimalJsRuntime(ctx) },
|
|
210
|
+
],
|
|
211
|
+
nextSteps: minimalJsNextSteps(ctx),
|
|
212
|
+
}),
|
|
213
|
+
'ts-local': (ctx) => ({
|
|
214
|
+
files: [
|
|
215
|
+
{
|
|
216
|
+
relativePath: PROJECT_LOCAL_MANIFEST_FILE,
|
|
217
|
+
content: manifestJson(ctx, './dist/index.js'),
|
|
218
|
+
},
|
|
219
|
+
{ relativePath: 'package.json', content: tsLocalPackageJson(ctx) },
|
|
220
|
+
{ relativePath: 'tsconfig.json', content: tsLocalTsconfig() },
|
|
221
|
+
{ relativePath: 'src/index.ts', content: tsLocalIndexTs(ctx) },
|
|
222
|
+
{ relativePath: 'src/index.test.ts', content: tsLocalIndexTest(ctx) },
|
|
223
|
+
{ relativePath: 'README.md', content: tsLocalReadme(ctx) },
|
|
224
|
+
],
|
|
225
|
+
nextSteps: tsLocalNextSteps(ctx),
|
|
226
|
+
}),
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=create-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-templates.js","sourceRoot":"","sources":["../../../src/commands/tools/create-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { type ToolsCreateTemplate } from './create-templates.js';
|
|
1
2
|
import type { ToolsCreateResult } from '@opensip-cli/contracts';
|
|
3
|
+
export declare const TOOL_ID_PATTERN: RegExp;
|
|
2
4
|
export interface ToolsCreateInput {
|
|
3
5
|
readonly toolId: string;
|
|
4
6
|
readonly projectRoot: string;
|
|
5
7
|
readonly force?: boolean;
|
|
8
|
+
readonly template?: ToolsCreateTemplate;
|
|
6
9
|
}
|
|
7
10
|
/**
|
|
8
|
-
* Scaffold a
|
|
11
|
+
* Scaffold a project-local Tool under `<project>/opensip-cli/tools/<id>/`.
|
|
9
12
|
*/
|
|
10
13
|
export declare function toolsCreate(input: ToolsCreateInput): ToolsCreateResult;
|
|
11
14
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/create.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,eAAO,MAAM,eAAe,QAAsB,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAgEtE"}
|