@openwaggle/extension-sdk 0.0.0-bootstrap.0 → 0.1.0

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 (104) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +3 -0
  4. package/dist/agent-loop.d.ts +128 -0
  5. package/dist/agent-loop.js +47 -0
  6. package/dist/broker-validation.d.ts +17 -0
  7. package/dist/broker-validation.js +99 -0
  8. package/dist/broker.d.ts +193 -0
  9. package/dist/broker.js +81 -0
  10. package/dist/constants.d.ts +183 -0
  11. package/dist/constants.js +245 -0
  12. package/dist/context.d.ts +66 -0
  13. package/dist/context.js +49 -0
  14. package/dist/contribution-types.d.ts +21 -0
  15. package/dist/contribution-types.js +1 -0
  16. package/dist/core-types.d.ts +58 -0
  17. package/dist/core-types.js +1 -0
  18. package/dist/docs-validation.d.ts +3 -0
  19. package/dist/docs-validation.js +93 -0
  20. package/dist/docs.d.ts +231 -0
  21. package/dist/docs.js +85 -0
  22. package/dist/index.d.ts +15 -0
  23. package/dist/index.js +10 -0
  24. package/dist/internal-validation.d.ts +4 -0
  25. package/dist/internal-validation.js +24 -0
  26. package/dist/json.d.ts +9 -0
  27. package/dist/json.js +3 -0
  28. package/dist/manifest-contributions.d.ts +380 -0
  29. package/dist/manifest-contributions.js +75 -0
  30. package/dist/manifest-primitives.d.ts +20 -0
  31. package/dist/manifest-primitives.js +118 -0
  32. package/dist/manifest.d.ts +303 -0
  33. package/dist/manifest.js +89 -0
  34. package/dist/openwaggle-sdk.d.ts +2 -0
  35. package/dist/openwaggle-sdk.js +127 -0
  36. package/dist/openwaggle-types.d.ts +111 -0
  37. package/dist/openwaggle-types.js +1 -0
  38. package/dist/openwaggle-validation.d.ts +12 -0
  39. package/dist/openwaggle-validation.js +135 -0
  40. package/dist/registry-types.d.ts +34 -0
  41. package/dist/registry-types.js +1 -0
  42. package/dist/runtime-sdk.d.ts +2 -0
  43. package/dist/runtime-sdk.js +19 -0
  44. package/dist/runtime-types.d.ts +19 -0
  45. package/dist/runtime-types.js +1 -0
  46. package/dist/runtime.d.ts +22 -0
  47. package/dist/runtime.js +22 -0
  48. package/dist/schema.d.ts +13 -0
  49. package/dist/schema.js +25 -0
  50. package/dist/sdk-types.d.ts +92 -0
  51. package/dist/sdk-types.js +1 -0
  52. package/dist/storage-sdk.d.ts +2 -0
  53. package/dist/storage-sdk.js +51 -0
  54. package/dist/storage-types.d.ts +40 -0
  55. package/dist/storage-types.js +1 -0
  56. package/dist/theme-data.d.ts +126 -0
  57. package/dist/theme-data.js +144 -0
  58. package/dist/theme-types.d.ts +61 -0
  59. package/dist/theme-types.js +1 -0
  60. package/dist/theme.d.ts +6 -0
  61. package/dist/theme.js +128 -0
  62. package/dist/types.d.ts +6 -0
  63. package/dist/types.js +1 -0
  64. package/dist/ui-constants.d.ts +24 -0
  65. package/dist/ui-constants.js +22 -0
  66. package/dist/ui-stylesheet.d.ts +8 -0
  67. package/dist/ui-stylesheet.js +223 -0
  68. package/dist/ui.d.ts +6 -0
  69. package/dist/ui.js +16 -0
  70. package/dist-cjs/agent-loop.js +83 -0
  71. package/dist-cjs/broker-validation.js +109 -0
  72. package/dist-cjs/broker.js +120 -0
  73. package/dist-cjs/constants.js +248 -0
  74. package/dist-cjs/context.js +54 -0
  75. package/dist-cjs/contribution-types.js +2 -0
  76. package/dist-cjs/core-types.js +2 -0
  77. package/dist-cjs/docs-validation.js +97 -0
  78. package/dist-cjs/docs.js +121 -0
  79. package/dist-cjs/index.js +56 -0
  80. package/dist-cjs/internal-validation.js +30 -0
  81. package/dist-cjs/json.js +39 -0
  82. package/dist-cjs/manifest-contributions.js +111 -0
  83. package/dist-cjs/manifest-primitives.js +158 -0
  84. package/dist-cjs/manifest.js +140 -0
  85. package/dist-cjs/openwaggle-sdk.js +130 -0
  86. package/dist-cjs/openwaggle-types.js +2 -0
  87. package/dist-cjs/openwaggle-validation.js +148 -0
  88. package/dist-cjs/package.json +3 -0
  89. package/dist-cjs/registry-types.js +2 -0
  90. package/dist-cjs/runtime-sdk.js +22 -0
  91. package/dist-cjs/runtime-types.js +2 -0
  92. package/dist-cjs/runtime.js +61 -0
  93. package/dist-cjs/schema.js +61 -0
  94. package/dist-cjs/sdk-types.js +2 -0
  95. package/dist-cjs/storage-sdk.js +54 -0
  96. package/dist-cjs/storage-types.js +2 -0
  97. package/dist-cjs/theme-data.js +147 -0
  98. package/dist-cjs/theme-types.js +2 -0
  99. package/dist-cjs/theme.js +135 -0
  100. package/dist-cjs/types.js +2 -0
  101. package/dist-cjs/ui-constants.js +25 -0
  102. package/dist-cjs/ui-stylesheet.js +227 -0
  103. package/dist-cjs/ui.js +24 -0
  104. package/package.json +98 -8
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.openWaggleAgentLoopSurfaceInputSchema = exports.openWaggleStatusSurfaceInputSchema = exports.openWaggleTranscriptSurfaceInputSchema = exports.openWaggleInteractionSurfaceInputSchema = exports.openWaggleCustomMessageSurfaceInputSchema = exports.openWaggleToolCallSurfaceInputSchema = void 0;
37
+ const Schema = __importStar(require("effect/Schema"));
38
+ const json_js_1 = require("./json.js");
39
+ const nonEmptyStringSchema = Schema.String.pipe(Schema.minLength(1));
40
+ exports.openWaggleToolCallSurfaceInputSchema = Schema.Struct({
41
+ surface: Schema.Literal('tool'),
42
+ toolCall: Schema.Struct({
43
+ id: nonEmptyStringSchema,
44
+ name: nonEmptyStringSchema,
45
+ input: Schema.optional(json_js_1.jsonValueSchema),
46
+ }),
47
+ toolResult: Schema.optional(Schema.Struct({
48
+ ok: Schema.Boolean,
49
+ output: Schema.optional(json_js_1.jsonValueSchema),
50
+ error: Schema.optional(Schema.String),
51
+ })),
52
+ });
53
+ exports.openWaggleCustomMessageSurfaceInputSchema = Schema.Struct({
54
+ surface: Schema.Literal('custom-message'),
55
+ message: Schema.Struct({
56
+ name: nonEmptyStringSchema,
57
+ payload: Schema.optional(json_js_1.jsonValueSchema),
58
+ }),
59
+ });
60
+ exports.openWaggleInteractionSurfaceInputSchema = Schema.Struct({
61
+ surface: Schema.Literal('interaction'),
62
+ interaction: Schema.Struct({
63
+ id: nonEmptyStringSchema,
64
+ customType: nonEmptyStringSchema,
65
+ payload: Schema.optional(json_js_1.jsonValueSchema),
66
+ }),
67
+ });
68
+ exports.openWaggleTranscriptSurfaceInputSchema = Schema.Struct({
69
+ surface: Schema.Literal('transcript'),
70
+ transcript: Schema.Struct({
71
+ sessionId: Schema.optional(nonEmptyStringSchema),
72
+ messageCount: Schema.Number,
73
+ payload: Schema.optional(json_js_1.jsonValueSchema),
74
+ }),
75
+ });
76
+ exports.openWaggleStatusSurfaceInputSchema = Schema.Struct({
77
+ surface: Schema.Literal('status'),
78
+ status: Schema.Struct({
79
+ label: nonEmptyStringSchema,
80
+ payload: Schema.optional(json_js_1.jsonValueSchema),
81
+ }),
82
+ });
83
+ exports.openWaggleAgentLoopSurfaceInputSchema = Schema.Union(exports.openWaggleToolCallSurfaceInputSchema, exports.openWaggleCustomMessageSurfaceInputSchema, exports.openWaggleInteractionSurfaceInputSchema, exports.openWaggleTranscriptSurfaceInputSchema, exports.openWaggleStatusSurfaceInputSchema);
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.invalidOperationResult = invalidOperationResult;
4
+ exports.toDecodedOperationResult = toDecodedOperationResult;
5
+ exports.isStorageGetResult = isStorageGetResult;
6
+ exports.isStorageSetResult = isStorageSetResult;
7
+ exports.isStorageDeleteResult = isStorageDeleteResult;
8
+ exports.isStorageListResult = isStorageListResult;
9
+ exports.isRuntimeRegisterContributionResult = isRuntimeRegisterContributionResult;
10
+ exports.isRuntimeUnregisterContributionResult = isRuntimeUnregisterContributionResult;
11
+ const constants_js_1 = require("./constants.js");
12
+ const internal_validation_js_1 = require("./internal-validation.js");
13
+ function invalidOperationResult(input) {
14
+ return {
15
+ ok: false,
16
+ error: {
17
+ code: constants_js_1.OPENWAGGLE_EXTENSION_BROKER.FAILURE_CODE.INVALID_PAYLOAD,
18
+ message: input.message,
19
+ issues: [...input.issues],
20
+ },
21
+ audit: input.audit,
22
+ };
23
+ }
24
+ function toDecodedOperationResult(result, guard, message) {
25
+ if (!result.ok) {
26
+ return result;
27
+ }
28
+ return guard(result.value)
29
+ ? { ok: true, value: result.value, audit: result.audit }
30
+ : invalidOperationResult({
31
+ audit: result.audit,
32
+ issues: ['Broker response payload did not match the expected operation result.'],
33
+ message,
34
+ });
35
+ }
36
+ function isKnownString(values, value) {
37
+ return typeof value === 'string' && values.some((candidate) => candidate === value);
38
+ }
39
+ function isStorageScope(value) {
40
+ if (!(0, internal_validation_js_1.isRecord)(value)) {
41
+ return false;
42
+ }
43
+ if (value.kind === constants_js_1.OPENWAGGLE_EXTENSION.STORAGE.SCOPE.GLOBAL_KIND) {
44
+ return true;
45
+ }
46
+ return (value.kind === constants_js_1.OPENWAGGLE_EXTENSION.STORAGE.SCOPE.PROJECT_KIND &&
47
+ (0, internal_validation_js_1.isNonEmptyString)(value.projectPath));
48
+ }
49
+ function isStorageKey(value) {
50
+ return ((0, internal_validation_js_1.isNonEmptyString)(value) &&
51
+ value === value.trim() &&
52
+ value.length <= constants_js_1.OPENWAGGLE_EXTENSION.STORAGE.KEY_MAX_LENGTH);
53
+ }
54
+ function hasStorageResultBase(value) {
55
+ return ((0, internal_validation_js_1.isNonEmptyString)(value.extensionId) &&
56
+ (0, internal_validation_js_1.isNonEmptyString)(value.contributionId) &&
57
+ value.capability === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.CAPABILITY.STORAGE &&
58
+ isKnownString(constants_js_1.OPENWAGGLE_EXTENSION.STORAGE.KINDS, value.storageKind) &&
59
+ isStorageScope(value.storageScope));
60
+ }
61
+ function isStorageGetResult(value) {
62
+ return ((0, internal_validation_js_1.isRecord)(value) &&
63
+ hasStorageResultBase(value) &&
64
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.GET &&
65
+ isStorageKey(value.key) &&
66
+ (value.value === null || (0, internal_validation_js_1.isJsonValue)(value.value)));
67
+ }
68
+ function isStorageSetResult(value) {
69
+ return ((0, internal_validation_js_1.isRecord)(value) &&
70
+ hasStorageResultBase(value) &&
71
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.SET &&
72
+ isStorageKey(value.key) &&
73
+ (0, internal_validation_js_1.isJsonValue)(value.value) &&
74
+ typeof value.createdAt === 'number' &&
75
+ typeof value.updatedAt === 'number');
76
+ }
77
+ function isStorageDeleteResult(value) {
78
+ return ((0, internal_validation_js_1.isRecord)(value) &&
79
+ hasStorageResultBase(value) &&
80
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.DELETE &&
81
+ isStorageKey(value.key) &&
82
+ value.deleted === true);
83
+ }
84
+ function isStorageListResult(value) {
85
+ return ((0, internal_validation_js_1.isRecord)(value) &&
86
+ hasStorageResultBase(value) &&
87
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.LIST &&
88
+ (0, internal_validation_js_1.isStringArray)(value.keys) &&
89
+ value.keys.every(isStorageKey));
90
+ }
91
+ function hasRuntimeContributionResultBase(value) {
92
+ return ((0, internal_validation_js_1.isNonEmptyString)(value.extensionId) &&
93
+ (0, internal_validation_js_1.isNonEmptyString)(value.contributionId) &&
94
+ value.capability === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.CAPABILITY.RUNTIME &&
95
+ isKnownString(constants_js_1.OPENWAGGLE_EXTENSION.CONTRIBUTION_FAMILIES, value.family));
96
+ }
97
+ function isRuntimeRegisterContributionResult(value) {
98
+ return ((0, internal_validation_js_1.isRecord)(value) &&
99
+ hasRuntimeContributionResultBase(value) &&
100
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.REGISTER_CONTRIBUTION &&
101
+ (0, internal_validation_js_1.isNonEmptyString)(value.registeredContributionId));
102
+ }
103
+ function isRuntimeUnregisterContributionResult(value) {
104
+ return ((0, internal_validation_js_1.isRecord)(value) &&
105
+ hasRuntimeContributionResultBase(value) &&
106
+ value.method === constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.UNREGISTER_CONTRIBUTION &&
107
+ (0, internal_validation_js_1.isNonEmptyString)(value.unregisteredContributionId) &&
108
+ typeof value.unregistered === 'boolean');
109
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.extensionInvokeResultSchema = exports.extensionInvokeFailureSchema = exports.extensionInvokeSuccessSchema = exports.extensionInvokeErrorSchema = exports.extensionInvokeInputSchema = exports.extensionCapabilityAuditEntrySchema = exports.extensionInvokeScopeSchema = void 0;
37
+ exports.toInvokeInput = toInvokeInput;
38
+ exports.createExtensionBrokerSdkFromInvoke = createExtensionBrokerSdkFromInvoke;
39
+ exports.createExtensionBrokerSdk = createExtensionBrokerSdk;
40
+ const Schema = __importStar(require("effect/Schema"));
41
+ const constants_js_1 = require("./constants.js");
42
+ const manifest_js_1 = require("./manifest.js");
43
+ const openwaggle_sdk_js_1 = require("./openwaggle-sdk.js");
44
+ const runtime_sdk_js_1 = require("./runtime-sdk.js");
45
+ const storage_sdk_js_1 = require("./storage-sdk.js");
46
+ const nonEmptyStringSchema = Schema.String.pipe(Schema.minLength(1));
47
+ exports.extensionInvokeScopeSchema = Schema.Union(Schema.Struct({ kind: Schema.Literal('app') }), Schema.Struct({ kind: Schema.Literal('project'), projectPath: nonEmptyStringSchema }), Schema.Struct({
48
+ kind: Schema.Literal('session'),
49
+ projectPath: nonEmptyStringSchema,
50
+ sessionId: nonEmptyStringSchema,
51
+ }), Schema.Struct({
52
+ kind: Schema.Literal('branch'),
53
+ projectPath: nonEmptyStringSchema,
54
+ sessionId: nonEmptyStringSchema,
55
+ branchId: nonEmptyStringSchema,
56
+ }));
57
+ exports.extensionCapabilityAuditEntrySchema = Schema.Struct({
58
+ extensionId: manifest_js_1.extensionIdSchema,
59
+ contributionId: manifest_js_1.extensionContributionIdSchema,
60
+ capability: manifest_js_1.extensionContributionIdSchema,
61
+ method: manifest_js_1.extensionContributionIdSchema,
62
+ scope: exports.extensionInvokeScopeSchema,
63
+ outcome: Schema.Literal(...constants_js_1.OPENWAGGLE_EXTENSION_BROKER.OUTCOMES),
64
+ timestamp: Schema.Number,
65
+ failureCode: Schema.optional(Schema.Literal(...constants_js_1.OPENWAGGLE_EXTENSION_BROKER.FAILURE_CODES)),
66
+ });
67
+ exports.extensionInvokeInputSchema = Schema.Struct({
68
+ extensionId: manifest_js_1.extensionIdSchema,
69
+ contributionId: manifest_js_1.extensionContributionIdSchema,
70
+ capability: manifest_js_1.extensionContributionIdSchema,
71
+ method: manifest_js_1.extensionContributionIdSchema,
72
+ scope: exports.extensionInvokeScopeSchema,
73
+ payload: Schema.optional(Schema.Unknown),
74
+ });
75
+ exports.extensionInvokeErrorSchema = Schema.Struct({
76
+ code: Schema.Literal(...constants_js_1.OPENWAGGLE_EXTENSION_BROKER.FAILURE_CODES),
77
+ message: nonEmptyStringSchema,
78
+ issues: Schema.optional(Schema.Array(Schema.String)),
79
+ });
80
+ exports.extensionInvokeSuccessSchema = Schema.Struct({
81
+ ok: Schema.Literal(true),
82
+ value: Schema.Unknown,
83
+ audit: exports.extensionCapabilityAuditEntrySchema,
84
+ });
85
+ exports.extensionInvokeFailureSchema = Schema.Struct({
86
+ ok: Schema.Literal(false),
87
+ error: exports.extensionInvokeErrorSchema,
88
+ audit: Schema.optional(exports.extensionCapabilityAuditEntrySchema),
89
+ });
90
+ exports.extensionInvokeResultSchema = Schema.Union(exports.extensionInvokeSuccessSchema, exports.extensionInvokeFailureSchema);
91
+ function toInvokeInput(identity, request) {
92
+ return {
93
+ extensionId: identity.extensionId,
94
+ contributionId: identity.contributionId,
95
+ capability: request.capability,
96
+ method: request.method,
97
+ scope: request.scope,
98
+ ...(request.payload !== undefined ? { payload: request.payload } : {}),
99
+ };
100
+ }
101
+ function createExtensionBrokerSdkFromInvoke(invoke, options = {}) {
102
+ return {
103
+ invoke,
104
+ hostContext: {
105
+ getScope: (scope) => invoke({
106
+ capability: constants_js_1.OPENWAGGLE_EXTENSION_BROKER.CAPABILITY.HOST_CONTEXT,
107
+ method: constants_js_1.OPENWAGGLE_EXTENSION_BROKER.METHOD.GET_SCOPE,
108
+ scope,
109
+ payload: {},
110
+ }),
111
+ },
112
+ storage: (0, storage_sdk_js_1.createPackageStorageSdk)(invoke),
113
+ openWaggle: (0, openwaggle_sdk_js_1.createOpenWaggleSdk)(invoke, options),
114
+ runtime: (0, runtime_sdk_js_1.createRuntimeContributionSdk)(invoke),
115
+ };
116
+ }
117
+ function createExtensionBrokerSdk(transport, identity, options = {}) {
118
+ const invoke = (request) => transport(toInvokeInput(identity, request));
119
+ return createExtensionBrokerSdkFromInvoke(invoke, options);
120
+ }
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPENWAGGLE_EXTENSION = exports.OPENWAGGLE_EXTENSION_BROKER = void 0;
4
+ const TEN_MINUTES_MS = 10 * 60 * 1_000;
5
+ const EXTENSION_BROKER_FAILURE_CODE = {
6
+ INVALID_INPUT: 'invalid-input',
7
+ INVALID_PAYLOAD: 'invalid-payload',
8
+ UNKNOWN_EXTENSION: 'unknown-extension',
9
+ DISABLED_EXTENSION: 'disabled-extension',
10
+ UNKNOWN_CONTRIBUTION: 'unknown-contribution',
11
+ UNDECLARED_CAPABILITY: 'undeclared-capability',
12
+ UNDECLARED_METHOD: 'undeclared-method',
13
+ UNDECLARED_SCOPE: 'undeclared-scope',
14
+ OUT_OF_SCOPE: 'out-of-scope',
15
+ UNSUPPORTED_CAPABILITY: 'unsupported-capability',
16
+ UNSUPPORTED_METHOD: 'unsupported-method',
17
+ TRANSPORT_FAILED: 'transport-failed',
18
+ };
19
+ const EXTENSION_BROKER_OUTCOME = {
20
+ SUCCEEDED: 'succeeded',
21
+ REJECTED: 'rejected',
22
+ };
23
+ const EXTENSION_BROKER_CAPABILITY = {
24
+ HOST_CONTEXT: 'openwaggle.host.context',
25
+ STORAGE: 'openwaggle.storage',
26
+ STATE: 'openwaggle.state',
27
+ ACTIONS: 'openwaggle.actions',
28
+ SETTINGS: 'openwaggle.settings',
29
+ DOCS: 'openwaggle.docs',
30
+ RUNTIME: 'openwaggle.runtime',
31
+ };
32
+ const EXTENSION_BROKER_METHOD = {
33
+ GET_SCOPE: 'get-scope',
34
+ GET: 'get',
35
+ SET: 'set',
36
+ DELETE: 'delete',
37
+ LIST: 'list',
38
+ GET_STATE: 'get-state',
39
+ READ_STATE: 'read-state',
40
+ SELECT_PROJECT: 'select-project',
41
+ GET_SETTINGS: 'get-settings',
42
+ UPDATE_SETTINGS: 'update-settings',
43
+ GET_SETTING: 'get-setting',
44
+ UPDATE_SETTING: 'update-setting',
45
+ DISCOVER_DOCS: 'discover-docs',
46
+ RESOLVE_DOCS_TOPIC: 'resolve-docs-topic',
47
+ REGISTER_CONTRIBUTION: 'register-contribution',
48
+ UNREGISTER_CONTRIBUTION: 'unregister-contribution',
49
+ };
50
+ const EXTENSION_BROKER_STATE_SELECTOR = {
51
+ CURRENT_PROJECT: 'current-project',
52
+ CURRENT_SESSION: 'current-session',
53
+ CURRENT_BRANCH: 'current-branch',
54
+ RECENT_PROJECTS: 'recent-projects',
55
+ MODEL_PREFERENCES: 'model-preferences',
56
+ };
57
+ const EXTENSION_BROKER_SETTING_KEY = {
58
+ MODEL_PREFERENCES: 'model-preferences',
59
+ PROJECT_DISPLAY_NAME: 'project-display-name',
60
+ };
61
+ const EXTENSION_BROKER_CAPABILITY_METHODS = [
62
+ {
63
+ capability: EXTENSION_BROKER_CAPABILITY.HOST_CONTEXT,
64
+ methods: [EXTENSION_BROKER_METHOD.GET_SCOPE],
65
+ },
66
+ {
67
+ capability: EXTENSION_BROKER_CAPABILITY.STORAGE,
68
+ methods: [
69
+ EXTENSION_BROKER_METHOD.GET,
70
+ EXTENSION_BROKER_METHOD.SET,
71
+ EXTENSION_BROKER_METHOD.DELETE,
72
+ EXTENSION_BROKER_METHOD.LIST,
73
+ ],
74
+ },
75
+ {
76
+ capability: EXTENSION_BROKER_CAPABILITY.STATE,
77
+ methods: [EXTENSION_BROKER_METHOD.GET_STATE, EXTENSION_BROKER_METHOD.READ_STATE],
78
+ },
79
+ {
80
+ capability: EXTENSION_BROKER_CAPABILITY.ACTIONS,
81
+ methods: [EXTENSION_BROKER_METHOD.SELECT_PROJECT],
82
+ },
83
+ {
84
+ capability: EXTENSION_BROKER_CAPABILITY.SETTINGS,
85
+ methods: [
86
+ EXTENSION_BROKER_METHOD.GET_SETTINGS,
87
+ EXTENSION_BROKER_METHOD.UPDATE_SETTINGS,
88
+ EXTENSION_BROKER_METHOD.GET_SETTING,
89
+ EXTENSION_BROKER_METHOD.UPDATE_SETTING,
90
+ ],
91
+ },
92
+ {
93
+ capability: EXTENSION_BROKER_CAPABILITY.DOCS,
94
+ methods: [EXTENSION_BROKER_METHOD.DISCOVER_DOCS, EXTENSION_BROKER_METHOD.RESOLVE_DOCS_TOPIC],
95
+ },
96
+ {
97
+ capability: EXTENSION_BROKER_CAPABILITY.RUNTIME,
98
+ methods: [
99
+ EXTENSION_BROKER_METHOD.REGISTER_CONTRIBUTION,
100
+ EXTENSION_BROKER_METHOD.UNREGISTER_CONTRIBUTION,
101
+ ],
102
+ },
103
+ ];
104
+ const EXTENSION_CONTRIBUTION_FAMILY = {
105
+ COMMANDS: 'commands',
106
+ SLASH_COMMANDS: 'slashCommands',
107
+ ROUTES: 'routes',
108
+ SETTINGS_SECTIONS: 'settingsSections',
109
+ SIDE_PANELS: 'sidePanels',
110
+ DIALOGS: 'dialogs',
111
+ TRANSCRIPT_RENDERERS: 'transcriptRenderers',
112
+ TOOL_RENDERERS: 'toolRenderers',
113
+ CUSTOM_MESSAGE_RENDERERS: 'customMessageRenderers',
114
+ INTERACTION_RENDERERS: 'interactionRenderers',
115
+ STATUS_WIDGETS: 'statusWidgets',
116
+ };
117
+ const EXTENSION_COMMAND_CONTRIBUTION_FAMILIES = Object.freeze([
118
+ EXTENSION_CONTRIBUTION_FAMILY.COMMANDS,
119
+ EXTENSION_CONTRIBUTION_FAMILY.SLASH_COMMANDS,
120
+ ]);
121
+ const EXTENSION_SLOT_CONTRIBUTION_FAMILIES = Object.freeze([
122
+ EXTENSION_CONTRIBUTION_FAMILY.SETTINGS_SECTIONS,
123
+ EXTENSION_CONTRIBUTION_FAMILY.SIDE_PANELS,
124
+ EXTENSION_CONTRIBUTION_FAMILY.DIALOGS,
125
+ EXTENSION_CONTRIBUTION_FAMILY.TRANSCRIPT_RENDERERS,
126
+ EXTENSION_CONTRIBUTION_FAMILY.TOOL_RENDERERS,
127
+ EXTENSION_CONTRIBUTION_FAMILY.CUSTOM_MESSAGE_RENDERERS,
128
+ EXTENSION_CONTRIBUTION_FAMILY.INTERACTION_RENDERERS,
129
+ EXTENSION_CONTRIBUTION_FAMILY.STATUS_WIDGETS,
130
+ ]);
131
+ const EXTENSION_ENTRY_CONTRIBUTION_FAMILIES = Object.freeze([
132
+ EXTENSION_CONTRIBUTION_FAMILY.ROUTES,
133
+ ...EXTENSION_SLOT_CONTRIBUTION_FAMILIES,
134
+ ]);
135
+ const EXTENSION_CONTRIBUTION_FAMILIES = Object.freeze([
136
+ ...EXTENSION_COMMAND_CONTRIBUTION_FAMILIES,
137
+ ...EXTENSION_ENTRY_CONTRIBUTION_FAMILIES,
138
+ ]);
139
+ const EXTENSION_CONTRIBUTION_RUNTIME = {
140
+ FEDERATED_MODULE: 'federated-module',
141
+ TRUSTED_RENDERER: 'trusted-renderer',
142
+ };
143
+ const EXTENSION_EXECUTION_PLACEMENT = {
144
+ HOST_RENDERER: 'host-renderer',
145
+ FRAME: 'frame',
146
+ };
147
+ const EXTENSION_STORAGE_KIND = {
148
+ STATE: 'state',
149
+ CONFIG: 'config',
150
+ };
151
+ const EXTENSION_STORAGE_SCOPE = {
152
+ GLOBAL_KIND: 'global',
153
+ PROJECT_KIND: 'project',
154
+ GLOBAL_ID: 'global',
155
+ };
156
+ const EXTENSION_INSTALL_SOURCE = {
157
+ PREBUILT: 'prebuilt',
158
+ LOCAL_BUILD: 'local-build',
159
+ };
160
+ const EXTENSION_RUNTIME_REQUIREMENT_TYPE = {
161
+ BINARY: 'binary',
162
+ COMMAND: 'command',
163
+ };
164
+ const EXTENSION_NETWORK_ACCESS_MODE = {
165
+ BROKERED: 'brokered',
166
+ RESTRICTED: 'restricted',
167
+ DIRECT: 'direct',
168
+ };
169
+ exports.OPENWAGGLE_EXTENSION_BROKER = {
170
+ CAPABILITY: EXTENSION_BROKER_CAPABILITY,
171
+ CAPABILITIES: Object.freeze(Object.values(EXTENSION_BROKER_CAPABILITY)),
172
+ CAPABILITY_METHODS: EXTENSION_BROKER_CAPABILITY_METHODS,
173
+ METHOD: EXTENSION_BROKER_METHOD,
174
+ METHODS: Object.freeze(Object.values(EXTENSION_BROKER_METHOD)),
175
+ FAILURE_CODE: EXTENSION_BROKER_FAILURE_CODE,
176
+ FAILURE_CODES: Object.freeze(Object.values(EXTENSION_BROKER_FAILURE_CODE)),
177
+ OUTCOME: EXTENSION_BROKER_OUTCOME,
178
+ OUTCOMES: Object.freeze(Object.values(EXTENSION_BROKER_OUTCOME)),
179
+ STATE_SELECTOR: EXTENSION_BROKER_STATE_SELECTOR,
180
+ STATE_SELECTORS: Object.freeze(Object.values(EXTENSION_BROKER_STATE_SELECTOR)),
181
+ SETTING_KEY: EXTENSION_BROKER_SETTING_KEY,
182
+ SETTING_KEYS: Object.freeze(Object.values(EXTENSION_BROKER_SETTING_KEY)),
183
+ };
184
+ exports.OPENWAGGLE_EXTENSION = {
185
+ MANIFEST_FILE: 'openwaggle.extension.json',
186
+ SDK_VERSION: '0.1.0',
187
+ PROJECT_ROOT_SEGMENTS: ['.openwaggle', 'extensions'],
188
+ GLOBAL_EXTENSIONS_DIR: 'extensions',
189
+ SCOPE: {
190
+ GLOBAL_KIND: 'global',
191
+ PROJECT_KIND: 'project',
192
+ GLOBAL_ID: 'global',
193
+ },
194
+ LIMITS: {
195
+ ID_MAX_LENGTH: 96,
196
+ CONTRIBUTION_ID_MAX_LENGTH: 128,
197
+ NAME_MAX_LENGTH: 120,
198
+ DESCRIPTION_MAX_LENGTH: 2_000,
199
+ RELATIVE_PATH_MAX_LENGTH: 260,
200
+ NETWORK_ORIGIN_MAX_LENGTH: 300,
201
+ RUNTIME_REQUIREMENT_BINARY_MAX_LENGTH: 120,
202
+ BUILD_COMMAND_MAX_LENGTH: 500,
203
+ BUILD_LOG_MAX_LENGTH: 4_000,
204
+ BUILD_COMMAND_TIMEOUT_MS: TEN_MINUTES_MS,
205
+ },
206
+ PATTERNS: {
207
+ WINDOWS_ABSOLUTE_PATH: /^[A-Za-z]:[\\/]/,
208
+ ID: /^[a-z0-9][a-z0-9._-]*$/,
209
+ CONTRIBUTION_ID: /^[a-z0-9][a-z0-9._/-]*$/,
210
+ SEMVER_VERSION: /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,
211
+ },
212
+ PATH: {
213
+ NUL_CHARACTER: '\0',
214
+ POSIX_SEPARATOR: '/',
215
+ WINDOWS_SEPARATOR: '\\',
216
+ RELATIVE_PARENT_SEGMENT: '..',
217
+ CURRENT_DIRECTORY_SEGMENT: '.',
218
+ },
219
+ RUNTIME_MODULE_PROTOCOL: {
220
+ MODULE_CONTEXT_SEGMENT: '__context__',
221
+ },
222
+ CAPABILITY_SCOPES: ['app', 'project', 'session', 'branch'],
223
+ CONTRIBUTION_FAMILY: EXTENSION_CONTRIBUTION_FAMILY,
224
+ CONTRIBUTION_FAMILIES: EXTENSION_CONTRIBUTION_FAMILIES,
225
+ COMMAND_CONTRIBUTION_FAMILIES: EXTENSION_COMMAND_CONTRIBUTION_FAMILIES,
226
+ CONTRIBUTION_RUNTIME: EXTENSION_CONTRIBUTION_RUNTIME,
227
+ CONTRIBUTION_RUNTIMES: Object.freeze(Object.values(EXTENSION_CONTRIBUTION_RUNTIME)),
228
+ EXECUTION_PLACEMENT: EXTENSION_EXECUTION_PLACEMENT,
229
+ EXECUTION_PLACEMENTS: Object.freeze(Object.values(EXTENSION_EXECUTION_PLACEMENT)),
230
+ STORAGE: {
231
+ KIND: EXTENSION_STORAGE_KIND,
232
+ KINDS: Object.freeze(Object.values(EXTENSION_STORAGE_KIND)),
233
+ SCOPE: EXTENSION_STORAGE_SCOPE,
234
+ SCOPE_KINDS: Object.freeze([
235
+ EXTENSION_STORAGE_SCOPE.GLOBAL_KIND,
236
+ EXTENSION_STORAGE_SCOPE.PROJECT_KIND,
237
+ ]),
238
+ KEY_MAX_LENGTH: 160,
239
+ },
240
+ ENTRY_CONTRIBUTION_FAMILIES: EXTENSION_ENTRY_CONTRIBUTION_FAMILIES,
241
+ SLOT_CONTRIBUTION_FAMILIES: EXTENSION_SLOT_CONTRIBUTION_FAMILIES,
242
+ INSTALL_SOURCE: EXTENSION_INSTALL_SOURCE,
243
+ INSTALL_SOURCES: Object.freeze(Object.values(EXTENSION_INSTALL_SOURCE)),
244
+ RUNTIME_REQUIREMENT_TYPE: EXTENSION_RUNTIME_REQUIREMENT_TYPE,
245
+ RUNTIME_REQUIREMENT_TYPES: Object.freeze(Object.values(EXTENSION_RUNTIME_REQUIREMENT_TYPE)),
246
+ NETWORK_ACCESS_MODE: EXTENSION_NETWORK_ACCESS_MODE,
247
+ NETWORK_ACCESS_MODES: Object.freeze(Object.values(EXTENSION_NETWORK_ACCESS_MODE)),
248
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNoopExtensionSurfaceSdk = createNoopExtensionSurfaceSdk;
4
+ exports.createOpenWaggleExtensionSharedModules = createOpenWaggleExtensionSharedModules;
5
+ exports.createOpenWaggleExtensionSurfaceContext = createOpenWaggleExtensionSurfaceContext;
6
+ const constants_js_1 = require("./constants.js");
7
+ const theme_js_1 = require("./theme.js");
8
+ const ui_js_1 = require("./ui.js");
9
+ function createNoopExtensionSurfaceSdk() {
10
+ return {
11
+ sendAction: async () => undefined,
12
+ respondInteraction: async () => undefined,
13
+ };
14
+ }
15
+ function createOpenWaggleExtensionSharedModules(theme = (0, theme_js_1.createOpenWaggleExtensionTheme)()) {
16
+ return {
17
+ sdk: {
18
+ openWaggleVersion: constants_js_1.OPENWAGGLE_EXTENSION.SDK_VERSION,
19
+ },
20
+ theme: {
21
+ current: theme,
22
+ createTheme: theme_js_1.createOpenWaggleExtensionTheme,
23
+ cssVariableEntries: theme_js_1.extensionThemeCssVariableEntries,
24
+ },
25
+ ui: {
26
+ classNames: ui_js_1.OPENWAGGLE_EXTENSION_UI_CLASS_NAMES,
27
+ attributes: ui_js_1.OPENWAGGLE_EXTENSION_UI_ATTRIBUTES,
28
+ className: ui_js_1.openWaggleExtensionClassName,
29
+ createStylesheet: ui_js_1.createOpenWaggleExtensionUiStylesheet,
30
+ },
31
+ };
32
+ }
33
+ function createOpenWaggleExtensionSurfaceContext(input) {
34
+ return {
35
+ extension: {
36
+ id: input.entry.extensionId,
37
+ name: input.entry.extensionName,
38
+ version: input.entry.extensionVersion,
39
+ },
40
+ contribution: {
41
+ id: input.entry.contributionId,
42
+ title: input.entry.title,
43
+ family: input.entry.family,
44
+ },
45
+ surface: {
46
+ family: input.entry.family,
47
+ execution: input.entry.execution ?? '',
48
+ ...(input.surfacePayload !== undefined ? { payload: input.surfacePayload } : {}),
49
+ },
50
+ packagePath: input.entry.packagePath,
51
+ projectPaths: input.entry.projectPaths,
52
+ theme: input.theme ?? (0, theme_js_1.createOpenWaggleExtensionTheme)(),
53
+ };
54
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });