@inquir/compute-cli 0.4.2 → 0.4.4

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 (81) hide show
  1. package/README.md +61 -11
  2. package/dist/commands/admin-tenants.d.ts.map +1 -1
  3. package/dist/commands/admin-tenants.js +8 -7
  4. package/dist/commands/admin-tenants.js.map +1 -1
  5. package/dist/commands/admin.js +2 -2
  6. package/dist/commands/admin.js.map +1 -1
  7. package/dist/commands/apps-replicas.d.ts +27 -0
  8. package/dist/commands/apps-replicas.d.ts.map +1 -0
  9. package/dist/commands/apps-replicas.js +278 -0
  10. package/dist/commands/apps-replicas.js.map +1 -0
  11. package/dist/commands/apps.d.ts +5 -3
  12. package/dist/commands/apps.d.ts.map +1 -1
  13. package/dist/commands/apps.js +58 -15
  14. package/dist/commands/apps.js.map +1 -1
  15. package/dist/commands/compose.d.ts +29 -0
  16. package/dist/commands/compose.d.ts.map +1 -0
  17. package/dist/commands/compose.js +159 -0
  18. package/dist/commands/compose.js.map +1 -0
  19. package/dist/commands/deploy.d.ts +8 -11
  20. package/dist/commands/deploy.d.ts.map +1 -1
  21. package/dist/commands/deploy.js +23 -33
  22. package/dist/commands/deploy.js.map +1 -1
  23. package/dist/commands/logout.js +1 -1
  24. package/dist/commands/logout.js.map +1 -1
  25. package/dist/commands/mcp.d.ts.map +1 -1
  26. package/dist/commands/mcp.js +10 -2
  27. package/dist/commands/mcp.js.map +1 -1
  28. package/dist/commands/sandbox.d.ts +58 -0
  29. package/dist/commands/sandbox.d.ts.map +1 -0
  30. package/dist/commands/sandbox.js +462 -0
  31. package/dist/commands/sandbox.js.map +1 -0
  32. package/dist/index.js +9 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/lib/mcp-replica-tools.d.ts +10 -0
  35. package/dist/lib/mcp-replica-tools.d.ts.map +1 -0
  36. package/dist/lib/mcp-replica-tools.js +77 -0
  37. package/dist/lib/mcp-replica-tools.js.map +1 -0
  38. package/dist/lib/mcp-sandbox-tools.d.ts +30 -0
  39. package/dist/lib/mcp-sandbox-tools.d.ts.map +1 -0
  40. package/dist/lib/mcp-sandbox-tools.js +211 -0
  41. package/dist/lib/mcp-sandbox-tools.js.map +1 -0
  42. package/dist/lib/replica-roles.d.ts +22 -0
  43. package/dist/lib/replica-roles.d.ts.map +1 -0
  44. package/dist/lib/replica-roles.js +39 -0
  45. package/dist/lib/replica-roles.js.map +1 -0
  46. package/dist/lib/sandbox-api.d.ts +165 -0
  47. package/dist/lib/sandbox-api.d.ts.map +1 -0
  48. package/dist/lib/sandbox-api.js +241 -0
  49. package/dist/lib/sandbox-api.js.map +1 -0
  50. package/dist/lib/tar-safety.d.ts +17 -0
  51. package/dist/lib/tar-safety.d.ts.map +1 -0
  52. package/dist/lib/tar-safety.js +135 -0
  53. package/dist/lib/tar-safety.js.map +1 -0
  54. package/dist/utils/api.d.ts +31 -2
  55. package/dist/utils/api.d.ts.map +1 -1
  56. package/dist/utils/api.js +61 -2
  57. package/dist/utils/api.js.map +1 -1
  58. package/dist/utils/auth.d.ts.map +1 -1
  59. package/dist/utils/auth.js +2 -4
  60. package/dist/utils/auth.js.map +1 -1
  61. package/dist/utils/context.d.ts +7 -0
  62. package/dist/utils/context.d.ts.map +1 -1
  63. package/dist/utils/context.js +23 -1
  64. package/dist/utils/context.js.map +1 -1
  65. package/dist/utils/deploy-follow.d.ts +1 -5
  66. package/dist/utils/deploy-follow.d.ts.map +1 -1
  67. package/dist/utils/deploy-follow.js +21 -1
  68. package/dist/utils/deploy-follow.js.map +1 -1
  69. package/dist/utils/detect.d.ts.map +1 -1
  70. package/dist/utils/detect.js +35 -9
  71. package/dist/utils/detect.js.map +1 -1
  72. package/dist/utils/errors.d.ts +11 -0
  73. package/dist/utils/errors.d.ts.map +1 -1
  74. package/dist/utils/errors.js +42 -7
  75. package/dist/utils/errors.js.map +1 -1
  76. package/dist/utils/go-handler.d.ts +59 -0
  77. package/dist/utils/go-handler.d.ts.map +1 -0
  78. package/dist/utils/go-handler.js +417 -0
  79. package/dist/utils/go-handler.js.map +1 -0
  80. package/dist/utils/package-metadata.js +1 -1
  81. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAIA,8DAA8D;AAC9D,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IAaxD,2CAA2C;IAC3C,IAAI,KAAK,IAAI,MAAM,CAElB;CACF;AA2KD,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAsBnD;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAsC/F;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,IAAI,QAAQ,CAS5C;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMtE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAIA,8DAA8D;AAC9D,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IAaxD,2CAA2C;IAC3C,IAAI,KAAK,IAAI,MAAM,CAElB;CACF;AAiGD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYlI;AAqGD,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAsBnD;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAsC/F;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,IAAI,QAAQ,CAS5C;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAMtE"}
