@octonodes/sdk 0.1.0 → 0.1.5

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.
Files changed (76) hide show
  1. package/PLUGINS.md +228 -91
  2. package/dist/constants.d.ts +1 -0
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +2 -1
  5. package/dist/constants.js.map +1 -1
  6. package/dist/gen/types.gen.d.ts +149 -1
  7. package/dist/gen/types.gen.d.ts.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/plugins/schema/plugin.d.ts +164 -18
  13. package/dist/plugins/schema/plugin.d.ts.map +1 -1
  14. package/dist/plugins/schema/plugin.js +53 -1
  15. package/dist/plugins/schema/plugin.js.map +1 -1
  16. package/dist/plugins/sdk/definitions/compiler/catalog.d.ts +3 -0
  17. package/dist/plugins/sdk/definitions/compiler/catalog.d.ts.map +1 -0
  18. package/dist/plugins/sdk/definitions/compiler/catalog.js +133 -0
  19. package/dist/plugins/sdk/definitions/compiler/catalog.js.map +1 -0
  20. package/dist/plugins/sdk/definitions/compiler/constants.d.ts +6 -0
  21. package/dist/plugins/sdk/definitions/compiler/constants.d.ts.map +1 -0
  22. package/dist/plugins/sdk/definitions/compiler/constants.js +10 -0
  23. package/dist/plugins/sdk/definitions/compiler/constants.js.map +1 -0
  24. package/dist/plugins/sdk/definitions/compiler/index.d.ts +7 -0
  25. package/dist/plugins/sdk/definitions/compiler/index.d.ts.map +1 -0
  26. package/dist/plugins/sdk/definitions/compiler/index.js +411 -0
  27. package/dist/plugins/sdk/definitions/compiler/index.js.map +1 -0
  28. package/dist/plugins/sdk/definitions/compiler/literals.d.ts +5 -0
  29. package/dist/plugins/sdk/definitions/compiler/literals.d.ts.map +1 -0
  30. package/dist/plugins/sdk/definitions/compiler/literals.js +78 -0
  31. package/dist/plugins/sdk/definitions/compiler/literals.js.map +1 -0
  32. package/dist/plugins/sdk/definitions/compiler/schemas.d.ts +4 -0
  33. package/dist/plugins/sdk/definitions/compiler/schemas.d.ts.map +1 -0
  34. package/dist/plugins/sdk/definitions/compiler/schemas.js +95 -0
  35. package/dist/plugins/sdk/definitions/compiler/schemas.js.map +1 -0
  36. package/dist/plugins/sdk/definitions/compiler/types.d.ts +20 -0
  37. package/dist/plugins/sdk/definitions/compiler/types.d.ts.map +1 -0
  38. package/dist/plugins/sdk/definitions/compiler/types.js +3 -0
  39. package/dist/plugins/sdk/definitions/compiler/types.js.map +1 -0
  40. package/dist/plugins/sdk/definitions/index.d.ts +7 -0
  41. package/dist/plugins/sdk/definitions/index.d.ts.map +1 -0
  42. package/dist/plugins/sdk/definitions/index.js +16 -0
  43. package/dist/plugins/sdk/definitions/index.js.map +1 -0
  44. package/dist/plugins/sdk/definitions/npm/emit/js.d.ts +4 -0
  45. package/dist/plugins/sdk/definitions/npm/emit/js.d.ts.map +1 -0
  46. package/dist/plugins/sdk/definitions/npm/emit/js.js +190 -0
  47. package/dist/plugins/sdk/definitions/npm/emit/js.js.map +1 -0
  48. package/dist/plugins/sdk/definitions/npm/types.d.ts +63 -0
  49. package/dist/plugins/sdk/definitions/npm/types.d.ts.map +1 -0
  50. package/dist/plugins/sdk/definitions/npm/types.js +3 -0
  51. package/dist/plugins/sdk/definitions/npm/types.js.map +1 -0
  52. package/dist/plugins/sdk/definitions/types.d.ts +43 -0
  53. package/dist/plugins/sdk/definitions/types.d.ts.map +1 -0
  54. package/dist/plugins/sdk/definitions/types.js +3 -0
  55. package/dist/plugins/sdk/definitions/types.js.map +1 -0
  56. package/dist/plugins/sdk/nodes/index.d.ts +5 -0
  57. package/dist/plugins/sdk/nodes/index.d.ts.map +1 -0
  58. package/dist/plugins/sdk/nodes/index.js +12 -0
  59. package/dist/plugins/sdk/nodes/index.js.map +1 -0
  60. package/dist/plugins/sdk/plugin/index.d.ts +3 -0
  61. package/dist/plugins/sdk/plugin/index.d.ts.map +1 -0
  62. package/dist/plugins/sdk/plugin/index.js +8 -0
  63. package/dist/plugins/sdk/plugin/index.js.map +1 -0
  64. package/dist/plugins/sdk/plugin.js +1 -1
  65. package/dist/plugins/sdk/plugin.js.map +1 -1
  66. package/dist/plugins/sdk/plugins/define-node.js +1 -1
  67. package/dist/plugins/sdk/plugins/define-node.js.map +1 -1
  68. package/dist/plugins/sdk/plugins/index.js +1 -1
  69. package/dist/plugins/sdk/plugins/index.js.map +1 -1
  70. package/dist/plugins/sdk/project/index.d.ts +5 -0
  71. package/dist/plugins/sdk/project/index.d.ts.map +1 -0
  72. package/dist/plugins/sdk/project/index.js +10 -0
  73. package/dist/plugins/sdk/project/index.js.map +1 -0
  74. package/dist/plugins/sdk/runner.js +1 -1
  75. package/dist/plugins/sdk/runner.js.map +1 -1
  76. package/package.json +45 -1
