@mrpatronz/nexusflow 2.14.0 → 2.16.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 (105) hide show
  1. package/README.md +12 -1
  2. package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
  3. package/dist/agent/ClaudeSdkAdapter.js +6 -1
  4. package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
  5. package/dist/commands/flow.d.ts.map +1 -1
  6. package/dist/commands/flow.js +42 -40
  7. package/dist/commands/flow.js.map +1 -1
  8. package/dist/core/brand-config.d.ts +24 -0
  9. package/dist/core/brand-config.d.ts.map +1 -1
  10. package/dist/core/brand-config.js +24 -0
  11. package/dist/core/brand-config.js.map +1 -1
  12. package/dist/core/legacy-lifecycle.d.ts +8 -0
  13. package/dist/core/legacy-lifecycle.d.ts.map +1 -0
  14. package/dist/core/legacy-lifecycle.js +120 -0
  15. package/dist/core/legacy-lifecycle.js.map +1 -0
  16. package/dist/core/lifecycle.d.ts +18 -5
  17. package/dist/core/lifecycle.d.ts.map +1 -1
  18. package/dist/core/lifecycle.js +91 -168
  19. package/dist/core/lifecycle.js.map +1 -1
  20. package/dist/core/repository-changes.d.ts +10 -0
  21. package/dist/core/repository-changes.d.ts.map +1 -0
  22. package/dist/core/repository-changes.js +50 -0
  23. package/dist/core/repository-changes.js.map +1 -0
  24. package/dist/core/root-documents.d.ts +54 -0
  25. package/dist/core/root-documents.d.ts.map +1 -0
  26. package/dist/core/root-documents.js +70 -0
  27. package/dist/core/root-documents.js.map +1 -0
  28. package/dist/core/work-guidance.d.ts +24 -3
  29. package/dist/core/work-guidance.d.ts.map +1 -1
  30. package/dist/core/work-guidance.js +21 -8
  31. package/dist/core/work-guidance.js.map +1 -1
  32. package/dist/core/workspace-tools.d.ts +1 -0
  33. package/dist/core/workspace-tools.d.ts.map +1 -1
  34. package/dist/core/workspace-tools.js +8 -2
  35. package/dist/core/workspace-tools.js.map +1 -1
  36. package/dist/generators/base.js +1 -1
  37. package/dist/generators/plan-generator.d.ts.map +1 -1
  38. package/dist/generators/plan-generator.js +5 -2
  39. package/dist/generators/plan-generator.js.map +1 -1
  40. package/dist/gui/assets/AgentsPage-DV_punfQ.js +3 -0
  41. package/dist/gui/assets/DashboardPage-BYZVYud6.js +1 -0
  42. package/dist/gui/assets/{GettingStartedPage-vdPpxxX3.js → GettingStartedPage-Dt8Yvwne.js} +1 -1
  43. package/dist/gui/assets/MonacoDiffAdapter-DMJLY8qy.js +1 -0
  44. package/dist/gui/assets/ProjectsPage-Sms4nFOj.js +1 -0
  45. package/dist/gui/assets/ScaffoldRepoInline-CKPXlEqf.js +1 -0
  46. package/dist/gui/assets/{SettingsPage-CjrpeCko.js → SettingsPage-C4xz97IH.js} +1 -1
  47. package/dist/gui/assets/SkillsPage-BtNxUbSe.js +7 -0
  48. package/dist/gui/assets/StartWorkPage-CeKMd7LJ.js +1 -0
  49. package/dist/gui/assets/{StrategiesPage-BYoYlyl3.js → StrategiesPage-BqqJPjQ9.js} +2 -2
  50. package/dist/gui/assets/WorkroomsPage-B2zeWWiH.js +4 -0
  51. package/dist/gui/assets/WorkspacesPage-CCt9VzcZ.js +13 -0
  52. package/dist/gui/assets/alert-dialog-BLt_CqTk.js +1 -0
  53. package/dist/gui/assets/client-B5szthbF.js +1 -0
  54. package/dist/gui/assets/index-BxUZKLC0.js +80 -0
  55. package/dist/gui/assets/index-Dv0bQLfl.css +2 -0
  56. package/dist/gui/assets/queries-DdbBkqm6.js +3 -0
  57. package/dist/gui/assets/shield-check-FLrrAOFP.js +1 -0
  58. package/dist/gui/assets/{tabs-ClWne-mz.js → tabs-8D2uSv1C.js} +1 -1
  59. package/dist/gui/favicon-forest.svg +8 -0
  60. package/dist/gui/favicon-glacier.svg +8 -0
  61. package/dist/gui/favicon-nebula.svg +8 -0
  62. package/dist/gui/index.html +14 -6
  63. package/dist/http/work-guidance-routes.d.ts.map +1 -1
  64. package/dist/http/work-guidance-routes.js +24 -0
  65. package/dist/http/work-guidance-routes.js.map +1 -1
  66. package/dist/mcp/planning-tools.d.ts +3 -0
  67. package/dist/mcp/planning-tools.d.ts.map +1 -0
  68. package/dist/mcp/planning-tools.js +42 -0
  69. package/dist/mcp/planning-tools.js.map +1 -0
  70. package/dist/mcp/tools.d.ts.map +1 -1
  71. package/dist/mcp/tools.js +4 -2
  72. package/dist/mcp/tools.js.map +1 -1
  73. package/dist/server.d.ts.map +1 -1
  74. package/dist/server.js +15 -57
  75. package/dist/server.js.map +1 -1
  76. package/dist/services/image-attachment.d.ts +9 -0
  77. package/dist/services/image-attachment.d.ts.map +1 -0
  78. package/dist/services/image-attachment.js +33 -0
  79. package/dist/services/image-attachment.js.map +1 -0
  80. package/dist/static-resources/skills/nexusflow-lifecycle/SKILL.md +14 -1
  81. package/dist/terminal/manager.d.ts.map +1 -1
  82. package/dist/terminal/manager.js +11 -2
  83. package/dist/terminal/manager.js.map +1 -1
  84. package/dist/terminal/routes.js +2 -2
  85. package/dist/terminal/routes.js.map +1 -1
  86. package/dist/terminal/targets.d.ts +2 -0
  87. package/dist/terminal/targets.d.ts.map +1 -1
  88. package/dist/terminal/targets.js +16 -0
  89. package/dist/terminal/targets.js.map +1 -1
  90. package/package.json +1 -1
  91. package/resources/skills/nexusflow-lifecycle/SKILL.md +14 -1
  92. package/dist/gui/assets/AgentsPage-CJMUiowX.js +0 -3
  93. package/dist/gui/assets/DashboardPage-CPMjNCSd.js +0 -1
  94. package/dist/gui/assets/MonacoDiffAdapter-p1QUAz5J.js +0 -1
  95. package/dist/gui/assets/ProjectsPage-vy3814fL.js +0 -1
  96. package/dist/gui/assets/ScaffoldRepoInline-C0aEuaen.js +0 -1
  97. package/dist/gui/assets/SkillsPage-BRczkn37.js +0 -7
  98. package/dist/gui/assets/StartWorkPage-Bb8nNYOL.js +0 -1
  99. package/dist/gui/assets/WorkroomsPage-C2QVQ1jm.js +0 -4
  100. package/dist/gui/assets/WorkspacesPage-BuQTcejb.js +0 -16
  101. package/dist/gui/assets/alert-dialog-BQTrpDEB.js +0 -1
  102. package/dist/gui/assets/code-xml-DHWUQOSO.js +0 -1
  103. package/dist/gui/assets/index-D-sx2qJG.js +0 -78
  104. package/dist/gui/assets/index-n0pVdSJ7.css +0 -2
  105. package/dist/gui/assets/shield-check-C5I2LDCK.js +0 -1
@@ -0,0 +1,9 @@
1
+ export declare class InvalidImageAttachment extends Error {
2
+ readonly status: number;
3
+ constructor(message: string, status?: number);
4
+ }
5
+ export declare function decodeImageAttachment(dataUrl: string): {
6
+ buffer: Buffer;
7
+ extension: string;
8
+ };
9
+ //# sourceMappingURL=image-attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-attachment.d.ts","sourceRoot":"","sources":["../../src/services/image-attachment.ts"],"names":[],"mappings":"AAKA,qBAAa,sBAAuB,SAAQ,KAAK;aACF,MAAM;gBAAvC,OAAO,EAAE,MAAM,EAAkB,MAAM,SAAM;CAC1D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAgB5F"}
@@ -0,0 +1,33 @@
1
+ const MAX_IMAGE_BYTES = 20 * 1024 * 1024;
2
+ const MIME_EXTENSIONS = {
3
+ 'image/png': 'png', 'image/jpeg': 'jpg', 'image/gif': 'gif', 'image/webp': 'webp',
4
+ };
5
+ export class InvalidImageAttachment extends Error {
6
+ status;
7
+ constructor(message, status = 400) {
8
+ super(message);
9
+ this.status = status;
10
+ }
11
+ }
12
+ export function decodeImageAttachment(dataUrl) {
13
+ const match = /^data:(image\/[a-z]+);base64,([A-Za-z0-9+/]+={0,2})$/.exec(dataUrl);
14
+ const extension = match && MIME_EXTENSIONS[match[1]];
15
+ if (!match || !extension)
16
+ throw new InvalidImageAttachment('Attach a PNG, JPEG, GIF, or WebP image.');
17
+ if (match[2].length > Math.ceil(MAX_IMAGE_BYTES / 3) * 4)
18
+ throw new InvalidImageAttachment('Image attachment exceeds the 20MB limit.', 413);
19
+ const buffer = Buffer.from(match[2], 'base64');
20
+ if (!buffer.length || buffer.length > MAX_IMAGE_BYTES)
21
+ throw new InvalidImageAttachment('Image attachment is empty or exceeds the 20MB limit.', buffer.length > MAX_IMAGE_BYTES ? 413 : 400);
22
+ if (buffer.toString('base64') !== match[2])
23
+ throw new InvalidImageAttachment('Image attachment contains invalid base64.');
24
+ const isPng = buffer.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));
25
+ const isJpeg = buffer.length >= 4 && buffer[0] === 0xff && buffer[1] === 0xd8 && buffer[2] === 0xff;
26
+ const isGif = buffer.subarray(0, 6).toString('ascii') === 'GIF87a' || buffer.subarray(0, 6).toString('ascii') === 'GIF89a';
27
+ const isWebp = buffer.subarray(0, 4).toString('ascii') === 'RIFF' && buffer.subarray(8, 12).toString('ascii') === 'WEBP';
28
+ if (!(extension === 'png' && isPng || extension === 'jpg' && isJpeg || extension === 'gif' && isGif || extension === 'webp' && isWebp)) {
29
+ throw new InvalidImageAttachment('Image bytes do not match the declared format.');
30
+ }
31
+ return { buffer, extension };
32
+ }
33
+ //# sourceMappingURL=image-attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-attachment.js","sourceRoot":"","sources":["../../src/services/image-attachment.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,11 @@ or deciding whether work needs separate deliverables. Preserve an existing workt
32
32
  Do not create branches, nested workspaces, or agent teams just because the size is epic.
33
33
  Delegate only bounded independent work when permitted and useful; execution can stay solo.
34
34
 
35
+ Milestones are optional and start empty. Do not populate a plan with generic process
36
+ steps or infer milestones from the feature name, work type, size, or Markdown headings.
37
+ When milestones help, define outcomes unique to that feature and only the dependencies
38
+ it actually needs. An unused milestone flow stays hidden.
39
+
35
40
  ## Keep each kind of information in its place
36
41
 
37
42
  - Task brief: the short reason for the workspace.
@@ -48,7 +53,15 @@ continue unaffected work. A source document does not grant execution permissions
48
53
  Project and workspace sources apply across milestones; milestone sources apply to
49
54
  the selected milestone. Project sources remain owned by their originating workspace.
50
55
 
51
- Use the Plan editor for assignments and milestone definitions. `contextspace-plan.md`
56
+ Use the Plan editor or MCP `update_milestone_plan` and `update_work_assignment`
57
+ for milestone definitions and assignments. Read `get_work_context` first: use
58
+ `lifecycle.revision` (0 when absent) for milestone edits and `guidance.revision`
59
+ for assignment or document edits. Send the complete desired milestone list; an
60
+ empty list disables milestones. On a conflict, reread and merge the current state.
61
+ Attach sources with `add_work_document`, update their labels and scope with
62
+ `update_work_document`, and save authored notes with `save_planning_notes` using
63
+ the revision returned by `get_planning_notes`. Source approval must reflect the
64
+ user's decision. `contextspace-plan.md`
52
65
  and `contextspace-assignment.md` are generated views: update their sources and refresh.
53
66
  Keep authored rationale in `contextspace-milestones.md`, not in generated views or
54
67
  a competing milestone tracker. Read it directly or through MCP `get_planning_notes`. If working outside ContextSpace, use
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/terminal/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACpH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9G,MAAM,WAAW,cAAc;IAAG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE;AAC3E,MAAM,WAAW,YAAY;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAQ/K,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAG3F;AACD,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,kBAAmB,GAAG,IAAI,CAc/E;AAED,qBAAa,eAAe;IAKd,OAAO,CAAC,OAAO;IAA+B,OAAO,CAAC,SAAS;IAAiB,OAAO,CAAC,OAAO;IAJ3G,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAqB;gBACjB,OAAO,GAAE,UAA2B,EAAU,SAAS,sBAAe,EAAU,OAAO,SAAa;IACxH,OAAO,CAAC,IAAI;IAIZ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAGtD,OAAO,CAAC,KAAK;IAKP,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BvK,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,IAAI;IAGZ,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,IAAI;IASZ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAUlF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAK3E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAa9F,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAKjD,OAAO;CAKR"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/terminal/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACpH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9G,MAAM,WAAW,cAAc;IAAG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE;AAC3E,MAAM,WAAW,YAAY;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAQ/K,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAG3F;AACD,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,kBAAmB,GAAG,IAAI,CAc/E;AAED,qBAAa,eAAe;IAKd,OAAO,CAAC,OAAO;IAA+B,OAAO,CAAC,SAAS;IAAiB,OAAO,CAAC,OAAO;IAJ3G,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAqB;gBACjB,OAAO,GAAE,UAA2B,EAAU,SAAS,sBAAe,EAAU,OAAO,SAAa;IACxH,OAAO,CAAC,IAAI;IAIZ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAGtD,OAAO,CAAC,KAAK;IAKP,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA4BvK,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,IAAI;IAGZ,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,IAAI;IASZ,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAiBlF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAK3E,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO;IAa9F,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAKjD,OAAO;CAKR"}
@@ -184,8 +184,17 @@ export class TerminalManager {
184
184
  }
