@commandgarden/cli 1.1.0 → 1.1.2

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 (102) hide show
  1. package/dist/main.js +12343 -101
  2. package/node_modules/@commandgarden/app/dist/client/assets/index-58UrF1aG.js +197 -0
  3. package/node_modules/@commandgarden/app/dist/client/assets/index-DErcb2Kp.css +1 -0
  4. package/node_modules/@commandgarden/app/dist/client/index.html +19 -0
  5. package/node_modules/@commandgarden/app/dist/server/daemon-client.js +61 -0
  6. package/node_modules/@commandgarden/app/dist/server/main.js +63 -0
  7. package/node_modules/@commandgarden/app/dist/server/routes/audit.js +20 -0
  8. package/node_modules/@commandgarden/app/dist/server/routes/config.js +13 -0
  9. package/node_modules/@commandgarden/app/dist/server/routes/connectors.js +35 -0
  10. package/node_modules/@commandgarden/app/dist/server/routes/index.js +14 -0
  11. package/node_modules/@commandgarden/app/dist/server/routes/preferences.js +32 -0
  12. package/node_modules/@commandgarden/app/dist/server/routes/run.js +46 -0
  13. package/node_modules/@commandgarden/app/dist/server/routes/status.js +11 -0
  14. package/node_modules/@commandgarden/app/dist/server/store.js +55 -0
  15. package/node_modules/@commandgarden/app/package.json +42 -0
  16. package/node_modules/@commandgarden/daemon/dist/audit-store.d.ts +18 -0
  17. package/node_modules/@commandgarden/daemon/dist/audit-store.d.ts.map +1 -0
  18. package/node_modules/@commandgarden/daemon/dist/audit-store.js +97 -0
  19. package/node_modules/@commandgarden/daemon/dist/audit-store.js.map +1 -0
  20. package/node_modules/@commandgarden/daemon/dist/auth.d.ts +5 -0
  21. package/node_modules/@commandgarden/daemon/dist/auth.d.ts.map +1 -0
  22. package/node_modules/@commandgarden/daemon/dist/auth.js +27 -0
  23. package/node_modules/@commandgarden/daemon/dist/auth.js.map +1 -0
  24. package/node_modules/@commandgarden/daemon/dist/config.d.ts +109 -0
  25. package/node_modules/@commandgarden/daemon/dist/config.d.ts.map +1 -0
  26. package/node_modules/@commandgarden/daemon/dist/config.js +45 -0
  27. package/node_modules/@commandgarden/daemon/dist/config.js.map +1 -0
  28. package/node_modules/@commandgarden/daemon/dist/main.d.ts +2 -0
  29. package/node_modules/@commandgarden/daemon/dist/main.d.ts.map +1 -0
  30. package/node_modules/@commandgarden/daemon/dist/main.js +58 -0
  31. package/node_modules/@commandgarden/daemon/dist/main.js.map +1 -0
  32. package/node_modules/@commandgarden/daemon/dist/registry.d.ts +21 -0
  33. package/node_modules/@commandgarden/daemon/dist/registry.d.ts.map +1 -0
  34. package/node_modules/@commandgarden/daemon/dist/registry.js +70 -0
  35. package/node_modules/@commandgarden/daemon/dist/registry.js.map +1 -0
  36. package/node_modules/@commandgarden/daemon/dist/server.d.ts +15 -0
  37. package/node_modules/@commandgarden/daemon/dist/server.d.ts.map +1 -0
  38. package/node_modules/@commandgarden/daemon/dist/server.js +336 -0
  39. package/node_modules/@commandgarden/daemon/dist/server.js.map +1 -0
  40. package/node_modules/@commandgarden/daemon/dist/sse-manager.d.ts +10 -0
  41. package/node_modules/@commandgarden/daemon/dist/sse-manager.d.ts.map +1 -0
  42. package/node_modules/@commandgarden/daemon/dist/sse-manager.js +37 -0
  43. package/node_modules/@commandgarden/daemon/dist/sse-manager.js.map +1 -0
  44. package/node_modules/@commandgarden/daemon/dist/validator.d.ts +10 -0
  45. package/node_modules/@commandgarden/daemon/dist/validator.d.ts.map +1 -0
  46. package/node_modules/@commandgarden/daemon/dist/validator.js +19 -0
  47. package/node_modules/@commandgarden/daemon/dist/validator.js.map +1 -0
  48. package/node_modules/@commandgarden/daemon/dist/ws-relay.d.ts +30 -0
  49. package/node_modules/@commandgarden/daemon/dist/ws-relay.d.ts.map +1 -0
  50. package/node_modules/@commandgarden/daemon/dist/ws-relay.js +111 -0
  51. package/node_modules/@commandgarden/daemon/dist/ws-relay.js.map +1 -0
  52. package/node_modules/@commandgarden/daemon/package.json +30 -0
  53. package/node_modules/@commandgarden/shared/dist/capabilities.d.ts +7 -0
  54. package/node_modules/@commandgarden/shared/dist/capabilities.d.ts.map +1 -0
  55. package/node_modules/@commandgarden/shared/dist/capabilities.js +23 -0
  56. package/node_modules/@commandgarden/shared/dist/capabilities.js.map +1 -0
  57. package/node_modules/@commandgarden/shared/dist/connector.d.ts +377 -0
  58. package/node_modules/@commandgarden/shared/dist/connector.d.ts.map +1 -0
  59. package/node_modules/@commandgarden/shared/dist/connector.js +29 -0
  60. package/node_modules/@commandgarden/shared/dist/connector.js.map +1 -0
  61. package/node_modules/@commandgarden/shared/dist/events.d.ts +33 -0
  62. package/node_modules/@commandgarden/shared/dist/events.d.ts.map +1 -0
  63. package/node_modules/@commandgarden/shared/dist/events.js +34 -0
  64. package/node_modules/@commandgarden/shared/dist/events.js.map +1 -0
  65. package/node_modules/@commandgarden/shared/dist/expression/evaluator.d.ts +8 -0
  66. package/node_modules/@commandgarden/shared/dist/expression/evaluator.d.ts.map +1 -0
  67. package/node_modules/@commandgarden/shared/dist/expression/evaluator.js +49 -0
  68. package/node_modules/@commandgarden/shared/dist/expression/evaluator.js.map +1 -0
  69. package/node_modules/@commandgarden/shared/dist/expression/filters.d.ts +3 -0
  70. package/node_modules/@commandgarden/shared/dist/expression/filters.d.ts.map +1 -0
  71. package/node_modules/@commandgarden/shared/dist/expression/filters.js +8 -0
  72. package/node_modules/@commandgarden/shared/dist/expression/filters.js.map +1 -0
  73. package/node_modules/@commandgarden/shared/dist/expression/index.d.ts +5 -0
  74. package/node_modules/@commandgarden/shared/dist/expression/index.d.ts.map +1 -0
  75. package/node_modules/@commandgarden/shared/dist/expression/index.js +5 -0
  76. package/node_modules/@commandgarden/shared/dist/expression/index.js.map +1 -0
  77. package/node_modules/@commandgarden/shared/dist/expression/parser.d.ts +22 -0
  78. package/node_modules/@commandgarden/shared/dist/expression/parser.d.ts.map +1 -0
  79. package/node_modules/@commandgarden/shared/dist/expression/parser.js +85 -0
  80. package/node_modules/@commandgarden/shared/dist/expression/parser.js.map +1 -0
  81. package/node_modules/@commandgarden/shared/dist/expression/tokenizer.d.ts +7 -0
  82. package/node_modules/@commandgarden/shared/dist/expression/tokenizer.d.ts.map +1 -0
  83. package/node_modules/@commandgarden/shared/dist/expression/tokenizer.js +76 -0
  84. package/node_modules/@commandgarden/shared/dist/expression/tokenizer.js.map +1 -0
  85. package/node_modules/@commandgarden/shared/dist/index.d.ts +8 -0
  86. package/node_modules/@commandgarden/shared/dist/index.d.ts.map +1 -0
  87. package/node_modules/@commandgarden/shared/dist/index.js +15 -0
  88. package/node_modules/@commandgarden/shared/dist/index.js.map +1 -0
  89. package/node_modules/@commandgarden/shared/dist/loader.d.ts +17 -0
  90. package/node_modules/@commandgarden/shared/dist/loader.d.ts.map +1 -0
  91. package/node_modules/@commandgarden/shared/dist/loader.js +76 -0
  92. package/node_modules/@commandgarden/shared/dist/loader.js.map +1 -0
  93. package/node_modules/@commandgarden/shared/dist/pipeline.d.ts +339 -0
  94. package/node_modules/@commandgarden/shared/dist/pipeline.d.ts.map +1 -0
  95. package/node_modules/@commandgarden/shared/dist/pipeline.js +97 -0
  96. package/node_modules/@commandgarden/shared/dist/pipeline.js.map +1 -0
  97. package/node_modules/@commandgarden/shared/dist/protocol.d.ts +58 -0
  98. package/node_modules/@commandgarden/shared/dist/protocol.d.ts.map +1 -0
  99. package/node_modules/@commandgarden/shared/dist/protocol.js +26 -0
  100. package/node_modules/@commandgarden/shared/dist/protocol.js.map +1 -0
  101. package/node_modules/@commandgarden/shared/package.json +32 -0
  102. package/package.json +55 -42