package/PLUGINS.md CHANGED
@@ -1,128 +1,265 @@
1
- # Code-first plugins
1
+ # Typed Octonode authoring files
2
2
 
3
- Install `@octonodes/sdk` and import from `@octonodes/sdk/plugins`. This entry point is
4
- offline: it does not import the API client, compiler, or authentication code.
3
+ > **Status:** implemented in the source SDK and devtools. Publishing updated npm packages is a separate release step.
4
+
5
+ Octonode keeps three concerns separate: discovered code, project presentation,
6
+ and a distributable plugin. The generated YAML/JSON remains the runtime and
7
+ installation format; users author TypeScript instead of editing that large file.
8
+
9
+ | File | Owner | Purpose | Required |
10
+ | -------------------- | ----------------------------- | ------------------------------------------------------------------- | ------------------------------ |
11
+ | `octonode.nodes.ts` | Octonode generator | Typed inventory of discovered functions or npm exports | Generated when code is scanned |
12
+ | `octonode.config.ts` | Project author | Optional presentation defaults for nodes inside the current project | No |
13
+ | `octonode.plugin.ts` | Plugin author or npm importer | Select and present public nodes in one distributable plugin | Only when building a plugin |
14
+
15
+ These filenames are reserved. Octonode excludes all three from workflow source
16
+ discovery, so definition code can never become an executable workflow node.
17
+
18
+ Typical file combinations are:
19
+
20
+ - An existing Octonode project has generated `octonode.nodes.ts` and may add
21
+ `octonode.config.ts` for local appearance.
22
+ - Exporting selected project functions or saved workflows adds
23
+ `octonode.plugin.ts`; the plugin reads the generated inventory directly. Saved
24
+ DAG workflows use the existing `octonode plugin from-workflow` export first;
25
+ its package includes a typed inventory and plugin definition.
26
+ - Adapting an npm package generates `octonode.nodes.ts` and
27
+ `octonode.plugin.ts`. It does not need `octonode.config.ts` unless the same
28
+ workspace is also used as an interactive Octonode project.
29
+
30
+ ## `octonode.nodes.ts`: generated inventory
31
+
32
+ This file is the typed bridge between application code and the two authored
33
+ files. Octonode generates one stable handle for each discovered local function,
34
+ selected npm export, or workflow in a `from-workflow` export package. Handles carry the source identity and
35
+ inferred input/output types used by autocomplete and compile-time validation.
36
+
37
+ A local source inventory contains actual function references:
5
38
 
