@extentos/mcp-server 0.0.75 → 0.0.77
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/tools/data/codeExamples.d.ts +53 -0
- package/dist/tools/data/codeExamples.d.ts.map +1 -1
- package/dist/tools/data/codeExamples.js +254 -62
- package/dist/tools/data/codeExamples.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +6 -8
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/docs/index.d.ts.map +1 -1
- package/dist/tools/docs/index.js +16 -7
- package/dist/tools/docs/index.js.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
- package/dist/tools/handlers/createSimulatorSession.js +12 -1
- package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
- package/dist/tools/handlers/generateConnectionModule.js +20 -13
- package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
- package/dist/tools/handlers/getCodeExample.d.ts.map +1 -1
- package/dist/tools/handlers/getCodeExample.js +11 -1
- package/dist/tools/handlers/getCodeExample.js.map +1 -1
- package/dist/tools/handlers/getCredentialGuide.js +57 -8
- package/dist/tools/handlers/getCredentialGuide.js.map +1 -1
- package/dist/tools/handlers/getEventLog.d.ts.map +1 -1
- package/dist/tools/handlers/getEventLog.js +8 -10
- package/dist/tools/handlers/getEventLog.js.map +1 -1
- package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/inspectIntegration.js +8 -3
- package/dist/tools/handlers/inspectIntegration.js.map +1 -1
- package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
- package/dist/tools/handlers/validateIntegration.js +9 -3
- package/dist/tools/handlers/validateIntegration.js.map +1 -1
- package/dist/tools/util/generatedHash.d.ts +24 -8
- package/dist/tools/util/generatedHash.d.ts.map +1 -1
- package/dist/tools/util/generatedHash.js +88 -11
- package/dist/tools/util/generatedHash.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools/data/examplePatterns.d.ts +0 -4
- package/dist/tools/data/examplePatterns.d.ts.map +0 -1
- package/dist/tools/data/examplePatterns.js +0 -546
- package/dist/tools/data/examplePatterns.js.map +0 -1
- package/dist/tools/data/presetTriggers.d.ts +0 -4
- package/dist/tools/data/presetTriggers.d.ts.map +0 -1
- package/dist/tools/data/presetTriggers.js +0 -47
- package/dist/tools/data/presetTriggers.js.map +0 -1
- package/dist/tools/handlers/generateConsumer.d.ts +0 -3
- package/dist/tools/handlers/generateConsumer.d.ts.map +0 -1
- package/dist/tools/handlers/generateConsumer.js +0 -477
- package/dist/tools/handlers/generateConsumer.js.map +0 -1
- package/dist/tools/handlers/getExampleSpec.d.ts +0 -3
- package/dist/tools/handlers/getExampleSpec.d.ts.map +0 -1
- package/dist/tools/handlers/getExampleSpec.js +0 -50
- package/dist/tools/handlers/getExampleSpec.js.map +0 -1
- package/dist/tools/handlers/initSpec.d.ts +0 -3
- package/dist/tools/handlers/initSpec.d.ts.map +0 -1
- package/dist/tools/handlers/initSpec.js +0 -350
- package/dist/tools/handlers/initSpec.js.map +0 -1
- package/dist/tools/handlers/planIntegration.d.ts +0 -3
- package/dist/tools/handlers/planIntegration.d.ts.map +0 -1
- package/dist/tools/handlers/planIntegration.js +0 -293
- package/dist/tools/handlers/planIntegration.js.map +0 -1
- package/dist/tools/handlers/updateSpec.d.ts +0 -3
- package/dist/tools/handlers/updateSpec.d.ts.map +0 -1
- package/dist/tools/handlers/updateSpec.js +0 -579
- package/dist/tools/handlers/updateSpec.js.map +0 -1
- package/dist/tools/handlers/validateSpec.d.ts +0 -3
- package/dist/tools/handlers/validateSpec.d.ts.map +0 -1
- package/dist/tools/handlers/validateSpec.js +0 -33
- package/dist/tools/handlers/validateSpec.js.map +0 -1
- package/dist/tools/templates/callbackHandler.d.ts +0 -11
- package/dist/tools/templates/callbackHandler.d.ts.map +0 -1
- package/dist/tools/templates/callbackHandler.js +0 -215
- package/dist/tools/templates/callbackHandler.js.map +0 -1
- package/dist/tools/templates/streamConsumer.d.ts +0 -8
- package/dist/tools/templates/streamConsumer.d.ts.map +0 -1
- package/dist/tools/templates/streamConsumer.js +0 -322
- package/dist/tools/templates/streamConsumer.js.map +0 -1
- package/dist/tools/util/userCodeMerge.d.ts +0 -69
- package/dist/tools/util/userCodeMerge.d.ts.map +0 -1
- package/dist/tools/util/userCodeMerge.js +0 -168
- package/dist/tools/util/userCodeMerge.js.map +0 -1
- package/dist/tools/validation/validateSpec.d.ts +0 -22
- package/dist/tools/validation/validateSpec.d.ts.map +0 -1
- package/dist/tools/validation/validateSpec.js +0 -623
- package/dist/tools/validation/validateSpec.js.map +0 -1
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export interface MergeWarning {
|
|
2
|
-
kind: "duplicate_block" | "unterminated_block";
|
|
3
|
-
name: string;
|
|
4
|
-
detail: string;
|
|
5
|
-
}
|
|
6
|
-
export interface MergeOptions {
|
|
7
|
-
/**
|
|
8
|
-
* Names that were tracked by the spec (handler names, stream ids) but are
|
|
9
|
-
* being removed in this generation cycle. The caller computes this from
|
|
10
|
-
* the manifest's previous `integration.handlerNames` / `integration.streams`
|
|
11
|
-
* minus the new args. When a USER-CODE block in `existing` matches one of
|
|
12
|
-
* these names AND doesn't appear in `next`, it's a TRUE orphan — body
|
|
13
|
-
* preserved at end of file with an `// ORPHANED:<name>` annotation, and
|
|
14
|
-
* the name appears in `MergeResult.orphaned`. Other blocks
|
|
15
|
-
* in-existing-but-not-in-next are user-owned (developer-created shared
|
|
16
|
-
* utility blocks); they're preserved silently and listed in
|
|
17
|
-
* `MergeResult.extra` for transparency. Default `[]` (no orphan annotation
|
|
18
|
-
* applied; everything in-existing-only is treated as user-owned).
|
|
19
|
-
*/
|
|
20
|
-
removedTrackedNames?: string[];
|
|
21
|
-
}
|
|
22
|
-
export interface MergeResult {
|
|
23
|
-
/** The merged file content. Write this verbatim to disk. */
|
|
24
|
-
merged: string;
|
|
25
|
-
/** sha256 hash of `merged` in the canonical `sha256:<hex>` form. */
|
|
26
|
-
hash: string;
|
|
27
|
-
/** Block names whose existing body was preserved into the new content. */
|
|
28
|
-
preserved: string[];
|
|
29
|
-
/**
|
|
30
|
-
* Block names that were in `existing` but no longer in `next` AND matched
|
|
31
|
-
* `options.removedTrackedNames`. These represent code whose HANDLER /
|
|
32
|
-
* STREAM was just removed from the spec — body kept at end-of-file with an
|
|
33
|
-
* `// ORPHANED:<name>` annotation so the dev can review and either delete
|
|
34
|
-
* or re-add the spec entry. Empty when caller doesn't pass
|
|
35
|
-
* removedTrackedNames.
|
|
36
|
-
*/
|
|
37
|
-
orphaned: string[];
|
|
38
|
-
/**
|
|
39
|
-
* Block names that were in `existing` but no longer in `next` AND did NOT
|
|
40
|
-
* match `options.removedTrackedNames`. These are user-owned blocks
|
|
41
|
-
* (developer-created shared utility blocks the template never knew about).
|
|
42
|
-
* Body preserved silently at end-of-file with no annotation — no orphan
|
|
43
|
-
* comment, just the bare USER-CODE-START / USER-CODE-END markers. The
|
|
44
|
-
* report field exists for transparency; agents typically don't need to
|
|
45
|
-
* surface it to the dev.
|
|
46
|
-
*/
|
|
47
|
-
extra: string[];
|
|
48
|
-
/** Soft warnings (corrupt input, duplicate block names). Merge continues; agent surfaces these to the dev. */
|
|
49
|
-
warnings: MergeWarning[];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Merge USER-CODE block bodies from `existing` into `next`.
|
|
53
|
-
*
|
|
54
|
-
* Algorithm:
|
|
55
|
-
* 1. Parse `existing` for USER-CODE blocks → Map<name, body>.
|
|
56
|
-
* 2. Walk `next`, replace each block's body with the existing body if the
|
|
57
|
-
* name matches. Track preserved names.
|
|
58
|
-
* 3. Any names in `existing` not present in `next` are appended at end-of-file
|
|
59
|
-
* as USER-CODE blocks. If the name appears in
|
|
60
|
-
* `options.removedTrackedNames` it's prefixed with `// ORPHANED:<name>`
|
|
61
|
-
* and listed in `orphaned[]`. Otherwise it's appended bare and listed in
|
|
62
|
-
* `extra[]`.
|
|
63
|
-
*
|
|
64
|
-
* Pure function. Safe to call repeatedly. Stable output: same inputs →
|
|
65
|
-
* identical output (and identical hash). Idempotent: merging the merged
|
|
66
|
-
* output against itself produces the same content.
|
|
67
|
-
*/
|
|
68
|
-
export declare function mergeUserCodeBlocks(existing: string, next: string, options?: MergeOptions): MergeResult;
|
|
69
|
-
//# sourceMappingURL=userCodeMerge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userCodeMerge.d.ts","sourceRoot":"","sources":["../../../src/tools/util/userCodeMerge.ts"],"names":[],"mappings":"AA4DA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8GAA8G;IAC9G,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,WAAW,CA+Eb"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
// Server-side merge for files emitted with action: "create_or_merge".
|
|
2
|
-
//
|
|
3
|
-
// Background (F-R2-11): the legacy contract put the merge burden on the
|
|
4
|
-
// agent. The agent had to read the existing file, find every
|
|
5
|
-
// `// USER-CODE-START:<name>` … `// USER-CODE-END:<name>` block, splice the
|
|
6
|
-
// existing body into the matching block in the freshly-rendered content, and
|
|
7
|
-
// write the result. Skipping any of those steps silently destroys the dev's
|
|
8
|
-
// handler implementations on the next regeneration. The smoke test never
|
|
9
|
-
// covered this path, so agents implementing the merge wrong stayed broken
|
|
10
|
-
// indefinitely.
|
|
11
|
-
//
|
|
12
|
-
// New contract: when the agent passes `projectPath` to initSpec /
|
|
13
|
-
// generateConsumer, the server reads the existing file from disk, runs this
|
|
14
|
-
// merge, and returns `action: "write"` with the merged content. The agent
|
|
15
|
-
// just writes verbatim — no merge logic in agent-land. Manifest hash is
|
|
16
|
-
// recomputed over the merged content so live-file vs recorded-hash matches by
|
|
17
|
-
// construction (closes F-R2-2 for USER-CODE edits as a side effect).
|
|
18
|
-
//
|
|
19
|
-
// Block grammar (matches templates/callbackHandler.ts + templates/streamConsumer.ts):
|
|
20
|
-
// <leading-indent>// USER-CODE-START:<name>\n
|
|
21
|
-
// <body — any content, may span lines>
|
|
22
|
-
// <leading-indent>// USER-CODE-END:<name>\n
|
|
23
|
-
// The leading `//` works for both Kotlin and Swift. `<name>` is a stable
|
|
24
|
-
// identifier (handler name, stream id, the literal `imports`, OR any
|
|
25
|
-
// developer-chosen name for shared utility blocks).
|
|
26
|
-
//
|
|
27
|
-
// F-R3-6 fix (2026-05-03): two regressions in the original orphan logic
|
|
28
|
-
// - Bug A (semantic): blocks present in the existing file but not in the
|
|
29
|
-
// new template were unconditionally labeled `ORPHANED`. This was wrong:
|
|
30
|
-
// developers can (and do) add their own USER-CODE blocks for shared
|
|
31
|
-
// utility code (e.g. an `// USER-CODE-START:helpers` block holding HTTP
|
|
32
|
-
// clients and parsing helpers shared across handlers). These are NOT
|
|
33
|
-
// orphans — they're user-owned code that the template never knew about.
|
|
34
|
-
// A real orphan is "a USER-CODE block whose corresponding HANDLER /
|
|
35
|
-
// STREAM was just removed from the spec," and that requires external
|
|
36
|
-
// knowledge (the spec diff) the merge utility doesn't have on its own.
|
|
37
|
-
// - Bug B (syntactic): the orphan re-insertion path produced
|
|
38
|
-
// `// USER-CODE-START:helpersprivate const val TAG = ...` — missing
|
|
39
|
-
// newline between the START marker and the body's first line. The
|
|
40
|
-
// resulting file failed to compile. Caller often surfaces "action:
|
|
41
|
-
// write" as a directive — writing this verbatim broke the dev's project.
|
|
42
|
-
// Fix: add explicit `removedTrackedNames` option so the caller (which knows
|
|
43
|
-
// the spec diff) opts into the orphan label. Default behavior preserves
|
|
44
|
-
// every USER-CODE block silently. Re-insertion path always uses correct
|
|
45
|
-
// newlines.
|
|
46
|
-
import { hashGeneratedContent } from "./generatedHash.js";
|
|
47
|
-
// Anchored on the START line (with its trailing newline) and the END line
|
|
48
|
-
// (preceded by the body's terminating newline). The body capture is
|
|
49
|
-
// non-greedy so back-to-back blocks parse as separate matches.
|
|
50
|
-
//
|
|
51
|
-
// $1 = full START line including trailing \n
|
|
52
|
-
// $2 = block name (trimmed by caller)
|
|
53
|
-
// $3 = body (everything between, including newlines but NOT the trailing \n
|
|
54
|
-
// before the END line — that's part of $4)
|
|
55
|
-
// $4 = newline + leading whitespace + END line
|
|
56
|
-
const BLOCK_RE = /(\/\/\s*USER-CODE-START:([^\n]+)\n)([\s\S]*?)(\n[ \t]*\/\/\s*USER-CODE-END:[^\n]+)/g;
|
|
57
|
-
/**
|
|
58
|
-
* Merge USER-CODE block bodies from `existing` into `next`.
|
|
59
|
-
*
|
|
60
|
-
* Algorithm:
|
|
61
|
-
* 1. Parse `existing` for USER-CODE blocks → Map<name, body>.
|
|
62
|
-
* 2. Walk `next`, replace each block's body with the existing body if the
|
|
63
|
-
* name matches. Track preserved names.
|
|
64
|
-
* 3. Any names in `existing` not present in `next` are appended at end-of-file
|
|
65
|
-
* as USER-CODE blocks. If the name appears in
|
|
66
|
-
* `options.removedTrackedNames` it's prefixed with `// ORPHANED:<name>`
|
|
67
|
-
* and listed in `orphaned[]`. Otherwise it's appended bare and listed in
|
|
68
|
-
* `extra[]`.
|
|
69
|
-
*
|
|
70
|
-
* Pure function. Safe to call repeatedly. Stable output: same inputs →
|
|
71
|
-
* identical output (and identical hash). Idempotent: merging the merged
|
|
72
|
-
* output against itself produces the same content.
|
|
73
|
-
*/
|
|
74
|
-
export function mergeUserCodeBlocks(existing, next, options = {}) {
|
|
75
|
-
const warnings = [];
|
|
76
|
-
const removedTracked = new Set(options.removedTrackedNames ?? []);
|
|
77
|
-
const existingBlocks = extractBlocks(existing, warnings);
|
|
78
|
-
const existingByName = new Map();
|
|
79
|
-
for (const b of existingBlocks) {
|
|
80
|
-
if (existingByName.has(b.name)) {
|
|
81
|
-
warnings.push({
|
|
82
|
-
kind: "duplicate_block",
|
|
83
|
-
name: b.name,
|
|
84
|
-
detail: `Existing file has more than one USER-CODE-START:${b.name} block. Keeping the LAST occurrence; earlier copies will be lost.`,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
existingByName.set(b.name, b.body);
|
|
88
|
-
}
|
|
89
|
-
const preserved = [];
|
|
90
|
-
const seenInNext = new Set();
|
|
91
|
-
// Reset regex state because /g regexes are stateful.
|
|
92
|
-
BLOCK_RE.lastIndex = 0;
|
|
93
|
-
const merged = next.replace(BLOCK_RE, (_full, startLine, rawName, _body, endLine) => {
|
|
94
|
-
const name = String(rawName).trim();
|
|
95
|
-
seenInNext.add(name);
|
|
96
|
-
const existingBody = existingByName.get(name);
|
|
97
|
-
if (existingBody === undefined) {
|
|
98
|
-
// New block in `next` — keep its initial stub body verbatim.
|
|
99
|
-
return _full;
|
|
100
|
-
}
|
|
101
|
-
preserved.push(name);
|
|
102
|
-
return `${startLine}${existingBody}${endLine}`;
|
|
103
|
-
});
|
|
104
|
-
// Names in existing-but-not-next: split into orphans (the caller told us
|
|
105
|
-
// these were tracked names being removed) and extras (everything else,
|
|
106
|
-
// assumed to be user-owned shared utility blocks).
|
|
107
|
-
const inExistingNotInNext = [...existingByName.keys()]
|
|
108
|
-
.filter((name) => !seenInNext.has(name))
|
|
109
|
-
.sort();
|
|
110
|
-
const orphanNames = inExistingNotInNext.filter((name) => removedTracked.has(name));
|
|
111
|
-
const extraNames = inExistingNotInNext.filter((name) => !removedTracked.has(name));
|
|
112
|
-
let withAppended = merged;
|
|
113
|
-
if (orphanNames.length || extraNames.length) {
|
|
114
|
-
// F-R3-6 fix: ensure proper newlines between marker, body, and end
|
|
115
|
-
// marker. The prior implementation concatenated `START:${name}` and
|
|
116
|
-
// `${body}` directly — but body has no leading newline (the START's
|
|
117
|
-
// newline is captured in $1, not $3), so the output became
|
|
118
|
-
// `// USER-CODE-START:helpersprivate const val TAG = ...`. Always emit
|
|
119
|
-
// an explicit `\n` between the START marker and the body.
|
|
120
|
-
const renderBlock = (name, body, asOrphan) => {
|
|
121
|
-
const lead = asOrphan
|
|
122
|
-
? `\n// ORPHANED:${name} — handler/stream removed from spec; review and delete, ` +
|
|
123
|
-
`or re-add to the spec to restore.\n`
|
|
124
|
-
: `\n`;
|
|
125
|
-
return (`${lead}` +
|
|
126
|
-
`// USER-CODE-START:${name}\n` +
|
|
127
|
-
`${body}\n` +
|
|
128
|
-
`// USER-CODE-END:${name}\n`);
|
|
129
|
-
};
|
|
130
|
-
const appended = orphanNames.map((n) => renderBlock(n, existingByName.get(n) ?? "", true)).join("") +
|
|
131
|
-
extraNames.map((n) => renderBlock(n, existingByName.get(n) ?? "", false)).join("");
|
|
132
|
-
// Trim a single trailing newline if present so we don't accumulate blanks
|
|
133
|
-
// across repeated merges.
|
|
134
|
-
withAppended = `${merged.replace(/\n+$/, "\n")}${appended}`;
|
|
135
|
-
}
|
|
136
|
-
return {
|
|
137
|
-
merged: withAppended,
|
|
138
|
-
hash: hashGeneratedContent(withAppended),
|
|
139
|
-
preserved: preserved.sort(),
|
|
140
|
-
orphaned: orphanNames,
|
|
141
|
-
extra: extraNames,
|
|
142
|
-
warnings,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
function extractBlocks(content, warnings) {
|
|
146
|
-
const blocks = [];
|
|
147
|
-
// Reset stateful /g regex.
|
|
148
|
-
BLOCK_RE.lastIndex = 0;
|
|
149
|
-
let match;
|
|
150
|
-
while ((match = BLOCK_RE.exec(content)) !== null) {
|
|
151
|
-
const name = String(match[2]).trim();
|
|
152
|
-
const body = match[3];
|
|
153
|
-
blocks.push({ name, body });
|
|
154
|
-
}
|
|
155
|
-
// Detect unterminated START markers (a START line with no matching END
|
|
156
|
-
// before EOF or before the next START). We catch this by counting raw
|
|
157
|
-
// START lines and comparing to matched blocks.
|
|
158
|
-
const startCount = (content.match(/\/\/\s*USER-CODE-START:[^\n]+\n/g) ?? []).length;
|
|
159
|
-
if (startCount > blocks.length) {
|
|
160
|
-
warnings.push({
|
|
161
|
-
kind: "unterminated_block",
|
|
162
|
-
name: "(unknown)",
|
|
163
|
-
detail: `File contains ${startCount} USER-CODE-START line(s) but only ${blocks.length} matched END markers. Edits in unterminated blocks will not be preserved. Verify markers are well-formed.`,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
return blocks;
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=userCodeMerge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userCodeMerge.js","sourceRoot":"","sources":["../../../src/tools/util/userCodeMerge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface SpecValidationIssue {
|
|
2
|
-
path: string;
|
|
3
|
-
rule: string;
|
|
4
|
-
message: string;
|
|
5
|
-
suggestion?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface SpecValidationResult {
|
|
8
|
-
status: "valid" | "invalid";
|
|
9
|
-
valid: boolean;
|
|
10
|
-
errors: SpecValidationIssue[];
|
|
11
|
-
warnings: SpecValidationIssue[];
|
|
12
|
-
stats: {
|
|
13
|
-
blocks: number;
|
|
14
|
-
streams: number;
|
|
15
|
-
triggers: number;
|
|
16
|
-
actions: number;
|
|
17
|
-
handlerNames: string[];
|
|
18
|
-
permissions: string[];
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export declare function validateSpec(spec: unknown): SpecValidationResult;
|
|
22
|
-
//# sourceMappingURL=validateSpec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validateSpec.d.ts","sourceRoot":"","sources":["../../../src/tools/validation/validateSpec.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAcD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB,CAgMhE"}
|