@portel/photon-core 1.4.0 → 2.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 (169) hide show
  1. package/README.md +123 -0
  2. package/dist/auto-ui.d.ts +103 -0
  3. package/dist/auto-ui.d.ts.map +1 -0
  4. package/dist/auto-ui.js +275 -0
  5. package/dist/auto-ui.js.map +1 -0
  6. package/dist/base.d.ts +9 -2
  7. package/dist/base.d.ts.map +1 -1
  8. package/dist/base.js +23 -10
  9. package/dist/base.js.map +1 -1
  10. package/dist/cli-ui-renderer.d.ts +31 -0
  11. package/dist/cli-ui-renderer.d.ts.map +1 -0
  12. package/dist/cli-ui-renderer.js +224 -0
  13. package/dist/cli-ui-renderer.js.map +1 -0
  14. package/dist/dependency-manager.d.ts.map +1 -1
  15. package/dist/dependency-manager.js +0 -1
  16. package/dist/dependency-manager.js.map +1 -1
  17. package/dist/design-system/index.d.ts +21 -0
  18. package/dist/design-system/index.d.ts.map +1 -0
  19. package/dist/design-system/index.js +27 -0
  20. package/dist/design-system/index.js.map +1 -0
  21. package/dist/design-system/tokens.d.ts +149 -0
  22. package/dist/design-system/tokens.d.ts.map +1 -0
  23. package/dist/design-system/tokens.js +413 -0
  24. package/dist/design-system/tokens.js.map +1 -0
  25. package/dist/design-system/transaction-ui.d.ts +70 -0
  26. package/dist/design-system/transaction-ui.d.ts.map +1 -0
  27. package/dist/design-system/transaction-ui.js +982 -0
  28. package/dist/design-system/transaction-ui.js.map +1 -0
  29. package/dist/generator.d.ts +58 -8
  30. package/dist/generator.d.ts.map +1 -1
  31. package/dist/generator.js +9 -4
  32. package/dist/generator.js.map +1 -1
  33. package/dist/index.d.ts +10 -7
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +48 -44
  36. package/dist/index.js.map +1 -1
  37. package/dist/io.d.ts +395 -0
  38. package/dist/io.d.ts.map +1 -0
  39. package/dist/io.js +304 -0
  40. package/dist/io.js.map +1 -0
  41. package/dist/path-resolver.d.ts.map +1 -1
  42. package/dist/path-resolver.js +2 -1
  43. package/dist/path-resolver.js.map +1 -1
  44. package/dist/rendering/components.d.ts +29 -0
  45. package/dist/rendering/components.d.ts.map +1 -0
  46. package/dist/rendering/components.js +773 -0
  47. package/dist/rendering/components.js.map +1 -0
  48. package/dist/rendering/field-analyzer.d.ts +48 -0
  49. package/dist/rendering/field-analyzer.d.ts.map +1 -0
  50. package/dist/rendering/field-analyzer.js +270 -0
  51. package/dist/rendering/field-analyzer.js.map +1 -0
  52. package/dist/rendering/field-renderers.d.ts +64 -0
  53. package/dist/rendering/field-renderers.d.ts.map +1 -0
  54. package/dist/rendering/field-renderers.js +317 -0
  55. package/dist/rendering/field-renderers.js.map +1 -0
  56. package/dist/rendering/index.d.ts +28 -0
  57. package/dist/rendering/index.d.ts.map +1 -0
  58. package/dist/rendering/index.js +60 -0
  59. package/dist/rendering/index.js.map +1 -0
  60. package/dist/rendering/layout-selector.d.ts +48 -0
  61. package/dist/rendering/layout-selector.d.ts.map +1 -0
  62. package/dist/rendering/layout-selector.js +347 -0
  63. package/dist/rendering/layout-selector.js.map +1 -0
  64. package/dist/rendering/template-engine.d.ts +41 -0
  65. package/dist/rendering/template-engine.d.ts.map +1 -0
  66. package/dist/rendering/template-engine.js +236 -0
  67. package/dist/rendering/template-engine.js.map +1 -0
  68. package/dist/schema-extractor.d.ts +30 -0
  69. package/dist/schema-extractor.d.ts.map +1 -1
  70. package/dist/schema-extractor.js +205 -12
  71. package/dist/schema-extractor.js.map +1 -1
  72. package/dist/stateful.d.ts +63 -0
  73. package/dist/stateful.d.ts.map +1 -1
  74. package/dist/stateful.js +222 -0
  75. package/dist/stateful.js.map +1 -1
  76. package/dist/types.d.ts +9 -1
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/types.js.map +1 -1
  79. package/dist/ucp/ap2/handlers.d.ts +242 -0
  80. package/dist/ucp/ap2/handlers.d.ts.map +1 -0
  81. package/dist/ucp/ap2/handlers.js +482 -0
  82. package/dist/ucp/ap2/handlers.js.map +1 -0
  83. package/dist/ucp/ap2/mandates.d.ts +95 -0
  84. package/dist/ucp/ap2/mandates.d.ts.map +1 -0
  85. package/dist/ucp/ap2/mandates.js +234 -0
  86. package/dist/ucp/ap2/mandates.js.map +1 -0
  87. package/dist/ucp/ap2/types.d.ts +305 -0
  88. package/dist/ucp/ap2/types.d.ts.map +1 -0
  89. package/dist/ucp/ap2/types.js +8 -0
  90. package/dist/ucp/ap2/types.js.map +1 -0
  91. package/dist/ucp/capabilities/checkout.d.ts +118 -0
  92. package/dist/ucp/capabilities/checkout.d.ts.map +1 -0
  93. package/dist/ucp/capabilities/checkout.js +344 -0
  94. package/dist/ucp/capabilities/checkout.js.map +1 -0
  95. package/dist/ucp/capabilities/identity.d.ts +130 -0
  96. package/dist/ucp/capabilities/identity.d.ts.map +1 -0
  97. package/dist/ucp/capabilities/identity.js +290 -0
  98. package/dist/ucp/capabilities/identity.js.map +1 -0
  99. package/dist/ucp/capabilities/order.d.ts +142 -0
  100. package/dist/ucp/capabilities/order.d.ts.map +1 -0
  101. package/dist/ucp/capabilities/order.js +383 -0
  102. package/dist/ucp/capabilities/order.js.map +1 -0
  103. package/dist/ucp/index.d.ts +18 -0
  104. package/dist/ucp/index.d.ts.map +1 -0
  105. package/dist/ucp/index.js +19 -0
  106. package/dist/ucp/index.js.map +1 -0
  107. package/dist/ucp/manifest.d.ts +62 -0
  108. package/dist/ucp/manifest.d.ts.map +1 -0
  109. package/dist/ucp/manifest.js +180 -0
  110. package/dist/ucp/manifest.js.map +1 -0
  111. package/dist/ucp/types.d.ts +327 -0
  112. package/dist/ucp/types.d.ts.map +1 -0
  113. package/dist/ucp/types.js +8 -0
  114. package/dist/ucp/types.js.map +1 -0
  115. package/package.json +3 -4
  116. package/src/auto-ui.ts +413 -0
  117. package/src/base.ts +22 -9
  118. package/src/cli-ui-renderer.ts +264 -0
  119. package/src/dependency-manager.ts +0 -1
  120. package/src/design-system/index.ts +30 -0
  121. package/src/design-system/tokens.ts +451 -0
  122. package/src/design-system/transaction-ui.ts +1038 -0
  123. package/src/generator.ts +68 -8
  124. package/src/index.ts +159 -101
  125. package/src/io.ts +493 -0
  126. package/src/path-resolver.ts +2 -1
  127. package/src/rendering/components.ts +785 -0
  128. package/src/rendering/field-analyzer.ts +299 -0
  129. package/src/rendering/field-renderers.ts +356 -0
  130. package/src/rendering/index.ts +63 -0
  131. package/src/rendering/layout-selector.ts +390 -0
  132. package/src/rendering/template-engine.ts +254 -0
  133. package/src/schema-extractor.ts +225 -12
  134. package/src/stateful.ts +301 -0
  135. package/src/types.ts +10 -1
  136. package/src/ucp/ap2/handlers.ts +779 -0
  137. package/src/ucp/ap2/mandates.ts +354 -0
  138. package/src/ucp/ap2/types.ts +441 -0
  139. package/src/ucp/capabilities/checkout.ts +497 -0
  140. package/src/ucp/capabilities/identity.ts +425 -0
  141. package/src/ucp/capabilities/order.ts +549 -0
  142. package/src/ucp/index.ts +27 -0
  143. package/src/ucp/manifest.ts +257 -0
  144. package/src/ucp/types.ts +454 -0
  145. package/dist/cli-formatter.d.ts +0 -92
  146. package/dist/cli-formatter.d.ts.map +0 -1
  147. package/dist/cli-formatter.js +0 -486
  148. package/dist/cli-formatter.js.map +0 -1
  149. package/dist/elicit.d.ts +0 -93
  150. package/dist/elicit.d.ts.map +0 -1
  151. package/dist/elicit.js +0 -373
  152. package/dist/elicit.js.map +0 -1
  153. package/dist/mcp-client.d.ts +0 -218
  154. package/dist/mcp-client.d.ts.map +0 -1
  155. package/dist/mcp-client.js +0 -424
  156. package/dist/mcp-client.js.map +0 -1
  157. package/dist/mcp-sdk-transport.d.ts +0 -88
  158. package/dist/mcp-sdk-transport.d.ts.map +0 -1
  159. package/dist/mcp-sdk-transport.js +0 -360
  160. package/dist/mcp-sdk-transport.js.map +0 -1
  161. package/dist/photon-config.d.ts +0 -86
  162. package/dist/photon-config.d.ts.map +0 -1
  163. package/dist/photon-config.js +0 -156
  164. package/dist/photon-config.js.map +0 -1
  165. package/src/cli-formatter.ts +0 -579
  166. package/src/elicit.ts +0 -438
  167. package/src/mcp-client.ts +0 -561
  168. package/src/mcp-sdk-transport.ts +0 -449
  169. package/src/photon-config.ts +0 -201