6
39
  ```ts
7
- import { definePlugin, defineNode } from "@octonodes/sdk/plugins";
40
+ // Generated by Octonode. Do not edit.
41
+ import { uppercase as node0 } from "./src/text.js";
42
+ export const nodes = { uppercase: node0 } as const;
43
+ ```
44
+
45
+ Npm and workflow inventories carry the inferred contracts and adapter identities
46
+ instead. Their generated content is checked before building.
47
+
48
+ The exact generated representation is an SDK implementation detail. Authors
49
+ only import `nodes`. The file is normally committed so editors and CI have the
50
+ same types. `octonodes plugin nodes --check` fails when it is stale or edited.
51
+ `octonodes plugin nodes` and local plugin builds regenerate source inventories.
52
+ Npm and workflow inventories are regenerated only by their original import/export commands; builds verify their generated content.
53
+
54
+ For npm packages, the stable identity is the exact module specifier plus export name. This
55
+ lets Octonode regenerate inferred types without losing authored presentation.
56
+
57
+ ## `octonode.config.ts`: current-project presentation
58
+
59
+ This optional file customizes how discovered nodes appear inside the current
60
+ project. An empty project definition is valid. A node needs only its generated
61
+ handle and the fields the author wants to change:
62
+
63
+ ```ts
64
+ import { defineNode, defineProject } from "@octonodes/sdk/project";
65
+ import { nodes } from "./octonode.nodes.js";
66
+
67
+ export default defineProject({
68
+ nodes: [
69
+ defineNode(nodes.uppercase, {
70
+ label: "Make uppercase",
71
+ symbol: "Aa",
72
+ icon: "text-cursor-input",
73
+ }),
74
+ ],
75
+ });
76
+ ```
77
+
78
+ The discovered definition supplies the ID, contract, and execution target.
79
+ Unlisted nodes keep Octonode's built-in presentation. This file cannot select a
80
+ publishable plugin, change execution code, or redefine inferred input/output
81
+ contracts.
82
+
83
+ Presentation precedence is:
84
+
85
+ 1. Octonode's inferred or built-in defaults.
86
+ 2. Defaults in `octonode.config.ts`.
87
+ 3. Shared project settings.
88
+ 4. Explicit personal or UI overrides.
89
+
90
+ Removing a code default therefore does not erase a user's explicit override.
91
+
92
+ ## `octonode.plugin.ts`: distribution boundary
93
+
94
+ This file defines one independently versioned plugin. It selects nodes from the
95
+ generated inventory and gives the external API stable names and presentation:
96
+
97
+ ```ts
98
+ import { defineNode, definePlugin } from "@octonodes/sdk/plugin";
99
+ import { nodes } from "./octonode.nodes.js";
8
100
 
9
101
  export default definePlugin({
10
102
  id: "text-tools",
11
103
  name: "Text tools",
12
104
  version: "1.0.0",
13
- license: "MIT",
14
- scope: ["public"],
15
105
  nodes: [
16
- defineNode({
106
+ defineNode(nodes.uppercase, {
17
107
  id: "uppercase",
18
- label: "Uppercase",
19
- inputs: {
20
- type: "object",
21
- properties: { text: { type: "string" } },
22
- required: ["text"],
23
- },
24
- outputs: {
25
- type: "object",
26
- properties: { text: { type: "string" } },
27
- required: ["text"],
28
- },
29
- run: ({ text }) => ({ text: text.toUpperCase() }),
108
+ label: "Make uppercase",
109
+ icon: "text-cursor-input",
30
110
  }),
31
111
  ],
32
112
  });
33
113
  ```
34
114
 
35
- Save this as `plugins/text.plugin.ts`. Put additional plugins in other
36
- `plugins/**/*.plugin.ts` files; each exports one default plugin with a unique ID.
37
- Plugins can import shared project code and installed JavaScript dependencies.
38
- The CLI bundles each entry independently into `dist/plugins/<id>` with a generated
39
- `octonode.yml`, CommonJS runner, package metadata, port documentation, and file hashes.
40
- No extra runtime installation is needed for these bundled artifacts.
115
+ The plugin file owns public node selection, stable public IDs, plugin metadata,
116
+ permissions, connections, assets, and optional inspector UI. Project-only
117
+ presentation does not leak into a published plugin. A package root defines one
118
+ plugin; independently versioned plugins use separate package roots.
41
119
 