@@ -67,15 +67,16 @@ function isNetworkError(error) {
67
67
  message.includes('timeout'));
68
68
  }
69
69
  /** The console's plan page; the API answers with a path relative to it. */
70
- const CONSOLE_ORIGIN = 'https://compute.inquir.org';
70
+ const CONSOLE_ORIGIN = 'https://inquir.org';
71
71
  function computeAccessDetails(payload) {
72
72
  const details = payload?.error?.details;
73
73
  return details && typeof details === 'object' ? details : {};
74
74
  }
75
75
  /**
76
- * The workspace has no plan, its plan or free access ended, or its owner has
77
- * not verified their email: nothing can be created or changed until that is
78
- * fixed. Data is retained, and deleting resources still works.
76
+ * The workspace has no plan (its 14-day Free trial or plan ended, or never
77
+ * started), or its owner has not verified their email: nothing can be created
78
+ * or changed until that is fixed. Data is not deleted, and deleting resources
79
+ * still works.
79
80
  */
80
81
  function computeAccessError(error, base) {
81
82
  const details = computeAccessDetails(error.payload);
@@ -96,14 +97,40 @@ function computeAccessError(error, base) {
96
97
  });
97
98
  }
98
99
  const billing = `${CONSOLE_ORIGIN}${details.billingPath ?? '/billing'}`;
99
- const email = (details.requestAccessUrl ?? 'mailto:info@inquir.org').replace(/^mailto:/, '');
100
100
  return new CliError(details.state === 'expired' ? 'Compute access has ended for this workspace' : 'This workspace has no plan yet', {
101
101
  ...options,
102
- explanation: 'Creating, changing and running resources needs a paid plan or approved free access. Your data is retained; deleting resources still works.',
103
- fix: `Choose a plan at ${billing}, or request free access at ${email}.`,
102
+ explanation: 'Creating, changing and running resources needs a plan (the 14-day Free period is given once per account; if yours has ended, choose Simple or Pro). Your data is not deleted; deleting resources still works.',
103
+ fix: `Choose a plan at ${billing}.`,
104
104
  command: 'inquir whoami',
105
105
  });
106
106
  }
