@alisaitteke/photoshop-mcp 1.7.30 → 1.7.32

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 (109) hide show
  1. package/AGENTS.md +5 -3
  2. package/README.md +2 -2
  3. package/dist/analytics/events.d.ts.map +1 -1
  4. package/dist/analytics/events.js +5 -1
  5. package/dist/analytics/events.js.map +1 -1
  6. package/dist/analytics/index.d.ts.map +1 -1
  7. package/dist/analytics/index.js +4 -0
  8. package/dist/analytics/index.js.map +1 -1
  9. package/dist/analytics/runtime-env.d.ts +7 -0
  10. package/dist/analytics/runtime-env.d.ts.map +1 -1
  11. package/dist/analytics/runtime-env.js +38 -1
  12. package/dist/analytics/runtime-env.js.map +1 -1
  13. package/dist/analytics/rybbit-node.d.ts.map +1 -1
  14. package/dist/analytics/rybbit-node.js +16 -8
  15. package/dist/analytics/rybbit-node.js.map +1 -1
  16. package/dist/api/extendscript.d.ts +5 -0
  17. package/dist/api/extendscript.d.ts.map +1 -1
  18. package/dist/api/extendscript.js +185 -1
  19. package/dist/api/extendscript.js.map +1 -1
  20. package/dist/apps/preview-frames.d.ts +21 -0
  21. package/dist/apps/preview-frames.d.ts.map +1 -0
  22. package/dist/apps/preview-frames.js +62 -0
  23. package/dist/apps/preview-frames.js.map +1 -0
  24. package/dist/apps/preview-html.d.ts +2 -0
  25. package/dist/apps/preview-html.d.ts.map +1 -0
  26. package/dist/apps/preview-html.js +3 -0
  27. package/dist/apps/preview-html.js.map +1 -0
  28. package/dist/apps/preview-resources.d.ts +12 -0
  29. package/dist/apps/preview-resources.d.ts.map +1 -0
  30. package/dist/apps/preview-resources.js +46 -0
  31. package/dist/apps/preview-resources.js.map +1 -0
  32. package/dist/apps/preview-result.d.ts +16 -0
  33. package/dist/apps/preview-result.d.ts.map +1 -0
  34. package/dist/apps/preview-result.js +83 -0
  35. package/dist/apps/preview-result.js.map +1 -0
  36. package/dist/core/document-target.d.ts +1 -1
  37. package/dist/core/document-target.d.ts.map +1 -1
  38. package/dist/core/document-target.js +8 -3
  39. package/dist/core/document-target.js.map +1 -1
  40. package/dist/core/server.d.ts.map +1 -1
  41. package/dist/core/server.js +15 -52
  42. package/dist/core/server.js.map +1 -1
  43. package/dist/core/tool-annotations.d.ts.map +1 -1
  44. package/dist/core/tool-annotations.js +1 -0
  45. package/dist/core/tool-annotations.js.map +1 -1
  46. package/dist/prompts/instructions.d.ts.map +1 -1
  47. package/dist/prompts/instructions.js +6 -104
  48. package/dist/prompts/instructions.js.map +1 -1
  49. package/dist/tools/action-tools.d.ts.map +1 -1
  50. package/dist/tools/action-tools.js +2 -1
  51. package/dist/tools/action-tools.js.map +1 -1
  52. package/dist/tools/document-tools.d.ts.map +1 -1
  53. package/dist/tools/document-tools.js +24 -7
  54. package/dist/tools/document-tools.js.map +1 -1
  55. package/dist/tools/history-tools.d.ts.map +1 -1
  56. package/dist/tools/history-tools.js +7 -1
  57. package/dist/tools/history-tools.js.map +1 -1
  58. package/dist/tools/layer-tools.d.ts.map +1 -1
  59. package/dist/tools/layer-tools.js +97 -2
  60. package/dist/tools/layer-tools.js.map +1 -1
  61. package/dist/tools/layer-transform-tools.d.ts.map +1 -1
  62. package/dist/tools/layer-transform-tools.js +2 -1
  63. package/dist/tools/layer-transform-tools.js.map +1 -1
  64. package/dist/tools/recipes/export-social-variants.js +1 -1
  65. package/dist/tools/recipes/export-social-variants.js.map +1 -1
  66. package/dist/tools/session-tools.d.ts +12 -0
  67. package/dist/tools/session-tools.d.ts.map +1 -0
  68. package/dist/tools/session-tools.js +61 -0
  69. package/dist/tools/session-tools.js.map +1 -0
  70. package/dist/tools/state-tools.d.ts.map +1 -1
  71. package/dist/tools/state-tools.js +13 -23
  72. package/dist/tools/state-tools.js.map +1 -1
  73. package/dist/ui/agent/action-plan.d.ts +25 -0
  74. package/dist/ui/agent/action-plan.d.ts.map +1 -1
  75. package/dist/ui/agent/action-plan.js +118 -10
  76. package/dist/ui/agent/action-plan.js.map +1 -1
  77. package/dist/ui/agent/api-key.js +1 -1
  78. package/dist/ui/agent/api-key.js.map +1 -1
  79. package/dist/ui/agent/plan-schema.d.ts +4 -4
  80. package/dist/ui/agent/plan-schema.d.ts.map +1 -1
  81. package/dist/ui/agent/plan-schema.js +43 -6
  82. package/dist/ui/agent/plan-schema.js.map +1 -1
  83. package/dist/ui/agent/planner-submit.d.ts +3 -3
  84. package/dist/ui/agent/planner-submit.d.ts.map +1 -1
  85. package/dist/ui/agent/planner-submit.js +6 -3
  86. package/dist/ui/agent/planner-submit.js.map +1 -1
  87. package/dist/ui/agent/shared.d.ts +7 -0
  88. package/dist/ui/agent/shared.d.ts.map +1 -1
  89. package/dist/ui/agent/shared.js +7 -0
  90. package/dist/ui/agent/shared.js.map +1 -1
  91. package/dist/ui/intent/catalog.d.ts +18 -26
  92. package/dist/ui/intent/catalog.d.ts.map +1 -1
  93. package/dist/ui/intent/catalog.js +151 -380
  94. package/dist/ui/intent/catalog.js.map +1 -1
  95. package/dist/ui/intent/router.d.ts +4 -3
  96. package/dist/ui/intent/router.d.ts.map +1 -1
  97. package/dist/ui/intent/router.js +31 -5
  98. package/dist/ui/intent/router.js.map +1 -1
  99. package/dist/ui/intent/tool-surface.d.ts +16 -0
  100. package/dist/ui/intent/tool-surface.d.ts.map +1 -0
  101. package/dist/ui/intent/tool-surface.js +74 -0
  102. package/dist/ui/intent/tool-surface.js.map +1 -0
  103. package/dist/ui/server.d.ts.map +1 -1
  104. package/dist/ui/server.js +1 -0
  105. package/dist/ui/server.js.map +1 -1
  106. package/package.json +4 -3
  107. package/web/dist/assets/index-D8j0GaOT.js +289 -0
  108. package/web/dist/index.html +1 -1
  109. package/web/dist/assets/index-DHJOEezS.js +0 -289