42
- ```sh
43
- npm install @octonodes/sdk
44
- npm install --save-dev @octonodes/cli
45
- npx octonodes plugin build
46
- npx octonodes plugin validate dist/plugins/text-tools
47
- npx octonodes plugin test dist/plugins/text-tools uppercase --input '{"text":"hello"}'
120
+ For workflow nodes, the plugin's `icon` is the default. An `icon` supplied to
121
+ `defineNode` overrides it for that node; explicit user presentation overrides
122
+ remain highest priority. Without either icon, the renderer uses its normal fallback.
123
+
124
+ Declare `source: { kind: "plugin" }` when the plugin owns its implementation.
125
+ For upstream adapters, declare `source: { kind: "npm", package: "lodash",
126
+ version: "<exact inspected version>" }`. The compiler checks this against the
127
+ generated inventory and derives `integration.npm`; a mismatched package, version,
128
+ or execution source fails the build. Omitting `source` remains compatible with
129
+ older definitions: compilation infers it from the selected handles.
130
+
131
+ Npm authority does not fork or republish the dependency. Consumer code imports
132
+ the original package using the module forms it supports. Automatic decoration
133
+ of those imported calls is still planned; see
134
+ [the community plugin plan](plans/community-plugin-source-authority.md).
135
+
136
+ Local function contracts support JSON primitives, literal enums, arrays, finite
137
+ object shapes, optional parameters, and async returns. Unsupported contracts such
138
+ as `any`, recursive types, classes, and generic or overloaded functions require a
139
+ concrete typed wrapper. Project presentation does not impose these plugin contract
140
+ limits. Npm adapters retain the existing npm compiler's schemas and warnings.
141
+
142
+ The build emits the existing artifact:
143
+
144
+ ```text
145
+ dist/plugins/text-tools/
146
+ octonode.yml
147
+ runner files
148
+ assets
149
+ integrity metadata
48
150
  ```
49
151
 
50
- `defineNode` infers handler input/output types from inline JSON Schema types, enum,
51
- object properties, required fields, and array items. Unsupported schemas infer
52
- `unknown`; runtime validation enforces only the SDK's supported keywords. Plain
53
- TypeScript annotations do not generate runtime schemas. Run `tsc --noEmit` for
54
- typechecking; the CLI build bundles code but does not run the TypeScript checker.
152
+ The generated manifest remains compatible with the existing loader,
153
+ marketplace, and installations. `octonode.yml`, `octonode.yaml`,
154
+ `octonode.json`, and legacy `octonode.plugin.json` remain readable inputs for
155
+ existing plugins. There is no new hand-authored `octonode.plugin.yml` format.
156
+
157
+ ## Npm package flow
55
158
 
56
- Define identity, display, schemas, defaults, permissions, and credential metadata
57
- in code. `definePlugin` generates commands and language metadata. Keep metadata
58
- independent of environment variables, timestamps, and random values; the runner
59
- rejects a definition that differs from the built manifest. Build imports and
60
- executes your definition locally. Only build trusted source.
159
+ Use `--module jira.js/cloud` with `from-npm jira.js@6.2.0` to inspect an
160
+ exported subpath. The generated handle retains that module specifier; installation
161
+ still targets the original `jira.js` package and exact version.
61
162
 
62
- Use `connections` at plugin level and reference their names in each node:
163
+ An upstream function that takes a non-JSON SDK client can bind that parameter
164
+ to the package's own factory in `octonode.plugin.ts`:
63
165
 
64
166
  ```ts
