@equinor/fusion-framework-cli-plugin-ai-base 4.0.5 → 4.0.6
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.
- package/CHANGELOG.md +19 -0
- package/dist/esm/configure-fusion-ai.js +21 -0
- package/dist/esm/configure-fusion-ai.js.map +1 -0
- package/dist/esm/fusion-ai-config.js +2 -0
- package/dist/esm/fusion-ai-config.js.map +1 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{config.js → load-fusion-ai-config.js} +3 -21
- package/dist/esm/load-fusion-ai-config.js.map +1 -0
- package/dist/esm/options/{schema.js → ai-options-schema.js} +1 -1
- package/dist/esm/options/ai-options-schema.js.map +1 -0
- package/dist/esm/options/index.js +1 -1
- package/dist/esm/options/index.js.map +1 -1
- package/dist/esm/options/options.js +9 -1
- package/dist/esm/options/options.js.map +1 -1
- package/dist/esm/options/with-options.js +6 -0
- package/dist/esm/options/with-options.js.map +1 -1
- package/dist/esm/{register.js → register-ai-plugin.js} +3 -2
- package/dist/esm/register-ai-plugin.js.map +1 -0
- package/dist/esm/setup-framework.js +5 -0
- package/dist/esm/setup-framework.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/configure-fusion-ai.d.ts +21 -0
- package/dist/types/fusion-ai-config.d.ts +11 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/{config.d.ts → load-fusion-ai-config.d.ts} +2 -31
- package/dist/types/options/{schema.d.ts → ai-options-schema.d.ts} +2 -2
- package/dist/types/options/index.d.ts +1 -1
- package/dist/types/options/options.d.ts +7 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/configure-fusion-ai.ts +22 -0
- package/src/fusion-ai-config.ts +11 -0
- package/src/index.ts +4 -7
- package/src/{config.ts → load-fusion-ai-config.ts} +3 -33
- package/src/options/index.ts +1 -1
- package/src/options/options.ts +11 -1
- package/src/options/with-options.ts +6 -0
- package/src/{register.ts → register-ai-plugin.ts} +2 -1
- package/src/setup-framework.ts +5 -0
- package/src/version.ts +1 -1
- package/dist/esm/config.js.map +0 -1
- package/dist/esm/options/schema.js.map +0 -1
- package/dist/esm/register.js.map +0 -1
- /package/dist/types/{register.d.ts → register-ai-plugin.d.ts} +0 -0
- /package/src/options/{schema.ts → ai-options-schema.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @equinor/fusion-framework-cli-plugin-ai-base
|
|
2
2
|
|
|
3
|
+
## 4.0.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 80c3e4a: Internal: Consolidate the eight single-export CLI option files under `src/options/` back into `options.ts` to reduce file fragmentation. No change to the public API or option behavior.
|
|
8
|
+
- 80c3e4a: Internal: renamed 53 source files across `ai-base`, `ai-chat`, `ai-index`, and `copilot` to comply with the `filename-convention` lint rule (e.g. `config.ts` → `load-fusion-ai-config.ts`, `tools/write-file.ts` → `tools/create-write-file-tool.ts`, `prompts/plan.prompt.ts` → `prompts/create-plan-prompt.ts`). No public API changes.
|
|
9
|
+
- Updated dependencies [80c3e4a]
|
|
10
|
+
- Updated dependencies [80c3e4a]
|
|
11
|
+
- Updated dependencies [80c3e4a]
|
|
12
|
+
- Updated dependencies [80c3e4a]
|
|
13
|
+
- Updated dependencies [80c3e4a]
|
|
14
|
+
- Updated dependencies [80c3e4a]
|
|
15
|
+
- Updated dependencies [80c3e4a]
|
|
16
|
+
- Updated dependencies [80c3e4a]
|
|
17
|
+
- Updated dependencies [80c3e4a]
|
|
18
|
+
- @equinor/fusion-framework-module-ai@6.0.2
|
|
19
|
+
- @equinor/fusion-framework-module@6.1.1
|
|
20
|
+
- @equinor/fusion-imports@2.0.1
|
|
21
|
+
|
|
3
22
|
## 4.0.5
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration factory function for Fusion AI operations.
|
|
3
|
+
*
|
|
4
|
+
* This helper function provides type safety and consistency for creating AI configuration
|
|
5
|
+
* functions. It accepts a function that returns configuration (either synchronously or
|
|
6
|
+
* asynchronously) and returns it unchanged, providing a typed interface for consumers.
|
|
7
|
+
*
|
|
8
|
+
* @param fn - Function that returns Fusion AI configuration (sync or async)
|
|
9
|
+
* @returns The same configuration function, typed for use with loadFusionAIConfig
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* // fusion-ai.config.ts
|
|
14
|
+
* export default configureFusionAI(async () => ({
|
|
15
|
+
* apiKey: process.env.OPENAI_API_KEY,
|
|
16
|
+
* deployment: 'gpt-4',
|
|
17
|
+
* }));
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const configureFusionAI = (fn) => fn;
|
|
21
|
+
//# sourceMappingURL=configure-fusion-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-fusion-ai.js","sourceRoot":"","sources":["../../src/configure-fusion-ai.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAA2B,EAAwB,EAAE,EAAE,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fusion-ai-config.js","sourceRoot":"","sources":["../../src/fusion-ai-config.ts"],"names":[],"mappings":""}
|
package/dist/esm/index.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
*/
|
|
11
|
-
export { configureFusionAI
|
|
11
|
+
export { configureFusionAI } from './configure-fusion-ai.js';
|
|
12
|
+
export { loadFusionAIConfig } from './load-fusion-ai-config.js';
|
|
12
13
|
export { setupFramework } from './setup-framework.js';
|
|
13
|
-
export { registerAiPlugin } from './register.js';
|
|
14
|
+
export { registerAiPlugin } from './register-ai-plugin.js';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAkC,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,cAAc,EAA0B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,30 +1,11 @@
|
|
|
1
1
|
import { importConfig } from '@equinor/fusion-imports';
|
|
2
|
-
/**
|
|
3
|
-
* Configuration factory function for Fusion AI operations.
|
|
4
|
-
*
|
|
5
|
-
* This helper function provides type safety and consistency for creating AI configuration
|
|
6
|
-
* functions. It accepts a function that returns configuration (either synchronously or
|
|
7
|
-
* asynchronously) and returns it unchanged, providing a typed interface for consumers.
|
|
8
|
-
*
|
|
9
|
-
* @param fn - Function that returns Fusion AI configuration (sync or async)
|
|
10
|
-
* @returns The same configuration function, typed for use with loadFusionAIConfig
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* // fusion-ai.config.ts
|
|
15
|
-
* export default configureFusionAI(async () => ({
|
|
16
|
-
* apiKey: process.env.OPENAI_API_KEY,
|
|
17
|
-
* deployment: 'gpt-4',
|
|
18
|
-
* }));
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export const configureFusionAI = (fn) => fn;
|
|
22
2
|
/**
|
|
23
3
|
* Loads and resolves Fusion AI configuration from a file.
|
|
24
4
|
*
|
|
25
5
|
* The config file should export a function (via `configureFusionAI`) that returns
|
|
26
6
|
* the configuration object. The function can be synchronous or asynchronous.
|
|
27
7
|
*
|
|
8
|
+
* @template T - Shape of the resolved Fusion AI configuration object.
|
|
28
9
|
* @param configPath - Path to the config file without extension (default: 'fusion-ai.config')
|
|
29
10
|
* @param options - Optional parameters for loading the configuration
|
|
30
11
|
* @returns Promise resolving to the loaded and executed configuration
|
|
@@ -48,6 +29,7 @@ export async function loadFusionAIConfig(configPath = 'fusion-ai.config', option
|
|
|
48
29
|
});
|
|
49
30
|
// Execute the configuration function (handles both sync and async)
|
|
50
31
|
const configFn = result.config;
|
|
32
|
+
// Config files export a function via configureFusionAI; execute it to resolve the value.
|
|
51
33
|
if (typeof configFn === 'function') {
|
|
52
34
|
return await configFn();
|
|
53
35
|
}
|
|
@@ -55,4 +37,4 @@ export async function loadFusionAIConfig(configPath = 'fusion-ai.config', option
|
|
|
55
37
|
return configFn;
|
|
56
38
|
}
|
|
57
39
|
export default loadFusionAIConfig;
|
|
58
|
-
//# sourceMappingURL=config.js.map
|
|
40
|
+
//# sourceMappingURL=load-fusion-ai-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-fusion-ai-config.js","sourceRoot":"","sources":["../../src/load-fusion-ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAsBvD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAU,GAAW,kBAAkB,EACvC,OAAO,GAA8B,EAAE;IAEvC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAExD,gFAAgF;IAChF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAuB,UAAU,EAAE;QAClE,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IAEH,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,yFAAyF;IACzF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,MAAM,QAAQ,EAAE,CAAC;IAC1B,CAAC;IACD,sEAAsE;IACtE,OAAO,QAAa,CAAC;AACvB,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-options-schema.js","sourceRoot":"","sources":["../../../src/options/ai-options-schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACzC,CAAC;KACD,QAAQ,CAAC,gCAAgC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/options/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAsB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createOption } from 'commander';
|
|
2
|
-
// Default Fusion AAD
|
|
2
|
+
// Default Fusion AAD tenant ID (same default as the CLI's auth options)
|
|
3
3
|
const DEFAULT_TENANT_ID = '3aa4a235-b6e2-48d5-9195-7fcf05b459b0';
|
|
4
|
+
// Default Fusion AAD client ID (same default as the CLI's auth options)
|
|
4
5
|
const DEFAULT_CLIENT_ID = 'a318b8e1-0295-4e17-98d5-35f67dfeba14';
|
|
5
6
|
const DEFAULT_MODEL_CHAT = 'gpt-5.1-chat';
|
|
6
7
|
const DEFAULT_MODEL_EMBED = 'text-embedding-3-large';
|
|
@@ -34,6 +35,13 @@ export const indexNameOption = createOption('--index-name <name>', 'Azure AI Sea
|
|
|
34
35
|
export const debugOption = createOption('-d, --debug', 'Enable debug mode for verbose logging')
|
|
35
36
|
.env('RUNNER_DEBUG')
|
|
36
37
|
.default(false);
|
|
38
|
+
/**
|
|
39
|
+
* Aggregated Commander option definitions for Fusion AI CLI commands.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* Individual options are defined above and re-exported here for convenient
|
|
43
|
+
* access as a single object.
|
|
44
|
+
*/
|
|
37
45
|
export default {
|
|
38
46
|
envOption,
|
|
39
47
|
tokenOption,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/options/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,sCAA+C,CAAC;AAE1E,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,sCAA+C,CAAC;AAE1E,MAAM,kBAAkB,GAAG,cAAuB,CAAC;AACnD,MAAM,mBAAmB,GAAG,wBAAiC,CAAC;AAE9D,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,0CAA0C,CAAC;KAC7F,GAAG,CAAC,YAAY,CAAC;KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjB,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CACrC,iBAAiB,EACjB,4DAA4D,CAC7D;KACE,GAAG,CAAC,cAAc,CAAC;KACnB,OAAO,CAAC,SAAS,CAAC,CAAC;AAEtB,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;KACjF,GAAG,CAAC,kBAAkB,CAAC;KACvB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE9B,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;KAC7F,GAAG,CAAC,kBAAkB,CAAC;KACvB,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE9B,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CACzC,qBAAqB,EACrB,yCAAyC,CAC1C;KACE,GAAG,CAAC,sBAAsB,CAAC;KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE/B,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAC1C,sBAAsB,EACtB,8CAA8C,CAC/C;KACE,GAAG,CAAC,uBAAuB,CAAC;KAC5B,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEhC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CACzC,qBAAqB,EACrB,4BAA4B,CAC7B,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC5F,GAAG,CAAC,cAAc,CAAC;KACnB,OAAO,CAAC,KAAK,CAAC,CAAC;AAElB;;;;;;GAMG;AACH,eAAe;IACb,SAAS;IACT,WAAW;IACX,cAAc;IACd,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,WAAW;CACZ,CAAC"}
|
|
@@ -23,20 +23,26 @@ export const withOptions = (command, args) => {
|
|
|
23
23
|
command.addOption(tenantIdOption);
|
|
24
24
|
command.addOption(clientIdOption);
|
|
25
25
|
command.addOption(debugOption);
|
|
26
|
+
// Optional options are only added when the corresponding feature flag is set.
|
|
26
27
|
if (args?.includeChat)
|
|
27
28
|
command.addOption(chatModelOption);
|
|
29
|
+
// Embed option is opt-in via includeEmbedding.
|
|
28
30
|
if (args?.includeEmbedding)
|
|
29
31
|
command.addOption(embedModelOption);
|
|
32
|
+
// Search option is opt-in via includeSearch.
|
|
30
33
|
if (args?.includeSearch)
|
|
31
34
|
command.addOption(indexNameOption);
|
|
32
35
|
command.hook('preAction', (thisCommand) => {
|
|
33
36
|
const opts = thisCommand.opts();
|
|
37
|
+
// Enforce chat model presence when the chat option was requested.
|
|
34
38
|
if (args?.includeChat && !opts.chatModel?.trim()) {
|
|
35
39
|
throw new InvalidOptionArgumentError('Chat model name is required. Provide --chat-model or set FUSION_AI_CHAT_MODEL.');
|
|
36
40
|
}
|
|
41
|
+
// Enforce embed model presence when the embedding option was requested.
|
|
37
42
|
if (args?.includeEmbedding && !opts.embedModel?.trim()) {
|
|
38
43
|
throw new InvalidOptionArgumentError('Embedding model name is required. Provide --embed-model or set FUSION_AI_EMBED_MODEL.');
|
|
39
44
|
}
|
|
45
|
+
// Enforce index name presence when the search option was requested.
|
|
40
46
|
if (args?.includeSearch && !opts.indexName?.trim()) {
|
|
41
47
|
throw new InvalidOptionArgumentError('Index name is required. Provide --index-name or set FUSION_AI_INDEX_NAME.');
|
|
42
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-options.js","sourceRoot":"","sources":["../../../src/options/with-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAgB,EAChB,IAIE,EACO,EAAE;IACX,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE/B,IAAI,IAAI,EAAE,WAAW;QAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,IAAI,EAAE,gBAAgB;QAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChE,IAAI,IAAI,EAAE,aAAa;QAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAE5D,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,0BAA0B,CAClC,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,EAAE,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,0BAA0B,CAClC,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,0BAA0B,CAClC,2EAA2E,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"with-options.js","sourceRoot":"","sources":["../../../src/options/with-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAgB,EAChB,IAIE,EACO,EAAE;IACX,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE/B,8EAA8E;IAC9E,IAAI,IAAI,EAAE,WAAW;QAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC1D,+CAA+C;IAC/C,IAAI,IAAI,EAAE,gBAAgB;QAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChE,6CAA6C;IAC7C,IAAI,IAAI,EAAE,aAAa;QAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAE5D,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhC,kEAAkE;QAClE,IAAI,IAAI,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,0BAA0B,CAClC,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,IAAI,IAAI,EAAE,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,0BAA0B,CAClC,uFAAuF,CACxF,CAAC;QACJ,CAAC;QACD,oEAAoE;QACpE,IAAI,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,0BAA0B,CAClC,2EAA2E,CAC5E,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -21,8 +21,9 @@ import { createCommand } from 'commander';
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export function registerAiPlugin(program, command) {
|
|
24
|
-
//
|
|
24
|
+
// Look up an existing 'ai' command group before creating a new one.
|
|
25
25
|
let aiCommand = program.commands.find((cmd) => cmd.name() === 'ai');
|
|
26
|
+
// Create 'ai' command group if it doesn't exist
|
|
26
27
|
if (!aiCommand) {
|
|
27
28
|
aiCommand = createCommand('ai').description('Commands for interacting with AI models and Azure OpenAI services');
|
|
28
29
|
program.addCommand(aiCommand);
|
|
@@ -30,4 +31,4 @@ export function registerAiPlugin(program, command) {
|
|
|
30
31
|
aiCommand.addCommand(command);
|
|
31
32
|
}
|
|
32
33
|
export default registerAiPlugin;
|
|
33
|
-
//# sourceMappingURL=register.js.map
|
|
34
|
+
//# sourceMappingURL=register-ai-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-ai-plugin.js","sourceRoot":"","sources":["../../src/register-ai-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,OAAgB;IACjE,oEAAoE;IACpE,IAAI,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;IACpE,gDAAgD;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,CACzC,mEAAmE,CACpE,CAAC;QACF,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -21,12 +21,14 @@ export const setupFramework = async (options) => {
|
|
|
21
21
|
? { token: options.token }
|
|
22
22
|
: { defaultCredential: true };
|
|
23
23
|
const env = options.env ?? FusionEnv.ContinuesIntegration;
|
|
24
|
+
// Surface resolved environment and auth mode when debug logging is enabled.
|
|
24
25
|
if (debug) {
|
|
25
26
|
console.debug('[debug] Environment:', env);
|
|
26
27
|
console.debug('[debug] Auth mode:', options.token ? 'static-token' : 'azure-identity');
|
|
27
28
|
}
|
|
28
29
|
/** Initialise the framework, resolve the AI service, and pre-cache tokens. */
|
|
29
30
|
const initAndSetup = async () => {
|
|
31
|
+
// Trace framework initialization start when debug logging is enabled.
|
|
30
32
|
if (debug)
|
|
31
33
|
console.debug('[debug] Initializing framework with AI module…');
|
|
32
34
|
const framework = await initializeFramework({ env, auth }, (configurator) => {
|
|
@@ -36,6 +38,7 @@ export const setupFramework = async (options) => {
|
|
|
36
38
|
// NoAccountsError if the user has never logged in.
|
|
37
39
|
const service = await framework.serviceDiscovery.resolveService('ai');
|
|
38
40
|
const scopes = service.scopes ?? service.defaultScopes ?? [];
|
|
41
|
+
// Surface resolved service URL and scopes when debug logging is enabled.
|
|
39
42
|
if (debug) {
|
|
40
43
|
console.debug('[debug] AI service URL:', service.uri);
|
|
41
44
|
console.debug('[debug] AI service scopes:', scopes);
|
|
@@ -43,8 +46,10 @@ export const setupFramework = async (options) => {
|
|
|
43
46
|
// Pre-cache a token for the AI service scopes so strategy callbacks
|
|
44
47
|
// don't attempt (and fail) a silent acquisition later.
|
|
45
48
|
const token = await framework.auth.acquireAccessToken({ request: { scopes } });
|
|
49
|
+
// Guard: acquireAccessToken can resolve falsy when the token cache is empty.
|
|
46
50
|
if (!token)
|
|
47
51
|
throw new Error('Failed to acquire access token for the AI service.');
|
|
52
|
+
// Trace successful token acquisition when debug logging is enabled.
|
|
48
53
|
if (debug)
|
|
49
54
|
console.debug('[debug] Token acquired successfully');
|
|
50
55
|
return framework;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-framework.js","sourceRoot":"","sources":["../../src/setup-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAOnF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,OAAkB,EAAwC,EAAE;IAC/F,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAErC,iBAAiB;IACjB,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,IAAI,GAAoC,OAAO,CAAC,KAAK;QACzD,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QAC1B,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAEhC,MAAM,GAAG,GAAI,OAAO,CAAC,GAAiB,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAEzE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzF,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,KAAK,IAA0C,EAAE;QACpE,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAa,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE;YACtF,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,mDAAmD;QACnD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAE7D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,oEAAoE;QACpE,uDAAuD;QACvD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAElF,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEhE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM,YAAY,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup-framework.js","sourceRoot":"","sources":["../../src/setup-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAOnF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,OAAkB,EAAwC,EAAE;IAC/F,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAErC,iBAAiB;IACjB,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,IAAI,GAAoC,OAAO,CAAC,KAAK;QACzD,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QAC1B,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAEhC,MAAM,GAAG,GAAI,OAAO,CAAC,GAAiB,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAEzE,4EAA4E;IAC5E,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzF,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,KAAK,IAA0C,EAAE;QACpE,sEAAsE;QACtE,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAE3E,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAa,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE;YACtF,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,+DAA+D;QAC/D,mDAAmD;QACnD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAE7D,yEAAyE;QACzE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,oEAAoE;QACpE,uDAAuD;QACvD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/E,6EAA6E;QAC7E,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAElF,oEAAoE;QACpE,IAAI,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEhE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM,YAAY,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/esm/version.js
CHANGED