107
+ const PLAN_NAMES = { pro: 'Pro', enterprise: 'Enterprise' };
108
+ /** "Pro and Enterprise" from the plan codes the API names (Pro and Enterprise when it names none). */
109
+ function planNames(plans) {
110
+ const codes = Array.isArray(plans) && plans.every((plan) => typeof plan === 'string') && plans.length > 0
111
+ ? plans : ['pro', 'enterprise'];
112
+ const names = codes.map((code) => PLAN_NAMES[code] ?? code.charAt(0).toUpperCase() + code.slice(1));
113
+ return names.length <= 1 ? names.join('') : `${names.slice(0, -1).join(', ')} and ${names[names.length - 1]}`;
114
+ }
115
+ /**
116
+ * The plan gate of sandboxes (Pro and Enterprise only): what the plan is
117
+ * missing and where to upgrade, or null for any other error. The CLI renders
118
+ * it as a CliError; `inquir mcp` hands the same words to the agent.
119
+ */
120
+ export function sandboxPlanRequired(error) {
121
+ if (!(error instanceof ApiError) || error.code !== 'SANDBOX_PLAN_REQUIRED')
122
+ return null;
123
+ const details = error.payload?.error?.details ?? {};
124
+ const path = typeof details.billingPath === 'string' && details.billingPath.startsWith('/') ? details.billingPath : '/billing';
125
+ const upgradeUrl = `${CONSOLE_ORIGIN}${path}`;
126
+ const plans = planNames(details.requiredPlans);
127
+ return {
128
+ title: `Sandboxes are available on the ${plans} plan${plans.includes(' and ') ? 's' : ''}`,
129
+ explanation: "This workspace's plan does not include sandboxes. Existing sandboxes can still be listed and destroyed.",
130
+ fix: `Upgrade the workspace's plan at ${upgradeUrl}, then retry.`,
131
+ upgradeUrl,
132
+ };
133
+ }
107
134
  /** Map an {@link ApiError} (HTTP failure) to a friendly {@link CliError}. */
