@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.
Files changed (83) hide show
  1. package/dist/tools/data/codeExamples.d.ts +53 -0
  2. package/dist/tools/data/codeExamples.d.ts.map +1 -1
  3. package/dist/tools/data/codeExamples.js +254 -62
  4. package/dist/tools/data/codeExamples.js.map +1 -1
  5. package/dist/tools/definitions.d.ts.map +1 -1
  6. package/dist/tools/definitions.js +6 -8
  7. package/dist/tools/definitions.js.map +1 -1
  8. package/dist/tools/docs/index.d.ts.map +1 -1
  9. package/dist/tools/docs/index.js +16 -7
  10. package/dist/tools/docs/index.js.map +1 -1
  11. package/dist/tools/handlers/createSimulatorSession.d.ts.map +1 -1
  12. package/dist/tools/handlers/createSimulatorSession.js +12 -1
  13. package/dist/tools/handlers/createSimulatorSession.js.map +1 -1
  14. package/dist/tools/handlers/generateConnectionModule.d.ts.map +1 -1
  15. package/dist/tools/handlers/generateConnectionModule.js +20 -13
  16. package/dist/tools/handlers/generateConnectionModule.js.map +1 -1
  17. package/dist/tools/handlers/getCodeExample.d.ts.map +1 -1
  18. package/dist/tools/handlers/getCodeExample.js +11 -1
  19. package/dist/tools/handlers/getCodeExample.js.map +1 -1
  20. package/dist/tools/handlers/getCredentialGuide.js +57 -8
  21. package/dist/tools/handlers/getCredentialGuide.js.map +1 -1
  22. package/dist/tools/handlers/getEventLog.d.ts.map +1 -1
  23. package/dist/tools/handlers/getEventLog.js +8 -10
  24. package/dist/tools/handlers/getEventLog.js.map +1 -1
  25. package/dist/tools/handlers/inspectIntegration.d.ts.map +1 -1
  26. package/dist/tools/handlers/inspectIntegration.js +8 -3
  27. package/dist/tools/handlers/inspectIntegration.js.map +1 -1
  28. package/dist/tools/handlers/validateIntegration.d.ts.map +1 -1
  29. package/dist/tools/handlers/validateIntegration.js +9 -3
  30. package/dist/tools/handlers/validateIntegration.js.map +1 -1
  31. package/dist/tools/util/generatedHash.d.ts +24 -8
  32. package/dist/tools/util/generatedHash.d.ts.map +1 -1
  33. package/dist/tools/util/generatedHash.js +88 -11
  34. package/dist/tools/util/generatedHash.js.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/tools/data/examplePatterns.d.ts +0 -4
  37. package/dist/tools/data/examplePatterns.d.ts.map +0 -1
  38. package/dist/tools/data/examplePatterns.js +0 -546
  39. package/dist/tools/data/examplePatterns.js.map +0 -1
  40. package/dist/tools/data/presetTriggers.d.ts +0 -4
  41. package/dist/tools/data/presetTriggers.d.ts.map +0 -1
  42. package/dist/tools/data/presetTriggers.js +0 -47
  43. package/dist/tools/data/presetTriggers.js.map +0 -1
  44. package/dist/tools/handlers/generateConsumer.d.ts +0 -3
  45. package/dist/tools/handlers/generateConsumer.d.ts.map +0 -1
  46. package/dist/tools/handlers/generateConsumer.js +0 -477
  47. package/dist/tools/handlers/generateConsumer.js.map +0 -1
  48. package/dist/tools/handlers/getExampleSpec.d.ts +0 -3
  49. package/dist/tools/handlers/getExampleSpec.d.ts.map +0 -1
  50. package/dist/tools/handlers/getExampleSpec.js +0 -50
  51. package/dist/tools/handlers/getExampleSpec.js.map +0 -1
  52. package/dist/tools/handlers/initSpec.d.ts +0 -3
  53. package/dist/tools/handlers/initSpec.d.ts.map +0 -1
  54. package/dist/tools/handlers/initSpec.js +0 -350
  55. package/dist/tools/handlers/initSpec.js.map +0 -1
  56. package/dist/tools/handlers/planIntegration.d.ts +0 -3
  57. package/dist/tools/handlers/planIntegration.d.ts.map +0 -1
  58. package/dist/tools/handlers/planIntegration.js +0 -293
  59. package/dist/tools/handlers/planIntegration.js.map +0 -1
  60. package/dist/tools/handlers/updateSpec.d.ts +0 -3
  61. package/dist/tools/handlers/updateSpec.d.ts.map +0 -1
  62. package/dist/tools/handlers/updateSpec.js +0 -579
  63. package/dist/tools/handlers/updateSpec.js.map +0 -1
  64. package/dist/tools/handlers/validateSpec.d.ts +0 -3
  65. package/dist/tools/handlers/validateSpec.d.ts.map +0 -1
  66. package/dist/tools/handlers/validateSpec.js +0 -33
  67. package/dist/tools/handlers/validateSpec.js.map +0 -1
  68. package/dist/tools/templates/callbackHandler.d.ts +0 -11
  69. package/dist/tools/templates/callbackHandler.d.ts.map +0 -1
  70. package/dist/tools/templates/callbackHandler.js +0 -215
  71. package/dist/tools/templates/callbackHandler.js.map +0 -1
  72. package/dist/tools/templates/streamConsumer.d.ts +0 -8
  73. package/dist/tools/templates/streamConsumer.d.ts.map +0 -1
  74. package/dist/tools/templates/streamConsumer.js +0 -322
  75. package/dist/tools/templates/streamConsumer.js.map +0 -1
  76. package/dist/tools/util/userCodeMerge.d.ts +0 -69
  77. package/dist/tools/util/userCodeMerge.d.ts.map +0 -1
  78. package/dist/tools/util/userCodeMerge.js +0 -168
  79. package/dist/tools/util/userCodeMerge.js.map +0 -1
  80. package/dist/tools/validation/validateSpec.d.ts +0 -22
  81. package/dist/tools/validation/validateSpec.d.ts.map +0 -1
  82. package/dist/tools/validation/validateSpec.js +0 -623
  83. 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"}