@alisaitteke/photoshop-mcp 1.7.21 → 1.7.23

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 (83) hide show
  1. package/README.md +26 -0
  2. package/dist/analytics/events.d.ts.map +1 -1
  3. package/dist/analytics/events.js +8 -1
  4. package/dist/analytics/events.js.map +1 -1
  5. package/dist/analytics/index.d.ts +2 -2
  6. package/dist/analytics/index.d.ts.map +1 -1
  7. package/dist/analytics/index.js +2 -2
  8. package/dist/analytics/index.js.map +1 -1
  9. package/dist/analytics/mcp-client.d.ts.map +1 -1
  10. package/dist/analytics/mcp-client.js +2 -1
  11. package/dist/analytics/mcp-client.js.map +1 -1
  12. package/dist/analytics/mcp-session.d.ts +14 -0
  13. package/dist/analytics/mcp-session.d.ts.map +1 -1
  14. package/dist/analytics/mcp-session.js +91 -0
  15. package/dist/analytics/mcp-session.js.map +1 -1
  16. package/dist/core/server.d.ts.map +1 -1
  17. package/dist/core/server.js +2 -5
  18. package/dist/core/server.js.map +1 -1
  19. package/dist/prompts/templates/composite-blend.js +2 -2
  20. package/dist/prompts/templates/composite-blend.js.map +1 -1
  21. package/dist/prompts/templates/dodge-burn-guide.js +1 -1
  22. package/dist/prompts/templates/dodge-burn-guide.js.map +1 -1
  23. package/dist/prompts/templates/dodge-burn.js +1 -1
  24. package/dist/prompts/templates/dodge-burn.js.map +1 -1
  25. package/dist/prompts/templates/gradient-fade.js +1 -1
  26. package/dist/prompts/templates/gradient-fade.js.map +1 -1
  27. package/dist/prompts/templates/sky-blend.js +1 -1
  28. package/dist/prompts/templates/sky-blend.js.map +1 -1
  29. package/dist/ui/agent/action-plan.d.ts.map +1 -1
  30. package/dist/ui/agent/action-plan.js +17 -30
  31. package/dist/ui/agent/action-plan.js.map +1 -1
  32. package/dist/ui/agent/api-key.d.ts.map +1 -1
  33. package/dist/ui/agent/api-key.js +7 -15
  34. package/dist/ui/agent/api-key.js.map +1 -1
  35. package/dist/ui/agent/claude-account.d.ts.map +1 -1
  36. package/dist/ui/agent/claude-account.js +6 -9
  37. package/dist/ui/agent/claude-account.js.map +1 -1
  38. package/dist/ui/agent/gemini-account.d.ts.map +1 -1
  39. package/dist/ui/agent/gemini-account.js +7 -8
  40. package/dist/ui/agent/gemini-account.js.map +1 -1
  41. package/dist/ui/agent/instant.d.ts +34 -0
  42. package/dist/ui/agent/instant.d.ts.map +1 -0
  43. package/dist/ui/agent/instant.js +78 -0
  44. package/dist/ui/agent/instant.js.map +1 -0
  45. package/dist/ui/agent/shared.d.ts +28 -6
  46. package/dist/ui/agent/shared.d.ts.map +1 -1
  47. package/dist/ui/agent/shared.js +21 -0
  48. package/dist/ui/agent/shared.js.map +1 -1
  49. package/dist/ui/agent.d.ts.map +1 -1
  50. package/dist/ui/agent.js +32 -4
  51. package/dist/ui/agent.js.map +1 -1
  52. package/dist/ui/config.d.ts +14 -0
  53. package/dist/ui/config.d.ts.map +1 -1
  54. package/dist/ui/config.js +17 -0
  55. package/dist/ui/config.js.map +1 -1
  56. package/dist/ui/intent/catalog.d.ts +39 -0
  57. package/dist/ui/intent/catalog.d.ts.map +1 -0
  58. package/dist/ui/intent/catalog.js +160 -0
  59. package/dist/ui/intent/catalog.js.map +1 -0
  60. package/dist/ui/intent/router.d.ts +92 -0
  61. package/dist/ui/intent/router.d.ts.map +1 -0
  62. package/dist/ui/intent/router.js +146 -0
  63. package/dist/ui/intent/router.js.map +1 -0
  64. package/dist/ui/intent/service.d.ts +55 -0
  65. package/dist/ui/intent/service.d.ts.map +1 -0
  66. package/dist/ui/intent/service.js +150 -0
  67. package/dist/ui/intent/service.js.map +1 -0
  68. package/dist/ui/server.d.ts.map +1 -1
  69. package/dist/ui/server.js +74 -2
  70. package/dist/ui/server.js.map +1 -1
  71. package/dist/ui/store/chats.d.ts +16 -0
  72. package/dist/ui/store/chats.d.ts.map +1 -1
  73. package/dist/ui/store/chats.js.map +1 -1
  74. package/dist/ui/store/previews.d.ts +28 -0
  75. package/dist/ui/store/previews.d.ts.map +1 -0
  76. package/dist/ui/store/previews.js +120 -0
  77. package/dist/ui/store/previews.js.map +1 -0
  78. package/package.json +2 -2
  79. package/web/dist/assets/index-hrv691GI.js +288 -0
  80. package/web/dist/assets/index-tyuEMiXQ.css +1 -0
  81. package/web/dist/index.html +2 -2
  82. package/web/dist/assets/index-DVa56xB2.js +0 -263
  83. package/web/dist/assets/index-vi5C3hqd.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAExE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,YAAY,GACZ,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,aAAa,GACb,QAAQ,GACR,OAAO,GACP,MAAM,GACN,cAAc,GACd,WAAW,GACX,aAAa,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAiB3D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA0BjF;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAmBvD;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAuBvF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBtF"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE5E,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACxC,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,YAAY,GACZ,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,aAAa,GACb,QAAQ,GACR,OAAO,GACP,MAAM,GACN,cAAc,GACd,WAAW,GACX,aAAa,GACb,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAiB3D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA0BjF;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAmBvD;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5F,sBAAsB,CAcxB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAuBvF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBtF"}