package/AGENTS.md CHANGED
@@ -9,13 +9,13 @@
9
9
  | -------- | ---- |
10
10
  | Cursor | Install the `photoshop-mcp` plugin (Customize → Plugins / Marketplace) so the Photoshop logo appears in the MCP list. Fallback: `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio, generic icon) |
11
11
  | Claude Desktop / VS Code | Configure `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio) |
12
- | Claude Code | `claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp` |
12
+ | Claude Code | Install this repo as a plugin (skills + MCP). Tools only: `claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp` |
13
13
  | Standalone chat UI (no IDE) | `npx -p @alisaitteke/photoshop-mcp ui` |
14
14
  | Local development | `npm install && npm run build && node dist/index.js` — see [docs/development.md](docs/development.md) |
15
15
 
16
16
  **Prerequisites:** Photoshop running on Windows or macOS, Node.js 18+. This is unofficial and not affiliated with Adobe.
17
17
 
18
- **Tool surface:** 123 MCP tools — 107 atomic `photoshop_*` + 16 recipe `photoshop_recipe_*`; 23 MCP prompt templates (`ps.*`).
18
+ **Tool surface:** 127 MCP tools — 111 atomic `photoshop_*` + 16 recipe `photoshop_recipe_*`; 23 MCP prompt templates (`ps.*`).
19
19
 
20
20
  ## Architecture (agent view)
21
21
 
@@ -35,7 +35,7 @@ Deep dive: [docs/architecture.md](docs/architecture.md).
35
35
 
36
36
  ## Recommended workflow
37
37
 
38
- Follow the server `instructions` advertised on MCP `initialize` ([src/prompts/instructions.ts](src/prompts/instructions.ts)):
38
+ Follow the server `instructions` advertised on MCP `initialize` ([src/prompts/instructions.ts](src/prompts/instructions.ts)). Plugin installs also load [skills/photoshop-remove-background](skills/photoshop-remove-background/SKILL.md) and [skills/photoshop-recipes](skills/photoshop-recipes/SKILL.md) when the request matches; those hold the phrase-to-tool glossary. The initialize text stays the session contract.
39
39
 