65
- // Plugin metadata:
66
- permissions: [{ resource: "secrets", access: "read" }],
67
- connections: {
68
- crm: { label: "CRM account", fields: { CRM_TOKEN: { label: "API token" } } },
69
- },
70
- // Inside the node:
71
- connections: ["crm"],
167
+ defineNode(nodes.getIssue, {
168
+ connections: ["jira"],
169
+ bindings: {
170
+ client: {
171
+ module: "jira.js/core",
172
+ export: "createClient",
173
+ options: { auth: { type: "bearer" }, retry: { maxAttempts: 1 }, onSchemaMismatch: "throw" },
174
+ env: { host: "JIRA_HOST", "auth.token": "JIRA_ACCESS_TOKEN" },
175
+ },
176
+ },
177
+ });
72
178
  ```
73
179
 
74
- Credential fields are required and secret by default. Each installer supplies
75
- their own values at runtime. Read `process.env.CRM_TOKEN` inside the handler.
76
- Declare `network:outbound` when making network calls. Permission metadata is not
77
- an OS sandbox; the deployment's execution isolation still applies.
180
+ Declare both environment names as fields of the `jira` connection, including
181
+ `secrets:read` permission for secret fields. Factories must belong to the original
182
+ npm package. At runtime the adapter passes one options object to the factory,
183
+ awaits its result, and injects it into the original function's argument position.
184
+ Bound parameters are excluded from public inputs and defaults; input attempts to
185
+ override them fail. Credentials are read only at runtime, never during compilation.
186
+ Upstream errors from bound calls are sanitized before crossing IPC.
78
187
 
79
- Declare individual project-relative files with `assets: ["data/rules.json"]`.
80
- They retain their paths within the artifact; read them relative to `process.cwd()`.
81
- Parent traversal, symlinks, credential files, and overwriting generated files are
82
- rejected. Native addons and unbundleable dynamic dependencies are not supported.
83
- Code that reads additional files dynamically must declare those assets explicitly.
84
- Do not hardcode credentials: file exclusions cannot detect secrets in source.
188
+ This supports exported factory functions, not class constructors or arbitrary
189
+ initialization scripts. Consumer source still uses `getIssue(client, parameters)`
190
+ from `jira.js/cloud`; no Octonode replacement import is introduced.
85
191
 
86
- ## Optional node UI
192
+ `octonode plugin from-npm <package>` currently inspects exported functions and
193
+ writes the final manifest and adapter. The importer now also creates an editable typed layer:
87
194
 
88
- Install `@octonodes/ui-extensions` and add a node `ui` declaration when the standard
89
- inspector layout is not enough. The CLI bundles each declared browser entry, records
90
- its size and digest, and rejects unsafe or oversized entries. See the
91
- [`@octonodes/ui-extensions` guide](https://github.com/nivdoron1/octonode-devtools/tree/main/packages/ui-extensions#readme) for the React primitives
92
- and manifest example. Octonode still owns values, expressions, connections, and saves.
195
+ 1. Inspect package declarations and infer callable exports and schemas.
196
+ 2. Generate `octonode.nodes.ts` from package/export identities.
197
+ 3. Create `octonode.plugin.ts` with all selected exports and inferred defaults.
198
+ 4. Let the author rename, hide, reorder, or decorate nodes in that file.
199
+ 5. Run `npm install`, then `npm run build` in the generated package to produce
200
+ `dist/plugins/<id>/octonode.yml` from the typed definition.
93
201
 
94
- ## Publishing
202
+ The root `octonode.json` remains the immediate default artifact for existing
203
+ `from-npm` consumers. Customized distributions use the `dist/plugins/<id>`
204
+ artifact. After regenerating the inventory with `--force`, rebuild to apply
205
+ customizations to the new package version.
95
206
 
96
- ```sh
97
- octonodes login
98
- export OCTONODE_MARKETPLACE_URL=https://your-marketplace.example
99
- octonodes plugin publish dist/plugins/text-tools
100
- ```
207
+ On regeneration, Octonode updates the generated inventory and preserves plugin
208
+ overrides by package/export identity. Removed exports produce a clear compile
209
+ error until the author removes or replaces the corresponding plugin entry.
101
210
 
102
- Use the existing marketplace endpoint, not the public API-client URL. Publishing
103
- uploads the built manifest and archive through the existing marketplace protocol;
104
- it does not run your plugin or publish an npm package. `--registry` overrides the
105
- endpoint; `OCTONODE_MARKETPLACE_TOKEN` overrides saved login and `OCTONODE_TOKEN`.
106
- Use `--org` / `--team` for the existing organization/group distribution scopes.
107
- Server permissions and namespace ownership remain authoritative.
211
+ ```mermaid
212
+ flowchart LR
213
+ S[Local source, workflows, or npm package] --> G[Octonode discovery]
214
+ G --> N[octonode.nodes.ts]
215
+ N --> C[octonode.config.ts]
216
+ N --> P[octonode.plugin.ts]
217
+ C --> A[Current project appearance]
218
+ P --> B[Plugin build]
219
+ B --> Y[Generated octonode.yml artifact]
220
+ ```
108
221
 
109
- Scope defaults to `user`. Use `scope: ["public"]` for community discovery. Version
110
- each plugin independently and increment its version before another release.
111
- Publishing checks file hashes and refuses changed or extra files. A normal rebuild
112
- replaces a previous intact generated artifact; modified output is preserved and
113
- must be moved aside before rebuilding. Edit the TypeScript source, not generated YAML.
222
+ ## Compiler rules
114
223
 
115
- ## Maintainers: one source of truth
224
+ - TypeScript performs autocomplete and type checking; Octonode statically reads
225
+ definitions without executing them.
226
+ - Only generated handles from `octonode.nodes.ts` may be passed to `defineNode`.
227
+ - Definition SDK imports outside the three reserved files fail compilation.
228
+ - Unknown keys, duplicate public IDs, missing handles, and invalid metadata fail
229
+ with source locations.
230
+ - Implementation code may be split across normal `.ts` files. Definition values
231
+ remain static literals so builds are deterministic.
116
232
 
117
- `src/plugins/` is generated from the Octonode monorepo's SDK and schema sources.
118
- Do not edit it manually. From the main Octonode checkout, run:
233
+ ## Build and migration
119
234
 
120
235
  ```sh
