@theia/ai-core 1.69.0-next.0 → 1.69.0-next.29

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 (36) hide show
  1. package/lib/browser/frontend-language-model-registry.d.ts +2 -2
  2. package/lib/browser/frontend-language-model-registry.d.ts.map +1 -1
  3. package/lib/browser/frontend-language-model-registry.js +4 -4
  4. package/lib/browser/frontend-language-model-registry.js.map +1 -1
  5. package/lib/browser/skill-service.d.ts +6 -1
  6. package/lib/browser/skill-service.d.ts.map +1 -1
  7. package/lib/browser/skill-service.js +97 -28
  8. package/lib/browser/skill-service.js.map +1 -1
  9. package/lib/browser/skill-service.spec.js +173 -0
  10. package/lib/browser/skill-service.spec.js.map +1 -1
  11. package/lib/common/ai-core-preferences.js +1 -1
  12. package/lib/common/ai-core-preferences.js.map +1 -1
  13. package/lib/common/language-model-delegate.d.ts +1 -1
  14. package/lib/common/language-model-delegate.d.ts.map +1 -1
  15. package/lib/common/language-model-service.d.ts.map +1 -1
  16. package/lib/common/language-model-service.js +6 -0
  17. package/lib/common/language-model-service.js.map +1 -1
  18. package/lib/common/language-model.d.ts +23 -0
  19. package/lib/common/language-model.d.ts.map +1 -1
  20. package/lib/common/language-model.js.map +1 -1
  21. package/lib/common/prompt-service.d.ts +17 -0
  22. package/lib/common/prompt-service.d.ts.map +1 -1
  23. package/lib/common/prompt-service.js +9 -0
  24. package/lib/common/prompt-service.js.map +1 -1
  25. package/lib/node/language-model-frontend-delegate.js +1 -1
  26. package/lib/node/language-model-frontend-delegate.js.map +1 -1
  27. package/package.json +9 -9
  28. package/src/browser/frontend-language-model-registry.ts +6 -5
  29. package/src/browser/skill-service.spec.ts +218 -0
  30. package/src/browser/skill-service.ts +138 -32
  31. package/src/common/ai-core-preferences.ts +1 -1
  32. package/src/common/language-model-delegate.ts +1 -1
  33. package/src/common/language-model-service.ts +6 -0
  34. package/src/common/language-model.ts +22 -0
  35. package/src/common/prompt-service.ts +28 -0
  36. package/src/node/language-model-frontend-delegate.ts +1 -1
@@ -5,7 +5,7 @@ export declare class LanguageModelDelegateClientImpl implements LanguageModelDel
5
5
  protected receiver: FrontendLanguageModelRegistryImpl;
6
6
  setReceiver(receiver: FrontendLanguageModelRegistryImpl): void;
7
7
  send(id: string, token: LanguageModelStreamResponsePart | undefined): void;
8
- toolCall(requestId: string, toolId: string, args_string: string): Promise<ToolCallResult>;
8
+ toolCall(requestId: string, toolId: string, args_string: string, toolCallId?: string): Promise<ToolCallResult>;
9
9
  error(id: string, error: Error): void;
10
10
  languageModelAdded(metadata: LanguageModelMetaData): void;
11
11
  languageModelRemoved(id: string): void;
@@ -38,7 +38,7 @@ export declare class FrontendLanguageModelRegistryImpl extends DefaultLanguageMo
38
38
  protected requests: Map<string, LanguageModelRequest>;
39
39
  getIterable(state: StreamState): AsyncIterable<LanguageModelStreamResponsePart>;
40
40
  send(id: string, token: LanguageModelStreamResponsePart | undefined): void;
41
- toolCall(id: string, toolId: string, arg_string: string): Promise<ToolCallResult>;
41
+ toolCall(id: string, toolId: string, arg_string: string, toolCallId?: string): Promise<ToolCallResult>;
42
42
  error(id: string, error: Error): void;
43
43
  selectLanguageModels(request: LanguageModelSelector): Promise<LanguageModel[] | undefined>;