@@ -1,3 +1,4 @@
1
+ import { persistToolImages } from '../store/previews.js';
1
2
  export function stringifyToolOutput(output) {
2
3
  if (output == null)
3
4
  return '';
@@ -80,6 +81,26 @@ export function toolFailureMessage(output, fallback) {
80
81
  }
81
82
  return fallback;
82
83
  }
84
+ /**
85
+ * Record a finished tool call on the buffer and return the `tool-result` event payload.
86
+ * Pass `output` for a normal result; pass `error` when the call threw.
87
+ */
88
+ export function finishToolCall(buffer, toolCallId, result) {
89
+ const failed = result.error !== undefined;
90
+ const content = failed ? result.error : (result.content ?? stringifyToolOutput(result.output));
91
+ const ok = failed ? false : (result.ok ?? isToolOutputOk(result.output));
92
+ const images = failed ? [] : persistToolImages(result.chatId, toolCallId, result.output);
93
+ const tc = buffer.toolCalls.find((c) => c.id === toolCallId);
94
+ const durationMs = tc?.startedAt ? Math.max(0, Date.now() - tc.startedAt) : undefined;
95
+ const persisted = { ok, content, ...(images.length ? { images } : {}) };
96
+ if (tc) {
97
+ tc.result = persisted;
98
+ tc.status = ok ? 'success' : 'error';
99
+ if (durationMs !== undefined)
100
+ tc.durationMs = durationMs;
101
+ }
102
+ return { id: toolCallId, ...persisted, ...(durationMs !== undefined ? { durationMs } : {}) };
103
+ }
83
104
  export function computeCost(usage, pricing) {
84
105
  const cacheRead = usage.inputTokenDetails?.cacheReadTokens ?? 0;
85
106
  const cacheWrite = usage.inputTokenDetails?.cacheWriteTokens ?? 0;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,uBAAuB,QAc5B,CAAC;AAET,eAAO,MAAM,yBAAyB,QAa9B,CAAC;AAET,wBAAuB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAwEvF;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GACzE,YAAY,EAAE,CAQhB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQ/D,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,uBAAuB,QAc5B,CAAC;AAET,eAAO,MAAM,yBAAyB,QAa9B,CAAC;AAMT,wBAAuB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,CA+FvF;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GACzE,YAAY,EAAE,CAQhB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/ui/agent.js CHANGED
@@ -3,6 +3,8 @@ import { runChatViaActionPlan } from './agent/action-plan.js';
3
3
  import { runChatViaApiKey } from './agent/api-key.js';
4
4
  import { runChatViaClaudeAccount } from './agent/claude-account.js';
5
5
  import { runChatViaGeminiAccount } from './agent/gemini-account.js';
6
+ import { prepareInstant, runChatViaInstant } from './agent/instant.js';
7
+ import { routeIntent, toRouteView } from './intent/service.js';
6
8
  import { loadConfig } from './config.js';
7
9
  import { computeCost, } from './agent/shared.js';
8
10
  export { computeCost };
@@ -35,9 +37,35 @@ Planning rules:
35
37
  - A recipe that already performs a sub-task replaces its atomic equivalent — do not duplicate work.
36
38
  - Use "$steps.<stepId>.<dot.path>" placeholders for values produced by earlier steps.
37
39
  `.trim();
40
+ const CLARIFY_HINT = `
41
+ The request looks ambiguous. Before calling any Photoshop tool, ask the user exactly one short clarifying question, then stop.
42
+ `.trim();
38
43
  export async function* runChat(opts) {
39
44
  const authMethod = opts.authMethod ?? 'api_key';
40
- const actionPlanBeta = loadConfig().actionPlanBeta;
45
+ let actionPlanBeta = loadConfig().actionPlanBeta;
46
+ let agentSystemPrompt = PHOTOSHOP_SYSTEM_PROMPT;
47
+ // Optional Jev routing (TYPESAFE_API_KEY). Any failure falls back to today's behaviour.
48
+ const routed = await routeIntent(opts.prompt, opts.abortSignal).catch(() => null);
49
+ if (routed) {
50
+ const { decision } = routed;
51
+ yield { type: 'route', payload: toRouteView(decision) };
52
+ if (decision.route === 'instant' && decision.call) {
53
+ const prepared = await prepareInstant(decision.call, opts.chatId);
54
+ if (prepared) {
55
+ yield* runChatViaInstant({
56
+ prepared,
57
+ chatId: opts.chatId,
58
+ abortSignal: opts.abortSignal,
59
+ onAssistantBuffer: opts.onAssistantBuffer,
60
+ onFinish: opts.onFinish,
61
+ });
62
+ return;
63
+ }
64
+ }
65
+ actionPlanBeta = decision.route === 'plan' || decision.route === 'instant';
66
+ if (decision.route === 'clarify')
67
+ agentSystemPrompt = `${PHOTOSHOP_SYSTEM_PROMPT}\n\n${CLARIFY_HINT}`;
68
+ }
41
69
  if (actionPlanBeta) {
42
70
  yield* runChatViaActionPlan({
43
71
  prompt: opts.prompt,
@@ -63,7 +91,7 @@ export async function* runChat(opts) {
63
91
  provider: opts.provider,
64
92
  modelId: opts.modelId,
65
93
  chatId: opts.chatId,
66
- systemPrompt: PHOTOSHOP_SYSTEM_PROMPT,
94
+ systemPrompt: agentSystemPrompt,
67
95
  abortSignal: opts.abortSignal,
68
96
  onAssistantBuffer: opts.onAssistantBuffer,
69
97
  onFinish: opts.onFinish,
@@ -77,7 +105,7 @@ export async function* runChat(opts) {
77
105
  modelId: opts.modelId,
78
106
  chatId: opts.chatId,
79
107
  cliPath: opts.cliPath,
80
- systemPrompt: PHOTOSHOP_SYSTEM_PROMPT,
108
+ systemPrompt: agentSystemPrompt,
81
109
  abortSignal: opts.abortSignal,
82
110
  onAssistantBuffer: opts.onAssistantBuffer,
83
111
  onFinish: opts.onFinish,
@@ -98,7 +126,7 @@ export async function* runChat(opts) {
98
126
  modelId: opts.modelId,
99
127
  chatId: opts.chatId,
100
128
  authMethod,
101
- systemPrompt: PHOTOSHOP_SYSTEM_PROMPT,
129
+ systemPrompt: agentSystemPrompt,
102
130
  abortSignal: opts.abortSignal,
103
131
  onAssistantBuffer: opts.onAssistantBuffer,
104
132
  onFinish: opts.onFinish,
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,14 @@ export interface CustomProviderConfig {
19
19
  }[];
20
20
  defaultModel: string;
21
21
  }
22
+ /** Jev (TypeSafe) intent routing, set from Settings → Routing. */
23
+ export interface IntentRouterConfig {
24
+ apiKey?: string;
25
+ /** Route messages with Jev when a key is present. Defaults to on. */
26
+ enabled?: boolean;
27
+ /** Let Jev run single safe commands without the chat model. Defaults to on. */
28
+ instant?: boolean;
29
+ }
22
30
  export interface UIConfig {
23
31
  providers: Partial<Record<ProviderId, ProviderConfig>>;
24
32
  activeProvider: ProviderId;
@@ -29,6 +37,7 @@ export interface UIConfig {
29
37
  */
30
38
  actionPlanBeta?: boolean;
31
39
  customProvider: CustomProviderConfig | null;
40
+ intentRouter?: IntentRouterConfig;
32
41
  }
33
42
  export declare function loadConfig(): UIConfig;
34
43
  export declare function saveConfig(patch: Partial<UIConfig>): UIConfig;
@@ -40,4 +49,9 @@ export declare function maskApiKey(apiKey?: string): string | null;
40
49
  export declare function saveCustomProvider(config: CustomProviderConfig): UIConfig;
41
50
  export declare function getCustomProvider(): CustomProviderConfig | null;
42
51
  export declare function deleteCustomProvider(): UIConfig;
52
+ export declare function getIntentRouterConfig(): IntentRouterConfig;
53
+ /** Merge into the stored router settings; `apiKey: null` removes the key. */
54
+ export declare function setIntentRouterConfig(patch: Omit<IntentRouterConfig, 'apiKey'> & {
55
+ apiKey?: string | null;
56
+ }): IntentRouterConfig;
43
57
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACrF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC7C;AAYD,wBAAgB,UAAU,IAAI,QAAQ,CASrC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAU7D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,QAAQ,CAMjF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAE5E;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAExD;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAKrE;AAED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAEzE;AAED,wBAAgB,iBAAiB,IAAI,oBAAoB,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,CAE/C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACrF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAYD,wBAAgB,UAAU,IAAI,QAAQ,CASrC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAU7D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,QAAQ,CAMjF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAE5E;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAExD;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAKrE;AAED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAEzE;AAED,wBAAgB,iBAAiB,IAAI,oBAAoB,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,CAE/C;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrE,kBAAkB,CAQpB"}
package/dist/ui/config.js CHANGED
@@ -65,4 +65,21 @@ export function getCustomProvider() {
65
65
  export function deleteCustomProvider() {
66
66
  return saveConfig({ customProvider: null });
67
67
  }
68
+ export function getIntentRouterConfig() {
69
+ return { ...loadConfig().intentRouter };
70
+ }
71
+ /** Merge into the stored router settings; `apiKey: null` removes the key. */
72
+ export function setIntentRouterConfig(patch) {
73
+ const next = { ...getIntentRouterConfig() };
74
+ if (patch.apiKey === null)
75
+ delete next.apiKey;
76
+ else if (typeof patch.apiKey === 'string')
77
+ next.apiKey = patch.apiKey;
78
+ if (typeof patch.enabled === 'boolean')
79
+ next.enabled = patch.enabled;
80
+ if (typeof patch.instant === 'boolean')
81
+ next.instant = patch.instant;
82
+ saveConfig({ intentRouter: next });
83
+ return next;
84
+ }
68
85
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Single-step commands the standalone UI may run without a language model when
3
+ * Jev (TypeSafe's System One model) is confident the request is exactly one of
4
+ * them. Anything destructive is marked `risky` and never runs this way.
5
+ */
6
+ export type IntentSlot = 'count' | 'opacity' | 'blendMode';
7
+ export interface SlotValues {
8
+ count?: number;
9
+ opacity?: number;
10
+ blendMode?: string;
11
+ }
12
+ export interface InstantIntent {
13
+ /** Choice label sent to Jev; stable snake_case. */
14
+ id: string;
15
+ /** Criterion description sent to Jev. */
16
+ describe: string;
17
+ /** Short label for the UI chip, e.g. "Undo". */
18
+ label: string;
19
+ /** MCP tool to call. */
20
+ tool: string;
21
+ /** Slots that must be resolved before the intent can run instantly. */
22
+ requires?: IntentSlot[];
23
+ /** Slots used when present. */
24
+ optional?: IntentSlot[];
25
+ /** Destructive or hard to undo: route to a reviewed plan instead. */
26
+ risky?: boolean;
27
+ /** Pixels change, so fetch a preview afterwards. */
28
+ preview?: boolean;
29
+ args: (slots: SlotValues) => Record<string, unknown>;
30
+ /** Label with slot values, e.g. "Opacity 60%". */
31
+ describeCall?: (slots: SlotValues) => string;
32
+ }
33
+ export declare const INSTANT_INTENTS: readonly InstantIntent[];
34
+ export declare const OTHER_INTENT = "other";
35
+ export declare const OTHER_DESCRIPTION = "Anything else: more than one change, a change that is not listed here, a question, or unclear.";
36
+ export declare function findIntent(id: string): InstantIntent | undefined;
37
+ export declare function humanBlendMode(mode: string): string;
38
+ export declare const BLEND_MODES: readonly string[];
39
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC;CAC9C;AAID,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAgJnD,CAAC;AAEF,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,iBAAiB,mGACoE,CAAC;AAEnG,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAA0B,CAAC"}
@@ -0,0 +1,160 @@
1
+ import { LAYER_BLEND_MODE_ENUM } from '../../tools/blend-mode.js';
2
+ const none = () => ({});
3
+ export const INSTANT_INTENTS = [
4
+ {
5
+ id: 'undo',
6
+ describe: 'Undo the most recent change (optionally a number of steps).',
7
+ label: 'Undo',
8
+ tool: 'photoshop_undo',
9
+ optional: ['count'],
10
+ args: (s) => (s.count ? { steps: s.count } : {}),
11
+ describeCall: (s) => (s.count && s.count > 1 ? `Undo ${s.count} steps` : 'Undo 1 step'),
12
+ },
13
+ {
14
+ id: 'redo',
15
+ describe: 'Redo the change that was just undone (optionally a number of steps).',
16
+ label: 'Redo',
17
+ tool: 'photoshop_redo',
18
+ optional: ['count'],
19
+ args: (s) => (s.count ? { steps: s.count } : {}),
20
+ describeCall: (s) => (s.count && s.count > 1 ? `Redo ${s.count} steps` : 'Redo 1 step'),
21
+ },
22
+ {
23
+ id: 'remove_background',
24
+ describe: 'Remove or cut out the background so only the main subject remains.',
25
+ label: 'Remove background',
26
+ tool: 'photoshop_recipe_remove_background',
27
+ preview: true,
28
+ args: none,
29
+ },
30
+ {
31
+ id: 'select_subject',
32
+ describe: 'Select the main subject (person or object) in the image.',
33
+ label: 'Select subject',
34
+ tool: 'photoshop_select_subject',
35
+ args: none,
36
+ },
37
+ {
38
+ id: 'select_all',
39
+ describe: 'Select the whole canvas.',
40
+ label: 'Select all',
41
+ tool: 'photoshop_select_all',
42
+ args: none,
43
+ },
44
+ {
45
+ id: 'deselect',
46
+ describe: 'Clear the current selection.',
47
+ label: 'Deselect',
48
+ tool: 'photoshop_deselect',
49
+ args: none,
50
+ },
51
+ {
52
+ id: 'invert_selection',
53
+ describe: 'Invert the current selection.',
54
+ label: 'Invert selection',
55
+ tool: 'photoshop_invert_selection',
56
+ args: none,
57
+ },
58
+ {
59
+ id: 'black_and_white',
60
+ describe: 'Make the image or layer black and white / grayscale / desaturated.',
61
+ label: 'Black & white',
62
+ tool: 'photoshop_desaturate',
63
+ preview: true,
64
+ args: none,
65
+ },
66
+ {
67
+ id: 'invert_colors',
68
+ describe: 'Invert the colors (make a negative).',
69
+ label: 'Invert colors',
70
+ tool: 'photoshop_invert',
71
+ preview: true,
72
+ args: none,
73
+ },
74
+ {
75
+ id: 'auto_contrast',
76
+ describe: 'Apply automatic contrast.',
77
+ label: 'Auto contrast',
78
+ tool: 'photoshop_auto_contrast',
79
+ preview: true,
80
+ args: none,
81
+ },
82
+ {
83
+ id: 'auto_levels',
84
+ describe: 'Apply automatic levels / auto tone.',
85
+ label: 'Auto levels',
86
+ tool: 'photoshop_auto_levels',
87
+ preview: true,
88
+ args: none,
89
+ },
90
+ {
91
+ id: 'set_blend_mode',
92
+ describe: 'Change the blend mode of the active layer only.',
93
+ label: 'Blend mode',
94
+ tool: 'photoshop_set_layer_blend_mode',
95
+ requires: ['blendMode'],
96
+ preview: true,
97
+ args: (s) => ({ blendMode: s.blendMode }),
98
+ describeCall: (s) => `Blend mode ${s.blendMode ? humanBlendMode(s.blendMode) : ''}`.trim(),
99
+ },
100
+ {
101
+ id: 'set_opacity',
102
+ describe: 'Change the opacity of the active layer only.',
103
+ label: 'Opacity',
104
+ tool: 'photoshop_set_layer_opacity',
105
+ requires: ['opacity'],
106
+ preview: true,
107
+ args: (s) => ({ opacity: s.opacity }),
108
+ describeCall: (s) => `Opacity ${s.opacity}%`,
109
+ },
110
+ {
111
+ id: 'duplicate_layer',
112
+ describe: 'Duplicate the active layer.',
113
+ label: 'Duplicate layer',
114
+ tool: 'photoshop_duplicate_layer',
115
+ args: none,
116
+ },
117
+ {
118
+ id: 'new_layer',
119
+ describe: 'Add a new empty layer.',
120
+ label: 'New layer',
121
+ tool: 'photoshop_create_layer',
122
+ args: none,
123
+ },
124
+ {
125
+ id: 'show_preview',
126
+ describe: 'Show what the document looks like right now, without changing it.',
127
+ label: 'Show preview',
128
+ tool: 'photoshop_get_preview',
129
+ args: none,
130
+ },
131
+ {
132
+ id: 'merge_visible',
133
+ describe: 'Merge all visible layers into one.',
134
+ label: 'Merge visible layers',
135
+ tool: 'photoshop_merge_visible_layers',
136
+ risky: true,
137
+ args: none,
138
+ },
139
+ {
140
+ id: 'flatten_image',
141
+ describe: 'Flatten the whole image into a single layer.',
142
+ label: 'Flatten image',
143
+ tool: 'photoshop_flatten_image',
144
+ risky: true,
145
+ args: none,
146
+ },
147
+ ];
148
+ export const OTHER_INTENT = 'other';
149
+ export const OTHER_DESCRIPTION = 'Anything else: more than one change, a change that is not listed here, a question, or unclear.';
150
+ export function findIntent(id) {
151
+ return INSTANT_INTENTS.find((intent) => intent.id === id);
152
+ }
153
+ export function humanBlendMode(mode) {
154
+ const spaced = mode
155
+ .toLowerCase()
156
+ .replace(/^(color|linear|vivid|pin|hard|soft|darker|lighter)(?=[a-z])/, '$1 ');
157
+ return spaced.charAt(0).toUpperCase() + spaced.slice(1);
158
+ }
159
+ export const BLEND_MODES = LAYER_BLEND_MODE_ENUM;
160
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Jev intent router for the standalone UI.
3
+ *
4
+ * One TypeSafe `systemOne` call asks a handful of questions about the prompt in
5
+ * parallel; plain code below turns the answers into a route:
6
+ *
7
+ * instant – exactly one known, safe command → run it directly, no LLM call
8
+ * plan – several known operations → Action Plan (one planning LLM call)
9
+ * agent – needs to look at the image → agent loop with previews
10
+ * clarify – too vague → agent loop told to ask one question first
11
+ *
12
+ * Jev decides, code acts: thresholds live here, not in the model.
13
+ */
14
+ export type IntentRoute = 'instant' | 'plan' | 'agent' | 'clarify';
15
+ export interface InstantCall {
16
+ tool: string;
17
+ args: Record<string, unknown>;
18
+ preview: boolean;
19
+ label: string;
20
+ }
21
+ export interface IntentDecision {
22
+ route: IntentRoute;
23
+ /** Choice label Jev picked (`other` when none fits). */
24
+ intent: string;
25
+ /** Human text for the chip, e.g. "Undo 1 step" or "Plan". */
26
+ label: string;
27
+ /** Jev's confidence in the intent choice, 0..1. */
28
+ confidence: number;
29
+ signals: {
30
+ multiStep: number;
31
+ needsVisual: number;
32
+ actionable: number;
33
+ };
34
+ call?: InstantCall;
35
+ reason: string;
36
+ latencyMs: number;
37
+ model: string;
38
+ }
39
+ /** Minimal slice of the SDK client, so tests can pass a fake. */
40
+ export interface SystemOneClient {
41
+ systemOne(request: {
42
+ state: unknown;
43
+ questions: Record<string, unknown>;
44
+ }, options?: {
45
+ signal?: AbortSignal;
46
+ timeout?: number;
47
+ }): PromiseLike<{
48
+ model: string;
49
+ answers: Record<string, unknown>;
50
+ }>;
51
+ }
52
+ export declare const THRESHOLDS: {
53
+ /** Intent confidence needed to skip the LLM. Docs suggest ~0.85 for acting directly. */
54
+ readonly instant: 0.85;
55
+ /** A slot value (number, blend mode) must be at least this sure. */
56
+ readonly slot: 0.7;
57
+ /** P(multi-step) must stay below this for instant. */
58
+ readonly multiStepMax: 0.3;
59
+ /** Below this P(actionable) we ask a question first. */
60
+ readonly clarifyBelow: 0.35;
61
+ /** Above this P(needs visual) the agent loop with previews is used. */
62
+ readonly visualMin: 0.6;
63
+ /** Above this P(multi-step) the Action Plan is used. */
64
+ readonly planMin: 0.5;
65
+ };
66
+ /** Candidate numbers for the pre-parsed value pattern: Jev picks one, code parses it. */
67
+ export declare function extractNumbers(prompt: string): string[];
68
+ type Question = {
69
+ type: 'choice';
70
+ instructions: string;
71
+ criteria: Record<string, string | null>;
72
+ } | {
73
+ type: 'noul';
74
+ instructions: string;
75
+ criteria?: {
76
+ true?: string;
77
+ false?: string;
78
+ };
79
+ };
80
+ export declare function buildQuestions(prompt: string): Record<string, Question>;
81
+ /** Pure decision logic: Jev answers in, route out. */
82
+ export declare function decide(answers: Record<string, unknown>, meta: {
83
+ latencyMs: number;
84
+ model: string;
85
+ }): IntentDecision;
86
+ export declare function classifyIntent(prompt: string, client: SystemOneClient, options?: {
87
+ signal?: AbortSignal;
88
+ timeoutMs?: number;
89
+ now?: () => number;
90
+ }): Promise<IntentDecision>;
91
+ export {};
92
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/ui/intent/router.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,SAAS,CACP,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAC/D,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACnD,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACrE;AAED,eAAO,MAAM,UAAU;IACrB,wFAAwF;;IAExF,oEAAoE;;IAEpE,sDAAsD;;IAEtD,wDAAwD;;IAExD,uEAAuE;;IAEvE,wDAAwD;;CAEhD,CAAC;AAIX,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAGvD;AAED,KAAK,QAAQ,GACT;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CAAE,GACjF;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEzF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAiDvE;AAuCD,sDAAsD;AACtD,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CA2ChB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,cAAc,CAAC,CAQzB"}