121
- node scripts/sync-plugin-sdk.mjs /path/to/octonode-devtools
122
- node scripts/sync-plugin-sdk.mjs /path/to/octonode-devtools --check
236
+ octonodes plugin nodes # Generate local function handles
237
+ octonodes plugin nodes --check # Check committed inventory drift
238
+ octonodes plugin build # Type-check and build octonode.plugin.ts
239
+ octonodes plugin validate dist/plugins/text-tools
240
+ octonodes plugin test dist/plugins/text-tools uppercase --input '{"text":"hello"}'
123
241
  ```
124
242
 
125
- The main repository's SDK sync workflow updates these files alongside OpenAPI,
126
- bumps all public packages once, and runs devtools checks. Server validation uses
127
- the same authoritative schema. The public `/plugins` export does not require an
128
- unpublished `@octonode/*` npm dependency.
243
+ Move the prototype's `definePlugin` definition from `octonode.config.ts` to
244
+ `octonode.plugin.ts`. Use `@octonodes/sdk/plugin` for plugins and
245
+ `@octonodes/sdk/project` for project defaults. Replace direct function references
246
+ with generated `nodes` handles. `defineProject({})` remains valid.
247
+
248
+ Older `plugins/**/*.plugin.ts` authoring entries need migration to the root
249
+ plugin definition. Existing YAML/JSON artifacts and the `/plugins` runtime API
250
+ remain compatible; the new builder does not discover arbitrary TypeScript entries.
251
+
252
+ One plugin package contains local functions, one npm package adapter, or one
253
+ saved-workflow export. Mixing these execution sources in one package is rejected.
254
+ Use separate plugin packages when they have different runtime dependencies.
255
+ Workflow exports verify the hashes of their generated runtime files before
256
+ building. Keep dependencies declared by the workflow exporter installed.
257
+
258
+ TypeScript checks values and types; filename restrictions are enforced by the
259
+ Octonode compiler. Plain `tsc` alone cannot enforce filename ownership.
260
+
261
+ Validation covers static compilation without execution, wrong filenames, stale
262
+ inventories, project override precedence, npm argument/default behavior,
263
+ workflow runtime integrity, artifact relocation, and existing installation flows.
264
+ Decorators, executable configuration, multiple plugins in one package, custom
265
+ canvas renderers, and another manifest format remain outside this contract.
@@ -1,2 +1,3 @@
1
1
  export declare const CLOUD_API_URL = "https://api.octonode.dev";
2
+ export declare const MCP_URL = "https://mcp.octonode.dev/mcp";
2
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,6BAA6B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,6BAA6B,CAAC;AACxD,eAAO,MAAM,OAAO,iCAAiC,CAAC"}
package/dist/constants.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CLOUD_API_URL = void 0;
3
+ exports.MCP_URL = exports.CLOUD_API_URL = void 0;
4
4
  exports.CLOUD_API_URL = "https://api.octonode.dev";
5
+ exports.MCP_URL = "https://mcp.octonode.dev/mcp";
5
6
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,0BAA0B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,0BAA0B,CAAC;AAC3C,QAAA,OAAO,GAAG,8BAA8B,CAAC"}
@@ -3407,6 +3407,20 @@ export type GetApiWorkflowsByWorkflowIdGraphResponses = {
3407
3407
  };
3408
3408
  };
3409
3409
  nodes: Array<{
3410
+ plugin?: string;
3411
+ pluginVersion?: string;
3412
+ pluginUi?: {
3413
+ apiVersion: '1';
3414
+ renderers: {
3415
+ [key: string]: {
3416
+ label: string;
3417
+ targets: {
3418
+ [key: string]: string;
3419
+ };
3420
+ };
3421
+ };
3422
+ };
3423
+ renderer?: string;
3410
3424
  hiddenReason?: string;
3411
3425
  color?: string;
3412
3426
  style?: {
@@ -3682,6 +3696,20 @@ export type PostApiWorkflowsByWorkflowIdTopologyErrors = {
3682
3696
  };
3683
3697
  };
3684
3698
  nodes: Array<{
3699
+ plugin?: string;
3700
+ pluginVersion?: string;
3701
+ pluginUi?: {
3702
+ apiVersion: '1';
3703
+ renderers: {
3704
+ [key: string]: {
3705
+ label: string;
3706
+ targets: {
3707
+ [key: string]: string;
3708
+ };
3709
+ };
3710
+ };
3711
+ };
3712
+ renderer?: string;
3685
3713
  hiddenReason?: string;
3686
3714
  color?: string;
3687
3715
  style?: {
@@ -3850,6 +3878,20 @@ export type PostApiWorkflowsByWorkflowIdTopologyResponses = {
3850
3878
  };
3851
3879
  };
3852
3880
  nodes: Array<{
3881
+ plugin?: string;
3882
+ pluginVersion?: string;
3883
+ pluginUi?: {
3884
+ apiVersion: '1';
3885
+ renderers: {
3886
+ [key: string]: {
3887
+ label: string;
3888
+ targets: {
3889
+ [key: string]: string;
3890
+ };
3891
+ };
3892
+ };
3893
+ };
3894
+ renderer?: string;
3853
3895
  hiddenReason?: string;
3854
3896
  color?: string;
3855
3897
  style?: {
@@ -4041,6 +4083,16 @@ export type GetApiMarketplaceResponses = {
4041
4083
  */
4042
4084
  200: {
4043
4085
  items: Array<{
4086
+ official?: boolean;
4087
+ installCount?: number;
4088
+ ratingCount?: number;
4089
+ score?: number | null;
4090
+ sourceKind?: 'sdk' | 'npm';
4091
+ npm?: {
4092
+ package: string;
4093
+ version: string;
4094
+ spec: string;
4095
+ } | null;
4044
4096
  id: string;
4045
4097
  name: string;
4046
4098
  version: string;
@@ -4052,6 +4104,7 @@ export type GetApiMarketplaceResponses = {
4052
4104
  tags: Array<string>;
4053
4105
  nodes?: Array<{
4054
4106
  id: string;
4107
+ icon?: string;
4055
4108
  label?: string;
4056
4109
  symbol?: string;
4057
4110
  description?: string;
@@ -4065,6 +4118,17 @@ export type GetApiMarketplaceResponses = {
4065
4118
  [key: string]: unknown;
4066
4119
  };
4067
4120
  connections?: Array<string>;
4121
+ ui?: {
4122
+ apiVersion: '1';
4123
+ renderers: {
4124
+ [key: string]: {
4125
+ label: string;
4126
+ targets: {
4127
+ [key: string]: string;
4128
+ };
4129
+ };
4130
+ };
4131
+ };
4068
4132
  }>;
4069
4133
  installed: boolean;
4070
4134
  scope?: 'user' | 'group' | 'org' | 'public';
@@ -4124,6 +4188,7 @@ export type GetApiMarketplacePluginsByIdResponses = {
4124
4188
  tags: Array<string>;
4125
4189
  nodes: Array<{
4126
4190
  id: string;
4191
+ icon?: string;
4127
4192
  label?: string;
4128
4193
  symbol?: string;
4129
4194
  description?: string;
@@ -4137,7 +4202,28 @@ export type GetApiMarketplacePluginsByIdResponses = {
4137
4202
  [key: string]: unknown;
4138
4203
  };
4139
4204
  connections?: Array<string>;
4205
+ ui?: {
4206
+ apiVersion: '1';
4207
+ renderers: {
4208
+ [key: string]: {
4209
+ label: string;
4210
+ targets: {
4211
+ [key: string]: string;
4212
+ };
4213
+ };
4214
+ };
4215
+ };
4140
4216
  }>;
4217
+ official?: boolean;
4218
+ installCount?: number;
4219
+ ratingCount?: number;
4220
+ score?: number | null;
4221
+ sourceKind?: 'sdk' | 'npm';
4222
+ npm?: {
4223
+ package: string;
4224
+ version: string;
4225
+ spec: string;
4226
+ } | null;
4141
4227
  installedVersion?: string;
4142
4228
  versions: Array<{
4143
4229
  version: string;
@@ -4204,6 +4290,7 @@ export type GetApiPluginsResponses = {
4204
4290
  tags: Array<string>;
4205
4291
  nodes?: Array<{
4206
4292
  id: string;
4293
+ icon?: string;
4207
4294
  label?: string;
4208
4295
  symbol?: string;
4209
4296
  description?: string;
@@ -4217,6 +4304,17 @@ export type GetApiPluginsResponses = {
4217
4304
  [key: string]: unknown;
4218
4305
  };
4219
4306
  connections?: Array<string>;
4307
+ ui?: {
4308
+ apiVersion: '1';
4309
+ renderers: {
4310
+ [key: string]: {
4311
+ label: string;
4312
+ targets: {
4313
+ [key: string]: string;
4314
+ };
4315
+ };
4316
+ };
4317
+ };
4220
4318
  }>;
4221
4319
  }>;
4222
4320
  };
@@ -4253,6 +4351,7 @@ export type GetApiPluginsSearchResponses = {
4253
4351
  tags: Array<string>;
4254
4352
  nodes?: Array<{
4255
4353
  id: string;
4354
+ icon?: string;
4256
4355
  label?: string;
4257
4356
  symbol?: string;
4258
4357
  description?: string;
@@ -4266,6 +4365,17 @@ export type GetApiPluginsSearchResponses = {
4266
4365
  [key: string]: unknown;
4267
4366
  };
4268
4367
  connections?: Array<string>;
4368
+ ui?: {
4369
+ apiVersion: '1';
4370
+ renderers: {
4371
+ [key: string]: {
4372
+ label: string;
4373
+ targets: {
4374
+ [key: string]: string;
4375
+ };
4376
+ };
4377
+ };
4378
+ };
4269
4379
  }>;
4270
4380
  }>;
4271
4381
  total: number;
@@ -4301,6 +4411,7 @@ export type GetApiPluginsNodesResponses = {
4301
4411
  200: {
4302
4412
  items: Array<{
4303
4413
  id: string;
4414
+ icon?: string;
4304
4415
  label?: string;
4305
4416
  symbol?: string;
4306
4417
  description?: string;
@@ -4314,6 +4425,17 @@ export type GetApiPluginsNodesResponses = {
4314
4425
  [key: string]: unknown;
4315
4426
  };
4316
4427
  connections?: Array<string>;
4428
+ ui?: {
4429
+ apiVersion: '1';
4430
+ renderers: {
4431
+ [key: string]: {
4432
+ label: string;
4433
+ targets: {
4434
+ [key: string]: string;
4435
+ };
4436
+ };
4437
+ };
4438
+ };
4317
4439
  pluginId: string;
4318
4440
  pluginName: string;
4319
4441
  pluginVersion: string;
@@ -4365,6 +4487,7 @@ export type GetApiPluginsByPluginIdResponses = {
4365
4487
  tags: Array<string>;
4366
4488
  nodes: Array<{
4367
4489
  id: string;
4490
+ icon?: string;
4368
4491
  label?: string;
4369
4492
  symbol?: string;
4370
4493
  description?: string;
@@ -4378,9 +4501,19 @@ export type GetApiPluginsByPluginIdResponses = {
4378
4501
  [key: string]: unknown;
4379
4502
  };
4380
4503
  connections?: Array<string>;
4504
+ ui?: {
4505
+ apiVersion: '1';
4506
+ renderers: {
4507
+ [key: string]: {
4508
+ label: string;
4509
+ targets: {
4510
+ [key: string]: string;
4511
+ };
4512
+ };
4513
+ };
4514
+ };
4381
4515
  language?: string;
4382
4516
  command: string;
4383
- icon?: string;
4384
4517
  trigger?: boolean;
4385
4518
  env?: Array<string>;
4386
4519
  }>;
@@ -4460,6 +4593,20 @@ export type PostApiPluginsByPluginIdNodesByNodeIdAddResponses = {
4460
4593
  200: {
4461
4594
  instanceId: string;
4462
4595
  node: {
4596
+ plugin?: string;
4597
+ pluginVersion?: string;
4598
+ pluginUi?: {
4599
+ apiVersion: '1';
4600
+ renderers: {
4601
+ [key: string]: {
4602
+ label: string;
4603
+ targets: {
4604
+ [key: string]: string;
4605
+ };
4606
+ };
4607
+ };
4608
+ };
4609
+ renderer?: string;
4463
4610
  hiddenReason?: string;
4464
4611
  color?: string;
4465
4612
  style?: {
@@ -4737,6 +4884,7 @@ export type PostApiNativeNodesByCatalogIdMaterializeResponses = {
4737
4884
  symbol?: string;
4738
4885
  description?: string;
4739
4886
  color?: string;
4887
+ renderer?: string;
4740
4888
  position?: {
4741
4889
  x: number;
4742
4890
  y: number;