@@ -0,0 +1,180 @@
1
+ /**
2
+ * UCP Manifest Generator
3
+ *
4
+ * Auto-generates /.well-known/ucp manifest from Photon class metadata.
5
+ */
6
+ /**
7
+ * Generate UCP manifest from parameters
8
+ */
9
+ export function generateUCPManifest(params) {
10
+ const { merchantId, merchantName, merchantLogo, supportUrl, capabilities, paymentHandlers = ['stripe'], supportedCurrencies = ['USD'], supportedCountries = ['US'], baseUrl = '', mcpServerName } = params;
11
+ const capabilityConfigs = {
12
+ checkout: {
13
+ supported: capabilities.includes('checkout'),
14
+ endpoint: capabilities.includes('checkout') ? `${baseUrl}/ucp/checkout` : undefined,
15
+ webhooks: false
16
+ },
17
+ identity: {
18
+ supported: capabilities.includes('identity'),
19
+ endpoint: capabilities.includes('identity') ? `${baseUrl}/ucp/identity` : undefined
20
+ },
21
+ order: {
22
+ supported: capabilities.includes('order'),
23
+ endpoint: capabilities.includes('order') ? `${baseUrl}/ucp/order` : undefined,
24
+ webhooks: capabilities.includes('order')
25
+ },
26
+ payment_token_exchange: {
27
+ supported: capabilities.includes('payment_token_exchange'),
28
+ endpoint: capabilities.includes('payment_token_exchange')
29
+ ? `${baseUrl}/ucp/payment-token`
30
+ : undefined
31
+ }
32
+ };
33
+ const manifest = {
34
+ ucp_version: '1.0',
35
+ merchant: {
36
+ id: merchantId,
37
+ name: merchantName,
38
+ logo: merchantLogo,
39
+ supportUrl
40
+ },
41
+ capabilities: capabilityConfigs,
42
+ payment_handlers: paymentHandlers,
43
+ supported_currencies: supportedCurrencies,
44
+ supported_countries: supportedCountries
45
+ };
46
+ // Add OAuth config if identity capability is enabled
47
+ if (capabilities.includes('identity')) {
48
+ manifest.oauth = {
49
+ authorizationEndpoint: `${baseUrl}/oauth/authorize`,
50
+ tokenEndpoint: `${baseUrl}/oauth/token`,
51
+ revocationEndpoint: `${baseUrl}/oauth/revoke`,
52
+ scopes: ['checkout.read', 'checkout.write', 'order.read', 'order.write']
53
+ };
54
+ }
55
+ // Add MCP config if server name provided
56
+ if (mcpServerName) {
57
+ manifest.mcp = {
58
+ server_name: mcpServerName,
59
+ tools_prefix: 'ucp'
60
+ };
61
+ }
62
+ return manifest;
63
+ }
64
+ // ============================================================================
65
+ // JSDoc Annotation Parsing
66
+ // ============================================================================
67
+ /**
68
+ * Parse UCP metadata from JSDoc annotations
69
+ *
70
+ * Supports:
71
+ * - @ucp - Enable UCP for class
72
+ * - @capability checkout|identity|order|payment_token_exchange
73
+ * - @ucp.merchant.id <id>
74
+ * - @ucp.merchant.name <name>
75
+ * - @ucp.operation <capability>.<operation>
76
+ */
77
+ export function parseUCPAnnotations(jsdoc) {
78
+ // Check if @ucp is present
79
+ if (!/@ucp\b/.test(jsdoc)) {
80
+ return null;
81
+ }
82
+ const capabilities = [];
83
+ // Parse @capability annotations
84
+ const capabilityMatches = jsdoc.matchAll(/@capability\s+(checkout|identity|order|payment_token_exchange)/g);
85
+ for (const match of capabilityMatches) {
86
+ capabilities.push(match[1]);
87
+ }
88
+ // Parse merchant info
89
+ const merchantIdMatch = jsdoc.match(/@ucp\.merchant\.id\s+(\S+)/);
90
+ const merchantNameMatch = jsdoc.match(/@ucp\.merchant\.name\s+(.+?)(?:\n|$)/);
91
+ return {
92
+ enabled: true,
93
+ capabilities,
94
+ merchantId: merchantIdMatch?.[1],
95
+ merchantName: merchantNameMatch?.[1]?.trim()
96
+ };
97
+ }
98
+ /**
99
+ * Parse UCP operation from method JSDoc
100
+ */
101
+ export function parseUCPMethodAnnotation(jsdoc) {
102
+ const match = jsdoc.match(/@ucp\.operation\s+(checkout|identity|order|payment_token_exchange)\.(\w+)/);
103
+ if (!match)
104
+ return null;
105
+ return {
106
+ capability: match[1],
107
+ operation: match[2]
108
+ };
109
+ }
110
+ /**
111
+ * Extract UCP manifest from class schema
112
+ */
113
+ export function extractManifestFromSchema(params) {
114
+ const { className, classJsdoc, methods, baseUrl } = params;
115
+ const ucpMeta = parseUCPAnnotations(classJsdoc);
116
+ if (!ucpMeta)
117
+ return null;
118
+ // Auto-detect capabilities from method annotations if not explicitly declared
119
+ const detectedCapabilities = new Set(ucpMeta.capabilities);
120
+ for (const method of methods) {
121
+ const methodMeta = parseUCPMethodAnnotation(method.jsdoc);
122
+ if (methodMeta) {
123
+ detectedCapabilities.add(methodMeta.capability);
124
+ }
125
+ }
126
+ // Also detect from method names
127
+ const methodNames = methods.map(m => m.name.toLowerCase());
128
+ if (methodNames.some(n => n.includes('checkout') || n.includes('cart'))) {
129
+ detectedCapabilities.add('checkout');
130
+ }
131
+ if (methodNames.some(n => n.includes('order') || n.includes('shipment') || n.includes('return'))) {
132
+ detectedCapabilities.add('order');
133
+ }
134
+ if (methodNames.some(n => n.includes('oauth') || n.includes('authorize') || n.includes('identity'))) {
135
+ detectedCapabilities.add('identity');
136
+ }
137
+ return generateUCPManifest({
138
+ merchantId: ucpMeta.merchantId || className.toLowerCase().replace(/[^a-z0-9]/g, '-'),
139
+ merchantName: ucpMeta.merchantName || className,
140
+ capabilities: Array.from(detectedCapabilities),
141
+ baseUrl,
142
+ mcpServerName: className
143
+ });
144
+ }
145
+ // ============================================================================
146
+ // Well-Known Response
147
+ // ============================================================================
148
+ /**
149
+ * Generate the /.well-known/ucp response
150
+ */
151
+ export function generateWellKnownResponse(manifest) {
152
+ return JSON.stringify(manifest, null, 2);
153
+ }
154
+ /**
155
+ * Validate UCP manifest
156
+ */
157
+ export function validateManifest(manifest) {
158
+ const errors = [];
159
+ if (!manifest.ucp_version) {
160
+ errors.push('Missing ucp_version');
161
+ }
162
+ if (!manifest.merchant?.id) {
163
+ errors.push('Missing merchant.id');
164
+ }
165
+ if (!manifest.merchant?.name) {
166
+ errors.push('Missing merchant.name');
167
+ }
168
+ const hasAnyCapability = Object.values(manifest.capabilities).some(c => c.supported);
169
+ if (!hasAnyCapability) {
170
+ errors.push('At least one capability must be supported');
171
+ }
172
+ if (manifest.payment_handlers.length === 0) {
173
+ errors.push('At least one payment handler must be specified');
174
+ }
175
+ return {
176
+ valid: errors.length === 0,
177
+ errors
178
+ };
179
+ }
180
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/ucp/manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA8B;IAChE,MAAM,EACJ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,GAAG,CAAC,QAAQ,CAAC,EAC5B,mBAAmB,GAAG,CAAC,KAAK,CAAC,EAC7B,kBAAkB,GAAG,CAAC,IAAI,CAAC,EAC3B,OAAO,GAAG,EAAE,EACZ,aAAa,EACd,GAAG,MAAM,CAAC;IAEX,MAAM,iBAAiB,GAA+C;QACpE,QAAQ,EAAE;YACR,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,eAAe,CAAC,CAAC,CAAC,SAAS;YACnF,QAAQ,EAAE,KAAK;SAChB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,eAAe,CAAC,CAAC,CAAC,SAAS;SACpF;QACD,KAAK,EAAE;YACL,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS;YAC7E,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;SACzC;QACD,sBAAsB,EAAE;YACtB,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC1D,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBACvD,CAAC,CAAC,GAAG,OAAO,oBAAoB;gBAChC,CAAC,CAAC,SAAS;SACd;KACF,CAAC;IAEF,MAAM,QAAQ,GAAgB;QAC5B,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;YAClB,UAAU;SACX;QACD,YAAY,EAAE,iBAAiB;QAC/B,gBAAgB,EAAE,eAAe;QACjC,oBAAoB,EAAE,mBAAmB;QACzC,mBAAmB,EAAE,kBAAkB;KACxC,CAAC;IAEF,qDAAqD;IACrD,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,GAAG;YACf,qBAAqB,EAAE,GAAG,OAAO,kBAAkB;YACnD,aAAa,EAAE,GAAG,OAAO,cAAc;YACvC,kBAAkB,EAAE,GAAG,OAAO,eAAe;YAC7C,MAAM,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,CAAC;SACzE,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,aAAa,EAAE,CAAC;QAClB,QAAQ,CAAC,GAAG,GAAG;YACb,WAAW,EAAE,aAAa;YAC1B,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,2BAA2B;IAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAoB,EAAE,CAAC;IAEzC,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,iEAAiE,CAAC,CAAC;IAC5G,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB;IACtB,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE9E,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY;QACZ,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAChC,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;KAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACvG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,CAAC,CAAkB;QACrC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA6B;IACrE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,8EAA8E;IAC9E,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAE3D,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACxE,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACjG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,mBAAmB,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;QACpF,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS;QAC/C,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC9C,OAAO;QACP,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAqB;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAqB;IACpD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Universal Commerce Protocol (UCP) Type Definitions
3
+ *
4
+ * Based on UCP specification from https://ucp.dev/
5
+ * Compatible with MCP transport for Photon integration.
6
+ */
7
+ export interface Money {
8
+ amount: number;
9
+ currency: string;
10
+ }
11
+ export interface Address {
12
+ name?: string;
13
+ organization?: string;
14
+ addressLine1: string;
15
+ addressLine2?: string;
16
+ city: string;
17
+ region?: string;
18
+ postalCode: string;
19
+ country: string;
20
+ phone?: string;
21
+ }
22
+ export interface BuyerInfo {
23
+ email: string;
24
+ name?: string;
25
+ phone?: string;
26
+ billingAddress?: Address;
27
+ }
28
+ export type CheckoutSessionStatus = 'open' | 'ready_for_complete' | 'processing' | 'completed' | 'expired' | 'cancelled';
29
+ export interface LineItem {
30
+ id: string;
31
+ sku?: string;
32
+ label: string;
33
+ description?: string;
34
+ quantity: number;
35
+ unitPrice: Money;
36
+ totalPrice: Money;
37
+ productUrl?: string;
38
+ imageUrl?: string;
39
+ metadata?: Record<string, any>;
40
+ }
41
+ export interface DiscountAllocation {
42
+ code: string;
43
+ label: string;
44
+ type: 'percentage' | 'fixed' | 'free_shipping';
45
+ value: number;
46
+ appliedAmount: Money;
47
+ lineItemAllocations?: {
48
+ lineItemId: string;
49
+ amount: Money;
50
+ }[];
51
+ }
52
+ export interface TaxLine {
53
+ label: string;
54
+ rate: number;
55
+ amount: Money;
56
+ }
57
+ export interface Totals {
58
+ subtotal: Money;
59
+ discounts: Money;
60
+ shipping: Money;
61
+ tax: Money;
62
+ total: Money;
63
+ taxLines?: TaxLine[];
64
+ }
65
+ export interface FulfillmentOption {
66
+ id: string;
67
+ label: string;
68
+ description?: string;
69
+ carrier?: string;
70
+ estimatedDelivery?: string;
71
+ price: Money;
72
+ }
73
+ export interface FulfillmentDestination {
74
+ type: 'shipping' | 'pickup' | 'digital';
75
+ address?: Address;
76
+ pickupLocation?: {
77
+ id: string;
78
+ name: string;
79
+ address: Address;
80
+ };
81
+ }
82
+ export interface PaymentMethodInfo {
83
+ id: string;
84
+ type: 'card' | 'bank_transfer' | 'wallet' | 'crypto' | 'other';
85
+ label: string;
86
+ icon?: string;
87
+ lastFour?: string;
88
+ expiryMonth?: number;
89
+ expiryYear?: number;
90
+ }
91
+ export interface CheckoutSession {
92
+ id: string;
93
+ merchantId: string;
94
+ status: CheckoutSessionStatus;
95
+ createdAt: string;
96
+ updatedAt: string;
97
+ expiresAt: string;
98
+ buyer?: BuyerInfo;
99
+ lineItems: LineItem[];
100
+ discounts: DiscountAllocation[];
101
+ fulfillmentOptions: FulfillmentOption[];
102
+ selectedFulfillment?: {
103
+ optionId: string;
104
+ destination: FulfillmentDestination;
105
+ };
106
+ availablePaymentMethods: PaymentMethodInfo[];
107
+ selectedPaymentMethod?: PaymentMethodInfo;
108
+ totals: Totals;
109
+ metadata?: Record<string, any>;
110
+ }
111
+ export type OrderStatus = 'pending' | 'confirmed' | 'processing' | 'shipped' | 'delivered' | 'cancelled' | 'refunded';
112
+ export type ShipmentStatus = 'label_created' | 'picked_up' | 'in_transit' | 'out_for_delivery' | 'delivered' | 'failed_delivery' | 'returned';
113
+ export interface TrackingEvent {
114
+ timestamp: string;
115
+ status: ShipmentStatus;
116
+ location?: string;
117
+ description: string;
118
+ }
119
+ export interface Shipment {
120
+ id: string;
121
+ carrier: string;
122
+ trackingNumber: string;
123
+ trackingUrl?: string;
124
+ status: ShipmentStatus;
125
+ estimatedDelivery?: string;
126
+ events: TrackingEvent[];
127
+ lineItemIds: string[];
128
+ }
129
+ export interface FulfillmentExpectation {
130
+ id: string;
131
+ type: 'shipping' | 'pickup' | 'digital';
132
+ description: string;
133
+ estimatedDate?: string;
134
+ lineItemIds: string[];
135
+ }
136
+ export interface Adjustment {
137
+ id: string;
138
+ type: 'refund' | 'partial_refund' | 'price_adjustment' | 'return';
139
+ amount: Money;
140
+ reason: string;
141
+ createdAt: string;
142
+ lineItemIds?: string[];
143
+ }
144
+ export interface ReturnRequest {
145
+ id: string;
146
+ status: 'requested' | 'approved' | 'rejected' | 'received' | 'refunded';
147
+ items: {
148
+ lineItemId: string;
149
+ quantity: number;
150
+ reason: string;
151
+ }[];
152
+ createdAt: string;
153
+ updatedAt: string;
154
+ refundAmount?: Money;
155
+ returnLabel?: {
156
+ carrier: string;
157
+ trackingNumber: string;
158
+ labelUrl: string;
159
+ };
160
+ }
161
+ export interface Order {
162
+ id: string;
163
+ checkoutSessionId: string;
164
+ merchantId: string;
165
+ status: OrderStatus;
166
+ createdAt: string;
167
+ updatedAt: string;
168
+ buyer: BuyerInfo;
169
+ lineItems: LineItem[];
170
+ fulfillmentExpectations: FulfillmentExpectation[];
171
+ shipments: Shipment[];
172
+ paymentMethod: PaymentMethodInfo;
173
+ paymentStatus: 'pending' | 'authorized' | 'captured' | 'refunded' | 'failed';
174
+ totals: Totals;
175
+ adjustments: Adjustment[];
176
+ returns: ReturnRequest[];
177
+ metadata?: Record<string, any>;
178
+ }
179
+ export interface OAuthConfig {
180
+ authorizationEndpoint: string;
181
+ tokenEndpoint: string;
182
+ revocationEndpoint?: string;
183
+ scopes: string[];
184
+ }
185
+ export interface TokenResponse {
186
+ accessToken: string;
187
+ tokenType: string;
188
+ expiresIn: number;
189
+ refreshToken?: string;
190
+ scope: string;
191
+ }
192
+ export interface IdentityLink {
193
+ id: string;
194
+ agentId: string;
195
+ userId: string;
196
+ scopes: string[];
197
+ createdAt: string;
198
+ expiresAt?: string;
199
+ }
200
+ export type WebhookEventType = 'checkout.created' | 'checkout.updated' | 'checkout.completed' | 'order.created' | 'order.updated' | 'order.cancelled' | 'shipment.created' | 'shipment.updated' | 'delivery.completed' | 'return.requested' | 'return.approved' | 'refund.created';
201
+ export interface WebhookRegistration {
202
+ id: string;
203
+ url: string;
204
+ events: WebhookEventType[];
205
+ secret: string;
206
+ active: boolean;
207
+ createdAt: string;
208
+ }
209
+ export interface WebhookPayload {
210
+ id: string;
211
+ type: WebhookEventType;
212
+ timestamp: string;
213
+ data: any;
214
+ }
215
+ export type UCPCapability = 'checkout' | 'identity' | 'order' | 'payment_token_exchange';
216
+ export interface UCPCapabilityConfig {
217
+ supported: boolean;
218
+ endpoint?: string;
219
+ webhooks?: boolean;
220
+ extensions?: string[];
221
+ }
222
+ export interface UCPManifest {
223
+ ucp_version: string;
224
+ merchant: {
225
+ id: string;
226
+ name: string;
227
+ logo?: string;
228
+ supportUrl?: string;
229
+ };
230
+ capabilities: Record<UCPCapability, UCPCapabilityConfig>;
231
+ payment_handlers: string[];
232
+ supported_currencies: string[];
233
+ supported_countries: string[];
234
+ oauth?: OAuthConfig;
235
+ mcp?: {
236
+ server_name: string;
237
+ tools_prefix?: string;
238
+ };
239
+ }
240
+ export interface CheckoutCapability {
241
+ createSession(params: {
242
+ currency?: string;
243
+ locale?: string;
244
+ metadata?: Record<string, any>;
245
+ }): Promise<CheckoutSession>;
246
+ getSession(sessionId: string): Promise<CheckoutSession>;
247
+ updateCart(sessionId: string, updates: {
248
+ add?: Omit<LineItem, 'id' | 'totalPrice'>[];
249
+ remove?: string[];
250
+ update?: {
251
+ id: string;
252
+ quantity: number;
253
+ }[];
254
+ }): Promise<CheckoutSession>;
255
+ setBuyer(sessionId: string, buyer: BuyerInfo): Promise<CheckoutSession>;
256
+ setFulfillment(sessionId: string, params: {
257
+ optionId: string;
258
+ destination: FulfillmentDestination;
259
+ }): Promise<CheckoutSession>;
260
+ applyDiscount(sessionId: string, code: string): Promise<{
261
+ success: boolean;
262
+ session: CheckoutSession;
263
+ error?: string;
264
+ }>;
265
+ removeDiscount(sessionId: string, code: string): Promise<CheckoutSession>;
266
+ complete(sessionId: string, payment: {
267
+ methodId?: string;
268
+ mandate?: any;
269
+ }): Promise<Order>;
270
+ }
271
+ export interface IdentityCapability {
272
+ getOAuthConfig(): Promise<OAuthConfig>;
273
+ requestAuthorization(params: {
274
+ agentId: string;
275
+ scopes: string[];
276
+ redirectUri: string;
277
+ state?: string;
278
+ }): Promise<{
279
+ authorizationUrl: string;
280
+ }>;
281
+ exchangeCode(params: {
282
+ code: string;
283
+ redirectUri: string;
284
+ }): Promise<TokenResponse>;
285
+ refreshToken(refreshToken: string): Promise<TokenResponse>;
286
+ revokeToken(token: string): Promise<void>;
287
+ getIdentityLink(agentId: string): Promise<IdentityLink | null>;
288
+ }
289
+ export interface OrderCapability {
290
+ getOrder(orderId: string): Promise<Order>;
291
+ listOrders(params?: {
292
+ status?: OrderStatus[];
293
+ limit?: number;
294
+ cursor?: string;
295
+ }): Promise<{
296
+ orders: Order[];
297
+ nextCursor?: string;
298
+ }>;
299
+ cancelOrder(orderId: string, reason?: string): Promise<Order>;
300
+ trackShipment(orderId: string, shipmentId?: string): Promise<Shipment[]>;
301
+ initiateReturn(orderId: string, params: {
302
+ items: {
303
+ lineItemId: string;
304
+ quantity: number;
305
+ reason: string;
306
+ }[];
307
+ }): Promise<ReturnRequest>;
308
+ getReturn(orderId: string, returnId: string): Promise<ReturnRequest>;
309
+ registerWebhook(params: {
310
+ url: string;
311
+ events: WebhookEventType[];
312
+ secret: string;
313
+ }): Promise<WebhookRegistration>;
314
+ listWebhooks(): Promise<WebhookRegistration[]>;
315
+ deleteWebhook(webhookId: string): Promise<void>;
316
+ }
317
+ export interface UCPMetadata {
318
+ enabled: boolean;
319
+ capabilities: UCPCapability[];
320
+ merchantId?: string;
321
+ merchantName?: string;
322
+ }
323
+ export interface UCPMethodMetadata {
324
+ capability: UCPCapability;
325
+ operation: string;
326
+ }
327
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ucp/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Universal Commerce Protocol (UCP) Type Definitions
3
+ *
4
+ * Based on UCP specification from https://ucp.dev/
5
+ * Compatible with MCP transport for Photon integration.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ucp/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portel/photon-core",
3
- "version": "1.4.0",
3
+ "version": "2.1.0",
4
4
  "description": "Core library for parsing, loading, and managing .photon.ts files - runtime-agnostic foundation for building custom Photon runtimes",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -49,9 +49,8 @@
49
49
  },
50
50
  "homepage": "https://github.com/portel-dev/photon-core#readme",
51
51
  "dependencies": {
52
- "@modelcontextprotocol/sdk": "^1.25.1",
53
- "chalk": "^5.6.2",
54
- "cli-highlight": "^2.1.11",
52
+ "@portel/cli": "^1.0.0",
53
+ "@portel/mcp": "^1.0.0",
55
54
  "typescript": "^5.7.2"
56
55
  },
57
56
  "devDependencies": {