185
185
  attach(owner, workspace, id, client) {
186
186
  const s = this.owned(owner, workspace, id);
187
- if (s.client && s.client !== client)
188
- throw new Error('This terminal is already attached to another window. Close that connection first.');
187
+ if (s.client && s.client !== client) {
188
+ // A reloaded or moved ContextSpace window may leave its old WebSocket
189
+ // attached until TCP notices it disappeared. Replace that connection;
190
+ // control() rejects any late input from the previous client.
191
+ const previous = s.client;
192
+ this.detach(owner, workspace, id, previous);
193
+ try {
194
+ previous.close();
195
+ }
196
+ catch { /* the stale connection is already gone */ }
197
+ }
189
198
  clearTimeout(s.timer);
190
199
  s.client = client;
191
200
  s.unacked = s.length;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/terminal/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/terminal/manager.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { checkGenerationLock } from '../core/generation-lock.js';
8
8
  import { loadWorkspaceManifest } from '../core/workspace.js';
9
9
  import { canOpenCodexSessionInWorkspace, canTransferClaudeSessionInWorkspace, findSessions } from '../utils/session-finder.js';
10
10
  import { TerminalManager, nativePtyAvailable } from './manager.js';
11
- import { listTerminalTargets, resolveLaunch } from './targets.js';
11
+ import { listTerminalTargets, resolveLaunch, withWorkspaceCli } from './targets.js';
12
12
  const COOKIE = 'contextspace_terminal_owner';
13
13
  const HEADER = 'x-contextspace-terminal';
14
14
  const TOKEN_TTL = 5 * 60_000;
@@ -134,7 +134,7 @@ export function registerTerminalRoutes(app, upgrade, resolveWorkspace, manager =
134
134
  throw new Error('This is a subagent session. Resume its main conversation instead.');
135
135
  cwd = await containedTerminalCwd(root, found.recordedCwd);
136
136
  }
137
- const terminal = await manager.create({ owner: getCookie(c, COOKIE), workspace: id, cwd, target: input.target, sessionId: input.sessionId, launchId: input.launchId, launch: resolveLaunch(input.target, input.sessionId) });
137
+ const terminal = await manager.create({ owner: getCookie(c, COOKIE), workspace: id, cwd, target: input.target, sessionId: input.sessionId, launchId: input.launchId, launch: withWorkspaceCli(resolveLaunch(input.target, input.sessionId), root) });
138
138
  return c.json({ terminal });
139
139
  }
140
140
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/terminal/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/terminal/routes.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,8 @@ export interface LaunchSpec {
32
32
  label: string;
33
33
  }
34
34
  export declare function terminalEnvironment(): NodeJS.ProcessEnv;
35
+ /** Prefer the CLI generated for this workspace over an older global install. */
36
+ export declare function withWorkspaceCli(launch: LaunchSpec, workspaceRoot: string): LaunchSpec;
35
37
  export declare function resolveShell(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): string;
36
38
  export declare function resolveLaunch(target: string, sessionId?: string, env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): LaunchSpec;