@@ -0,0 +1,22 @@
1
+ import type { Token } from './tokenizer.js';
2
+ export type Expr = {
3
+ type: 'variable';
4
+ path: string[];
5
+ } | {
6
+ type: 'string';
7
+ value: string;
8
+ } | {
9
+ type: 'number';
10
+ value: number;
11
+ } | {
12
+ type: 'concat';
13
+ left: Expr;
14
+ right: Expr;
15
+ } | {
16
+ type: 'pipe';
17
+ expr: Expr;
18
+ filter: string;
19
+ args: Expr[];
20
+ };
21
+ export declare function parse(tokens: Token[]): Expr;
22
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/expression/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,gBAAgB,CAAC;AAEvD,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AA8F/D,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAE3C"}
@@ -0,0 +1,85 @@
1
+ class ExprParser {
2
+ tokens;
3
+ pos = 0;
4
+ constructor(tokens) {
5
+ this.tokens = tokens;
6
+ }
7
+ peek() {
8
+ return this.tokens[this.pos];
9
+ }
10
+ advance() {
11
+ return this.tokens[this.pos++];
12
+ }
13
+ expect(type) {
14
+ const t = this.advance();
15
+ if (t.type !== type) {
16
+ throw new Error(`Expected ${type}, got ${t.type} ("${t.value}")`);
17
+ }
18
+ return t;
19
+ }
20
+ parse() {
21
+ const expr = this.parsePipe();
22
+ this.expect('EOF');
23
+ return expr;
24
+ }
25
+ parsePipe() {
26
+ let expr = this.parseConcat();
27
+ while (this.peek().type === 'PIPE') {
28
+ this.advance();
29
+ const filterName = this.expect('IDENT').value;
30
+ let filterArgs = [];
31
+ if (this.peek().type === 'LPAREN') {
32
+ this.advance();
33
+ if (this.peek().type !== 'RPAREN') {
34
+ filterArgs.push(this.parsePipe());
35
+ while (this.peek().type === 'COMMA') {
36
+ this.advance();
37
+ filterArgs.push(this.parsePipe());
38
+ }
39
+ }
40
+ this.expect('RPAREN');
41
+ }
42
+ expr = { type: 'pipe', expr, filter: filterName, args: filterArgs };
43
+ }
44
+ return expr;
45
+ }
46
+ parseConcat() {
47
+ let expr = this.parsePrimary();
48
+ while (this.peek().type === 'PLUS') {
49
+ this.advance();
50
+ const right = this.parsePrimary();
51
+ expr = { type: 'concat', left: expr, right };
52
+ }
53
+ return expr;
54
+ }
55
+ parsePrimary() {
56
+ const token = this.peek();
57
+ if (token.type === 'STRING') {
58
+ this.advance();
59
+ return { type: 'string', value: token.value };
60
+ }
61
+ if (token.type === 'NUMBER') {
62
+ this.advance();
63
+ return { type: 'number', value: Number(token.value) };
64
+ }
65
+ if (token.type === 'IDENT') {
66
+ const path = [this.advance().value];
67
+ while (this.peek().type === 'DOT') {
68
+ this.advance();
69
+ path.push(this.expect('IDENT').value);
70
+ }
71
+ return { type: 'variable', path };
72
+ }
73
+ if (token.type === 'LPAREN') {
74
+ this.advance();
75
+ const expr = this.parsePipe();
76
+ this.expect('RPAREN');
77
+ return expr;
78
+ }
79
+ throw new Error(`Unexpected token: ${token.type} ("${token.value}")`);
80
+ }
81
+ }
82
+ export function parse(tokens) {
83
+ return new ExprParser(tokens).parse();
84
+ }
85
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/expression/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type TokenType = 'IDENT' | 'DOT' | 'STRING' | 'NUMBER' | 'PIPE' | 'PLUS' | 'LPAREN' | 'RPAREN' | 'COMMA' | 'EOF';
2
+ export interface Token {
3
+ type: TokenType;
4
+ value: string;
5
+ }
6
+ export declare function tokenize(input: string): Token[];
7
+ //# sourceMappingURL=tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/expression/tokenizer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GACrC,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAE5D,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,CAsD/C"}
@@ -0,0 +1,76 @@
1
+ export function tokenize(input) {
2
+ const tokens = [];
3
+ let i = 0;
4
+ while (i < input.length) {
5
+ const ch = input[i];
6
+ if (/\s/.test(ch)) {
7
+ i++;
8
+ continue;
9
+ }
10
+ if (ch === '.') {
11
+ tokens.push({ type: 'DOT', value: '.' });
12
+ i++;
13
+ continue;
14
+ }
15
+ if (ch === '|') {
16
+ tokens.push({ type: 'PIPE', value: '|' });
17
+ i++;
18
+ continue;
19
+ }
20
+ if (ch === '+') {
21
+ tokens.push({ type: 'PLUS', value: '+' });
22
+ i++;
23
+ continue;
24
+ }
25
+ if (ch === '(') {
26
+ tokens.push({ type: 'LPAREN', value: '(' });
27
+ i++;
28
+ continue;
29
+ }
30
+ if (ch === ')') {
31
+ tokens.push({ type: 'RPAREN', value: ')' });
32
+ i++;
33
+ continue;
34
+ }
35
+ if (ch === ',') {
36
+ tokens.push({ type: 'COMMA', value: ',' });
37
+ i++;
38
+ continue;
39
+ }
40
+ if (ch === '"' || ch === "'") {
41
+ const quote = ch;
42
+ let str = '';
43
+ i++;
44
+ while (i < input.length && input[i] !== quote) {
45
+ str += input[i];
46
+ i++;
47
+ }
48
+ if (i < input.length)
49
+ i++;
50
+ tokens.push({ type: 'STRING', value: str });
51
+ continue;
52
+ }
53
+ if (/\d/.test(ch)) {
54
+ let num = '';
55
+ while (i < input.length && /[\d.]/.test(input[i])) {
56
+ num += input[i];
57
+ i++;
58
+ }
59
+ tokens.push({ type: 'NUMBER', value: num });
60
+ continue;
61
+ }
62
+ if (/[a-zA-Z_]/.test(ch)) {
63
+ let ident = '';
64
+ while (i < input.length && /[a-zA-Z0-9_]/.test(input[i])) {
65
+ ident += input[i];
66
+ i++;
67
+ }
68
+ tokens.push({ type: 'IDENT', value: ident });
69
+ continue;
70
+ }
71
+ throw new Error(`Unexpected character: ${ch}`);
72
+ }
73
+ tokens.push({ type: 'EOF', value: '' });
74
+ return tokens;
75
+ }
76
+ //# sourceMappingURL=tokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../src/expression/tokenizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { CAPABILITIES, type Capability, type RiskLevel, CAPABILITY_RISK, HIGH_RISK_CAPABILITIES, isCapability, } from './capabilities.js';
2
+ export { PIPELINE_STEP_TYPES, type PipelineStepType, STEP_CAPABILITY_MAP, pipelineStepSchema, type PipelineStep, type NavigateStep, type WaitStep, type ExtractStep, type ClickStep, type TypeStep, type InterceptStep, type CookieStep, type FetchStep, type MapStep, type FilterStep, type SetStep, type JsEvaluateStep, } from './pipeline.js';
3
+ export { connectorSchema, type ConnectorDef, type ConnectorArg, type ConnectorColumn, } from './connector.js';
4
+ export { parseConnectorYaml, validateConnectorSemantics, type LoadError, } from './loader.js';
5
+ export { tokenize, parse, evaluate, interpolate, BUILT_IN_FILTERS, type Token, type TokenType, type Expr, type ExprContext, type FilterFn, } from './expression/index.js';
6
+ export { type RunCommandRequest, type RunCommandResponse, type ApprovalConfig, type ExtensionRequest, type ExtensionResponse, type ApprovalRequest, type ApprovalResponse, isRunCommandRequest, isExtensionResponse, isApprovalRequest, isApprovalResponse, } from './protocol.js';
7
+ export { AUDIT_EVENT_TYPES, type AuditEvent, type AuditEventType, type StepSummary, createAuditEvent, redactArgs, } from './events.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,SAAS,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ // Capabilities
2
+ export { CAPABILITIES, CAPABILITY_RISK, HIGH_RISK_CAPABILITIES, isCapability, } from './capabilities.js';
3
+ // Pipeline steps
4
+ export { PIPELINE_STEP_TYPES, STEP_CAPABILITY_MAP, pipelineStepSchema, } from './pipeline.js';
5
+ // Connector schema
6
+ export { connectorSchema, } from './connector.js';
7
+ // YAML loader
8
+ export { parseConnectorYaml, validateConnectorSemantics, } from './loader.js';
9
+ // Expression engine
10
+ export { tokenize, parse, evaluate, interpolate, BUILT_IN_FILTERS, } from './expression/index.js';
11
+ // Protocol
12
+ export { isRunCommandRequest, isExtensionResponse, isApprovalRequest, isApprovalResponse, } from './protocol.js';
13
+ // Audit events
14
+ export { AUDIT_EVENT_TYPES, createAuditEvent, redactArgs, } from './events.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EACL,YAAY,EAGZ,eAAe,EACf,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EAEnB,mBAAmB,EACnB,kBAAkB,GAcnB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AAExB,cAAc;AACd,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AAErB,oBAAoB;AACpB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,GAMjB,MAAM,uBAAuB,CAAC;AAE/B,WAAW;AACX,OAAO,EAQL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,eAAe;AACf,OAAO,EACL,iBAAiB,EAIjB,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type ConnectorDef } from './connector.js';
2
+ export interface LoadError {
3
+ code: 'YAML_PARSE_ERROR' | 'SCHEMA_VALIDATION_ERROR';
4
+ message: string;
5
+ details?: string[];
6
+ }
7
+ type LoadResult = {
8
+ ok: true;
9
+ data: ConnectorDef;
10
+ } | {
11
+ ok: false;
12
+ error: LoadError;
13
+ };
14
+ export declare function parseConnectorYaml(yamlContent: string): LoadResult;
15
+ export declare function validateConnectorSemantics(connector: ConnectorDef): string[];
16
+ export {};
17
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,kBAAkB,GAAG,yBAAyB,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,KAAK,UAAU,GACX;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEpC,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CA2BlE;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,CAwD5E"}
@@ -0,0 +1,76 @@
1
+ import { parse as parseYaml } from 'yaml';
2
+ import { connectorSchema } from './connector.js';
3
+ import { STEP_CAPABILITY_MAP } from './pipeline.js';
4
+ export function parseConnectorYaml(yamlContent) {
5
+ let parsed;
6
+ try {
7
+ parsed = parseYaml(yamlContent);
8
+ }
9
+ catch (err) {
10
+ return {
11
+ ok: false,
12
+ error: {
13
+ code: 'YAML_PARSE_ERROR',
14
+ message: err instanceof Error ? err.message : 'Failed to parse YAML',
15
+ },
16
+ };
17
+ }
18
+ const result = connectorSchema.safeParse(parsed);
19
+ if (!result.success) {
20
+ return {
21
+ ok: false,
22
+ error: {
23
+ code: 'SCHEMA_VALIDATION_ERROR',
24
+ message: 'Connector YAML does not match schema',
25
+ details: result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`),
26
+ },
27
+ };
28
+ }
29
+ return { ok: true, data: result.data };
30
+ }
31
+ export function validateConnectorSemantics(connector) {
32
+ const errors = [];
33
+ const declaredCapabilities = new Set(connector.capabilities);
34
+ const declaredDomains = new Set(connector.domains);
35
+ for (const step of connector.pipeline) {
36
+ const requiredCap = STEP_CAPABILITY_MAP[step.step];
37
+ if (requiredCap && !declaredCapabilities.has(requiredCap)) {
38
+ errors.push(`Pipeline step "${step.step}" requires capability "${requiredCap}" which is not declared`);
39
+ }
40
+ if (step.step === 'navigate') {
41
+ try {
42
+ const hostname = new URL(step.url).hostname;
43
+ if (!declaredDomains.has(hostname)) {
44
+ errors.push(`Navigate step uses domain "${hostname}" which is not declared in domains`);
45
+ }
46
+ }
47
+ catch {
48
+ // URL might contain ${{ }} expressions — skip domain check for templates
49
+ if (!step.url.includes('${{')) {
50
+ errors.push(`Navigate step has invalid URL: ${step.url}`);
51
+ }
52
+ }
53
+ }
54
+ if (step.step === 'fetch') {
55
+ try {
56
+ const hostname = new URL(step.url).hostname;
57
+ if (!declaredDomains.has(hostname)) {
58
+ errors.push(`Fetch step uses domain "${hostname}" which is not declared in domains`);
59
+ }
60
+ }
61
+ catch {
62
+ if (!step.url.includes('${{')) {
63
+ errors.push(`Fetch step has invalid URL: ${step.url}`);
64
+ }
65
+ }
66
+ }
67
+ if (step.step === 'js_evaluate' && !step.code && !step.file) {
68
+ errors.push('js_evaluate step requires either "code" or "file"');
69
+ }
70
+ if (step.step === 'cookie' && !declaredDomains.has(step.domain)) {
71
+ errors.push(`Cookie step uses domain "${step.domain}" which is not declared in domains`);
72
+ }
73
+ }
74
+ return errors;
75
+ }
76
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}