40
40
  ```
41
41
  1. DISCOVER: tools/list + prompts/list (or get_capabilities once per session)
@@ -123,6 +123,8 @@ More: [docs/troubleshooting.md](docs/troubleshooting.md).
123
123
  | [src/prompts/](src/prompts/) | MCP prompt templates |
124
124
  | [CONTRIBUTING.md](CONTRIBUTING.md) | PR and release workflow |
125
125
  | [`.cursor-plugin/plugin.json`](.cursor-plugin/plugin.json) | Cursor Plugin manifest (MCP list logo) |
126
+ | [`.claude-plugin/plugin.json`](.claude-plugin/plugin.json) | Claude Code plugin manifest (same `skills/`) |
127
+ | [`skills/`](skills/) | Plugin skills: remove-background hard rule detail and recipe routing |
126
128
  | [`mcp.json`](mcp.json) | Cursor Plugin stdio server config |
127
129
 
128
130
  ## Contributing (agents editing this repo)
package/README.md CHANGED
@@ -64,7 +64,7 @@ Routes, thresholds and the off switch:
64
64
  - 🎨 **Color grade & more** — film looks, sky replacement, generative fill (Adobe account required)
65
65
  - ⏪ **Stay safe** — every multi-step "recipe" is a single undo step in Photoshop
66
66
 
67
- Under the hood: 123 tools (107 atomic + 16 one-step recipes) — full list in
67
+ Under the hood: 127 tools (111 atomic + 16 one-step recipes) — full list in
68
68
  [`docs/available-tools.md`](docs/available-tools.md).
69
69
 
70
70
  ## Try saying
@@ -153,7 +153,7 @@ next. Common fixes: [`docs/troubleshooting.md`](docs/troubleshooting.md).
153
153
 
154
154
  ## Documentation
155
155
 
156
- - [Available tools](docs/available-tools.md) — all 123 tools with parameters
156
+ - [Available tools](docs/available-tools.md) — all 127 tools with parameters
157
157
  - [Standalone UI](docs/standalone-ui.md) — providers, auth modes, Action Plan, security
158
158
  - [Prompt layer](docs/prompt-layer.md) — prompt templates and recipes
159
159
  - [Architecture](docs/architecture.md) — how the bridge works under the hood
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AA4HA,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAsBtD;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAa3C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAOtD;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAc3C"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAmIA,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAsBtD;AAED,gFAAgF;AAChF,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAa3C;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAStD;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAc3C"}
@@ -1,6 +1,6 @@
1
1
  import { getServerAnalyticsContext } from './context.js';
2
2
  import { getLaunchMethod } from './launch-method.js';
3
- import { buildAnonymousRuntimeEnv, getMemoryGbBucket, getTotalRamGb } from './runtime-env.js';
3
+ import { buildAnonymousRuntimeEnv, getKnownPhotoshopVersion, getMemoryGbBucket, getTotalRamGb, } from './runtime-env.js';
4
4
  const BLOCKED_PROPERTY_KEYS = new Set([
5
5
  'api_key',
6
6
  'apikey',
@@ -55,6 +55,8 @@ const ALLOWED_PROPERTY_KEYS = new Set([
55
55
  'os_type',
56
56
  'os_release',
57
57
  'cpu_count',
58
+ 'machine',
59
+ 'uptime_hours',
58
60
  'memory_gb',
59
61
  'total_ram_gb',
60
62
  'photoshop_version',
@@ -159,10 +161,12 @@ export function sanitizePersonOnceProperties(properties) {
159
161
  return out;
160
162
  }
161
163
  export function buildRuntimeProperties(properties) {
164
+ const photoshopVersion = getKnownPhotoshopVersion();
162
165
  return {
163
166
  ...buildAnonymousRuntimeEnv(),
164
167
  launch_method: getLaunchMethod(),
165
168
  ...getServerAnalyticsContext(),
169
+ ...(photoshopVersion ? { photoshop_version: photoshopVersion } : {}),
166
170
  ...sanitizeAnalyticsProperties(properties),
167
171
  };
168
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9F,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,SAAS;IACT,QAAQ;IACR,KAAK;IACL,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,eAAe;IACf,UAAU;IACV,MAAM;IACN,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,aAAa;IACb,IAAI;IACJ,MAAM;IACN,cAAc;IACd,aAAa;IACb,aAAa;IACb,IAAI;IACJ,YAAY;IACZ,oBAAoB;IACpB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,MAAM;IACN,MAAM;IACN,SAAS;IACT,UAAU;IACV,iBAAiB;IACjB,WAAW;IACX,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,uBAAuB;IACvB,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,eAAe;IACf,sBAAsB;IACtB,wBAAwB;IACxB,iBAAiB;IACjB,SAAS;IACT,YAAY;IACZ,WAAW;IACX,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,aAAa;IACb,2BAA2B;IAC3B,4BAA4B;IAC5B,WAAW;IACX,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,wBAAwB;IACxB,aAAa;IACb,yBAAyB;IACzB,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,cAAc;IACd,cAAc;IACd,QAAQ;IACR,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,oBAAoB;IACpB,iBAAiB;IACjB,oBAAoB;IACpB,0BAA0B;IAC1B,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,OAAO;IACP,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;CACb,CAAC,CAAC;AAEH,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAC;IAC/C,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AAEnF,mFAAmF;AACnF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;CACxB,CAAC,CAAC;AAEH,SAAS,6BAA6B,CAAC,GAAW;IAChD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,UAA+C;IAE/C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,GAAG,GAAyD,EAAE,CAAC;IACrE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAEpD,MAAM,MAAM,GAAG,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAEnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC/C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;gBAAE,SAAS;YAC/D,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,4BAA4B,CAC1C,UAA+C;IAE/C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,GAAG,GAA8C,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QACzD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,UAA+C;IAE/C,OAAO;QACL,GAAG,wBAAwB,EAAE;QAC7B,aAAa,EAAE,eAAe,EAAE;QAChC,GAAG,yBAAyB,EAAE;QAC9B,GAAG,2BAA2B,CAAC,UAAU,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,6BAA6B,CAC3C,UAAoC;IAEpC,MAAM,MAAM,GAAG,sBAAsB,CAAC;QACpC,YAAY,EAAE,aAAa,EAAE;QAC7B,SAAS,EAAE,iBAAiB,EAAE;QAC9B,GAAG,UAAU;KACd,CAAC,CAAC;IAEH,MAAM,GAAG,GAA8C,EAAE,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACzF,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EACL,qBAAqB,EAIrB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAA2B,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,IAAI,CAON;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAalF;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYhF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAYlE;AACD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EACL,qBAAqB,EAIrB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,+BAA+B,EAC/B,wBAAwB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAA2B,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,IAAI,CAON;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgBlF;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYhF;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,CAYlE;AACD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,CAAC"}
@@ -2,6 +2,7 @@ import { captureBetaChatTurn } from './beta-telemetry.js';
2
2
  import { getAppVersion } from './app-version.js';
3
3
  import { hasAnalyticsKey, resolveRybbitAnalyticsHost, resolveRybbitSiteId } from './config.js';
4
4
  import { buildPersonIdentifyProperties, buildRuntimeProperties } from './events.js';
5
+ import { rememberPhotoshopVersion } from './runtime-env.js';
5
6
  import { applyInstallCohortPersonOnce } from './install-cohorts.js';
6
7
  import { getBetaTelemetryState, getOrCreateDistinctId, isAnalyticsEnabled, recordUsageSurface, setBetaTelemetryChoice, } from './identity.js';
7
8
  import { onMcpClientConnected, onMcpClientDisconnected } from './mcp-client.js';
@@ -27,6 +28,9 @@ export function identifyAnalyticsPerson(properties) {
27
28
  if (!isAnalyticsEnabled() || !hasAnalyticsKey())
28
29
  return;
29
30
  const props = { ...(properties ?? {}) };
31
+ if (typeof props.photoshop_version === 'string') {
32
+ rememberPhotoshopVersion(props.photoshop_version);
33
+ }
30
34
  const usageSurface = typeof props.usage_surface === 'string' ? props.usage_surface : undefined;
31
35
  if (usageSurface) {
32
36
  props.usage_surfaces = recordUsageSurface(usageSurface);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@
2
2
  export declare function getTotalRamGb(): number;
3
3
  /** Bucketed memory tier (GB) for person-profile cohort segmentation. */
4
4
  export declare function getMemoryGbBucket(): number;
5
+ /** CPU model only — no hostname, username, or serial. */
6
+ export declare function getMachineModel(): string | undefined;
7
+ /** Whole hours the OS has been up, or undefined when the OS refuses the read. */
8
+ export declare function getUptimeHours(): number | undefined;
9
+ /** Remember a detected Photoshop version so later session events can carry it. */
10
+ export declare function rememberPhotoshopVersion(version: string): void;
11
+ export declare function getKnownPhotoshopVersion(): string | undefined;
5
12
  /** Anonymous machine/runtime signals safe to attach to every server-side event. */
6
13
  export declare function buildAnonymousRuntimeEnv(): Record<string, string | number | boolean>;
7
14
  //# sourceMappingURL=runtime-env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAcA,yFAAyF;AACzF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAqBD,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAuBpF"}
1
+ {"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAkBA,yFAAyF;AACzF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAqBD,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAKpD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAQnD;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAE7D;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CA2BpF"}
@@ -1,6 +1,8 @@
1
- import { cpus, release, totalmem, type } from 'node:os';
1
+ import { cpus, release, totalmem, type, uptime } from 'node:os';
2
2
  import { getAppVersion } from './app-version.js';
3
3
  import { getSystemLocale, resolveLocaleLanguage, resolveLocaleRegion } from './locale.js';
4
+ const MACHINE_MAX_CHARS = 80;
5
+ let knownPhotoshopVersion;
4
6
  function bucketMemoryGb(totalBytes) {
5
7
  const gb = totalBytes / 1024 ** 3;
6
8
  if (gb <= 4)
@@ -41,12 +43,45 @@ function getNodeMajorVersion() {
41
43
  function envFlag(name) {
42
44
  return Boolean(process.env[name]?.trim());
43
45
  }
46
+ /** CPU model only — no hostname, username, or serial. */
47
+ export function getMachineModel() {
48
+ const raw = cpus()[0]?.model?.replace(/\s+/g, ' ').trim();
49
+ if (!raw)
50
+ return undefined;
51
+ if (raw.length <= MACHINE_MAX_CHARS)
52
+ return raw;
53
+ return `${raw.slice(0, MACHINE_MAX_CHARS - 1)}…`;
54
+ }
55
+ /** Whole hours the OS has been up, or undefined when the OS refuses the read. */
56
+ export function getUptimeHours() {
57
+ try {
58
+ const seconds = uptime();
59
+ if (!Number.isFinite(seconds) || seconds < 0)
60
+ return undefined;
61
+ return Math.round(seconds / 3600);
62
+ }
63
+ catch {
64
+ return undefined;
65
+ }
66
+ }
67
+ /** Remember a detected Photoshop version so later session events can carry it. */
68
+ export function rememberPhotoshopVersion(version) {
69
+ const trimmed = version.trim();
70
+ if (!trimmed || trimmed === 'Unknown')
71
+ return;
72
+ knownPhotoshopVersion = trimmed;
73
+ }
74
+ export function getKnownPhotoshopVersion() {
75
+ return knownPhotoshopVersion;
76
+ }
44
77
  /** Anonymous machine/runtime signals safe to attach to every server-side event. */
45
78
  export function buildAnonymousRuntimeEnv() {
46
79
  const systemLocale = getSystemLocale();
47
80
  const systemLocaleRegion = resolveLocaleRegion(systemLocale);
48
81
  const systemLocaleLanguage = resolveLocaleLanguage(systemLocale);
49
82
  const nodeMajor = getNodeMajorVersion();
83
+ const machine = getMachineModel();
84
+ const uptimeHours = getUptimeHours();
50
85
  return {
51
86
  app_version: getAppVersion(),
52
87
  os: process.platform,
@@ -56,6 +91,8 @@ export function buildAnonymousRuntimeEnv() {
56
91
  node_version: process.version,
57
92
  ...(nodeMajor !== undefined ? { node_major: nodeMajor } : {}),
58
93
  cpu_count: cpus().length,
94
+ ...(machine ? { machine } : {}),
95
+ ...(uptimeHours !== undefined ? { uptime_hours: uptimeHours } : {}),
59
96
  system_locale: systemLocale,
60
97
  system_timezone: getSystemTimezone(),
61
98
  ...(systemLocaleRegion ? { system_locale_region: systemLocaleRegion } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-env.js","sourceRoot":"","sources":["../../src/analytics/runtime-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1F,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,IAAI,qBAAyC,CAAC;AAE9C,SAAS,cAAc,CAAC,UAAkB;IACxC,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO,GAAG,CAAC;IAChD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAC9C,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,wBAAwB;IACtC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC7D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,WAAW,EAAE,aAAa,EAAE;QAC5B,EAAE,EAAE,OAAO,CAAC,QAAQ;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI,EAAE;QACf,UAAU,EAAE,OAAO,EAAE;QACrB,YAAY,EAAE,OAAO,CAAC,OAAO;QAC7B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM;QACxB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,aAAa,EAAE,YAAY;QAC3B,eAAe,EAAE,iBAAiB,EAAE;QACpC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,yBAAyB,EAAE,OAAO,CAAC,gBAAgB,CAAC;QACpD,0BAA0B,EAAE,OAAO,CAAC,oBAAoB,CAAC;KAC1D,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rybbit-node.d.ts","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAA0B,MAAM,YAAY,CAAC;AAgC5F,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;;IAezB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAepD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBxD,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAyB9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,OAAO;YAOD,IAAI;CA2BnB"}
1
+ {"version":3,"file":"rybbit-node.d.ts","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAA0B,MAAM,YAAY,CAAC;AA6B5F,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;;IAezB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAepD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBxD,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IA2B9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,OAAO,CAAC,OAAO;YAOD,IAAI;CA2BnB"}
@@ -3,24 +3,22 @@ import { getAppVersion } from './app-version.js';
3
3
  import { resolveRybbitAnalyticsHost, resolveRybbitApiKey, resolveRybbitSiteId } from './config.js';
4
4
  import { buildPersonIdentifyProperties, sanitizePersonOnceProperties } from './events.js';
5
5
  import { getOrCreateDistinctId } from './identity.js';
6
+ import { getSystemLocale } from './locale.js';
6
7
  const PROPERTIES_MAX_CHARS = 2048;
7
8
  const TRAITS_MAX_CHARS = 2048;
8
9
  const HOSTNAME = 'photoshop-mcp.com';
9
10
  const FLUSH_AT = 10;
10
11
  const FLUSH_INTERVAL_MS = 5000;
11
12
  const DROP_WHEN_OVER_BUDGET = [
12
- 'os_release',
13
- 'system_timezone',
14
- 'system_locale',
15
- 'system_locale_language',
16
- 'system_locale_region',
17
- 'node_major',
18
13
  'is_electron',
19
14
  'photoshop_path_configured',
20
15
  'custom_data_dir_configured',
21
- 'cpu_count',
22
- 'arch',
16
+ 'node_major',
23
17
  'os_type',
18
+ 'arch',
19
+ 'cpu_count',
20
+ 'os_release',
21
+ 'system_locale_region',
24
22
  ];
25
23
  const PROTECTED_PROPERTY_KEYS = new Set(['feedback_choice', 'suggestion']);
26
24
  export class RybbitNodeProvider {
@@ -90,6 +88,9 @@ export class RybbitNodeProvider {
90
88
  const pageTitle = resolvePageTitle(props);
91
89
  if (pageTitle)
92
90
  body.page_title = pageTitle;
91
+ const language = sessionLanguage();
92
+ if (language)
93
+ body.language = language;
93
94
  if (eventName)
94
95
  body.event_name = eventName;
95
96
  const encoded = encodeProperties(props);
@@ -170,6 +171,13 @@ function resolvePathname(properties) {
170
171
  return '/ui';
171
172
  return '/ui-server';
172
173
  }
174
+ /** Rybbit stores this on the session `language` column (max 35). */
175
+ function sessionLanguage() {
176
+ const locale = getSystemLocale().trim();
177
+ if (!locale || locale === 'unknown')
178
+ return undefined;
179
+ return locale.slice(0, 35);
180
+ }
173
181
  function resolvePageTitle(properties) {
174
182
  const explicit = properties.$page_title;
175
183
  if (typeof explicit !== 'string')
@@ -1 +1 @@
1
- {"version":3,"file":"rybbit-node.js","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rybbit-node.js","sourceRoot":"","sources":["../../src/analytics/rybbit-node.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,11 @@ export declare const ExtendScriptSnippets: {
102
102
  * Background / fully-locked layers cannot be filled, so fail clearly.
103
103
  */
104
104
  fillLayer: (red: number, green: number, blue: number) => string;
105
+ /**
106
+ * Two-color linear gradient on the active layer's pixels (not the mask).
107
+ * Document.gradients does not exist in ExtendScript; this uses the gradient tool action.
108
+ */
109
+ fillLinearGradient: (fromRed: number, fromGreen: number, fromBlue: number, toRed: number, toGreen: number, toBlue: number, direction: "left_to_right" | "right_to_left" | "top_to_bottom" | "bottom_to_top") => string;
105
110
  /**
106
111
  * Resize image
107
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"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"}
@@ -1402,6 +1402,12 @@ export const ExtendScriptSnippets = {
1402
1402
  if (layer.kind === LayerKind.TEXT) {
1403
1403
  throw new Error('Cannot fill a text layer. Rasterize it first.');
1404
1404
  }
1405
+ var rasterized = false;
1406
+ if (layer.kind === LayerKind.SMARTOBJECT) {
1407
+ layer.rasterize(RasterizeType.ENTIRELAYER);
1408
+ rasterized = true;
1409
+ layer = doc.activeLayer;
1410
+ }
1405
1411
 
1406
1412
  var color = new SolidColor();
1407
1413
  color.rgb.red = ${red};
@@ -1425,10 +1431,122 @@ export const ExtendScriptSnippets = {
1425
1431
 
1426
1432
  return {
1427
1433
  filled: true,
1434
+ rasterized: rasterized,
1428
1435
  layerName: layer.name,
1429
1436
  color: { red: ${red}, green: ${green}, blue: ${blue} }
1430
1437
  };
1431
1438
  `,