108
135
  function fromApiError(error) {
109
136
  const base = {
@@ -114,6 +141,14 @@ function fromApiError(error) {
114
141
  if (error.code === 'COMPUTE_ACCESS_REQUIRED') {
115
142
  return computeAccessError(error, base);
116
143
  }
144
+ const plan = sandboxPlanRequired(error);
145
+ if (plan) {
146
+ // Exit 4 ("auth required / forbidden", docs/cli-product-spec.md §6.4): the taxonomy has no billing
147
+ // code, and the other 402 a plan decides (COMPUTE_ACCESS_REQUIRED) exits 4 too, so scripts branch once.
148
+ return new CliError(plan.title, {
149
+ ...base, code: 'SANDBOX_PLAN_REQUIRED', exitCode: ExitCode.AUTH, explanation: plan.explanation, fix: plan.fix, command: 'inquir whoami',
150
+ });
151
+ }
117
152
  if (error.status === 401) {
118
153
  return new CliError('Authentication required', {
119
154
  ...base,
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Go handler detection for zero-config deploys.
3
+ *
4
+ * The Go runtime builds the app as a plugin (`go build -buildmode=plugin`) and
5
+ * looks the handler up with plugin.Lookup(<name>), which only finds the exact,
6
+ * exported (capitalised) identifier. Deriving `main.handler` from a source that
7
+ * declares `func Handler(...)` therefore fails every invoke with
8
+ * `symbol "handler" not found`. This module reads the package-main sources and
9
+ * returns the real identifier — or refuses with a hint when there is none or
10
+ * more than one candidate.
11
+ *
12
+ * It is a scanner, not a Go parser: comments and string/rune literals are
13
+ * blanked first, then top-level `func Name(...)` declarations are matched.
14
+ * Methods (`func (r T) Name(`) and generic funcs (`func Name[T any](`) are not
15
+ * candidates — neither can be loaded as a plugin symbol of the handler type.
16
+ */
17
+ export interface GoHandler {
18
+ /** Exact Go identifier, e.g. "Handler". */
19
+ name: string;
20
+ /** Handler spec for the platform, e.g. "main.Handler". */
21
+ spec: string;
22
+ /** File (relative, posix) that declares it. */
23
+ file: string;
24
+ /** Why this one was chosen (for the deploy plan). */
25
+ reason: string;
26
+ }
27
+ export declare class GoHandlerError extends Error {
28
+ readonly hints: string[];
29
+ constructor(message: string, hints?: string[]);
30
+ }
31
+ export declare const GO_HANDLER_SIGNATURE = "func Handler(event map[string]any, ctx obs.Context) (any, error)";
32
+ /** Go spec: an identifier is exported when its first character is an upper-case letter. */
33
+ export declare function isExportedGoIdentifier(name: string): boolean;
34
+ /**
35
+ * A symbol a handler spec can name: exported, and in the platform's ASCII
36
+ * handler alphabet (isSafeHandlerSpec on the server).
37
+ */
38
+ export declare function isLoadableGoSymbol(name: string): boolean;
39
+ /** `handler` → `Handler` (the name the user most likely meant). */
40
+ export declare function exportedGoName(name: string): string;
41
+ /**
42
+ * Replace comments and string/rune literals with spaces (newlines kept), so
43
+ * text inside them can never look like a declaration.
44
+ */
45
+ export declare function blankGoCommentsAndStrings(src: string): string;
46
+ /**
47
+ * Find the Go handler in `dir`: `Handler` when declared, otherwise the single
48
+ * exported handler-shaped func. Throws GoHandlerError when there is none or
49
+ * the choice is ambiguous.
50
+ */
51
+ export declare function detectGoHandler(dir: string): GoHandler;
52
+ /**
53
+ * Validate a `--handler` override for Go. The runtime looks up everything
54
+ * after the FIRST dot (runtime/go122/main.go, lookupHandlerInPlugin), so that
55
+ * must be one exported ASCII identifier: `main.x.Handler` looks up
56
+ * `x.Handler` and never loads.
57
+ */
58
+ export declare function assertGoHandlerOverride(spec: string): void;
59
+ //# sourceMappingURL=go-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-handler.d.ts","sourceRoot":"","sources":["../../src/utils/go-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACV,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;gBAAzC,OAAO,EAAE,MAAM,EAAW,KAAK,GAAE,MAAM,EAAO;CAI3D;AAWD,eAAO,MAAM,oBAAoB,qEAAqE,CAAC;AAEvG,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgC7D;AAgOD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA8EtD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAY1D"}
@@ -0,0 +1,417 @@
1
+ /**
2
+ * Go handler detection for zero-config deploys.
3
+ *
4
+ * The Go runtime builds the app as a plugin (`go build -buildmode=plugin`) and
5
+ * looks the handler up with plugin.Lookup(<name>), which only finds the exact,
6
+ * exported (capitalised) identifier. Deriving `main.handler` from a source that
7
+ * declares `func Handler(...)` therefore fails every invoke with
8
+ * `symbol "handler" not found`. This module reads the package-main sources and
9
+ * returns the real identifier — or refuses with a hint when there is none or
10
+ * more than one candidate.
11
+ *
12
+ * It is a scanner, not a Go parser: comments and string/rune literals are
13
+ * blanked first, then top-level `func Name(...)` declarations are matched.
14
+ * Methods (`func (r T) Name(`) and generic funcs (`func Name[T any](`) are not
15
+ * candidates — neither can be loaded as a plugin symbol of the handler type.
16
+ */
17
+ import fs from 'node:fs';
18
+ import path from 'node:path';
19
+ export class GoHandlerError extends Error {
20
+ hints;
21
+ constructor(message, hints = []) {
22
+ super(message);
23
+ this.hints = hints;
24
+ this.name = 'GoHandlerError';
25
+ }
26
+ }
27
+ export const GO_HANDLER_SIGNATURE = 'func Handler(event map[string]any, ctx obs.Context) (any, error)';
28
+ /** Go spec: an identifier is exported when its first character is an upper-case letter. */
29
+ export function isExportedGoIdentifier(name) {
30
+ return /^\p{Lu}/u.test(name);
31
+ }
32
+ /**
33
+ * A symbol a handler spec can name: exported, and in the platform's ASCII
34
+ * handler alphabet (isSafeHandlerSpec on the server).
35
+ */
36
+ export function isLoadableGoSymbol(name) {
37
+ return /^[A-Z][A-Za-z0-9_]*$/.test(name);
38
+ }
39
+ /** `handler` → `Handler` (the name the user most likely meant). */
40
+ export function exportedGoName(name) {
41
+ return name.charAt(0).toUpperCase() + name.slice(1);
42
+ }
43
+ /**
44
+ * Replace comments and string/rune literals with spaces (newlines kept), so
45
+ * text inside them can never look like a declaration.
46
+ */
47
+ export function blankGoCommentsAndStrings(src) {
48
+ const blank = (text) => text.replace(/[^\n]/g, ' ');
49
+ let out = '';
50
+ let i = 0;
51
+ const n = src.length;
52
+ while (i < n) {
53
+ const c = src[i];
54
+ const next = src[i + 1];
55
+ let end = -1;
56
+ if (c === '/' && next === '/') {
57
+ end = src.indexOf('\n', i);
58
+ if (end === -1)
59
+ end = n;
60
+ }
61
+ else if (c === '/' && next === '*') {
62
+ end = src.indexOf('*/', i + 2);
63
+ end = end === -1 ? n : end + 2;
64
+ }
65
+ else if (c === '`') {
66
+ end = src.indexOf('`', i + 1);
67
+ end = end === -1 ? n : end + 1;
68
+ }
69
+ else if (c === '"' || c === "'") {
70
+ let j = i + 1;
71
+ while (j < n && src[j] !== c && src[j] !== '\n')
72
+ j += src[j] === '\\' ? 2 : 1;
73
+ end = Math.min(j + 1, n);
74
+ }
75
+ if (end === -1) {
76
+ out += c;
77
+ i += 1;
78
+ }
79
+ else {
80
+ out += blank(src.slice(i, end));
81
+ i = end;
82
+ }
83
+ }
84
+ return out;
85
+ }
86
+ /**
87
+ * The plugin is built for linux with Go 1.22 (runtime/go122/Dockerfile) on
88
+ * amd64 (prod) or arm64. A file counts as excluded only when it is excluded
89
+ * for every one of those targets. Tags that are true for a target besides
90
+ * its GOARCH; anything else is false.
91
+ */
92
+ const TARGET_ARCHES = ['amd64', 'arm64'];
93
+ const TARGET_TAGS = new Set(['linux', 'unix', 'gc', 'cgo']);
94
+ const TARGET_GO_MINOR = 22;
95
+ const KNOWN_OS = new Set([
96
+ 'aix', 'android', 'darwin', 'dragonfly', 'freebsd', 'hurd', 'illumos', 'ios', 'js', 'linux', 'nacl',
97
+ 'netbsd', 'openbsd', 'plan9', 'solaris', 'wasip1', 'windows', 'zos',
98
+ ]);
99
+ const KNOWN_ARCH = new Set([
100
+ '386', 'amd64', 'amd64p32', 'arm', 'arm64', 'arm64be', 'armbe', 'loong64', 'mips', 'mips64', 'mips64le',
101
+ 'mips64p32', 'mips64p32le', 'mipsle', 'ppc', 'ppc64', 'ppc64le', 'riscv', 'riscv64', 's390', 's390x',
102
+ 'sparc', 'sparc64', 'wasm',
103
+ ]);
104
+ function tagSatisfied(tag, arch) {
105
+ if (tag === arch || TARGET_TAGS.has(tag))
106
+ return true;
107
+ const release = /^go1\.(\d+)$/.exec(tag);
108
+ return release !== null && Number(release[1]) <= TARGET_GO_MINOR;
109
+ }
110
+ /** Evaluate a `//go:build` expression for the target; null when it does not parse. */
111
+ function evalBuildExpression(expr, arch) {
112
+ const tokens = expr.match(/&&|\|\||[!()]|[\w.]+|\S/g) ?? [];
113
+ let pos = 0;
114
+ const fail = () => { throw new Error('bad build expression'); };
115
+ const parseOr = () => {
116
+ let value = parseAnd();
117
+ while (tokens[pos] === '||') {
118
+ pos += 1;
119
+ value = parseAnd() || value;
120
+ }
121
+ return value;
122
+ };
123
+ const parseAnd = () => {
124
+ let value = parseNot();
125
+ while (tokens[pos] === '&&') {
126
+ pos += 1;
127
+ value = parseNot() && value;
128
+ }
129
+ return value;
130
+ };
131
+ const parseNot = () => {
132
+ const token = tokens[pos++];
133
+ if (token === '!')
134
+ return !parseNot();
135
+ if (token === '(') {
136
+ const value = parseOr();
137
+ if (tokens[pos++] !== ')')
138
+ fail();
139
+ return value;
140
+ }
141
+ if (!token || !/^[\w.]+$/.test(token))
142
+ fail();
143
+ return tagSatisfied(token, arch);
144
+ };
145
+ try {
146
+ const value = parseOr();
147
+ return pos === tokens.length ? value : null;
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ }
153
+ /** Legacy `// +build a,b !c` lines: space = OR, comma = AND, lines AND-ed. */
154
+ function evalLegacyBuildLine(line, arch) {
155
+ return line.trim().split(/\s+/).some((option) => option.split(',').every((term) => (term.startsWith('!') ? !tagSatisfied(term.slice(1), arch) : tagSatisfied(term, arch))));
156
+ }
157
+ /**
158
+ * Whether `go build` for the target leaves the file out because of its build
159
+ * constraint (`//go:build`, else legacy `// +build`, in the header before the
160
+ * package clause). A constraint that does not parse keeps the file.
161
+ */
162
+ function excludedByBuildConstraint(raw) {
163
+ let goBuild = null;
164
+ const legacy = [];
165
+ let inBlockComment = false;
166
+ for (const line of raw.split(/\r?\n/)) {
167
+ let trimmed = line.trim();
168
+ if (inBlockComment) {
169
+ const close = trimmed.indexOf('*/');
170
+ if (close === -1)
171
+ continue;
172
+ inBlockComment = false;
173
+ trimmed = trimmed.slice(close + 2).trim();
174
+ }
175
+ // A /* ... */ header (a copyright block) does not end the header.
176
+ while (trimmed.startsWith('/*')) {
177
+ const close = trimmed.indexOf('*/', 2);
178
+ if (close === -1) {
179
+ inBlockComment = true;
180
+ trimmed = '';
181
+ break;
182
+ }
183
+ trimmed = trimmed.slice(close + 2).trim();
184
+ }
185
+ if (trimmed === '')
186
+ continue;
187
+ if (!trimmed.startsWith('//'))
188
+ break; // package clause or code: the header is over
189
+ const modern = /^\/\/go:build\s+(.*)$/.exec(trimmed);
190
+ if (modern)
191
+ goBuild ??= modern[1];
192
+ const old = /^\/\/\s*\+build\s+(.*)$/.exec(trimmed);
193
+ if (old)
194
+ legacy.push(old[1]);
195
+ }
196
+ if (goBuild !== null) {
197
+ const expr = goBuild;
198
+ return TARGET_ARCHES.every((arch) => evalBuildExpression(expr, arch) === false);
199
+ }
200
+ return legacy.length > 0 && TARGET_ARCHES.every((arch) => !legacy.every((line) => evalLegacyBuildLine(line, arch)));
201
+ }
202
+ /** `_windows.go`, `_darwin_arm64.go`, `_386.go`: implicit GOOS/GOARCH constraints. */
203
+ function excludedByFileName(file) {
204
+ const base = file.replace(/\.go$/, '');
205
+ const underscore = base.indexOf('_');
206
+ if (underscore < 0)
207
+ return false;
208
+ const parts = base.slice(underscore).split('_');
209
+ const n = parts.length;
210
+ const osOk = (os) => os === 'linux';
211
+ const archOk = (arch) => TARGET_ARCHES.includes(arch);
212
+ if (n >= 2 && KNOWN_OS.has(parts[n - 2]) && KNOWN_ARCH.has(parts[n - 1])) {
213
+ return !(osOk(parts[n - 2]) && archOk(parts[n - 1]));
214
+ }
215
+ if (KNOWN_OS.has(parts[n - 1]))
216
+ return !osOk(parts[n - 1]);
217
+ if (KNOWN_ARCH.has(parts[n - 1]))
218
+ return !archOk(parts[n - 1]);
219
+ return false;
220
+ }
221
+ /** Index just past the bracket that closes the one at `open`, or -1. */
222
+ function matchBracket(text, open) {
223
+ const pairs = { '(': ')', '[': ']', '{': '}' };
224
+ const stack = [];
225
+ for (let i = open; i < text.length; i += 1) {
226
+ const c = text[i];
227
+ if (pairs[c])
228
+ stack.push(pairs[c]);
229
+ else if (c === ')' || c === ']' || c === '}') {
230
+ if (stack.pop() !== c)
231
+ return -1;
232
+ if (stack.length === 0)
233
+ return i + 1;
234
+ }
235
+ }
236
+ return -1;
237
+ }
238
+ /** Split on commas outside any bracket; empty parts (trailing comma) dropped. */
239
+ function splitTopLevel(list) {
240
+ const parts = [];
241
+ let depth = 0;
242
+ let current = '';
243
+ for (const c of list) {
244
+ if (c === '(' || c === '[' || c === '{')
245
+ depth += 1;
246
+ else if (c === ')' || c === ']' || c === '}')
247
+ depth -= 1;
248
+ if (c === ',' && depth === 0) {
249
+ parts.push(current);
250
+ current = '';
251
+ }
252
+ else {
253
+ current += c;
254
+ }
255
+ }
256
+ parts.push(current);
257
+ return parts.map((p) => p.trim()).filter((p) => p.length > 0);
258
+ }
259
+ /**
260
+ * Two parameters (`event, ctx map[string]any` counts as two) and a `(X, error)`
261
+ * result list — the shapes runtime/go122 accepts.
262
+ */
263
+ function isHandlerShaped(text, paramsOpen) {
264
+ const paramsEnd = matchBracket(text, paramsOpen);
265
+ if (paramsEnd === -1)
266
+ return false;
267
+ const params = splitTopLevel(text.slice(paramsOpen + 1, paramsEnd - 1));
268
+ if (params.length !== 2)
269
+ return false;
270
+ const rest = text.slice(paramsEnd);
271
+ const resultsOpen = /^\s*\(/.exec(rest);
272
+ if (!resultsOpen)
273
+ return false;
274
+ const start = paramsEnd + resultsOpen[0].length - 1;
275
+ const resultsEnd = matchBracket(text, start);
276
+ if (resultsEnd === -1)
277
+ return false;
278
+ const results = splitTopLevel(text.slice(start + 1, resultsEnd - 1));
279
+ return results.length === 2 && /(?:^|\s)error$/.test(results[1]);
280
+ }
281
+ const FUNC_DECL = /^[ \t]*func[ \t]+([\p{L}_][\p{L}\p{Nd}_]*)[ \t]*([[(])/gmu;
282
+ function scanFile(file, source) {
283
+ // gc ignores a leading byte-order mark (Windows editors write one).
284
+ const raw = source.replace(/^\uFEFF/, '');
285
+ if (excludedByFileName(file) || excludedByBuildConstraint(raw))
286
+ return null;
287
+ const text = blankGoCommentsAndStrings(raw);
288
+ const pkg = /^[ \t]*package[ \t]+([\p{L}_][\p{L}\p{Nd}_]*)/mu.exec(text);
289
+ if (!pkg || pkg[1] !== 'main')
290
+ return null;
291
+ const funcs = [];
292
+ for (const match of text.matchAll(FUNC_DECL)) {
293
+ const name = match[1];
294
+ const generic = match[2] === '[';
295
+ const bracket = (match.index ?? 0) + match[0].length - 1;
296
+ funcs.push({
297
+ name,
298
+ file,
299
+ exported: isExportedGoIdentifier(name),
300
+ generic,
301
+ handlerShaped: !generic && isHandlerShaped(text, bracket),
302
+ });
303
+ }
304
+ return funcs;
305
+ }
306
+ /** Top-level .go files that are part of the plugin build (no _test.go). */
307
+ function listGoSources(dir) {
308
+ let entries;
309
+ try {
310
+ entries = fs.readdirSync(dir, { withFileTypes: true });
311
+ }
312
+ catch {
313
+ return [];
314
+ }
315
+ return entries
316
+ // go build ignores _test.go files and names starting with `_` or `.`.
317
+ .filter((e) => e.isFile() && e.name.endsWith('.go') && !e.name.endsWith('_test.go') && !/^[_.]/.test(e.name))
318
+ .map((e) => e.name)
319
+ .sort();
320
+ }
321
+ function overrideHint(name) {
322
+ return `Or pass the exact exported name: --handler main.${name}`;
323
+ }
324
+ /**
325
+ * Find the Go handler in `dir`: `Handler` when declared, otherwise the single
326
+ * exported handler-shaped func. Throws GoHandlerError when there is none or
327
+ * the choice is ambiguous.
328
+ */
329
+ export function detectGoHandler(dir) {
330
+ const funcs = [];
331
+ let mainFiles = 0;
332
+ for (const file of listGoSources(dir)) {
333
+ let raw;
334
+ try {
335
+ raw = fs.readFileSync(path.join(dir, file), 'utf8');
336
+ }
337
+ catch {
338
+ continue;
339
+ }
340
+ const found = scanFile(file, raw);
341
+ if (found === null)
342
+ continue;
343
+ mainFiles += 1;
344
+ funcs.push(...found);
345
+ }
346
+ if (mainFiles === 0) {
347
+ throw new GoHandlerError(`No Go source of package main found in ${dir}`, [
348
+ 'The Go runtime builds the top-level package main as a plugin.',
349
+ `Export a handler there: ${GO_HANDLER_SIGNATURE}.`,
350
+ ]);
351
+ }
352
+ const handler = funcs.find((f) => f.name === 'Handler' && !f.generic);
353
+ if (handler) {
354
+ // Picked even when not handler-shaped (the runtime then names the
355
+ // signature it expects), but the plan says so.
356
+ const reason = handler.handlerShaped
357
+ ? 'func Handler found'
358
+ : 'func Handler found, but its signature does not look like (event, ctx) (any, error) — verify';
359
+ return { name: 'Handler', spec: 'main.Handler', file: handler.file, reason };
360
+ }
361
+ // Distinct names: a func declared in two build-tagged files counts once.
362
+ const byName = new Map();
363
+ for (const f of funcs) {
364
+ // Non-ASCII exported names cannot be written as a handler spec (the
365
+ // platform's handler alphabet is ASCII), so they are not candidates.
366
+ if (isLoadableGoSymbol(f.name) && f.handlerShaped && !byName.has(f.name))
367
+ byName.set(f.name, f);
368
+ }
369
+ const candidates = [...byName.values()];
370
+ if (candidates.length === 1) {
371
+ const [only] = candidates;
372
+ return {
373
+ name: only.name,
374
+ spec: `main.${only.name}`,
375
+ file: only.file,
376
+ reason: `func ${only.name} is the only exported handler-shaped func`,
377
+ };
378
+ }
379
+ if (candidates.length > 1) {
380
+ const names = candidates.map((f) => f.name);
381
+ throw new GoHandlerError(`Several exported Go funcs could be the handler: ${names.join(', ')} — and none is named Handler`, [
382
+ 'Name the entry point Handler, or choose one explicitly:',
383
+ ...names.map((name) => ` --handler main.${name}`),
384
+ ]);
385
+ }
386
+ const unexported = funcs.find((f) => !f.exported && f.handlerShaped);
387
+ if (unexported) {
388
+ const exported = exportedGoName(unexported.name);
389
+ throw new GoHandlerError(`Go func ${unexported.name} in ${unexported.file} is not exported, so the runtime cannot load it` +
390
+ ` (Go plugins only expose capitalised names)`, [
391
+ `Rename it to ${exported === unexported.name ? 'Handler' : exported}: ${GO_HANDLER_SIGNATURE}.`,
392
+ overrideHint(exported === unexported.name ? 'Handler' : exported),
393
+ ]);
394
+ }
395
+ throw new GoHandlerError('No exported Go handler found', [
396
+ `Go apps must export: ${GO_HANDLER_SIGNATURE}.`,
397
+ overrideHint('<ExportedName>'),
398
+ ]);
399
+ }
400
+ /**
401
+ * Validate a `--handler` override for Go. The runtime looks up everything
402
+ * after the FIRST dot (runtime/go122/main.go, lookupHandlerInPlugin), so that
403
+ * must be one exported ASCII identifier: `main.x.Handler` looks up
404
+ * `x.Handler` and never loads.
405
+ */
406
+ export function assertGoHandlerOverride(spec) {
407
+ const dot = spec.indexOf('.');
408
+ const symbol = dot === -1 ? spec : spec.slice(dot + 1);
409
+ if (isLoadableGoSymbol(symbol))
410
+ return;
411
+ const suggestion = /^[a-z][A-Za-z0-9_]*$/.test(symbol) ? exportedGoName(symbol) : 'Handler';
412
+ throw new GoHandlerError(`Go handler "${spec}" names "${symbol}", which is not an exported Go identifier — the runtime can never load it`, [
413
+ 'Go plugins only expose capitalised names: export the func (e.g. func Handler) and use its exact name.',
414
+ `--handler main.${suggestion}`,
415
+ ]);
416
+ }
417
+ //# sourceMappingURL=go-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-handler.js","sourceRoot":"","sources":["../../src/utils/go-handler.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export function getCliVersion() {
17
17
  return readCliPackageJson().version ?? '0.1.0';
18
18
  }
19
19
  export function getSdkDependencyRange() {
20
- return readCliPackageJson().dependencies?.['@inquir/compute'] ?? '^0.4.4';
20
+ return readCliPackageJson().dependencies?.['@inquir/compute'] ?? '^0.4.5';
21
21
  }
22
22
  /**
23
23
  * The tsx a new project gets as a devDependency: local Run/Debug (CLI and