44
44
  getReadyLanguageModel(idOrAlias: string): Promise<LanguageModel | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-language-model-registry.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-language-model-registry.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,8 @@ let LanguageModelDelegateClientImpl = class LanguageModelDelegateClientImpl {
16
16
  send(id, token) {
17
17
  this.receiver.send(id, token);
18
18
  }
19
- toolCall(requestId, toolId, args_string) {
20
- return this.receiver.toolCall(requestId, toolId, args_string);
19
+ toolCall(requestId, toolId, args_string, toolCallId) {
20
+ return this.receiver.toolCall(requestId, toolId, args_string, toolCallId);
21
21
  }
22
22
  error(id, error) {
23
23
  this.receiver.error(id, error);
@@ -186,7 +186,7 @@ let FrontendLanguageModelRegistryImpl = class FrontendLanguageModelRegistryImpl
186
186
  }
187
187
  }
188
188
  // called by backend once tool is invoked
189
- async toolCall(id, toolId, arg_string) {
189
+ async toolCall(id, toolId, arg_string, toolCallId) {
190
190
  if (!this.requests.has(id)) {
191
191
  return (0, common_1.createToolCallError)(`No request found for ID '${id}'. The request may have been cancelled or completed.`);
192
192
  }
@@ -194,7 +194,7 @@ let FrontendLanguageModelRegistryImpl = class FrontendLanguageModelRegistryImpl
194
194
  const tool = request.tools?.find(t => t.id === toolId);
195
195
  if (tool) {
196
196
  try {
197
- return await tool.handler(arg_string);
197
+ return await tool.handler(arg_string, common_1.ToolInvocationContext.create(toolCallId));
198
198
  }
199
199
  catch (error) {
200
200
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-language-model-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-language-model-registry.js","sourceRoot":"","sources":["../../src/browser/frontend-language-model-registry.ts"],"names":[],"mappings":";;;;;AAgBA,4DAIsC;AACtC,6EAIkD;AAClD,sCAuBmB;AAGZ,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC,sBAAsB,CAAC,EAAU;QAC7B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAGD,WAAW,CAAC,QAA2C;QACnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,KAAkD;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,SAAiB,EAAE,MAAc,EAAE,WAAmB,EAAE,UAAmB;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,KAAY;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,QAA+B;QAC9C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACJ,CAAA;AA9BY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,sBAAU,GAAE;GACA,+BAA+B,CA8B3C;AAUM,IAAM,iCAAiC,GAAvC,MAAM,iCACT,SAAQ,yCAAgC;IADrC;;QAgLO,YAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzC,aAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAuGjE,CAAC;;IAjRG,oBAAoB;IACpB,kBAAkB,CAAC,QAA+B;QAC9C,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,oBAAoB;IACpB,oBAAoB,CAAC,EAAU;QAC3B,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,4CAA4C;IAC5C,sBAAsB,CAAC,EAAU;QAC7B,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,8BAA8B,CAAC,EAAU;QACrD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,OAAO,EAAE,CAAC;gBACV,+CAA+C;gBAC/C,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;aAgBc,mBAAc,GAAW,CAAC,AAAZ,CAAa;IAEjC,iBAAiB,CAAC,MAAiD;QACxE,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3D,SAAS;YACb,CAAC;YACD,IAAI,sBAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CACpB,IAAI,KAAK,CACL,KAAK,EACL,0BAA0B,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CACtC,KAAK,CAAC,EAAE,CACX,CACJ,CACJ,CACJ,CAAC;gBACF,UAAU,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,IAAI,CACpB,IAAI,KAAK,CACL,IAAI,CAAC,2BAA2B,CAC5B,KAAK,CACR,EACD,0BAA0B,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CACtC,KAAK,CAAC,EAAE,CACX,CACJ,CACJ,CACJ,CAAC;gBACF,UAAU,GAAG,IAAI,CAAC;YACtB,CAAC;QACL,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IAGkB,IAAI;QACnB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,aAAa,GACf,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GACrB,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,EAAE,CAAC;QAEzD,OAAO,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CACvD,OAAO,CAAC,EAAE;YACN,MAAM,yBAAyB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,yBAAyB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnD,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,4DAA4D,EAC5D,yBAAyB,CAAC,MAAM,CACnC,CAAC;YACN,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,sDAAsD;gBACtD,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAEQ,CAAC;gBAC9C,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC7C,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,qCAAqC,EACrC,mBAAmB,CAAC,MAAM,CAC7B,CAAC;gBACN,CAAC;YACL,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC;IAED,2BAA2B,CACvB,WAAkC;QAElC,OAAO;YACH,GAAG,WAAW;YACd,OAAO,EAAE,KAAK,EAAE,OAA6B,EAAE,iBAAqC,EAAE,EAAE;gBACpF,MAAM,SAAS,GAAG,GAAG,mCAAiC,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtC,iBAAiB,EAAE,uBAAuB,CAAC,GAAG,EAAE;oBAC5C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAChD,WAAW,CAAC,EAAE,EACd,OAAO,EACP,SAAS,EACT,iBAAiB,CACpB,CAAC;gBACF,IAAI,IAAA,oCAA2B,EAAC,QAAQ,CAAC,IAAI,IAAA,sCAA6B,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACnF,OAAO,QAAQ,CAAC;gBACpB,CAAC;gBACD,IAAI,IAAA,8CAAqC,EAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvC,MAAM,cAAc,GAAG;4BACnB,EAAE,EAAE,QAAQ,CAAC,QAAQ;4BACrB,MAAM,EAAE,EAAE;yBACb,CAAC;wBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;oBACxD,CAAC;oBACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC;oBACzD,OAAO;wBACH,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;qBACxC,CAAC;gBACN,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,uEAAuE,WAAW,CAAC,EAAE,qDAAqD,EAC1I,QAAQ,CACX,CAAC;gBACF,OAAO,QAAQ,CAAC;YACpB,CAAC;SACJ,CAAC;IACN,CAAC;IAKD,KAAK,CAAC,CAAC,WAAW,CACd,KAAkB;QAElB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,sBAAsB;oBACtB,MAAM;gBACV,CAAC;gBACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,KAAK,CAAC;gBAChB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAClC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBACxB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,8DAA8D;IAC9D,IAAI,CAAC,EAAU,EAAE,KAAkD;QAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG;gBACnB,EAAE;gBACF,MAAM,EAAE,EAAE;aACb,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC1C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,MAAc,EAAE,UAAkB,EAAE,UAAmB;QAC9E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,IAAA,4BAAmB,EAAC,4BAA4B,EAAE,sDAAsD,CAAC,CAAC;QACrH,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACvD,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,8BAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO,IAAA,4BAAmB,EAAC,yBAAyB,MAAM,MAAM,YAAY,EAAE,CAAC,CAAC;YACpF,CAAC;QACL,CAAC;QACD,OAAO,IAAA,4BAAmB,EAAC,SAAS,MAAM,sDAAsD,EAAE,oBAAoB,CAAC,CAAC;IAC5H,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,EAAU,EAAE,KAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,cAAc,GAAG;gBACnB,EAAE;gBACF,MAAM,EAAE,EAAE;aACb,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QAC1C,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAEQ,KAAK,CAAC,oBAAoB,CAAC,OAA8B;QAC9D,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3J,MAAM,UAAU,GAAG,YAAY,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QAClE,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,qIAAqI;QACrI,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QACzC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBACnD,IAAI,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACnC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,aAAa,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;;AAvRQ,8EAAiC;AAKhC;IADT,IAAA,kBAAM,EAAC,mCAA0B,CAAC;;wEACiB;AAiC1C;IADT,IAAA,kBAAM,EAAC,8CAAqC,CAAC;;2EACoB;AAGxD;IADT,IAAA,kBAAM,EAAC,sCAA6B,CAAC;;2EACoB;AAGhD;IADT,IAAA,kBAAM,EAAC,+BAA+B,CAAC;sCACtB,+BAA+B;iEAAC;AAGxC;IADT,IAAA,kBAAM,EAAC,qCAAoB,CAAC;sCACG,qCAAoB;+EAAC;AAG3C;IADT,IAAA,kBAAM,EAAC,0BAAiB,CAAC;;0EACmB;AA6C1B;IADlB,IAAA,yBAAa,GAAE;;;;6DAsCf;4CApIQ,iCAAiC;IAD7C,IAAA,sBAAU,GAAE;GACA,iCAAiC,CAwR7C;AAED,MAAM,yBAAyB,GAAG,CAAC,GAAY,EAAY,EAAE;IACzD,2CAA2C;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5C,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE;IAC9C,MAAM,OAAO,GAAG,mBAAmB,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAC/B,mBAAwC,EACb,EAAE,CAAC,CAAC;IAC/B,GAAG,CACC,MAAqB,EACrB,IAAO;QAEP,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO,KAAK,WACR,GAAG,IAA0C;gBAE7C,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;gBAC5C,aAAa,CAAC,UAAU,CACpB,kBAAkB,CACrB,CAAC;gBACF,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,aAAa,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACV,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACzB,GAAG,CACC,OAA0B,EAC1B,KAAS;4BAET,IAAI,KAAK,KAAK,yBAAyB,EAAE,CAAC;gCACtC,OAAO,CAAC,GAAG,KAA+D,EAAE,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,EAAE;oCAChH,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,sCAAqB,CAAC,OAAO,CAAC,CAAC;oCAC9E,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gCACf,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC3B,CAAC;4BACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC1B,CAAC;qBACJ,CAAC,CAAC;gBACP,CAAC;gBACD,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAClD,IAAI,IAAA,sCAA6B,EAAC,MAAM,CAAC,EAAE,CAAC;wBACxC,aAAa,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;wBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBAC7B,MAAM,YAAY,GAAG;4BACjB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gCACzB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oCAC9B,aAAa,CAAC,MAAM,CAAC,CAAC,IAAA,2BAAkB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oCACvE,MAAM,IAAI,CAAC;gCACf,CAAC;gCACD,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gCAC3B,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;4BAC9C,CAAC;yBACJ,CAAC;wBACF,OAAO;4BACH,GAAG,MAAM;4BACT,MAAM,EAAE,YAAY;yBACvB,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,aAAa,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;wBAChD,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;wBACjD,OAAO,MAAM,CAAC;oBAClB,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;oBAC9C,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;wBACvB,aAAa,CAAC,UAAU,CACpB,GAAG,CAAC,OAAO,EACX,sCAAqB,CAAC,KAAK,CAC9B,CAAC;oBACN,CAAC;oBACD,MAAM,GAAG,CAAC;gBACd,CAAC;YACL,CAAC,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC,CAAC"}
@@ -22,16 +22,21 @@ export declare class DefaultSkillService implements SkillService {
22
22
  protected skills: Map<string, Skill>;
23
23
  protected toDispose: DisposableCollection;
24
24
  protected watchedDirectories: Set<string>;
25
+ protected parentWatchers: Map<string, string>;
25
26
  protected readonly onSkillsChangedEmitter: Emitter<void>;
26
27
  readonly onSkillsChanged: Event<void>;
27
28
  protected lastSkillDirectoriesValue: string | undefined;
29
+ protected updateDebounceTimeout: ReturnType<typeof setTimeout> | undefined;
28
30
  protected init(): void;
29
31
  getSkills(): Skill[];
30
32
  getSkill(name: string): Skill | undefined;
33
+ protected scheduleUpdate(): void;
31
34
  protected update(): Promise<void>;
32
35
  protected getWorkspaceSkillsDirectoryPath(): string | undefined;
33
36
  protected getDefaultSkillsDirectoryPath(): Promise<string>;
34
- protected processSkillDirectory(directoryPath: string, skills: Map<string, Skill>, disposables: DisposableCollection, watchedDirectories: Set<string>): Promise<void>;
37
+ protected processSkillDirectoryWithParentWatching(directoryPath: string, skills: Map<string, Skill>, disposables: DisposableCollection, watchedDirectories: Set<string>, parentWatchers: Map<string, string>): Promise<void>;
38
+ protected processConfiguredSkillDirectory(directoryPath: string, skills: Map<string, Skill>, disposables: DisposableCollection, watchedDirectories: Set<string>): Promise<void>;
39
+ protected processExistingSkillDirectory(dirURI: URI, skills: Map<string, Skill>, disposables: DisposableCollection, watchedDirectories: Set<string>): Promise<void>;
35
40
  protected loadSkillFromDirectory(directoryUri: URI, directoryName: string, skills: Map<string, Skill>): Promise<void>;
36
41
  protected setupDirectoryWatcher(dirURI: URI, disposables: DisposableCollection, watchedDirectories: Set<string>): void;
37
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-service.d.ts","sourceRoot":"","sources":["../../src/browser/skill-service.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAqC,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,KAAK,EAAwG,MAAM,iBAAiB,CAAC;AAE9I,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,WAAW,YAAY;IACzB,gCAAgC;IAChC,SAAS,IAAI,KAAK,EAAE,CAAC;IAErB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAE1C,qCAAqC;IACrC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,qBACa,mBAAoB,YAAW,YAAY;IAEpD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAI5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAEtD,SAAS,CAAC,MAAM,qBAA4B;IAC5C,SAAS,CAAC,SAAS,uBAA8B;IACjD,SAAS,CAAC,kBAAkB,cAAqB;IAEjD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,gBAAuB;IAChE,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAqC;IAC1E,SAAS,CAAC,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;IAGxD,SAAS,CAAC,IAAI,IAAI,IAAI;IA6CtB,SAAS,IAAI,KAAK,EAAE;IAIpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;cAIzB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvC,SAAS,CAAC,+BAA+B,IAAI,MAAM,GAAG,SAAS;cAS/C,6BAA6B,IAAI,OAAO,CAAC,MAAM,CAAC;cAMhD,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cA2B3J,sBAAsB,CAAC,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C3H,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;CAIzH"}
1
+ {"version":3,"file":"skill-service.d.ts","sourceRoot":"","sources":["../../src/browser/skill-service.ts"],"names":[],"mappings":"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"}
@@ -25,18 +25,40 @@ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
25
25
  const browser_1 = require("@theia/workspace/lib/browser");
26
26
  const ai_core_preferences_1 = require("../common/ai-core-preferences");
27
27
  const skill_1 = require("../common/skill");
28
+ /** Debounce delay for coalescing rapid file system events */
29
+ const UPDATE_DEBOUNCE_MS = 50;
28
30
  exports.SkillService = Symbol('SkillService');
29
31
  let DefaultSkillService = class DefaultSkillService {
30
32
  constructor() {
31
33
  this.skills = new Map();
32
34
  this.toDispose = new core_1.DisposableCollection();
33
35
  this.watchedDirectories = new Set();
36
+ this.parentWatchers = new Map();
34
37
  this.onSkillsChangedEmitter = new core_1.Emitter();
35
38
  this.onSkillsChanged = this.onSkillsChangedEmitter.event;
36
39
  }
37
40
  init() {
38
- // Register file change listener (global, always active)
39
41
  this.fileService.onDidFilesChange(async (event) => {
42
+ for (const change of event.changes) {
43
+ if (change.type === 1 /* FileChangeType.ADDED */) {
44
+ const changeUri = change.resource.toString();
45
+ for (const [, skillsPath] of this.parentWatchers) {
46
+ const expectedSkillsUri = core_1.URI.fromFilePath(skillsPath).toString();
47
+ if (changeUri === expectedSkillsUri) {
48
+ this.scheduleUpdate();
49
+ return;
50
+ }
51
+ }
52
+ }
53
+ // Check for skills directory deletion - switch back to parent watching
54
+ if (change.type === 2 /* FileChangeType.DELETED */) {
55
+ const changeUri = change.resource.toString();
56
+ if (this.watchedDirectories.has(changeUri)) {
57
+ this.scheduleUpdate();
58
+ return;
59
+ }
60
+ }
61
+ }
40
62
  const isRelevantChange = event.changes.some(change => {
41
63
  const changeUri = change.resource.toString();
42
64
  const isInWatchedDir = Array.from(this.watchedDirectories).some(dirUri => changeUri.startsWith(dirUri));
@@ -49,7 +71,7 @@ let DefaultSkillService = class DefaultSkillService {
49
71
  return isSkillFile || isDirectoryChange;
50
72
  });
51
73
  if (isRelevantChange) {
52
- await this.update();
74
+ this.scheduleUpdate();
53
75
  }
54
76
  });
55
77
  // Wait for workspace to be ready before initial update
@@ -64,11 +86,11 @@ let DefaultSkillService = class DefaultSkillService {
64
86
  return;
65
87
  }
66
88
  this.lastSkillDirectoriesValue = currentValue;
67
- this.update();
89
+ this.scheduleUpdate();
68
90
  }
69
91
  });
70
92
  this.workspaceService.onWorkspaceChanged(() => {
71
- this.update();
93
+ this.scheduleUpdate();
72
94
  });
73
95
  });
74
96
  });
@@ -79,34 +101,51 @@ let DefaultSkillService = class DefaultSkillService {
79
101
  getSkill(name) {
80
102
  return this.skills.get(name);
81
103
  }
104
+ scheduleUpdate() {
105
+ if (this.updateDebounceTimeout) {
106
+ clearTimeout(this.updateDebounceTimeout);
107
+ }
108
+ this.updateDebounceTimeout = setTimeout(() => {
109
+ this.updateDebounceTimeout = undefined;
110
+ this.update();
111
+ }, UPDATE_DEBOUNCE_MS);
112
+ }
82
113
  async update() {
114
+ if (this.updateDebounceTimeout) {
115
+ clearTimeout(this.updateDebounceTimeout);
116
+ this.updateDebounceTimeout = undefined;
117
+ }
83
118
  this.toDispose.dispose();
84
119
  const newDisposables = new core_1.DisposableCollection();
85
120
  const newSkills = new Map();
86
121
  const workspaceSkillsDir = this.getWorkspaceSkillsDirectoryPath();
87
- // Get home directory for tilde expansion
88
122
  const homeDirUri = await this.envVariablesServer.getHomeDirUri();
89
123
  const homePath = new core_1.URI(homeDirUri).path.fsPath();
90
- // Get configured directories from preferences and expand tilde
91
124
  const configuredDirectories = (this.preferences[ai_core_preferences_1.PREFERENCE_NAME_SKILL_DIRECTORIES] ?? [])
92
125
  .map(dir => path_1.Path.untildify(dir, homePath));
93
126
  const defaultSkillsDir = await this.getDefaultSkillsDirectoryPath();
94
- // Priority: workspace > configured > default (first directory wins on duplicates)
95
- const allDirectories = (0, skill_1.combineSkillDirectories)(workspaceSkillsDir, configuredDirectories, defaultSkillsDir);
96
127
  const newWatchedDirectories = new Set();
97
- for (const directoryPath of allDirectories) {
98
- await this.processSkillDirectory(directoryPath, newSkills, newDisposables, newWatchedDirectories);
128
+ const newParentWatchers = new Map();
129
+ if (workspaceSkillsDir) {
130
+ await this.processSkillDirectoryWithParentWatching(workspaceSkillsDir, newSkills, newDisposables, newWatchedDirectories, newParentWatchers);
131
+ }
132
+ for (const configuredDir of configuredDirectories) {
133
+ const configuredDirUri = core_1.URI.fromFilePath(configuredDir).toString();
134
+ if (!newWatchedDirectories.has(configuredDirUri)) {
135
+ await this.processConfiguredSkillDirectory(configuredDir, newSkills, newDisposables, newWatchedDirectories);
136
+ }
137
+ }
138
+ const defaultSkillsDirUri = core_1.URI.fromFilePath(defaultSkillsDir).toString();
139
+ if (!newWatchedDirectories.has(defaultSkillsDirUri)) {
140
+ await this.processSkillDirectoryWithParentWatching(defaultSkillsDir, newSkills, newDisposables, newWatchedDirectories, newParentWatchers);
99
141
  }
100
- // Log skill count changes (before replacing state)
101
- const newCount = newSkills.size;
102
- const oldCount = this.skills.size;
103
- if (newCount > 0 || newCount !== oldCount) {
104
- this.logger.info(`Loaded ${newCount} skills`);
142
+ if (newSkills.size > 0 && newSkills.size !== this.skills.size) {
143
+ this.logger.info(`Loaded ${newSkills.size} skills`);
105
144
  }
106
- // Atomically replace state
107
145
  this.toDispose = newDisposables;
108
146
  this.skills = newSkills;
109
147
  this.watchedDirectories = newWatchedDirectories;
148
+ this.parentWatchers = newParentWatchers;
110
149
  this.onSkillsChangedEmitter.fire();
111
150
  }
112
151
  getWorkspaceSkillsDirectoryPath() {
@@ -122,29 +161,59 @@ let DefaultSkillService = class DefaultSkillService {
122
161
  const configDir = new core_1.URI(configDirUri);
123
162
  return configDir.resolve('skills').path.fsPath();
124
163
  }
125
- async processSkillDirectory(directoryPath, skills, disposables, watchedDirectories) {
164
+ async processSkillDirectoryWithParentWatching(directoryPath, skills, disposables, watchedDirectories, parentWatchers) {
126
165
  const dirURI = core_1.URI.fromFilePath(directoryPath);
127
166
  try {
128
167
  const dirExists = await this.fileService.exists(dirURI);
129
- if (!dirExists) {
130
- return;
131
- }
132
- const stat = await this.fileService.resolve(dirURI);
133
- if (stat.children === undefined) {
134
- return;
168
+ if (dirExists) {
169
+ await this.processExistingSkillDirectory(dirURI, skills, disposables, watchedDirectories);
135
170
  }
136
- for (const child of stat.children) {
137
- if (child.isDirectory) {
138
- const directoryName = child.name;
139
- await this.loadSkillFromDirectory(child.resource, directoryName, skills);
171
+ else {
172
+ const parentPath = dirURI.parent.path.fsPath();
173
+ const parentURI = core_1.URI.fromFilePath(parentPath);
174
+ const parentExists = await this.fileService.exists(parentURI);
175
+ if (parentExists) {
176
+ const parentUriString = parentURI.toString();
177
+ disposables.push(this.fileService.watch(parentURI, { recursive: false, excludes: [] }));
178
+ parentWatchers.set(parentUriString, directoryPath);
179
+ this.logger.info(`Watching parent directory '${parentPath}' for skills folder creation`);
180
+ }
181
+ else {
182
+ this.logger.warn(`Cannot watch skills directory '${directoryPath}': parent directory does not exist`);
140
183
  }
141
184
  }
142
- this.setupDirectoryWatcher(dirURI, disposables, watchedDirectories);
143
185
  }
144
186
  catch (error) {
145
187
  this.logger.error(`Error processing directory '${directoryPath}': ${error}`);
146
188
  }
147
189
  }
190
+ async processConfiguredSkillDirectory(directoryPath, skills, disposables, watchedDirectories) {
191
+ const dirURI = core_1.URI.fromFilePath(directoryPath);
192
+ try {
193
+ const dirExists = await this.fileService.exists(dirURI);
194
+ if (!dirExists) {
195
+ this.logger.warn(`Configured skill directory '${directoryPath}' does not exist`);
196
+ return;
197
+ }
198
+ await this.processExistingSkillDirectory(dirURI, skills, disposables, watchedDirectories);
199
+ }
200
+ catch (error) {
201
+ this.logger.error(`Error processing configured directory '${directoryPath}': ${error}`);
202
+ }
203
+ }
204
+ async processExistingSkillDirectory(dirURI, skills, disposables, watchedDirectories) {
205
+ const stat = await this.fileService.resolve(dirURI);
206
+ if (!stat.children) {
207
+ return;
208
+ }
209
+ for (const child of stat.children) {
210
+ if (child.isDirectory) {
211
+ const directoryName = child.name;
212
+ await this.loadSkillFromDirectory(child.resource, directoryName, skills);
213
+ }
214
+ }
215
+ this.setupDirectoryWatcher(dirURI, disposables, watchedDirectories);
216
+ }
148
217
  async loadSkillFromDirectory(directoryUri, directoryName, skills) {
149
218
  const skillFileUri = directoryUri.resolve(skill_1.SKILL_FILE_NAME);
150
219
  const fileExists = await this.fileService.exists(skillFileUri);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-service.js","sourceRoot":"","sources":["../../src/browser/skill-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-service.js","sourceRoot":"","sources":["../../src/browser/skill-service.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,17 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
+ const disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
18
22
  const chai_1 = require("chai");
23
+ const sinon = require("sinon");
19
24
  const skill_1 = require("../common/skill");
20
25
  const path_1 = require("@theia/core/lib/common/path");
26
+ const core_1 = require("@theia/core");
27
+ const skill_service_1 = require("./skill-service");
28
+ disableJSDOM();
21
29
  describe('SkillService', () => {
22
30
  describe('tilde expansion', () => {
23
31
  it('should expand ~ to home directory in configured paths', () => {
@@ -190,5 +198,170 @@ description: Skill with no content
190
198
  (0, chai_1.expect)(result.content).to.equal('');
191
199
  });
192
200
  });
201
+ describe('parent directory watching', () => {
202
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
203
+ let fileServiceMock;
204
+ let loggerWarnSpy;
205
+ let loggerInfoSpy;
206
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
207
+ let envVariablesServerMock;
208
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
209
+ let workspaceServiceMock;
210
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
211
+ let preferencesMock;
212
+ let fileChangesEmitter;
213
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
214
+ let preferenceChangedEmitter;
215
+ function createService() {
216
+ const service = new skill_service_1.DefaultSkillService();
217
+ service.preferences = preferencesMock;
218
+ service.fileService = fileServiceMock;
219
+ const loggerMock = sinon.createStubInstance(core_1.Logger);
220
+ loggerMock.warn = loggerWarnSpy;
221
+ loggerMock.info = loggerInfoSpy;
222
+ service.logger = loggerMock;
223
+ service.envVariablesServer = envVariablesServerMock;
224
+ service.workspaceService = workspaceServiceMock;
225
+ return service;
226
+ }
227
+ beforeEach(() => {
228
+ fileChangesEmitter = new core_1.Emitter();
229
+ preferenceChangedEmitter = new core_1.Emitter();
230
+ fileServiceMock = {
231
+ exists: sinon.stub(),
232
+ watch: sinon.stub().returns(core_1.Disposable.NULL),
233
+ resolve: sinon.stub(),
234
+ read: sinon.stub(),
235
+ onDidFilesChange: (listener) => fileChangesEmitter.event(listener)
236
+ };
237
+ loggerWarnSpy = sinon.stub();
238
+ loggerInfoSpy = sinon.stub();
239
+ envVariablesServerMock = {
240
+ getHomeDirUri: sinon.stub().resolves('file:///home/testuser'),
241
+ getConfigDirUri: sinon.stub().resolves('file:///home/testuser/.theia-ide')
242
+ };
243
+ workspaceServiceMock = {
244
+ ready: Promise.resolve(),
245
+ tryGetRoots: sinon.stub().returns([]),
246
+ onWorkspaceChanged: sinon.stub().returns(core_1.Disposable.NULL)
247
+ };
248
+ preferencesMock = {
249
+ 'ai-features.skills.skillDirectories': [],
250
+ onPreferenceChanged: preferenceChangedEmitter.event
251
+ };
252
+ });
253
+ afterEach(() => {
254
+ sinon.restore();
255
+ fileChangesEmitter.dispose();
256
+ preferenceChangedEmitter.dispose();
257
+ });
258
+ it('should watch parent directory when skills directory does not exist', async () => {
259
+ const service = createService();
260
+ // Default skills directory does not exist, but parent does
261
+ fileServiceMock.exists
262
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
263
+ .resolves(false);
264
+ fileServiceMock.exists
265
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide'))
266
+ .resolves(true);
267
+ // Call init to trigger update
268
+ service.init();
269
+ await workspaceServiceMock.ready;
270
+ // Allow async operations to complete
271
+ await new Promise(resolve => setTimeout(resolve, 10));
272
+ // Verify parent directory is watched
273
+ (0, chai_1.expect)(fileServiceMock.watch.calledWith(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide'), sinon.match({ recursive: false, excludes: [] }))).to.be.true;
274
+ // Verify info log about watching parent
275
+ (0, chai_1.expect)(loggerInfoSpy.calledWith(sinon.match(/Watching parent directory.*for skills folder creation/))).to.be.true;
276
+ });
277
+ it('should log warning when parent directory does not exist', async () => {
278
+ const service = createService();
279
+ // Neither skills directory nor parent exists
280
+ fileServiceMock.exists.resolves(false);
281
+ // Call init to trigger update
282
+ service.init();
283
+ await workspaceServiceMock.ready;
284
+ await new Promise(resolve => setTimeout(resolve, 10));
285
+ // Verify warning is logged about parent not existing
286
+ (0, chai_1.expect)(loggerWarnSpy.calledWith(sinon.match(/Cannot watch skills directory.*parent directory does not exist/))).to.be.true;
287
+ });
288
+ it('should log warning for non-existent configured directories', async () => {
289
+ const service = createService();
290
+ // Set up configured directory that doesn't exist
291
+ preferencesMock['ai-features.skills.skillDirectories'] = ['/custom/nonexistent/skills'];
292
+ // Default skills directory exists (to avoid additional warnings)
293
+ fileServiceMock.exists
294
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
295
+ .resolves(true);
296
+ fileServiceMock.resolve
297
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
298
+ .resolves({ children: [] });
299
+ // Configured directory does not exist
300
+ fileServiceMock.exists
301
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/custom/nonexistent/skills'))
302
+ .resolves(false);
303
+ // Call init to trigger update
304
+ service.init();
305
+ await workspaceServiceMock.ready;
306
+ await new Promise(resolve => setTimeout(resolve, 10));
307
+ // Verify warning is logged for non-existent configured directory
308
+ (0, chai_1.expect)(loggerWarnSpy.calledWith(sinon.match(/Configured skill directory.*does not exist/))).to.be.true;
309
+ });
310
+ it('should load skills when directory is created after initialization', async () => {
311
+ const service = createService();
312
+ // Initially, skills directory does not exist but parent does
313
+ fileServiceMock.exists
314
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
315
+ .resolves(false);
316
+ fileServiceMock.exists
317
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide'))
318
+ .resolves(true);
319
+ // Call init to trigger initial update
320
+ service.init();
321
+ await workspaceServiceMock.ready;
322
+ await new Promise(resolve => setTimeout(resolve, 10));
323
+ // Verify no skills initially
324
+ (0, chai_1.expect)(service.getSkills()).to.have.length(0);
325
+ // Now simulate skills directory being created with a skill
326
+ fileServiceMock.exists
327
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
328
+ .resolves(true);
329
+ fileServiceMock.resolve
330
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills'))
331
+ .resolves({
332
+ children: [{
333
+ isDirectory: true,
334
+ name: 'test-skill',
335
+ resource: core_1.URI.fromFilePath('/home/testuser/.theia-ide/skills/test-skill')
336
+ }]
337
+ });
338
+ fileServiceMock.exists
339
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills/test-skill/SKILL.md'))
340
+ .resolves(true);
341
+ fileServiceMock.read
342
+ .withArgs(sinon.match((uri) => uri.path.toString() === '/home/testuser/.theia-ide/skills/test-skill/SKILL.md'))
343
+ .resolves({
344
+ value: `---
345
+ name: test-skill
346
+ description: A test skill
347
+ ---
348
+ Test skill content`
349
+ });
350
+ // Simulate file change event for skills directory creation
351
+ fileChangesEmitter.fire({
352
+ changes: [{
353
+ type: 1, // FileChangeType.ADDED
354
+ resource: core_1.URI.fromFilePath('/home/testuser/.theia-ide/skills')
355
+ }],
356
+ rawChanges: []
357
+ });
358
+ // Wait for async operations to complete
359
+ await new Promise(resolve => setTimeout(resolve, 100));
360
+ // Verify skill was loaded
361
+ const skills = service.getSkills();
362
+ (0, chai_1.expect)(skills).to.have.length(1);
363
+ (0, chai_1.expect)(skills[0].name).to.equal('test-skill');
364
+ });
365
+ });
193
366
  });
194
367
  //# sourceMappingURL=skill-service.spec.js.map