1439
+ /**
1440
+ * Two-color linear gradient on the active layer's pixels (not the mask).
1441
+ * Document.gradients does not exist in ExtendScript; this uses the gradient tool action.
1442
+ */
1443
+ fillLinearGradient: (fromRed, fromGreen, fromBlue, toRed, toGreen, toBlue, direction) => {
1444
+ const axis = {
1445
+ left_to_right: { fromH: 0, fromV: 50, toH: 100, toV: 50 },
1446
+ right_to_left: { fromH: 100, fromV: 50, toH: 0, toV: 50 },
1447
+ top_to_bottom: { fromH: 50, fromV: 0, toH: 50, toV: 100 },
1448
+ bottom_to_top: { fromH: 50, fromV: 100, toH: 50, toV: 0 },
1449
+ }[direction];
1450
+ return `
1451
+ ${helperFunctions}
1452
+ if (app.documents.length === 0) {
1453
+ throw new Error('No active document');
1454
+ }
1455
+ var doc = app.activeDocument;
1456
+ var layer = doc.activeLayer;
1457
+ if (!layer) throw new Error('No active layer');
1458
+ if (layer.allLocked) {
1459
+ throw new Error('Cannot fill a fully locked layer: ' + layer.name);
1460
+ }
1461
+ if (layer.kind === LayerKind.TEXT) {
1462
+ throw new Error('Cannot fill a text layer. Rasterize it first.');
1463
+ }
1464
+ if (layer.isBackgroundLayer) {
1465
+ layer.isBackgroundLayer = false;
1466
+ }
1467
+
1468
+ app.displayDialogs = DialogModes.NO;
1469
+ var docW = doc.width.as('px');
1470
+ var docH = doc.height.as('px');
1471
+ var fromX = docW * (${axis.fromH} / 100.0);
1472
+ var fromY = docH * (${axis.fromV} / 100.0);
1473
+ var toX = docW * (${axis.toH} / 100.0);
1474
+ var toY = docH * (${axis.toV} / 100.0);
1475
+
1476
+ var hadSelection = false;
1477
+ try { hadSelection = doc.selection.bounds != null; } catch (eSel) { hadSelection = false; }
1478
+ if (!hadSelection) doc.selection.selectAll();
1479
+
1480
+ function __mcp_gradPoint(x, y) {
1481
+ var desc = new ActionDescriptor();
1482
+ desc.putUnitDouble(cTID('Hrzn'), cTID('#Pxl'), x);
1483
+ desc.putUnitDouble(cTID('Vrtc'), cTID('#Pxl'), y);
1484
+ return desc;
1485
+ }
1486
+ function __mcp_gradRgb(r, g, b) {
1487
+ var desc = new ActionDescriptor();
1488
+ desc.putDouble(cTID('Rd '), r);
1489
+ desc.putDouble(cTID('Grn '), g);
1490
+ desc.putDouble(cTID('Bl '), b);
1491
+ return desc;
1492
+ }
1493
+ function __mcp_gradStop(location, r, g, b) {
1494
+ var desc = new ActionDescriptor();
1495
+ desc.putInteger(cTID('Lctn'), location);
1496
+ desc.putInteger(cTID('Mdpn'), 50);
1497
+ desc.putObject(cTID('Clr '), cTID('RGBC'), __mcp_gradRgb(r, g, b));
1498
+ desc.putEnumerated(cTID('Type'), cTID('Clry'), cTID('UsrS'));
1499
+ return desc;
1500
+ }
1501
+
1502
+ var args = new ActionDescriptor();
1503
+ args.putObject(cTID('From'), cTID('Pnt '), __mcp_gradPoint(fromX, fromY));
1504
+ args.putObject(cTID('T '), cTID('Pnt '), __mcp_gradPoint(toX, toY));
1505
+ args.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
1506
+ args.putEnumerated(cTID('Type'), cTID('GrdT'), cTID('Lnr '));
1507
+ args.putBoolean(cTID('Dthr'), true);
1508
+ args.putBoolean(cTID('UsMs'), false);
1509
+ args.putBoolean(cTID('Rvrs'), false);
1510
+
1511
+ var gradDesc = new ActionDescriptor();
1512
+ gradDesc.putString(cTID('Nm '), 'Custom');
1513
+ gradDesc.putEnumerated(cTID('GrdF'), cTID('GrdF'), cTID('CstS'));
1514
+ gradDesc.putDouble(cTID('Intr'), 4096.0);
1515
+
1516
+ var colorList = new ActionList();
1517
+ colorList.putObject(cTID('Clrt'), __mcp_gradStop(0, ${fromRed}, ${fromGreen}, ${fromBlue}));
1518
+ colorList.putObject(cTID('Clrt'), __mcp_gradStop(4096, ${toRed}, ${toGreen}, ${toBlue}));
1519
+ gradDesc.putList(cTID('Clrs'), colorList);
1520
+
1521
+ var xferList = new ActionList();
1522
+ var xferA = new ActionDescriptor();
1523
+ xferA.putInteger(cTID('Lctn'), 0);
1524
+ xferA.putInteger(cTID('Mdpn'), 50);
1525
+ xferA.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);
1526
+ xferList.putObject(cTID('TrnS'), xferA);
1527
+ var xferB = new ActionDescriptor();
1528
+ xferB.putInteger(cTID('Lctn'), 4096);
1529
+ xferB.putInteger(cTID('Mdpn'), 50);
1530
+ xferB.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100.0);
1531
+ xferList.putObject(cTID('TrnS'), xferB);
1532
+ gradDesc.putList(cTID('Trns'), xferList);
1533
+
1534
+ args.putObject(cTID('Grad'), cTID('Grdn'), gradDesc);
1535
+ executeAction(cTID('Grdn'), args, DialogModes.NO);
1536
+
1537
+ if (!hadSelection) {
1538
+ try { doc.selection.deselect(); } catch (eDeselect) {}
1539
+ }
1540
+
1541
+ return {
1542
+ filled: true,
1543
+ layerName: layer.name,
1544
+ direction: '${direction}',
1545
+ from: { red: ${fromRed}, green: ${fromGreen}, blue: ${fromBlue} },
1546
+ to: { red: ${toRed}, green: ${toGreen}, blue: ${toBlue} }
1547
+ };
1548
+ `;
1549
+ },
1432
1550
  /**
1433
1551
  * Resize image
1434
1552
  */