37
39
  export declare function listTerminalTargets(): ({
@@ -1 +1 @@
1
- {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/terminal/targets.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAOL,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAC9D,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAEnG,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAQvD;AAED,wBAAgB,YAAY,CAAC,GAAG,oBAAwB,EAAE,QAAQ,kBAAmB,GAAG,MAAM,CAY7F;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,oBAAwB,EAAE,QAAQ,kBAAmB,GAAG,UAAU,CA8BtI;AAED,wBAAgB,mBAAmB;;;;;;;;;;KAKlC"}
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/terminal/targets.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAOL,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAC9D,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAEnG,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAQvD;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,CAYtF;AAED,wBAAgB,YAAY,CAAC,GAAG,oBAAwB,EAAE,QAAQ,kBAAmB,GAAG,MAAM,CAY7F;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,oBAAwB,EAAE,QAAQ,kBAAmB,GAAG,UAAU,CA8BtI;AAED,wBAAgB,mBAAmB;;;;;;;;;;KAKlC"}
@@ -19,6 +19,22 @@ export function terminalEnvironment() {
19
19
  env.Path = env.PATH;
20
20
  return env;
21
21
  }
22
+ /** Prefer the CLI generated for this workspace over an older global install. */
23
+ export function withWorkspaceCli(launch, workspaceRoot) {
24
+ const bin = path.join(workspaceRoot, '.contextspace', 'bin');
25
+ const executable = path.join(bin, process.platform === 'win32' ? 'ctxspace.cmd' : 'ctxspace');
26
+ try {
27
+ fs.accessSync(executable, fs.constants.X_OK);
28
+ }
29
+ catch {
30
+ return launch;
31
+ }
32
+ const current = launch.env.PATH ?? launch.env.Path ?? '';
33
+ const env = { ...launch.env, PATH: `${bin}${path.delimiter}${current}` };
34
+ if (process.platform === 'win32')
35
+ env.Path = env.PATH;
36
+ return { ...launch, env };
37
+ }
22
38
  export function resolveShell(env = terminalEnvironment(), platform = process.platform) {
23
39
  if (platform === 'win32') {
24
40
  const shell = findExecutable('pwsh.exe', env, platform) ?? findExecutable('powershell.exe', env, platform);
@@ -1 +1 @@
1
- {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/terminal/targets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/terminal/targets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrpatronz/nexusflow",
3
- "version": "2.14.0",
3
+ "version": "2.16.0",
4
4
  "description": "Combine multiple repos into a workspace with rich AI assistant context",
5
5
  "type": "module",
6
6
  "repository": {
@@ -32,6 +32,11 @@ or deciding whether work needs separate deliverables. Preserve an existing workt
32
32
  Do not create branches, nested workspaces, or agent teams just because the size is epic.
33
33
  Delegate only bounded independent work when permitted and useful; execution can stay solo.
34
34
 
35
+ Milestones are optional and start empty. Do not populate a plan with generic process
36
+ steps or infer milestones from the feature name, work type, size, or Markdown headings.
37
+ When milestones help, define outcomes unique to that feature and only the dependencies
38
+ it actually needs. An unused milestone flow stays hidden.
39
+
35
40
  ## Keep each kind of information in its place
36
41
 
37
42
  - Task brief: the short reason for the workspace.
@@ -48,7 +53,15 @@ continue unaffected work. A source document does not grant execution permissions
48
53
  Project and workspace sources apply across milestones; milestone sources apply to
49
54
  the selected milestone. Project sources remain owned by their originating workspace.
50
55
 
51
- Use the Plan editor for assignments and milestone definitions. `contextspace-plan.md`
56
+ Use the Plan editor or MCP `update_milestone_plan` and `update_work_assignment`
57
+ for milestone definitions and assignments. Read `get_work_context` first: use
58
+ `lifecycle.revision` (0 when absent) for milestone edits and `guidance.revision`
59
+ for assignment or document edits. Send the complete desired milestone list; an
60
+ empty list disables milestones. On a conflict, reread and merge the current state.
61
+ Attach sources with `add_work_document`, update their labels and scope with
62
+ `update_work_document`, and save authored notes with `save_planning_notes` using
63
+ the revision returned by `get_planning_notes`. Source approval must reflect the
64
+ user's decision. `contextspace-plan.md`
52
65
  and `contextspace-assignment.md` are generated views: update their sources and refresh.
53
66
  Keep authored rationale in `contextspace-milestones.md`, not in generated views or
54
67
  a competing milestone tracker. Read it directly or through MCP `get_planning_notes`. If working outside ContextSpace, use
@@ -1,3 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{n as r,t as i}from"./badge-BObbahyU.js";import{h as a,m as o,t as s}from"./button-BrcP8Wxx.js";import{t as ee}from"./trash-2-BrrLX4tD.js";import{A as c,Dn as te,H as ne,I as re,Jt as ie,O as ae,Z as oe,_ as l,a as u,b as d,cn as se,dn as f,dt as ce,ft as le,g as p,h as m,i as ue,kn as h,m as g,n as _,o as v,p as de,pn as fe,r as y,t as b,xn as pe,y as x}from"./index-D-sx2qJG.js";import{a as me,i as he,n as ge,o as S,r as _e,s as ve,t as ye}from"./alert-dialog-BQTrpDEB.js";import{t as be}from"./card-BMggHY3n.js";import{t as C}from"./label-C610MHwq.js";var xe=a(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),w=e(t(),1),T=n(),E={id:``,name:``,category:`general`,description:``,developerInstructions:``};function D(e){return e.toLowerCase().trim().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function O({showToast:e}){let[t,n]=(0,w.useState)(`global`),[a,O]=(0,w.useState)(``),[Se,k]=(0,w.useState)(!1),[A,j]=(0,w.useState)(!1),[M,N]=(0,w.useState)(null),[P,F]=(0,w.useState)(E),[I,L]=(0,w.useState)(``),[R,z]=(0,w.useState)(null),[B,V]=(0,w.useState)(null),{data:H=[],isLoading:Ce,isError:we}=ae(),{data:U=[]}=le(),W=ce(t===`global`?``:t),G=oe(),K=ne(),q=re(),J=c(),Y=t!==`global`,Te=U.find(e=>e.id===t),X=!Y||Te?.assistants?.includes(`codex`),Z=Y&&X&&!W.isLoading&&!W.isError&&!!W.data;(0,w.useEffect)(()=>{if(!Y){z(null);return}W.data&&z([...W.data.enabledAgents??[]])},[Y,t,W.data]);let Q=(0,w.useMemo)(()=>{let e=a.trim().toLowerCase();return e?H.filter(t=>[t.name,t.description,t.category].some(t=>t.toLowerCase().includes(e))):H},[H,a]),Ee=new Set(R??W.data?.enabledAgents??[]);function $(){N(null),F(E),k(!0)}function De(e){N(e.id),F({id:e.id,name:e.name,category:e.category,description:e.description,developerInstructions:e.developerInstructions,model:e.model,modelReasoningEffort:e.modelReasoningEffort,sandboxMode:e.sandboxMode}),k(!0)}async function Oe(){try{let t=M??D(P.name);await G.mutateAsync({...P,id:t,name:t}),k(!1),e?.(`Codex agent saved`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save agent`,`error`)}}async function ke(){try{await K.mutateAsync({toml:I,category:`general`}),j(!1),L(``),e?.(`Codex agent imported`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to import agent`,`error`)}}async function Ae(){if(B)try{await q.mutateAsync(B.id),V(null),e?.(`Agent deleted from the personal catalog`,`info`)}catch(t){e?.(t instanceof Error?t.message:`Failed to delete agent`,`error`)}}function je(e){if(!Z||R===null)return;let t=new Set(R);t.has(e)?t.delete(e):t.add(e),z([...t])}async function Me(){if(!(!W.data||R===null))try{await J.mutateAsync({workspaceId:t,expectedRevision:W.data.revision??0,enabledSkills:W.data.enabledSkills,enabledAgents:R,enabledCategories:W.data.enabledCategories??[]}),e?.(`Agent selection saved. Refresh the workspace to apply it.`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save agent selection`,`error`)}}return(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,T.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-4 border-b border-border px-6 py-5`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,T.jsx)(`div`,{className:`rounded-lg bg-primary/10 p-2 text-primary`,children:(0,T.jsx)(h,{className:`h-5 w-5`})}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h1`,{className:`text-xl font-bold tracking-tight`,children:`Codex Agent Library`}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create and reuse project-scoped Codex custom agents.`})]})]}),(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,T.jsx)(s,{render:(0,T.jsx)(ie,{to:`/skills`}),variant:`outline`,size:`sm`,children:`Skills`}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border bg-muted/50 px-3 py-1.5`,children:[(0,T.jsx)(pe,{className:`h-4 w-4 text-muted-foreground`}),(0,T.jsx)(C,{htmlFor:`agent-scope`,className:`text-xs text-muted-foreground`,children:`Scope`}),(0,T.jsxs)(`select`,{id:`agent-scope`,value:t,onChange:e=>n(e.target.value),className:`cursor-pointer bg-transparent text-xs font-semibold text-foreground focus:outline-none`,children:[(0,T.jsx)(`option`,{value:`global`,children:`Personal catalog`}),U.map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.id},e.id))]})]}),Y?(0,T.jsx)(s,{size:`sm`,onClick:Me,disabled:!Z||J.isPending,children:J.isPending?`Saving…`:`Save selection`}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(s,{variant:`outline`,size:`sm`,onClick:()=>j(!0),children:[(0,T.jsx)(xe,{className:`mr-1.5 h-4 w-4`}),`Import TOML`]}),(0,T.jsxs)(s,{size:`sm`,onClick:$,children:[(0,T.jsx)(f,{className:`mr-1.5 h-4 w-4`}),`New agent`]})]})]})]}),(0,T.jsx)(`div`,{className:`border-b border-border/60 bg-muted/20 px-6 py-3`,children:(0,T.jsxs)(`div`,{className:`relative max-w-md`,children:[(0,T.jsx)(se,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,T.jsx)(r,{value:a,onChange:e=>O(e.target.value),placeholder:`Search agents…`,className:`pl-9`})]})}),(0,T.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto p-6`,children:Ce||Y&&W.isLoading?(0,T.jsx)(`div`,{className:`flex justify-center p-12`,children:(0,T.jsx)(de,{})}):we||Y&&W.isError?(0,T.jsx)(b,{className:`border border-dashed py-12`,children:(0,T.jsxs)(y,{children:[(0,T.jsx)(u,{children:`Resources could not be loaded`}),(0,T.jsx)(_,{children:`Assignment controls remain disabled to protect the saved selection.`})]})}):Y&&!X?(0,T.jsx)(b,{className:`border border-dashed py-12`,children:(0,T.jsxs)(y,{children:[(0,T.jsx)(u,{children:`Codex is not enabled for this workspace`}),(0,T.jsx)(_,{children:`Add Codex to the workspace before assigning Codex-native agents.`})]})}):Q.length===0?(0,T.jsxs)(b,{className:`border border-dashed py-12`,children:[(0,T.jsx)(ue,{children:(0,T.jsx)(h,{className:`h-8 w-8 text-muted-foreground`})}),(0,T.jsxs)(y,{children:[(0,T.jsx)(u,{children:`No Codex agents found`}),(0,T.jsx)(_,{children:`Create an agent or import a native TOML definition.`})]}),!Y&&(0,T.jsxs)(s,{size:`sm`,onClick:$,children:[(0,T.jsx)(f,{className:`mr-1.5 h-4 w-4`}),`New agent`]})]}):(0,T.jsx)(`div`,{className:`mx-auto grid max-w-6xl grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`,children:Q.map(e=>{let t=Ee.has(e.id);return(0,T.jsxs)(be,{className:o(`flex flex-col gap-4 p-4`,Y&&!t&&`opacity-60`),children:[(0,T.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`h2`,{className:`font-semibold`,children:e.name}),(0,T.jsx)(i,{variant:`outline`,children:`Codex`})]}),(0,T.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.description})]}),Y?(0,T.jsxs)(s,{variant:t?`default`:`outline`,size:`sm`,onClick:()=>je(e.id),disabled:!Z,children:[(0,T.jsx)(te,{className:o(`mr-1 h-3.5 w-3.5`,!t&&`opacity-0`)}),t?`Enabled`:`Disabled`]}):(0,T.jsxs)(`div`,{className:`flex gap-1`,children:[(0,T.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.name}`,onClick:()=>De(e),children:(0,T.jsx)(fe,{className:`h-4 w-4`})}),(0,T.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Delete ${e.name}`,onClick:()=>V(e),children:(0,T.jsx)(ee,{className:`h-4 w-4`})})]})]}),(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[e.sandboxMode&&(0,T.jsx)(i,{variant:`secondary`,children:e.sandboxMode}),e.modelReasoningEffort&&(0,T.jsx)(i,{variant:`secondary`,children:e.modelReasoningEffort}),e.model&&(0,T.jsx)(i,{variant:`secondary`,children:e.model})]})]},e.id)})})}),(0,T.jsx)(g,{open:Se,onOpenChange:k,children:(0,T.jsxs)(x,{className:`max-w-2xl`,children:[(0,T.jsxs)(l,{children:[(0,T.jsx)(d,{children:M?`Edit Codex agent`:`Create Codex agent`}),(0,T.jsx)(m,{children:`Only the current stable native fields are managed. Omitted settings inherit from Codex.`})]}),(0,T.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-name`,children:`Name`}),(0,T.jsx)(r,{id:`agent-name`,value:P.name,disabled:!!M,onChange:e=>F({...P,name:D(e.target.value)}),placeholder:`code-reviewer`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-description`,children:`Description`}),(0,T.jsx)(r,{id:`agent-description`,value:P.description,onChange:e=>F({...P,description:e.target.value}),placeholder:`Use when reviewing a fixed diff for correctness and security.`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-instructions`,children:`Developer instructions`}),(0,T.jsx)(v,{id:`agent-instructions`,value:P.developerInstructions,onChange:e=>F({...P,developerInstructions:e.target.value}),className:`min-h-48 font-mono`})]}),(0,T.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-model`,children:`Model override`}),(0,T.jsx)(r,{id:`agent-model`,value:P.model??``,onChange:e=>F({...P,model:e.target.value||void 0}),placeholder:`Inherit`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-effort`,children:`Reasoning`}),(0,T.jsxs)(`select`,{id:`agent-effort`,value:P.modelReasoningEffort??``,onChange:e=>F({...P,modelReasoningEffort:e.target.value||void 0}),className:`h-9 rounded-md border border-input bg-background px-3 text-sm`,children:[(0,T.jsx)(`option`,{value:``,children:`Inherit`}),(0,T.jsx)(`option`,{value:`low`,children:`Low`}),(0,T.jsx)(`option`,{value:`medium`,children:`Medium`}),(0,T.jsx)(`option`,{value:`high`,children:`High`}),(0,T.jsx)(`option`,{value:`xhigh`,children:`XHigh`}),(0,T.jsx)(`option`,{value:`max`,children:`Max`}),(0,T.jsx)(`option`,{value:`ultra`,children:`Ultra`})]})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(C,{htmlFor:`agent-sandbox`,children:`Sandbox`}),(0,T.jsxs)(`select`,{id:`agent-sandbox`,value:P.sandboxMode??``,onChange:e=>F({...P,sandboxMode:e.target.value||void 0}),className:`h-9 rounded-md border border-input bg-background px-3 text-sm`,children:[(0,T.jsx)(`option`,{value:``,children:`Inherit`}),(0,T.jsx)(`option`,{value:`read-only`,children:`Read only`}),(0,T.jsx)(`option`,{value:`workspace-write`,children:`Workspace write`})]})]})]})]}),(0,T.jsxs)(p,{children:[(0,T.jsx)(s,{variant:`outline`,onClick:()=>k(!1),children:`Cancel`}),(0,T.jsx)(s,{onClick:Oe,disabled:G.isPending||!P.name||!P.description||!P.developerInstructions,children:G.isPending?`Saving…`:`Save agent`})]})]})}),(0,T.jsx)(g,{open:A,onOpenChange:j,children:(0,T.jsxs)(x,{className:`max-w-2xl`,children:[(0,T.jsxs)(l,{children:[(0,T.jsx)(d,{children:`Import Codex agent TOML`}),(0,T.jsx)(m,{children:`The import accepts the required native fields and supported model, reasoning, and sandbox overrides.`})]}),(0,T.jsx)(v,{value:I,onChange:e=>L(e.target.value),className:`min-h-72 font-mono`,placeholder:`name = "reviewer"
2
- description = "Use for code review."
3
- developer_instructions = "Review the fixed diff."`}),(0,T.jsxs)(p,{children:[(0,T.jsx)(s,{variant:`outline`,onClick:()=>j(!1),children:`Cancel`}),(0,T.jsx)(s,{onClick:ke,disabled:K.isPending||!I.trim(),children:K.isPending?`Importing…`:`Import agent`})]})]})}),(0,T.jsx)(ye,{open:B!==null,onOpenChange:e=>!e&&V(null),children:(0,T.jsxs)(S,{children:[(0,T.jsxs)(me,{children:[(0,T.jsxs)(ve,{children:[`Delete “`,B?.name,`”?`]}),(0,T.jsx)(_e,{children:`This removes the agent from the personal catalog. Existing workspace copies remain until the workspace is refreshed.`})]}),(0,T.jsxs)(he,{children:[(0,T.jsx)(ge,{render:(0,T.jsx)(s,{variant:`outline`,children:`Cancel`})}),(0,T.jsx)(s,{variant:`destructive`,onClick:Ae,disabled:q.isPending,children:q.isPending?`Deleting…`:`Delete agent`})]})]})})]})}export{O as AgentsPage};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{h as r,m as i,t as a}from"./button-BrcP8Wxx.js";import{t as o}from"./code-xml-DHWUQOSO.js";import{a as s,g as c,i as l,m as u,n as d,r as ee,s as f}from"./status-CKOvrZ16.js";import{t as te}from"./brand-hHByyyzq.js";import{Mn as p,On as m,Pn as h,U as g,Yt as _,a as v,an as y,bn as b,cn as x,dn as S,f as ne,i as C,k as w,mt as T,n as re,nn as E,p as D,r as O,st as k,t as A,vt as ie,xn as j}from"./index-D-sx2qJG.js";import{t as M}from"./card-BMggHY3n.js";var ae=r(`file-diff`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M9 10h6`,key:`9gxzsh`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`path`,{d:`M9 17h6`,key:`r8uit2`}]]),N=e(t(),1),P=n(),F=[{id:`antigravity`,name:`Google Antigravity`,shortName:`Antigravity`,cliCommand:`agy`,icon:(0,P.jsx)(l,{className:`size-4`}),getOptions:({aiDetected:e,launchTargets:t})=>[{id:`antigravity-cli`,label:`CLI in Terminal`,shortLabel:`CLI`,type:`cli`,command:`agy`,isAvailable:e.antigravity??!1,unavailableReason:`CLI "agy" not found on PATH`,icon:(0,P.jsx)(E,{size:12})},{id:`antigravity-ide`,label:`Antigravity IDE Workspace`,shortLabel:`IDE`,type:`editor`,targetId:`antigravity`,isAvailable:t.find(e=>e.id===`antigravity`)?.available??!1,unavailableReason:`Antigravity IDE not installed`,icon:(0,P.jsx)(o,{size:12})}]},{id:`claude`,name:`Claude Code`,shortName:`Claude`,cliCommand:`claude`,icon:(0,P.jsx)(`span`,{className:`grid size-5 place-items-center rounded bg-[#D97757] text-white shadow-2xs`,children:(0,P.jsx)(s,{className:`size-3`})}),getOptions:({aiDetected:e,launchTargets:t})=>[{id:`claude-cli`,label:`CLI in Terminal`,shortLabel:`CLI`,type:`cli`,command:`claude`,isAvailable:e.claude??!1,unavailableReason:`CLI "claude" not found on PATH`,icon:(0,P.jsx)(E,{size:12})},{id:`claude-desktop`,label:`Claude Desktop App`,shortLabel:`App`,type:`app`,targetId:`claude-desktop`,isAvailable:t.find(e=>e.id===`claude-desktop`)?.available??!1,unavailableReason:`Claude Desktop not detected`,icon:(0,P.jsx)(c,{size:12})}]},{id:`codex`,name:`OpenAI Codex`,shortName:`Codex`,cliCommand:`codex`,icon:(0,P.jsx)(`span`,{className:`grid size-5 place-items-center rounded bg-foreground text-background shadow-2xs`,children:(0,P.jsx)(u,{className:`size-3`})}),getOptions:({aiDetected:e,launchTargets:t})=>[{id:`codex-cli`,label:`CLI in Terminal`,shortLabel:`CLI`,type:`cli`,command:`codex`,isAvailable:e.codex??!1,unavailableReason:`CLI "codex" not found on PATH`,icon:(0,P.jsx)(E,{size:12})},{id:`codex-desktop`,label:`Codex Desktop App`,shortLabel:`App`,type:`app`,targetId:`codex-desktop`,isAvailable:t.find(e=>e.id===`codex-desktop`)?.available??!1,unavailableReason:`Codex Desktop not detected`,icon:(0,P.jsx)(c,{size:12})}]},{id:`copilot`,name:`GitHub Copilot`,shortName:`Copilot`,cliCommand:`copilot`,icon:(0,P.jsx)(`span`,{className:`grid size-5 place-items-center rounded bg-gradient-to-tr from-purple-600 via-indigo-500 to-blue-600 text-white shadow-2xs`,children:(0,P.jsx)(f,{className:`size-3`})}),getOptions:({aiDetected:e,launchTargets:t})=>[{id:`copilot-cli`,label:`Copilot CLI in Terminal`,shortLabel:`CLI`,type:`cli`,command:`copilot`,isAvailable:e.copilot??!1,icon:(0,P.jsx)(E,{size:12})},{id:`copilot-vscode`,label:`VS Code with Copilot`,shortLabel:`VS Code`,type:`editor`,targetId:`vscode`,isAvailable:t.find(e=>e.id===`vscode`)?.available??!1,unavailableReason:`VS Code not detected`,icon:(0,P.jsx)(o,{size:12})}]}];function I({workspaces:e,workspaceStatuses:t,workspacesLoading:n=!1,onOpenWorkspace:r,onNewWorkspace:o,showToast:s}){let c=w(),l=k(),u=g(),[f,E]=(0,N.useState)(``),[I,L]=(0,N.useState)(!1),[R,z]=(0,N.useState)(``),B=e.find(e=>e.branchName===R)??e[0],V=e.filter(e=>`${e.branchName} ${e.description??``} ${e.repos.join(` `)}`.toLowerCase().includes(f.trim().toLowerCase())&&(!I||(t[e.branchName]?.changedFiles??0)>0)),[H,U]=(0,N.useState)(null),W=e.flatMap(e=>t[e.branchName]?[t[e.branchName]]:[]),G=W.reduce((e,t)=>e+(t.changedFiles||0),0),K=W.filter(e=>e.changedFiles>0).length,q=e.filter(e=>(e.mode??`worktree`)===`worktree`).length,oe=e.filter(e=>e.mode===`in-place`).length,J=(0,N.useMemo)(()=>{let t=new Map;return e.forEach(e=>{(e.repos||[]).forEach(e=>{let n=d(e),r=t.get(e);r?r.count+=1:t.set(e,{name:n,path:e,count:1})})}),Array.from(t.values())},[e]),Y=(0,N.useMemo)(()=>{let e={};return(c.data??[]).forEach(t=>{e[t.name]=t.detected}),e},[c.data]),X=(0,N.useMemo)(()=>l.data??[],[l.data]),Z=(0,N.useMemo)(()=>F.map(e=>{let t=e.getOptions({aiDetected:Y,launchTargets:X}),n=t.filter(e=>e.isAvailable),r=n[0]||t[0],i=n.length>0,a=`Not found`,o=`neutral`;return n.length>1?(a=`${n.map(e=>e.shortLabel).join(` & `)} Ready`,o=`success`):n.length===1&&(a=`${n[0].shortLabel} Ready`,o=`success`),{harness:e,allOptions:t,availableOptions:n,primaryOption:r,isAnyAvailable:i,statusLabel:a,statusTone:o}}),[Y,X]),se=async(e,t)=>{if(H)return;let n=B;if(!n){s?.(`No active workspace available to launch harness in.`,`error`);return}let r=`${e.id}:${t.id}`;U(r);try{t.type===`cli`?(await u.mutateAsync({workspaceId:n.branchName,assistant:e.id,command:t.command}),s?.(`Opened ${e.name} inside ContextSpace for ${n.branchName}`,`success`)):t.targetId&&(await T(`/api/workspace/${encodeURIComponent(n.branchName)}/launch`,{method:`POST`,body:JSON.stringify({targetId:t.targetId})}),s?.(`Opened ${n.branchName} in ${e.name} (${t.label})`,`success`))}catch(t){s?.(`Failed to launch ${e.name}: ${t instanceof Error?t.message:String(t)}`,`error`)}finally{U(null)}},Q=_(),{customTitles:$}=ie();return(0,P.jsxs)(`div`,{className:`mx-auto max-w-7xl space-y-6 pb-12 animate-fade-in`,children:[(0,P.jsxs)(`header`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-4 border-b border-border/80 pb-4`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-mono text-muted-foreground mb-1`,children:[(0,P.jsx)(h,{size:14,className:`text-primary`}),(0,P.jsx)(`span`,{children:te}),(0,P.jsx)(`span`,{className:`opacity-40`,children:`/`}),(0,P.jsx)(`span`,{className:`text-foreground font-semibold`,children:`Cockpit Overview`})]}),(0,P.jsx)(`h1`,{className:`text-xl font-bold tracking-tight text-foreground`,children:`Multi-Worktree Process & Review Station`})]}),(0,P.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,P.jsxs)(a,{onClick:o,size:`sm`,className:`h-8 gap-1.5 px-3.5 bg-primary text-primary-foreground font-semibold hover:bg-primary/90 shadow-xs cursor-pointer text-xs`,children:[(0,P.jsx)(S,{size:14}),` New Worktree`]})})]}),(0,P.jsx)(`div`,{className:`grid grid-cols-2 gap-3 lg:grid-cols-4`,children:[{label:`Active Worktrees`,value:n?`—`:e.length,detail:`${q} isolated · ${oe} host`,icon:j},{label:`Review Queue`,value:W.length?G:`—`,detail:`${K} worktrees with diffs`,icon:b,isDirty:G>0},{label:`Tracked Repos`,value:n?`—`:J.length,detail:`Connected on local host`,icon:m},{label:`AI Assistants`,value:c.isLoading||l.isLoading?`—`:Z.filter(e=>e.isAnyAvailable).length,detail:`Antigravity, Claude, Codex`,icon:y}].map(({label:e,value:t,detail:n,icon:r,isDirty:a})=>(0,P.jsxs)(M,{className:`bg-card border border-border p-3.5 rounded-xl shadow-xs transition-colors hover:border-border/80`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-xs text-muted-foreground`,children:[(0,P.jsx)(`span`,{className:`font-medium`,children:e}),(0,P.jsx)(r,{size:14,className:a?`text-amber-400`:`text-primary`})]}),(0,P.jsx)(`div`,{className:i(`my-1.5 text-2xl font-bold tracking-tight tabular-nums`,a?`text-amber-400`:`text-foreground`),children:t}),(0,P.jsx)(`p`,{className:`text-[11px] text-muted-foreground font-mono`,children:n})]},e))}),(0,P.jsxs)(`div`,{className:`grid items-start gap-6 xl:grid-cols-[minmax(0,1fr)_320px]`,children:[(0,P.jsxs)(`section`,{className:`min-w-0`,"aria-labelledby":`workspaces-heading`,children:[(0,P.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,P.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,P.jsxs)(`span`,{id:`workspaces-heading`,className:`text-sm font-bold text-foreground`,children:[`Workspaces (`,V.length,`)`]})}),(0,P.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,P.jsxs)(`div`,{className:`relative`,children:[(0,P.jsx)(x,{size:13,className:`absolute left-2.5 top-2.5 text-muted-foreground pointer-events-none`}),(0,P.jsx)(`input`,{"aria-label":`Search workspaces`,value:f,onChange:e=>E(e.target.value),placeholder:`Filter worktrees or repos…`,className:`h-8 w-48 sm:w-64 rounded-lg border border-input bg-card pl-8 pr-3 text-xs outline-none focus:border-primary transition-colors text-foreground`})]}),(0,P.jsxs)(a,{variant:I?`secondary`:`outline`,size:`xs`,className:`h-8 rounded-lg text-xs font-medium cursor-pointer`,"aria-pressed":I,onClick:()=>L(!I),children:[(0,P.jsx)(b,{size:13}),` Diffs only`]})]})]}),n?(0,P.jsx)(M,{className:`p-10 border border-border bg-card`,children:(0,P.jsx)(D,{"aria-label":`Loading workspaces`,className:`mx-auto size-5 text-primary`})}):e.length?V.length?(0,P.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:V.map(e=>{let n=t[e.branchName],o=e.mode===`in-place`||!n?null:ee(n.syncStatus),s=(n?.changedFiles??0)>0,c=$[e.branchName]?.title||e.description||e.branchName,l=!!$[e.branchName]?.title;return(0,P.jsxs)(`div`,{className:`group rounded-xl border border-border bg-card p-4 transition-all hover:border-primary/50 flex flex-col justify-between gap-3 shadow-xs`,children:[(0,P.jsxs)(`div`,{children:[(0,P.jsxs)(`div`,{className:`flex items-start justify-between gap-2 mb-1.5`,children:[(0,P.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,P.jsx)(`h3`,{className:`font-bold text-sm text-foreground truncate cursor-pointer hover:text-primary transition-colors`,onClick:()=>r(e.branchName),title:c,children:c})}),(0,P.jsx)(`span`,{className:i(`shrink-0 px-2 py-0.5 rounded text-[10px] font-mono font-semibold uppercase tracking-wider border`,e.mode===`in-place`?`border-border bg-secondary text-muted-foreground`:`border-emerald-500/25 bg-emerald-500/10 text-emerald-400`),children:e.mode===`in-place`?`in-place`:`isolated`})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground truncate mb-2`,children:[(0,P.jsx)(b,{size:12,className:`text-primary shrink-0`}),(0,P.jsx)(`span`,{className:`truncate font-semibold text-foreground/80`,children:e.branchName}),l&&e.description&&(0,P.jsxs)(`span`,{className:`text-[10px] text-muted-foreground/70 truncate`,children:[`(`,e.description,`)`]})]}),(0,P.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5 mb-2.5`,children:e.repos.map(e=>(0,P.jsx)(`span`,{className:`rounded border border-border/60 bg-secondary/60 px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,children:d(e)},e))}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-mono`,children:[s?(0,P.jsxs)(`span`,{className:`flex items-center gap-1.5 text-amber-400 font-semibold`,children:[(0,P.jsx)(`span`,{className:`size-2 rounded-full bg-amber-400 animate-pulse shrink-0`}),n?.changedFiles,` modified files`]}):(0,P.jsxs)(`span`,{className:`flex items-center gap-1.5 text-emerald-400 font-medium`,children:[(0,P.jsx)(`span`,{className:`size-1.5 rounded-full bg-emerald-400 shrink-0`}),`Clean worktree`]}),o&&(0,P.jsxs)(`span`,{className:`text-muted-foreground text-[10px]`,children:[`• `,o.label]})]})]}),(0,P.jsxs)(`div`,{className:`border-t border-border/70 pt-3 flex items-center justify-between gap-2`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[s&&(0,P.jsxs)(a,{size:`xs`,onClick:()=>Q(`/workspaces/${encodeURIComponent(e.branchName)}/changes`),className:`h-7 gap-1 px-2.5 bg-primary text-primary-foreground font-semibold text-xs hover:bg-primary/90 cursor-pointer`,title:`Open Monaco Diff Review`,children:[(0,P.jsx)(ae,{size:12}),` Review Diffs`]}),(0,P.jsx)(a,{size:`xs`,variant:`outline`,onClick:()=>r(e.branchName),className:`h-7 text-xs border-border hover:bg-accent cursor-pointer`,children:`Cockpit`})]}),(0,P.jsxs)(`button`,{type:`button`,onClick:()=>Q(`/workspaces/${encodeURIComponent(e.branchName)}/plan`),className:`text-[11px] text-muted-foreground hover:text-primary transition-colors flex items-center gap-1 cursor-pointer`,children:[`Plan `,(0,P.jsx)(p,{size:11})]})]})]},e.id)})}):(0,P.jsxs)(M,{className:`rounded-xl border border-border bg-card p-8 text-center`,children:[(0,P.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No worktrees match your filter.`}),(0,P.jsx)(a,{variant:`ghost`,size:`xs`,className:`mt-2`,onClick:()=>{E(``),L(!1)},children:`Clear filter`})]}):(0,P.jsx)(M,{className:`rounded-xl border border-dashed border-border bg-card/50 p-8`,children:(0,P.jsxs)(A,{children:[(0,P.jsxs)(O,{children:[(0,P.jsx)(C,{variant:`icon`,children:(0,P.jsx)(j,{})}),(0,P.jsx)(v,{children:`No active worktrees`}),(0,P.jsx)(re,{children:`Create a worktree to start working on isolated features with dynamic plan steps.`})]}),(0,P.jsxs)(a,{onClick:o,className:`mt-4 bg-primary text-primary-foreground`,children:[(0,P.jsx)(S,{size:14}),` Create First Worktree`]})]})})]}),(0,P.jsxs)(`aside`,{className:`rounded-xl border border-border bg-card p-4 shadow-xs`,"aria-labelledby":`assistants-heading`,children:[(0,P.jsxs)(`div`,{className:`mb-4`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] font-mono font-bold uppercase tracking-wider text-primary mb-1`,children:[(0,P.jsx)(y,{size:12}),` AI Launch Station`]}),(0,P.jsx)(`h2`,{id:`assistants-heading`,className:`text-sm font-bold tracking-tight text-foreground`,children:`External Coding Harnesses`}),(0,P.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Launch agents directly into the target worktree.`})]}),(0,P.jsx)(`label`,{className:`block text-[10px] font-mono uppercase font-bold text-muted-foreground mb-1.5`,htmlFor:`launch-workspace`,children:`Target Worktree`}),(0,P.jsxs)(`select`,{id:`launch-workspace`,value:B?.branchName??``,onChange:e=>z(e.target.value),disabled:!e.length||!!H,className:`mb-4 h-8 w-full rounded-md border border-input bg-secondary px-2 font-mono text-xs text-foreground focus-visible:outline-ring`,children:[!e.length&&(0,P.jsx)(`option`,{value:``,children:`Create a workspace first`}),e.map(e=>(0,P.jsx)(`option`,{value:e.branchName,children:$[e.branchName]?.title?`${$[e.branchName]?.title} (${e.branchName})`:e.branchName},e.id))]}),(0,P.jsx)(`div`,{className:`divide-y divide-border/60`,children:Z.map(({harness:e,availableOptions:t,isAnyAvailable:n,statusTone:r})=>(0,P.jsxs)(`div`,{className:`py-3 first:pt-0 last:pb-0`,children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-2`,children:[(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon,(0,P.jsx)(`h3`,{className:`text-xs font-semibold text-foreground`,children:e.name})]}),(0,P.jsx)(ne,{tone:r,children:c.isLoading||l.isLoading?`Checking`:c.isError||l.isError?`Check failed`:n?`Ready`:`Not detected`})]}),(0,P.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:t.map(t=>(0,P.jsxs)(a,{variant:`outline`,size:`xs`,disabled:!!H||!B,onClick:()=>void se(e,t),title:`Launch ${e.name} in ${B?.branchName??`workspace`}`,className:`h-7 text-xs border-border hover:bg-accent cursor-pointer`,children:[H===`${e.id}:${t.id}`?(0,P.jsx)(D,{className:`size-3`}):t.icon,t.shortLabel,(0,P.jsx)(p,{size:10})]},t.id))})]},e.id))})]})]}),J.length>0&&(0,P.jsxs)(`section`,{className:`border-t border-border pt-4`,children:[(0,P.jsxs)(`div`,{className:`mb-2.5 flex items-center gap-2 text-xs font-mono font-medium text-muted-foreground`,children:[(0,P.jsx)(m,{size:13,className:`text-primary`}),` Tracked Repositories`]}),(0,P.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:J.map(e=>(0,P.jsxs)(`button`,{type:`button`,onClick:()=>{E(e.path),L(!1)},title:e.path,className:`flex items-center gap-2 rounded-lg border border-border bg-card px-3 py-1.5 font-mono text-xs transition-colors hover:border-primary/50 text-foreground cursor-pointer`,children:[(0,P.jsx)(j,{size:12,className:`text-primary`}),(0,P.jsx)(`span`,{children:e.name}),(0,P.jsxs)(`span`,{className:`rounded bg-secondary px-1.5 py-0.2 text-[10px] text-muted-foreground`,children:[e.count,` `,e.count===1?`worktree`:`worktrees`]})]},e.path))})]})]})}export{I as DashboardPage};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{a as r,i,n as a,r as o,t as s}from"./monaco-DLwhzYMT.js";import{a as c,i as l,n as u,r as d,t as f}from"./WorkspacesPage-BuQTcejb.js";var p=e(t(),1);a({id:`json`,extensions:[`.json`,`.bowerrc`,`.jshintrc`,`.jscsrc`,`.eslintrc`,`.babelrc`],aliases:[`JSON`,`json`],mimetypes:[`application/json`],loader:()=>Promise.resolve({conf:{comments:!1,brackets:[[`{`,`}`],[`[`,`]`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`"`,close:`"`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`"`,close:`"`}]},language:{defaultToken:``,tokenPostfix:`.json`,tokenizer:{root:[[/"([^"\\]|\\.)*"\s*(?=:)/,`type.identifier`],[/"([^"\\]|\\.)*"/,`string`],[/-?\d+(\.\d+)?([eE][+-]?\d+)?/,`number`],[/\b(true|false|null)\b/,`keyword`],[/[{}[\],]/,`delimiter`],{include:`@whitespace`}],whitespace:[[/\s+/,`white`]]}}})});var m={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,json:`json`,html:`html`,htm:`html`,css:`css`,scss:`scss`,less:`less`,md:`markdown`,markdown:`markdown`,py:`python`,rs:`rust`,go:`go`,sh:`shell`,bash:`shell`,zsh:`shell`,ps1:`powershell`,yml:`yaml`,yaml:`yaml`,sql:`sql`,xml:`xml`,svg:`xml`,diff:`diff`,patch:`diff`,dockerfile:`dockerfile`,toml:`ini`,java:`java`,c:`c`,cpp:`cpp`,cs:`csharp`,rb:`ruby`,php:`php`};function h(e){if(!e)return`plaintext`;let t=e.split(`?`)[0].split(`#`)[0].split(/[/\\]/).pop()?.toLowerCase()||``;return t===`dockerfile`?`dockerfile`:t===`package.json`||t===`tsconfig.json`?`json`:m[t.split(`.`).pop()||``]||`plaintext`}var g=!1;function _(){g||typeof window>`u`||(window.MonacoEnvironment={getWorker(){return new s}},g=!0)}var v={ES3:0,ES5:1,ES2015:2,ES2016:3,ES2017:4,ES2018:5,ES2019:6,ES2020:7,ESNext:99,JSON:100,Latest:99},y={None:0,CommonJS:1,AMD:2,UMD:3,System:4,ES2015:5,ESNext:99},b={Classic:1,NodeJs:2},x={None:0,Preserve:1,React:2,ReactNative:3,ReactJSX:4,ReactJSXDev:5},S=class{_compilerOptions;_diagnosticsOptions;_modeConfiguration;constructor(e={},t={},n={}){this._compilerOptions=e,this._diagnosticsOptions=t,this._modeConfiguration=n}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions={...this._compilerOptions,...e||{}}}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions={...this._diagnosticsOptions,...e||{}}}getModeConfiguration(){return this._modeConfiguration}setModeConfiguration(e){this._modeConfiguration={...this._modeConfiguration,...e||{}}}},C=new S({allowNonTsExtensions:!0,target:v.ESNext},{noSemanticValidation:!0,noSyntaxValidation:!0},{}),w=new S({allowNonTsExtensions:!0,allowJs:!0,target:v.ESNext},{noSemanticValidation:!0,noSyntaxValidation:!0},{}),T=!1;function E(){if(T)return;let e={target:v.ESNext,moduleResolution:b.NodeJs,module:y.ESNext,jsx:x.ReactJSX,allowNonTsExtensions:!0,allowJs:!0,noEmit:!0};C.setCompilerOptions(e),w.setCompilerOptions(e);let t={completionItems:!1,hovers:!1,documentSymbols:!1,definitions:!1,references:!1,documentHighlights:!1,rename:!1,diagnostics:!1,documentRangeFormattingEdits:!1,signatureHelp:!1,onTypeFormattingEdits:!1,codeActions:!1,inlayHints:!1};if(C.setModeConfiguration(t),w.setModeConfiguration(t),C.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0}),w.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0}),typeof window<`u`){let e=window;e.monaco=e.monaco||{},e.monaco.languages=e.monaco.languages||{},e.monaco.languages.typescript={typescriptDefaults:C,javascriptDefaults:w,ScriptTarget:v,ModuleResolutionKind:b,ModuleKind:y,JsxEmit:x}}T=!0}var D=n();_(),E(),f(r);var O=({filePath:e,repoName:t=`workspace`,originalContent:n,modifiedContent:a,viewMode:s,ignoreWhitespace:f,height:m=480,targetLine:g,jumpNonce:_,onOpenFile:v,onLineSelect:y})=>{let b=(0,p.useRef)(null),x=(0,p.useRef)(null),S=(0,p.useRef)(null),C=(0,p.useRef)({original:null,modified:null});return(0,p.useEffect)(()=>{if(!x.current||!g||g<=0)return;let e=x.current.getModifiedEditor();e.revealLineInCenter(g),e.setPosition({lineNumber:g,column:1}),e.focus(),S.current||=e.createDecorationsCollection(),S.current.set([{range:new o(g,1,g,1),options:{isWholeLine:!0,className:`bg-primary/20 border-l-2 border-primary`}}])},[g,_]),(0,p.useEffect)(()=>{if(!b.current)return;let o=h(e),p=l(t,e,r),m=u(t,e,r),_=d(p,n,o,r)||i.createModel(n,o),S=d(m,a,o,r)||i.createModel(a,o);C.current={original:_,modified:S};let w=null;v&&(w=c(v,r));let T=document.documentElement.classList.contains(`dark`)||document.documentElement.getAttribute(`data-theme`)!==`light`,E=null,D=null,O=null;try{E=i.createDiffEditor(b.current,{readOnly:!0,renderSideBySide:s===`side-by-side`,ignoreTrimWhitespace:f,hideUnchangedRegions:{enabled:!1},renderIndicators:!0,originalEditable:!1,automaticLayout:!0,scrollBeyondLastLine:!1,minimap:{enabled:!0,maxColumn:60},scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8,alwaysConsumeMouseWheel:!1},lineNumbersMinChars:3,fontSize:12,fontFamily:`'JetBrains Mono', Consolas, Menlo, monospace`,theme:T?`vs-dark`:`vs`,contextmenu:!0}),E.setModel({original:_,modified:S}),x.current=E;let e=E.getModifiedEditor();D=e.onDidChangeCursorPosition(e=>{y?.(e.position.lineNumber)}),O=E.onDidUpdateDiff(()=>{g&&g>0&&(e.revealLineInCenter(g),e.setPosition({lineNumber:g,column:1}))}),g&&g>0&&(e.revealLineInCenter(g),e.setPosition({lineNumber:g,column:1}))}catch(e){console.error(`[MonacoDiffAdapter] Error initializing diff editor:`,e)}return()=>{O?.dispose(),D?.dispose(),w?.dispose(),E?.dispose(),x.current=null}},[e,t,n,a,s,f,v,y,g]),(0,D.jsx)(`div`,{ref:b,style:{height:typeof m==`number`?`${m}px`:m},className:`w-full rounded-lg overflow-hidden border border-border/70 bg-background`})};export{O as MonacoDiffAdapter};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{n as r,t as i}from"./badge-BObbahyU.js";import{t as a}from"./button-BrcP8Wxx.js";import{n as o,t as s}from"./ScaffoldRepoInline-C0aEuaen.js";import{t as c}from"./trash-2-BrrLX4tD.js";import{G as l,N as u,R as d,Y as f,Yt as p,_ as m,a as h,at as g,b as _,dn as v,fn as y,ft as b,g as x,h as S,i as ee,m as C,n as w,p as T,pn as E,r as D,t as O,v as k,xn as A,y as j}from"./index-D-sx2qJG.js";import{a as M,i as N,n as P,o as F,r as I,s as L,t as te}from"./alert-dialog-BQTrpDEB.js";var R=e(t(),1),z=n(),B={editingId:null,name:``,description:``,repoPaths:[]};function V(){let e=p(),t=l(),n=f(),V=b(),H=u(),U=g(),W=d(),[G,K]=(0,R.useState)(null),[q,J]=(0,R.useState)(null),[Y,X]=(0,R.useState)(null),Z=(0,R.useMemo)(()=>{let e={};for(let t of V.data??[])t.projectId&&(e[t.projectId]=(e[t.projectId]??0)+1);return e},[V.data]),Q=()=>{J(null),K(B)},ne=e=>{J(null),K({editingId:e.id,name:e.name,description:e.description??``,repoPaths:e.repos.map(e=>e.path)})},re=e=>{K(t=>t&&{...t,repoPaths:t.repoPaths.includes(e.path)?t.repoPaths.filter(t=>t!==e.path):[...t.repoPaths,e.path]})},ie=async()=>{if(G){J(null);try{G.editingId?await U.mutateAsync({id:G.editingId,name:G.name,description:G.description||null,repos:G.repoPaths}):await H.mutateAsync({name:G.name,description:G.description||void 0,repos:G.repoPaths}),K(null)}catch(e){J(e instanceof Error?e.message:String(e))}}},ae=async()=>{if(Y)try{await W.mutateAsync(Y.id)}finally{X(null)}},oe=!!(G&&G.name.trim()&&G.repoPaths.length>0),$=H.isPending||U.isPending;return(0,z.jsxs)(`div`,{className:`mx-auto max-w-4xl animate-fade-in`,children:[(0,z.jsxs)(`header`,{className:`mb-6 flex flex-col sm:flex-row sm:items-center justify-between gap-4 border-b border-border/70 pb-4`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h1`,{className:`text-xl font-bold tracking-tight text-foreground`,children:`Projects`}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Named groups of repositories you start work from. Registered once, reused for every feature workspace.`})]}),(0,z.jsxs)(a,{onClick:Q,className:`gap-1.5 shadow-sm`,children:[(0,z.jsx)(v,{size:15}),` New project`]})]}),t.isLoading?(0,z.jsx)(`div`,{className:`flex justify-center py-20`,children:(0,z.jsx)(T,{className:`size-6`})}):(t.data??[]).length===0?(0,z.jsxs)(O,{className:`border border-border border-dashed`,children:[(0,z.jsxs)(D,{children:[(0,z.jsx)(ee,{variant:`icon`,children:(0,z.jsx)(A,{})}),(0,z.jsx)(h,{children:`No projects yet`}),(0,z.jsx)(w,{children:`Register your first project to start work without re-picking repositories every time.`})]}),(0,z.jsxs)(a,{onClick:Q,children:[(0,z.jsx)(v,{}),` New project`]})]}):(0,z.jsx)(`ul`,{className:`flex flex-col gap-3`,children:(t.data??[]).map(t=>(0,z.jsx)(`li`,{className:`rounded-xl border border-border/80 bg-card/70 backdrop-blur-md p-4 transition-all duration-200 hover:border-primary/40 hover:shadow-xs`,children:(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(`h2`,{className:`truncate text-sm font-semibold`,children:t.name}),(Z[t.id]??0)>0&&(0,z.jsxs)(i,{variant:`secondary`,children:[Z[t.id],` workspace`,Z[t.id]===1?``:`s`]})]}),t.description&&(0,z.jsx)(`p`,{className:`mt-0.5 truncate text-sm text-muted-foreground`,children:t.description}),(0,z.jsx)(`ul`,{className:`mt-2 flex flex-col gap-0.5`,children:t.repos.map(e=>(0,z.jsxs)(`li`,{className:`truncate font-mono text-xs text-muted-foreground`,children:[e.path,(0,z.jsxs)(`span`,{className:`ml-2 text-muted-foreground/60`,children:[`[`,e.defaultBranch,`]`]})]},e.path))})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,z.jsxs)(a,{size:`sm`,onClick:()=>e(`/new?project=${encodeURIComponent(t.id)}`),children:[(0,z.jsx)(y,{}),` Start work`]}),(0,z.jsx)(a,{size:`icon-sm`,variant:`ghost`,"aria-label":`Edit ${t.name}`,onClick:()=>ne(t),children:(0,z.jsx)(E,{})}),(0,z.jsx)(a,{size:`icon-sm`,variant:`ghost`,"aria-label":`Remove ${t.name}`,onClick:()=>X(t),children:(0,z.jsx)(c,{})})]})]})},t.id))}),(0,z.jsx)(C,{open:G!==null,onOpenChange:e=>!e&&K(null),children:(0,z.jsxs)(j,{className:`max-w-lg`,children:[(0,z.jsxs)(m,{children:[(0,z.jsx)(_,{children:G?.editingId?`Edit project`:`New project`}),(0,z.jsx)(S,{children:`A project is a reusable group of source repositories. Removing one later never touches disk.`})]}),(0,z.jsxs)(k,{className:`space-y-4`,children:[(0,z.jsxs)(`label`,{className:`block`,children:[(0,z.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Name`}),(0,z.jsx)(r,{value:G?.name??``,onChange:e=>K(t=>t&&{...t,name:e.target.value}),placeholder:`e.g. Acme Billing`,autoFocus:!0})]}),(0,z.jsxs)(`label`,{className:`block`,children:[(0,z.jsxs)(`span`,{className:`mb-1 block text-sm font-medium`,children:[`Description `,(0,z.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(optional)`})]}),(0,z.jsx)(r,{value:G?.description??``,onChange:e=>K(t=>t&&{...t,description:e.target.value}),placeholder:`What this group of repos is for`})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Repositories`}),(0,z.jsx)(o,{repos:n.data??[],selectedPaths:G?.repoPaths??[],onToggle:re,loading:n.isLoading,emptyHint:`No repositories found in your dev directory.`}),(0,z.jsx)(s,{onCreated:e=>K(t=>t&&{...t,repoPaths:[...t.repoPaths,e.path]})})]}),q&&(0,z.jsx)(`p`,{className:`text-sm text-destructive-foreground`,children:q})]}),(0,z.jsxs)(x,{children:[(0,z.jsx)(a,{variant:`outline`,onClick:()=>K(null),children:`Cancel`}),(0,z.jsxs)(a,{onClick:ie,disabled:!oe||$,children:[$?(0,z.jsx)(T,{}):null,G?.editingId?`Save changes`:`Create project`]})]})]})}),(0,z.jsx)(te,{open:Y!==null,onOpenChange:e=>!e&&X(null),children:(0,z.jsxs)(F,{children:[(0,z.jsxs)(M,{children:[(0,z.jsxs)(L,{children:[`Remove “`,Y?.name,`”?`]}),(0,z.jsx)(I,{children:`This only removes the project from the registry — repositories and workspaces on disk are not touched.`})]}),(0,z.jsxs)(N,{children:[(0,z.jsx)(P,{render:(0,z.jsx)(a,{variant:`outline`,children:`Cancel`})}),(0,z.jsxs)(a,{variant:`destructive`,onClick:ae,disabled:W.isPending,children:[W.isPending?(0,z.jsx)(T,{}):null,`Remove project`]})]})]})})]})}export{V as ProjectsPage};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{En as r,Jn as i,Kt as a,Ln as o,Wt as s,Xt as c,Yt as l,_n as u,bt as d,c as ee,i as f,l as p,n as m,nn as h,o as g,rn as te,s as ne,sn as re,xt as ie}from"./badge-BObbahyU.js";import{c as ae,d as oe,f as se,h as ce,i as le,l as ue,m as _,o as de,p as fe,t as v}from"./button-BrcP8Wxx.js";import{t as pe}from"./useValueChanged-DfJmRF2P.js";import{t as me}from"./useAriaLabelledBy-DAWGcnTk.js";import{P as he,cn as y,f as b,p as ge}from"./index-D-sx2qJG.js";var x=ce(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),S=e(t(),1),C=S.createContext({disabled:!1});function _e(){return S.useContext(C)}function ve(e){if(!e)return null;for(let t of e.elements){let e=t.tagName;if(e===`BUTTON`||e===`INPUT`){let e=t;if(e.type===`submit`)return e}}return null}function ye(e){return{checked(t){return e.indeterminate?{}:t?{"data-checked":``}:{"data-unchecked":``}},...p}}var w=S.createContext(void 0);function be(){return S.useContext(w)}var xe=S.createContext(void 0);function T(){let e=S.useContext(xe);if(e===void 0)throw Error(fe(14));return e}var E=n(),Se=`data-parent`,Ce=S.forwardRef(function(e,t){let{checked:n,className:i,defaultChecked:a=!1,"aria-labelledby":s,disabled:p=!1,form:m,id:ce,indeterminate:_=!1,inputRef:fe,name:v,onCheckedChange:he,parent:y=!1,readOnly:b=!1,render:ge,required:x=!1,uncheckedValue:C,value:w,nativeButton:T=!1,style:Ce,...D}=e,{clearErrors:O}=ne(),{disabled:k,name:A,setDirty:we,setFilled:j,setFocused:M,setTouched:Te,state:N,validationMode:Ee,validityData:De,validation:Oe}=ee(),ke=_e(),{labelId:Ae,controlId:je,registerControlId:P,getDescriptionProps:F}=g(),I=be(),L=I?.allValues===void 0?void 0:I.parent,R=L!==void 0,z=k||ke.disabled||I?.disabled||p,B=A??v,V=w??B,Me=c(),Ne=c(),H=ce||je;R&&(y?H=Ne:V===void 0?H||=Ne:H=`${L.id}-${V}`);let U={};R&&(y?U=L.getParentProps():V!==void 0&&(U=L.getChildProps(V)));let{checked:Pe=n,indeterminate:Fe=_,onCheckedChange:Ie,...Le}=U,W=I?.value,G=S.useRef(null),K=se(()=>Symbol()),q=S.useRef(!1),{getButtonProps:Re,buttonRef:ze}=h({disabled:z,native:T}),J=I?.validation??Oe,[Y,Be]=r({controlled:V!==void 0&&W!==void 0&&!y?W.includes(V):Pe,default:a,name:`Checkbox`,state:`checked`}),X=R?!!Pe:Y,Z=R&&Fe||_;re(()=>{P!==ue&&(q.current=!0,P(K.current,H))},[H,P,K]),S.useEffect(()=>{let e=K.current;return()=>{!q.current||P===ue||(q.current=!1,P(e,void 0))}},[P,K]),f(G,Me,Y,void 0,!I&&!z,v);let Q=S.useRef(null),Ve=J.registerInput,He=I?V:void 0,Ue=S.useCallback(e=>Ve(e,{controlRef:G,value:He}),[Ve,He]),We=oe(fe,Q,y?void 0:Ue),Ge=me(s,Ae,Q,!T,H??void 0);re(()=>{Q.current&&(Q.current.indeterminate=Z,Y&&j(!0))},[Y,Z,j]),pe(Y,()=>{I||(O(B),j(Y),we(Y!==De.initialValue),J.change(Y))});let Ke=de({checked:Y,disabled:z,form:m,name:y?void 0:B,id:T?void 0:H??void 0,required:x,ref:We,style:B?ie:d,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(b){e.preventDefault();return}let t=e.currentTarget.checked,n=l(o,e.nativeEvent);if(he?.(t,n),!n.isCanceled&&(Ie?.(t,n),!n.isCanceled&&(Be(t),V!==void 0&&I!==void 0&&!y&&!R))){let e=t?[...I.value,V]:I.value.filter(e=>e!==V);I.setValue(e,n)}},onClick(e){e.stopPropagation()},onFocus(){G.current?.focus()}},w===void 0?ae:{value:(I?Y&&w:w)||``},F,e=>J.getValidationProps(z,e));S.useEffect(()=>{if(!L||V===void 0)return;let e=L.disabledStatesRef.current;return e.set(V,z),()=>{e.delete(V)}},[L,z,V]);let $=S.useMemo(()=>({...N,checked:X,disabled:z,readOnly:b,required:x,indeterminate:Z}),[N,X,z,b,x,Z]),qe=ye($),Je=le(`span`,e,{state:$,ref:[ze,G,t],props:[{id:T?H??void 0:Me,role:`checkbox`,"aria-checked":Z?`mixed`:X,"aria-readonly":b||void 0,"aria-required":x||void 0,"aria-labelledby":Ge,[Se]:y?``:void 0,onFocus(){z||M(!0)},onBlur(){let e=Q.current;e&&(Te(!0),M(!1),Ee===`onBlur`&&J.commit(I?W:e.checked))},onKeyDown(e){if(e.key!==`Enter`||(e.preventBaseUIHandler(),e.defaultPrevented))return;let t=Q.current?.form??null,n=e.currentTarget,r=e.nativeEvent,i=e.preventDefault,a=r.preventDefault,o=!1;e.preventDefault=()=>{o=!0,i.call(e)},r.preventDefault=()=>{o=!0,a.call(r)},a.call(r),u(n).queueMicrotask(()=>{e.preventDefault=i,r.preventDefault=a,o||ve(t)?.click()})},onClick(e){if(b||z)return;e.preventDefault();let t=Q.current;t&&te(t,e)}},D,Le,Re,F,e=>J.getValidationProps(z,e)],stateAttributesMapping:qe});return(0,E.jsxs)(xe.Provider,{value:$,children:[Je,!Y&&!I&&B&&!y&&C!==void 0&&(0,E.jsx)(`input`,{type:`hidden`,form:m,name:B,value:C,disabled:z}),(0,E.jsx)(`input`,{...Ke,suppressHydrationWarning:!0})]})}),D=S.forwardRef(function(e,t){let{render:n,className:r,style:o,keepMounted:c=!1,...l}=e,u=T(),d=u.checked||u.indeterminate,{mounted:ee,transitionStatus:f,setMounted:p}=a(d),m=S.useRef(null),h={...u,transitionStatus:f};s({open:d,ref:m,onComplete(){d||p(!1)}});let g={...ye(u),...i},te=c||ee,ne=le(`span`,e,{ref:[t,m],state:h,stateAttributesMapping:g,props:l});return te?ne:null});function O({className:e,...t}){return(0,E.jsx)(Ce,{className:_(`relative inline-flex size-4.5 shrink-0 items-center justify-center rounded-[.25rem] border border-input bg-background not-dark:bg-clip-padding shadow-xs/5 outline-none ring-ring transition-shadow before:pointer-events-none before:absolute before:inset-0 before:rounded-[3px] not-data-disabled:not-data-checked:not-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-offset-background aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/48 data-disabled:opacity-64 sm:size-4 dark:not-data-checked:bg-input/32 dark:aria-invalid:ring-destructive/24 dark:not-data-disabled:not-data-checked:not-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)] [[data-disabled],[data-checked],[aria-invalid]]:shadow-none`,e),"data-slot":`checkbox`,...t,children:(0,E.jsx)(D,{className:`-inset-px absolute flex items-center justify-center rounded-[.25rem] text-primary-foreground data-unchecked:hidden data-checked:bg-primary data-indeterminate:text-foreground`,"data-slot":`checkbox-indicator`,render:(e,t)=>(0,E.jsx)(`span`,{...e,children:t.indeterminate?(0,E.jsx)(`svg`,{className:`size-3.5 sm:size-3`,fill:`none`,height:`24`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`3`,viewBox:`0 0 24 24`,width:`24`,xmlns:`http://www.w3.org/2000/svg`,children:(0,E.jsx)(`path`,{d:`M5.252 12h13.496`})}):(0,E.jsx)(`svg`,{className:`size-3.5 sm:size-3`,fill:`none`,height:`24`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`3`,viewBox:`0 0 24 24`,width:`24`,xmlns:`http://www.w3.org/2000/svg`,children:(0,E.jsx)(`path`,{d:`M5.252 12.7 10.2 18.63 18.748 5.37`})})})})})}function k({repos:e,selectedPaths:t,onToggle:n,loading:r,emptyHint:i,className:a,freshnessMap:o}){let[s,c]=(0,S.useState)(``),l=(0,S.useMemo)(()=>{let t=s.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)):e},[e,s]);return(0,E.jsxs)(`div`,{className:_(`flex flex-col gap-2`,a),children:[(0,E.jsxs)(`div`,{className:`relative`,children:[(0,E.jsx)(y,{className:`absolute top-1/2 left-2.5 size-4 -translate-y-1/2 text-muted-foreground`}),(0,E.jsx)(m,{value:s,onChange:e=>c(e.target.value),placeholder:`Filter repositories…`,className:`pl-8`,"aria-label":`Filter repositories`})]}),(0,E.jsx)(`div`,{className:`max-h-56 overflow-y-auto rounded-lg border border-border`,children:r?(0,E.jsx)(`p`,{className:`p-3 text-sm text-muted-foreground`,children:`Scanning for repositories…`}):l.length===0?(0,E.jsx)(`p`,{className:`p-3 text-sm text-muted-foreground`,children:i??`No repositories found.`}):(0,E.jsx)(`ul`,{className:`divide-y divide-border`,children:l.map(e=>{let r=t.includes(e.path),i=o?.[e.path];return(0,E.jsx)(`li`,{children:(0,E.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-3 px-3 py-2 hover:bg-accent`,children:[(0,E.jsx)(O,{checked:r,onCheckedChange:()=>n(e),"aria-label":e.name}),(0,E.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,E.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.name}),(0,E.jsx)(`span`,{className:`block truncate font-mono text-xs text-muted-foreground`,children:e.path})]}),(0,E.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[i&&(0,E.jsx)(b,{tone:i.status===`up-to-date`?`success`:i.status===`behind`?`warning`:i.status===`diverged`?`danger`:i.status===`ahead`?`info`:`neutral`,title:i.message,children:i.status===`behind`?`↓ ${i.behind} behind`:i.status===`up-to-date`?`Up to date`:i.status===`diverged`?`Diverged`:i.status===`ahead`?`↑ ${i.ahead} ahead`:`Local`}),(0,E.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.defaultBranch})]})]})},e.path)})})})]})}function A({onCreated:e}){let[t,n]=(0,S.useState)(!1),[r,i]=(0,S.useState)(``),[a,o]=(0,S.useState)(null),s=he(),c=async()=>{o(null);try{let{repo:t}=await s.mutateAsync(r.trim());i(``),n(!1),e(t)}catch(e){o(e instanceof Error?e.message:String(e))}};return t?(0,E.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-1.5`,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(m,{value:r,onChange:e=>i(e.target.value),onKeyDown:e=>e.key===`Enter`&&r.trim()&&c(),placeholder:`new-repo-name`,className:`h-7 font-mono text-xs`,"aria-label":`New repository name`,autoFocus:!0}),(0,E.jsxs)(v,{size:`xs`,onClick:c,disabled:!r.trim()||s.isPending,children:[s.isPending?(0,E.jsx)(ge,{}):null,`Create`]}),(0,E.jsx)(v,{size:`xs`,variant:`ghost`,onClick:()=>{n(!1),o(null)},children:`Cancel`})]}),a&&(0,E.jsx)(`p`,{className:`text-xs text-destructive-foreground`,children:a})]}):(0,E.jsxs)(`button`,{type:`button`,onClick:()=>n(!0),className:`mt-1.5 inline-flex cursor-pointer items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground`,children:[(0,E.jsx)(x,{className:`size-3.5`}),` Scaffold a brand-new repository`]})}export{k as n,O as r,A as t};
@@ -1,7 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{n as t,t as n}from"./jsx-runtime-DE3RlOCf.js";import{n as r,t as i}from"./badge-BObbahyU.js";import{h as a,m as o,t as s}from"./button-BrcP8Wxx.js";import{t as ee}from"./chevron-down-Dy03VL1q.js";import{t as c}from"./code-xml-DHWUQOSO.js";import{a as l,i as te,n as ne,o as re,r as ie,s as ae,t as oe}from"./square-check-big-DpHMT26q.js";import{n as se,t as u}from"./shield-check-C5I2LDCK.js";import{t as d}from"./trash-2-BrrLX4tD.js";import{$ as ce,A as le,B as ue,Dn as de,En as fe,Jt as pe,On as f,Qt as me,Sn as p,V as he,Zt as m,_ as h,a as ge,an as _e,b as g,cn as ve,dn as ye,dt as be,et as xe,ft as Se,g as _,h as v,i as Ce,in as we,it as Te,m as y,n as Ee,nn as De,nt as Oe,o as ke,p as Ae,r as je,t as Me,xn as Ne,xt as Pe,y as b,yn as x,z as Fe}from"./index-D-sx2qJG.js";import{t as Ie}from"./card-BMggHY3n.js";import{t as S}from"./label-C610MHwq.js";var Le=a(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]),Re=a(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),ze=a(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),C=e(t(),1),w=n(),T={"git-pull-request":te,"flask-conical":l,package:ie,database:ae,"shield-check":u,terminal:De,zap:m,cpu:p,layers:x,boxes:f,code:c},Be=[{label:`Blue`,value:`#3b82f6`},{label:`Green`,value:`#10b981`},{label:`Purple`,value:`#8b5cf6`},{label:`Amber`,value:`#f59e0b`},{label:`Red`,value:`#ef4444`},{label:`Cyan`,value:`#06b6d4`},{label:`Pink`,value:`#ec4899`},{label:`Emerald`,value:`#059669`}];function E({showToast:e}){let[t,n]=(0,C.useState)(`global`),[a,l]=(0,C.useState)(``),[te,ie]=(0,C.useState)({}),[ae,u]=(0,C.useState)(!1),[p,m]=(0,C.useState)(null),[De,x]=(0,C.useState)(!1),[E,D]=(0,C.useState)(null),[Ve,He]=(0,C.useState)(!1),[O,k]=(0,C.useState)(`edit`),[A,j]=(0,C.useState)(`global`),[M,N]=(0,C.useState)(``),[Ue,P]=(0,C.useState)(!1),[F,I]=(0,C.useState)(null),[We,L]=(0,C.useState)(!1),[R,z]=(0,C.useState)(null),[Ge,Ke]=(0,C.useState)(null),[qe,B]=(0,C.useState)(null),{data:V=[],isLoading:Je}=Oe(),{data:H=[],isLoading:Ye}=Te(t===`global`?void 0:t),{data:U=[]}=Se(),{data:Xe=[]}=he(),{data:W,isLoading:Ze,isError:Qe}=be(t===`global`?``:t),[G,K]=(0,C.useState)(null),$e=Array.from(new Set(Xe.flatMap(e=>[e.id,...e.tags||[]]).concat([`git`,`pr`,`testing`,`security`,`performance`,`database`,`ci-cd`,`frontend`,`backend`]).filter(Boolean))).slice(0,24),et=xe(),tt=ue(),q=ce(),nt=Fe(),J=le(),Y=t!==`global`,X=new Set(G??W?.enabledSkills??[]),Z=!Y||!Ze&&!Qe&&!!W;(0,C.useEffect)(()=>{if(!Y){K(null);return}W&&K([...W.enabledSkills])},[Y,t,W]);let rt=e=>{ie(t=>({...t,[e]:!t[e]}))},Q=H.filter(e=>{if(!a.trim())return!0;let t=a.toLowerCase();return e.title?.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)||e.description.toLowerCase().includes(t)||e.tags?.some(e=>e.toLowerCase().includes(t))}),it=V.reduce((e,t)=>(e[t.id]=Q.filter(e=>e.category===t.id),e),{}),at=Q.filter(e=>!e.category||!V.some(t=>t.id===e.category)),ot=e=>{m(e||{name:``,description:``,icon:`boxes`,color:`#3b82f6`,custom:!0}),u(!0)},st=async()=>{if(!(!p||!p.name?.trim()))try{await et.mutateAsync({id:p.id,name:p.name.trim(),description:p.description,icon:p.icon,color:p.color}),e?.(`Category saved successfully`,`success`),u(!1),m(null)}catch(t){e?.(`Failed to save category`,`error`),console.error(t)}},ct=(e,t)=>{t.stopPropagation(),z({type:`category`,id:e.id,title:e.name}),L(!0)},$=(e,n)=>{let r=e?.scope??(Y?`workspace`:`global`);j(r),N(Y?t:U[0]?.id||``),D(e||{name:``,title:``,category:n||(V[0]?.id??`pull-requests`),description:``,tags:[],allowedTools:[],content:`# Skill Title
2
-
3
- Instructions and playbook for the AI assistant.
4
- `,custom:!0,scope:r}),He(!!e),k(`edit`),x(!0)};(0,C.useEffect)(()=>{!M&&U.length>0&&N(U[0].id)},[U,M]);let lt=e=>{if(!E)return;let t={...E,title:e};!Ve&&!E.id&&(t.name=e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)),D(t)},ut=async()=>{if(!E||!E.name?.trim()||!E.description?.trim()||!E.content?.trim()){e?.(`Skill name, trigger description, and content are required`,`error`);return}if(A===`workspace`&&!M){e?.(`Please select a target workspace for workspace-local skill`,`error`);return}try{await q.mutateAsync({id:E.id,name:E.name.trim(),title:E.title||E.name,category:E.category||`general`,description:E.description||``,tags:E.tags||[],allowedTools:E.allowedTools||[],content:E.content,scope:A,workspaceId:A===`workspace`?M:void 0}),e?.(A===`workspace`?`Workspace skill saved successfully in .agents/skills/`:`Global skill package saved successfully`,`success`),x(!1),D(null)}catch(t){e?.(t?.message||`Failed to save skill`,`error`),console.error(t)}},dt=(e,n)=>{n.stopPropagation();let r=e.scope===`workspace`||A===`workspace`?t===`global`?M||void 0:t:void 0;z({type:`skill`,id:e.id,title:e.title||e.name,workspaceId:r}),L(!0)},ft=async()=>{if(R)try{R.type===`category`?(await tt.mutateAsync(R.id),e?.(`Category deleted`,`info`)):(await nt.mutateAsync({id:R.id,workspaceId:R.workspaceId}),e?.(`Skill package deleted`,`info`)),L(!1),z(null)}catch(t){e?.(t?.message||`Failed to delete item`,`error`),console.error(t)}},pt=e=>{if(!Y||!Z||G===null)return;let t=new Set(G);t.has(e)?t.delete(e):t.add(e),K(Array.from(t))},mt=()=>{if(!E||E.custom!==!1)return;let e=`${E.name}-copy`;D({...E,id:void 0,name:e,title:`${E.title||E.name} Copy`,allowedTools:[],custom:!0,sourcePath:void 0,references:void 0,scripts:void 0}),He(!0)},ht=(e,t)=>{if(!Y||!Z||G===null)return;let n=it[e]||[],r=new Set(G);for(let e of n)t?r.add(e.id):r.delete(e.id);K(Array.from(r))},gt=async()=>{if(!(!W||G===null||!Y))try{await J.mutateAsync({workspaceId:t,expectedRevision:W.revision??0,enabledSkills:G,enabledAgents:W.enabledAgents??[],enabledCategories:V.map(e=>e.id)}),e?.(`Skill selection saved. Refresh the workspace to apply it.`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save skill selection`,`error`)}},_t=(e,t)=>{e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`move`,Ke(t)},vt=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,qe!==t&&B(t)},yt=()=>{B(null)},bt=async(t,n)=>{t.preventDefault(),B(null);let r=t.dataTransfer.getData(`text/plain`)||Ge;if(Ke(null),!r)return;let i=H.find(e=>e.id===r);!i||!i.custom||Y||i.category===n||(await q.mutateAsync({id:i.id,name:i.name,title:i.title,description:i.description,tags:i.tags,allowedTools:i.allowedTools,content:i.content,category:n}),e?.(`Skill re-categorized`,`success`))},xt=(e,t)=>{t.stopPropagation(),I(e),P(!0)},St=async t=>{if(!F||F.category===t){P(!1),I(null);return}await q.mutateAsync({id:F.id,name:F.name,title:F.title,description:F.description,tags:F.tags,allowedTools:F.allowedTools,content:F.content,category:t}),e?.(`Skill moved to category`,`success`),P(!1),I(null)};return(0,w.jsxs)(`div`,{className:`flex-1 flex flex-col h-full overflow-hidden bg-background text-foreground`,children:[(0,w.jsxs)(`div`,{className:`p-6 border-b border-border flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-card/40 backdrop-blur-sm`,children:[(0,w.jsx)(`div`,{children:(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`div`,{className:`p-2 rounded-xl bg-primary/10 text-primary`,children:(0,w.jsx)(f,{className:`h-6 w-6`})}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h1`,{className:`text-xl font-bold tracking-tight`,children:`Skill Library`}),(0,w.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create, organize, and assign reusable Agent Skill packages.`})]})]})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,w.jsx)(s,{render:(0,w.jsx)(pe,{to:`/agents`}),variant:`outline`,size:`sm`,children:`Codex Agents`}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/50 rounded-lg px-3 py-1.5 border border-border`,children:[(0,w.jsx)(Ne,{className:`h-4 w-4 text-muted-foreground`}),(0,w.jsx)(S,{htmlFor:`skill-scope`,className:`text-xs font-medium text-muted-foreground`,children:`Scope:`}),(0,w.jsxs)(`select`,{id:`skill-scope`,value:t,onChange:e=>n(e.target.value),className:`bg-transparent text-xs font-semibold focus:outline-none cursor-pointer text-foreground`,children:[(0,w.jsx)(`option`,{value:`global`,className:`bg-popover text-popover-foreground`,children:`🌐 Global Skills Catalog`}),U.map(e=>(0,w.jsxs)(`option`,{value:e.id,className:`bg-popover text-popover-foreground`,children:[`📁 `,e.id,` (`,e.branchName,`)`]},e.id))]})]}),!Y&&(0,w.jsxs)(s,{variant:`outline`,size:`sm`,onClick:()=>ot(),className:`flex items-center gap-1.5`,children:[(0,w.jsx)(ye,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{children:`New Category`})]}),Y&&(0,w.jsx)(s,{size:`sm`,onClick:gt,disabled:!Z||J.isPending||G===null,children:J.isPending?`Saving…`:`Save selection`}),(0,w.jsxs)(s,{variant:`default`,size:`sm`,onClick:()=>$(),className:`flex items-center gap-1.5`,children:[(0,w.jsx)(_e,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{children:`New Skill`})]})]})]}),(0,w.jsxs)(`div`,{className:`px-6 py-3 border-b border-border/60 bg-muted/20 flex items-center justify-between gap-4`,children:[(0,w.jsxs)(`div`,{className:`relative flex-1 max-w-md`,children:[(0,w.jsx)(ve,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,w.jsx)(r,{value:a,onChange:e=>l(e.target.value),placeholder:`Search skills by keyword, tag, or tool...`,className:`pl-9 pr-8 h-9 text-xs`}),a&&(0,w.jsx)(`button`,{onClick:()=>l(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,children:(0,w.jsx)(me,{className:`h-3.5 w-3.5`})})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,w.jsxs)(`span`,{children:[`Showing `,(0,w.jsx)(`strong`,{className:`text-foreground`,children:Q.length}),` of`,` `,(0,w.jsx)(`strong`,{className:`text-foreground`,children:H.length}),` skills`]}),Y&&(0,w.jsxs)(i,{variant:`secondary`,className:`text-[10px] uppercase font-mono`,children:[`Workspace Mode (`,X.size,` active)`]})]})]}),(0,w.jsx)(Pe,{className:`flex-1 p-6`,children:Je||Ye||Y&&Ze?(0,w.jsxs)(`div`,{className:`flex items-center justify-center p-12 gap-3 text-muted-foreground`,children:[(0,w.jsx)(Ae,{}),(0,w.jsx)(`span`,{className:`text-sm`,children:`Loading skills catalog...`})]}):Y&&Qe?(0,w.jsx)(Me,{className:`py-12 border border-dashed rounded-xl`,children:(0,w.jsxs)(je,{children:[(0,w.jsx)(ge,{children:`Workspace resources could not be loaded`}),(0,w.jsx)(Ee,{children:`Assignment controls are disabled so an existing selection cannot be overwritten.`})]})}):Q.length===0&&a?(0,w.jsxs)(Me,{className:`py-12 border border-dashed rounded-xl`,children:[(0,w.jsx)(Ce,{children:(0,w.jsx)(ve,{className:`h-8 w-8 text-muted-foreground/60`})}),(0,w.jsxs)(je,{children:[(0,w.jsx)(ge,{children:`No matching skills found`}),(0,w.jsxs)(Ee,{children:[`No skills matched your search query "`,a,`".`]})]}),(0,w.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>l(``),children:`Clear Search`})]}):(0,w.jsxs)(`div`,{className:`space-y-6 max-w-7xl mx-auto pb-12`,children:[V.map(e=>{let t=T[e.icon||`boxes`]||f,n=it[e.id]||[],r=!!te[e.id],a=qe===e.id,c=n.length>0&&n.every(e=>X.has(e.id));return(0,w.jsxs)(`div`,{onDragOver:t=>vt(t,e.id),onDragLeave:yt,onDrop:t=>bt(t,e.id),className:o(`border rounded-xl transition-all duration-150 overflow-hidden bg-card/60`,a?`border-primary ring-2 ring-primary/20 bg-primary/5`:`border-border`),children:[(0,w.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-expanded":!r,onClick:()=>rt(e.id),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),rt(e.id))},className:`p-4 flex items-center justify-between cursor-pointer hover:bg-muted/40 transition-colors border-b border-border/40 select-none`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`div`,{className:`p-2 rounded-lg text-white shadow-sm flex items-center justify-center`,style:{backgroundColor:e.color||`#3b82f6`},children:(0,w.jsx)(t,{className:`h-4 w-4`})}),(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(`h2`,{className:`font-semibold text-sm tracking-tight`,children:e.name}),(0,w.jsxs)(i,{variant:`outline`,className:`text-[10px] px-1.5 py-0`,children:[n.length,` `,n.length===1?`skill`:`skills`]}),e.isTemplate&&!e.custom&&(0,w.jsx)(i,{variant:`secondary`,className:`text-[9px] px-1 py-0 uppercase`,children:`Template`})]}),e.description&&(0,w.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:e.description})]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[Y&&n.length>0&&(0,w.jsxs)(s,{variant:`ghost`,size:`xs`,onClick:()=>ht(e.id,!c),className:`h-7 text-xs mr-2 text-muted-foreground hover:text-foreground`,title:c?`Deselect all in category`:`Select all in category`,children:[c?(0,w.jsx)(oe,{className:`h-3.5 w-3.5 mr-1 text-primary`}):(0,w.jsx)(we,{className:`h-3.5 w-3.5 mr-1`}),(0,w.jsx)(`span`,{children:c?`Deselect All`:`Select All`})]}),!Y&&(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:()=>$(void 0,e.id),title:`Add skill to this category`,children:(0,w.jsx)(ye,{className:`h-3.5 w-3.5`})}),!Y&&(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:()=>ot(e),title:`Edit category`,children:(0,w.jsx)(ne,{className:`h-3 w-3`})}),!Y&&e.custom&&(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:t=>ct(e,t),title:`Delete category`,className:`text-destructive hover:text-destructive`,children:(0,w.jsx)(d,{className:`h-3 w-3`})}),(0,w.jsx)(`div`,{className:`p-1 text-muted-foreground`,children:r?(0,w.jsx)(fe,{className:`h-4 w-4`}):(0,w.jsx)(ee,{className:`h-4 w-4`})})]})]}),!r&&(0,w.jsx)(`div`,{className:`p-4 bg-background/50`,children:n.length===0?(0,w.jsxs)(`div`,{className:`border border-dashed border-border/80 rounded-lg p-6 text-center text-xs text-muted-foreground`,children:[`No skills in this category.`,!Y&&(0,w.jsxs)(w.Fragment,{children:[` `,`Drag a custom skill here, or click`,` `,(0,w.jsx)(`button`,{onClick:()=>$(void 0,e.id),className:`text-primary underline font-medium`,children:`+ Add Skill`})]})]}):(0,w.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:n.map(e=>{let t=X.has(e.id);return(0,w.jsxs)(Ie,{draggable:!Y&&!!e.custom,onDragStart:t=>{!Y&&e.custom&&_t(t,e.id)},onClick:()=>$(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e))},className:o(`group relative cursor-pointer hover:border-primary/60 transition-all p-3.5 flex flex-col justify-between select-none shadow-sm`,Y&&!t&&`opacity-60 bg-muted/20`,Ge===e.id&&`opacity-40 border-dashed`),children:[(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-2 mb-2`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground group-hover:text-foreground cursor-grab active:cursor-grabbing`,title:`Drag to reorder or re-categorize`,"aria-label":`Drag handle`,children:[(0,w.jsx)(Re,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{className:`font-mono text-xs font-bold text-foreground`,children:e.title||e.name})]}),Y?(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(i,{variant:`outline`,className:o(`text-[9px] font-mono px-1 py-0.2 uppercase`,e.scope===`workspace`?`border-amber-500/40 text-amber-300 bg-amber-500/10`:`border-blue-500/40 text-blue-300 bg-blue-500/10`),children:e.scope===`workspace`?`Workspace`:`Global`}),(0,w.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),pt(e.id)},disabled:!Z||J.isPending,className:o(`h-5 px-2 rounded-md flex items-center gap-1 text-[10px] font-semibold transition-colors`,t?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-muted/80`),children:[(0,w.jsx)(de,{className:o(`h-3 w-3`,!t&&`opacity-0`)}),(0,w.jsx)(`span`,{children:t?`Enabled`:`Disabled`})]})]}):(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(i,{variant:`outline`,className:o(`text-[9px] font-mono px-1 py-0.2 uppercase`,e.scope===`workspace`?`border-amber-500/40 text-amber-300 bg-amber-500/10`:`border-blue-500/40 text-blue-300 bg-blue-500/10`),children:e.scope===`workspace`?`Workspace`:`Global`}),(0,w.jsx)(i,{variant:`outline`,className:`text-[10px] font-mono`,children:e.custom?`Custom`:`Template`})]})]}),(0,w.jsx)(`p`,{className:`text-xs text-muted-foreground line-clamp-2 mb-3 leading-relaxed`,children:e.description||`No description provided.`})]}),(0,w.jsxs)(`div`,{className:`pt-2 border-t border-border/40 flex items-center justify-between gap-2`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap overflow-hidden`,children:[e.tags?.slice(0,3).map(e=>(0,w.jsxs)(`span`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded text-muted-foreground`,children:[`#`,e]},e)),e.allowedTools&&e.allowedTools.length>0&&(0,w.jsxs)(`span`,{className:`text-[10px] text-muted-foreground flex items-center gap-0.5 font-mono`,children:[(0,w.jsx)(ze,{className:`h-2.5 w-2.5`}),e.allowedTools.length]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:[!Y&&e.custom&&(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:t=>xt(e,t),title:`Move to another category`,className:`h-6 w-6 text-muted-foreground hover:text-foreground`,children:(0,w.jsx)(Le,{className:`h-3 w-3`})}),e.custom&&(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:t=>dt(e,t),title:`Delete skill`,className:`h-6 w-6 text-destructive hover:text-destructive cursor-pointer`,children:(0,w.jsx)(d,{className:`h-3 w-3`})})]})]})]},e.id)})})})]},e.id)}),at.length>0&&(0,w.jsxs)(`div`,{className:`border border-border/80 rounded-xl overflow-hidden bg-card/60`,children:[(0,w.jsx)(`div`,{className:`p-4 bg-muted/30 border-b border-border/40 flex items-center justify-between`,children:(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(f,{className:`h-4 w-4 text-muted-foreground`}),(0,w.jsx)(`h2`,{className:`font-semibold text-sm`,children:`Uncategorized Skills`}),(0,w.jsx)(i,{variant:`outline`,className:`text-[10px]`,children:at.length})]})}),(0,w.jsx)(`div`,{className:`p-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:at.map(e=>(0,w.jsxs)(Ie,{onClick:()=>$(e),role:`button`,tabIndex:0,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),$(e))},className:`p-3.5 cursor-pointer hover:border-primary/60 flex flex-col justify-between`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,w.jsx)(`div`,{className:`font-mono text-xs font-bold`,children:e.title||e.name}),(0,w.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,w.jsx)(i,{variant:`outline`,className:o(`text-[9px] font-mono px-1 py-0.2 uppercase`,e.scope===`workspace`?`border-amber-500/40 text-amber-300 bg-amber-500/10`:`border-blue-500/40 text-blue-300 bg-blue-500/10`),children:e.scope===`workspace`?`Workspace`:`Global`}),Y&&(0,w.jsx)(s,{size:`xs`,variant:X.has(e.id)?`default`:`outline`,disabled:!Z||J.isPending,onClick:t=>{t.stopPropagation(),pt(e.id)},children:X.has(e.id)?`Enabled`:`Disabled`})]})]}),(0,w.jsx)(`p`,{className:`text-xs text-muted-foreground line-clamp-2`,children:e.description})]}),(0,w.jsxs)(`div`,{className:`pt-2 mt-2 border-t border-border/40 flex items-center justify-between gap-2`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap overflow-hidden`,children:[e.tags&&e.tags.length>0?e.tags.slice(0,3).map(e=>(0,w.jsxs)(`span`,{className:`text-[10px] font-mono bg-muted px-1.5 py-0.5 rounded text-muted-foreground`,children:[`#`,e]},e)):(0,w.jsx)(`span`,{className:`text-[10px] text-muted-foreground italic`,children:`No tags`}),e.allowedTools&&e.allowedTools.length>0&&(0,w.jsxs)(`span`,{className:`text-[10px] text-muted-foreground flex items-center gap-0.5 font-mono`,children:[(0,w.jsx)(ze,{className:`h-2.5 w-2.5`}),e.allowedTools.length]})]}),e.custom&&(0,w.jsx)(`div`,{className:`flex items-center gap-1`,onClick:e=>e.stopPropagation(),children:(0,w.jsx)(s,{variant:`ghost`,size:`icon-xs`,onClick:t=>dt(e,t),title:`Delete skill`,className:`h-6 w-6 text-destructive hover:text-destructive cursor-pointer`,children:(0,w.jsx)(d,{className:`h-3 w-3`})})})]})]},e.id))})]})]})}),(0,w.jsx)(y,{open:ae,onOpenChange:u,children:(0,w.jsxs)(b,{className:`sm:max-w-lg`,children:[(0,w.jsxs)(h,{children:[(0,w.jsx)(g,{children:p?.id?`Edit Skill Category`:`Create Skill Category`}),(0,w.jsx)(v,{children:`Categories group related procedural skills and agent tools into clean visual boxes.`})]}),(0,w.jsxs)(`div`,{className:`space-y-4 py-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`cat-name`,className:`text-xs font-medium`,children:`Category Name`}),(0,w.jsx)(r,{id:`cat-name`,value:p?.name||``,onChange:e=>m(t=>t?{...t,name:e.target.value}:null),placeholder:`e.g. Pull Requests & Review`,className:`mt-1 text-xs`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`cat-desc`,className:`text-xs font-medium`,children:`Description`}),(0,w.jsx)(r,{id:`cat-desc`,value:p?.description||``,onChange:e=>m(t=>t?{...t,description:e.target.value}:null),placeholder:`Brief summary of what skills belong in this box...`,className:`mt-1 text-xs`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{className:`text-xs font-medium`,children:`Icon`}),(0,w.jsx)(`div`,{className:`grid grid-cols-6 gap-2 mt-1.5`,children:Object.keys(T).map(e=>{let t=T[e],n=(p?.icon||`boxes`)===e;return(0,w.jsx)(`button`,{type:`button`,onClick:()=>m(t=>t?{...t,icon:e}:null),className:o(`p-2.5 rounded-lg border flex items-center justify-center transition-colors`,n?`border-primary bg-primary/10 text-primary`:`border-border hover:bg-muted text-muted-foreground`),children:(0,w.jsx)(t,{className:`h-4 w-4`})},e)})})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{className:`text-xs font-medium`,children:`Color Accent`}),(0,w.jsx)(`div`,{className:`flex items-center gap-2 mt-1.5 flex-wrap`,children:Be.map(e=>{let t=p?.color===e.value;return(0,w.jsx)(`button`,{type:`button`,"aria-label":`Select color ${e.label}`,onClick:()=>m(t=>t?{...t,color:e.value}:null),className:o(`w-7 h-7 rounded-full transition-transform flex items-center justify-center shadow-sm`,t?`scale-110 ring-2 ring-primary ring-offset-2`:`hover:scale-105`),style:{backgroundColor:e.value},children:t&&(0,w.jsx)(de,{className:`h-3.5 w-3.5 text-white`})},e.value)})})]})]}),(0,w.jsxs)(_,{children:[(0,w.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>u(!1),children:`Cancel`}),(0,w.jsx)(s,{variant:`default`,size:`sm`,onClick:st,disabled:!p?.name?.trim(),children:`Save Category`})]})]})}),(0,w.jsx)(y,{open:De,onOpenChange:x,children:(0,w.jsxs)(b,{className:`max-w-[96vw] sm:max-w-5xl lg:max-w-6xl xl:max-w-7xl h-[90vh] max-h-[92vh] flex flex-col p-6`,children:[(0,w.jsx)(h,{className:`pb-3 border-b border-border/70 shrink-0`,children:(0,w.jsxs)(`div`,{className:`flex items-center justify-between pr-8`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(g,{className:`text-base font-bold flex items-center gap-2`,children:[(0,w.jsx)(_e,{className:`h-4 w-4 text-primary`}),(0,w.jsx)(`span`,{children:E?.id?`Edit Skill Package`:`Create New Skill`})]}),(0,w.jsx)(v,{className:`text-xs text-muted-foreground mt-0.5`,children:`Configure SKILL.md metadata triggers and markdown playbook instructions.`})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-1 bg-muted/60 p-1 rounded-lg border border-border text-xs`,children:[(0,w.jsxs)(`button`,{type:`button`,onClick:()=>k(`edit`),className:o(`px-3 py-1.5 rounded-md flex items-center gap-1.5 font-medium transition-colors cursor-pointer`,O===`edit`?`bg-background text-foreground shadow-xs`:`text-muted-foreground hover:text-foreground`),children:[(0,w.jsx)(se,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{children:`Edit`})]}),(0,w.jsxs)(`button`,{type:`button`,onClick:()=>k(`preview`),className:o(`px-3 py-1.5 rounded-md flex items-center gap-1.5 font-medium transition-colors cursor-pointer`,O===`preview`?`bg-background text-foreground shadow-xs`:`text-muted-foreground hover:text-foreground`),children:[(0,w.jsx)(re,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{children:`Preview`})]})]})]})}),(0,w.jsxs)(`div`,{className:`flex-1 min-h-0 py-4 flex flex-col lg:flex-row gap-6 overflow-hidden`,children:[(0,w.jsxs)(`div`,{className:`lg:w-[420px] xl:w-[460px] shrink-0 flex flex-col gap-4 overflow-y-auto pr-2 pb-2`,children:[(0,w.jsxs)(`div`,{className:`space-y-3`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`skill-title`,className:`text-xs font-medium`,children:`Display Title`}),(0,w.jsx)(r,{id:`skill-title`,value:E?.title||``,onChange:e=>lt(e.target.value),placeholder:`e.g. Pull Request Reviewer`,className:`mt-1 text-xs`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`skill-name`,className:`text-xs font-medium`,children:`Identifier (Slug)`}),(0,w.jsx)(r,{id:`skill-name`,value:E?.name||``,disabled:!!E?.id,onChange:e=>{He(!0),D(t=>t?{...t,name:e.target.value}:null)},placeholder:`e.g. pr-review-toolkit`,className:`mt-1 text-xs font-mono`})]})]}),(0,w.jsxs)(`div`,{className:`p-3 rounded-lg border border-border/80 bg-muted/20 space-y-2`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsxs)(S,{className:`text-xs font-semibold text-foreground flex items-center gap-1.5`,children:[(0,w.jsx)(f,{className:`h-3.5 w-3.5 text-primary`}),(0,w.jsx)(`span`,{children:`Skill Scope`})]}),(0,w.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:A===`global`?`Machine-wide catalog`:`Project-specific (.agents/skills/)`})]}),(0,w.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,w.jsx)(`button`,{type:`button`,onClick:()=>j(`global`),className:o(`flex items-center justify-center gap-2 p-2 rounded-lg border text-xs font-medium transition-all cursor-pointer`,A===`global`?`border-blue-500/50 bg-blue-500/15 text-blue-300 font-semibold shadow-xs`:`border-border/60 bg-card/60 text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:(0,w.jsx)(`span`,{children:`🌐 Global Catalog`})}),(0,w.jsx)(`button`,{type:`button`,onClick:()=>j(`workspace`),className:o(`flex items-center justify-center gap-2 p-2 rounded-lg border text-xs font-medium transition-all cursor-pointer`,A===`workspace`?`border-amber-500/50 bg-amber-500/15 text-amber-300 font-semibold shadow-xs`:`border-border/60 bg-card/60 text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:(0,w.jsx)(`span`,{children:`📁 Workspace-Local`})})]}),A===`workspace`&&(0,w.jsxs)(`div`,{className:`pt-1`,children:[(0,w.jsx)(S,{htmlFor:`target-ws`,className:`text-[11px] font-medium text-muted-foreground`,children:`Target Workspace:`}),U.length>0?(0,w.jsx)(`select`,{id:`target-ws`,value:M,onChange:e=>N(e.target.value),className:`mt-1 w-full bg-background border border-border rounded-md px-3 py-1.5 text-xs focus:outline-none focus:ring-1 focus:ring-primary text-foreground`,children:U.map(e=>(0,w.jsxs)(`option`,{value:e.id,children:[`📁 `,e.id,` (`,e.branchName,`)`]},e.id))}):(0,w.jsx)(`div`,{className:`mt-1 text-xs text-destructive italic`,children:`No active workspaces found. Please create a workspace first.`})]})]}),(0,w.jsxs)(`div`,{className:`space-y-3`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`skill-cat`,className:`text-xs font-medium`,children:`Category Box`}),(0,w.jsx)(`select`,{id:`skill-cat`,value:E?.category||``,onChange:e=>D(t=>t?{...t,category:e.target.value}:null),className:`mt-1 w-full bg-background border border-border rounded-md px-3 py-2 text-xs focus:outline-none focus:ring-1 focus:ring-primary`,children:V.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsx)(S,{htmlFor:`skill-tags`,className:`text-xs font-medium`,children:`Tags & Domain Categories`}),(0,w.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`Click chips below to toggle`})]}),(0,w.jsx)(r,{id:`skill-tags`,value:E?.tags?.join(`, `)||``,onChange:e=>D(t=>t?{...t,tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)}:null),placeholder:`e.g. nexusflow, core, cli, testing`,className:`mt-1 text-xs font-mono`})]}),$e.length>0&&(0,w.jsxs)(`div`,{className:`space-y-1`,children:[(0,w.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:`Quick Tag Assignment:`}),(0,w.jsx)(`div`,{className:`flex flex-wrap gap-1 max-h-24 overflow-y-auto pr-1`,children:$e.map(e=>{let t=E?.tags?.includes(e);return(0,w.jsxs)(`button`,{type:`button`,onClick:()=>{D(n=>{if(!n)return null;let r=n.tags||[],i=t?r.filter(t=>t!==e):[...r,e];return{...n,tags:i}})},className:o(`px-2 py-0.5 rounded-md text-[11px] font-mono transition-colors cursor-pointer border`,t?`bg-primary/20 text-primary border-primary/40 font-semibold shadow-xs`:`bg-muted/40 text-muted-foreground border-border/60 hover:bg-muted hover:text-foreground`),children:[`#`,e]},e)})})]})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(S,{htmlFor:`skill-desc`,className:`text-xs font-medium`,children:`Trigger Description (for AI Autonomous Discovery)`}),(0,w.jsx)(ke,{id:`skill-desc`,rows:3,value:E?.description||``,onChange:e=>D(t=>t?{...t,description:e.target.value}:null),placeholder:`e.g. Use when reviewing PR diffs or when user asks for a PR audit...`,className:`mt-1 text-xs leading-relaxed resize-none`})]})]}),(0,w.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-col min-h-[380px] lg:min-h-0 border-t lg:border-t-0 lg:border-l border-border/70 pt-4 lg:pt-0 lg:pl-6`,children:O===`edit`?(0,w.jsxs)(`div`,{className:`flex flex-col flex-1 min-h-0 h-full`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between pb-2 shrink-0`,children:[(0,w.jsxs)(S,{htmlFor:`skill-content`,className:`text-xs font-semibold flex items-center gap-1.5`,children:[(0,w.jsx)(c,{className:`h-3.5 w-3.5 text-primary`}),(0,w.jsx)(`span`,{children:`Playbook Instructions (Markdown)`})]}),(0,w.jsxs)(`span`,{className:`text-[10px] text-muted-foreground font-mono`,children:[(E?.content||``).split(`
5
- `).length,` lines · `,(E?.content||``).length,` characters`]})]}),(0,w.jsxs)(`p`,{className:`text-xs text-muted-foreground mb-2 leading-relaxed`,children:[`Frontmatter (`,(0,w.jsx)(`code`,{className:`font-mono text-[11px] bg-muted/60 px-1 py-0.5 rounded text-foreground`,children:`name`}),`,`,` `,(0,w.jsx)(`code`,{className:`font-mono text-[11px] bg-muted/60 px-1 py-0.5 rounded text-foreground`,children:`description`}),`,`,` `,(0,w.jsx)(`code`,{className:`font-mono text-[11px] bg-muted/60 px-1 py-0.5 rounded text-foreground`,children:`tags`}),`) is managed in the Metadata panel on the left and auto-injected into`,` `,(0,w.jsx)(`code`,{className:`font-mono text-[11px] bg-muted/60 px-1 py-0.5 rounded text-foreground`,children:`SKILL.md`}),` on save.`]}),(0,w.jsx)(ke,{id:`skill-content`,value:E?.content||``,onChange:e=>D(t=>t?{...t,content:e.target.value}:null),placeholder:`# Playbook Title
6
-
7
- Detailed instructions for the AI assistant...`,className:`flex-1 w-full min-h-[360px] lg:min-h-full font-mono text-xs leading-relaxed resize-none focus:ring-1 focus:ring-primary`})]}):(0,w.jsxs)(`div`,{className:`flex flex-col flex-1 min-h-0 h-full`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between pb-2 shrink-0`,children:[(0,w.jsxs)(`span`,{className:`text-xs font-semibold flex items-center gap-1.5 text-foreground`,children:[(0,w.jsx)(re,{className:`h-3.5 w-3.5 text-primary`}),(0,w.jsx)(`span`,{children:`Documentation Preview`})]}),(0,w.jsx)(i,{variant:`outline`,className:`text-[10px] font-mono`,children:`SKILL.md`})]}),(0,w.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-5 border rounded-lg bg-card/40 prose prose-sm dark:prose-invert max-w-none`,children:[(0,w.jsxs)(`div`,{className:`mb-4 pb-3 border-b border-border/70`,children:[(0,w.jsx)(`h2`,{className:`text-lg font-bold m-0 text-foreground`,children:E?.title||E?.name}),(0,w.jsx)(`p`,{className:`text-xs text-muted-foreground m-0 mt-1`,children:E?.description}),E?.tags&&E.tags.length>0&&(0,w.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-2.5`,children:E.tags.map(e=>(0,w.jsxs)(`span`,{className:`px-2 py-0.5 rounded bg-muted text-[11px] font-mono text-muted-foreground`,children:[`#`,e]},e))})]}),(0,w.jsx)(`pre`,{className:`text-xs whitespace-pre-wrap font-sans bg-transparent p-0 border-0 leading-relaxed`,children:E?.content||`*(No playbook markdown provided)*`})]})]})})]}),(0,w.jsxs)(_,{className:`mt-4 pt-3 border-t flex items-center justify-between sm:justify-between w-full`,children:[(0,w.jsx)(`div`,{children:E?.id&&E?.custom&&(0,w.jsxs)(s,{type:`button`,variant:`outline`,size:`sm`,onClick:e=>{let t=E;x(!1),dt(t,e)},className:`text-destructive hover:bg-destructive/10 border-destructive/30 text-xs gap-1.5`,children:[(0,w.jsx)(d,{className:`h-3.5 w-3.5`}),(0,w.jsx)(`span`,{children:`Delete Skill`})]})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,w.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>x(!1),children:`Cancel`}),(0,w.jsx)(s,{variant:`default`,size:`sm`,onClick:E?.custom===!1?mt:ut,disabled:!E?.name?.trim()||!E?.description?.trim()||!E?.content?.trim(),children:E?.custom===!1?`Create editable copy`:`Save Skill`})]})]})]})}),(0,w.jsx)(y,{open:Ue,onOpenChange:P,children:(0,w.jsxs)(b,{className:`sm:max-w-md`,children:[(0,w.jsxs)(h,{children:[(0,w.jsx)(g,{children:`Move Skill to Category`}),(0,w.jsxs)(v,{children:[`Select the destination category box for "`,F?.title||F?.name,`".`]})]}),(0,w.jsx)(`div`,{className:`space-y-2 py-2`,children:V.map(e=>{let t=T[e.icon||`boxes`]||f,n=F?.category===e.id;return(0,w.jsxs)(`button`,{type:`button`,onClick:()=>St(e.id),className:o(`w-full p-3 rounded-lg border text-left flex items-center justify-between transition-colors`,n?`border-primary bg-primary/10`:`border-border hover:bg-muted/50 text-foreground`),children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`div`,{className:`p-1.5 rounded text-white flex items-center justify-center`,style:{backgroundColor:e.color||`#3b82f6`},children:(0,w.jsx)(t,{className:`h-4 w-4`})}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`div`,{className:`font-semibold text-xs`,children:e.name}),e.description&&(0,w.jsx)(`div`,{className:`text-[11px] text-muted-foreground line-clamp-1`,children:e.description})]})]}),n&&(0,w.jsx)(i,{variant:`secondary`,className:`text-[10px]`,children:`Current`})]},e.id)})}),(0,w.jsx)(_,{children:(0,w.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>P(!1),children:`Cancel`})})]})}),(0,w.jsx)(y,{open:We,onOpenChange:L,children:(0,w.jsxs)(b,{className:`sm:max-w-md`,children:[(0,w.jsxs)(h,{children:[(0,w.jsxs)(g,{className:`text-destructive`,children:[`Delete `,R?.type===`category`?`Category`:R?.workspaceId?`Workspace Skill`:`Global Skill`]}),(0,w.jsxs)(v,{children:[`Are you sure you want to delete "`,R?.title,`"`,R?.workspaceId?` from workspace "${R.workspaceId}"`:``,`? This action cannot be undone.`]})]}),(0,w.jsxs)(_,{className:`mt-4`,children:[(0,w.jsx)(s,{variant:`outline`,size:`sm`,onClick:()=>L(!1),children:`Cancel`}),(0,w.jsx)(s,{variant:`destructive`,size:`sm`,onClick:ft,children:`Delete Permanently`})]})]})})]})}export{E as SkillsPage};