@@ -1622,6 +1740,18 @@ export const ExtendScriptSnippets = {
1622
1740
  throw new Error('Cannot transform background layer');
1623
1741
  }
1624
1742
 
1743
+ try {
1744
+ var __mcpScaleBounds = layer.bounds;
1745
+ var __mcpScaleW = __mcpScaleBounds[2].as('px') - __mcpScaleBounds[0].as('px');
1746
+ var __mcpScaleH = __mcpScaleBounds[3].as('px') - __mcpScaleBounds[1].as('px');
1747
+ if (!(__mcpScaleW > 0) || !(__mcpScaleH > 0)) {
1748
+ throw new Error('Layer has no pixels (empty bounding rectangle). Fill the layer before scaling.');
1749
+ }
1750
+ } catch (eScaleBounds) {
1751
+ var __mcpScaleMsg = eScaleBounds && eScaleBounds.message ? String(eScaleBounds.message) : '';
1752
+ if (__mcpScaleMsg.indexOf('empty bounding rectangle') !== -1) throw eScaleBounds;
1753
+ }
1754
+
1625
1755
  var anchor = ${centerAnchor ? 'AnchorPosition.MIDDLECENTER' : 'AnchorPosition.TOPLEFT'};
1626
1756
  layer.resize(${scalePercent}, ${scalePercent}, anchor);
1627
1757
 
@@ -3422,6 +3552,22 @@ export const ExtendScriptSnippets = {
3422
3552
  ${getContextInfo}
3423
3553
  var context = getContextInfo();
3424
3554
  if (context.hasDocument && context.document) {
3555
+ var doc = app.activeDocument;
3556
+ try { context.document.saved = doc.saved; } catch (eSaved) {}
3557
+ try { context.document.path = doc.fullName.fsName; } catch (ePath) {}
3558
+ try { context.document.bitsPerChannel = String(doc.bitsPerChannel); } catch (eBits) {}
3559
+ context.document.layers = [];
3560
+ try {
3561
+ var layerLimit = Math.min(doc.layers.length, 40);
3562
+ for (var li = 0; li < layerLimit; li++) {
3563
+ var lyr = doc.layers[li];
3564
+ var layerEntry = { name: String(lyr.name) };
3565
+ try { layerEntry.kind = String(lyr.kind); } catch (eKind) {}
3566
+ try { layerEntry.visible = lyr.visible; } catch (eVis) {}
3567
+ context.document.layers.push(layerEntry);
3568
+ }
3569
+ } catch (eLayers) {}
3570
+
3425
3571
  var abs = __mcp_listArtboards();
3426
3572
  context.document.artboards = abs;
3427
3573
  context.document.artboardCount = abs.length;
@@ -3434,6 +3580,25 @@ export const ExtendScriptSnippets = {
3434
3580
  }
3435
3581
  context.activeArtboard = activeAb;
3436
3582
  }
3583
+
3584
+ context.documents = [];
3585
+ var activeId = null;
3586
+ try {
3587
+ if (app.documents.length > 0) activeId = app.activeDocument.id;
3588
+ } catch (eActive) {
3589
+ activeId = null;
3590
+ }
3591
+ for (var di = 0; di < app.documents.length; di++) {
3592
+ var openDoc = app.documents[di];
3593
+ var entry = { id: null, name: '', is_active: false };
3594
+ try { entry.id = openDoc.id; } catch (eId) {}
3595
+ try { entry.name = String(openDoc.name); } catch (eName) {}
3596
+ try { entry.width = openDoc.width.as('px'); } catch (eW) {}
3597
+ try { entry.height = openDoc.height.as('px'); } catch (eH) {}
3598
+ try { entry.saved = openDoc.saved; } catch (eOpenSaved) {}
3599
+ try { entry.is_active = activeId !== null && openDoc.id === activeId; } catch (eA) {}
3600
+ context.documents.push(entry);
3601
+ }
3437
3602
  return context;
3438
3603
  `,
3439
3604
  /**
@@ -3449,6 +3614,19 @@ export const ExtendScriptSnippets = {
3449
3614
  var doc = app.activeDocument;
3450
3615
  var w = doc.width.as('px');
3451
3616
  var h = doc.height.as('px');
3617
+ var docName = '';
3618
+ try { docName = String(doc.name); } catch (eName) {}
3619
+ var colorMode = '';
3620
+ try { colorMode = String(doc.mode); } catch (eMode) {}
3621
+ var docId = null;
3622
+ try { docId = doc.id; } catch (eId) {}
3623
+ var layerNames = [];
3624
+ try {
3625
+ var layerLimit = Math.min(doc.layers.length, 40);
3626
+ for (var li = 0; li < layerLimit; li++) {
3627
+ layerNames.push(String(doc.layers[li].name));
3628
+ }
3629
+ } catch (eLayers) {}
3452
3630
  var maxDim = ${maxDimension};
3453
3631
  var scale = 1;
3454
3632
  if (w > maxDim || h > maxDim) {
@@ -3478,7 +3656,13 @@ export const ExtendScriptSnippets = {
3478
3656
  path: tmpFile.fsName,
3479
3657
  width: Math.round(w * scale),
3480
3658
  height: Math.round(h * scale),
3481
- mimeType: 'image/jpeg'
3659
+ mimeType: 'image/jpeg',
3660
+ documentId: docId,
3661
+ documentName: docName,
3662
+ documentWidth: Math.round(w),
3663
+ documentHeight: Math.round(h),
3664
+ colorMode: colorMode,
3665
+ layers: layerNames
3482
3666
  };
3483
3667
  `,
3484
3668
  /**