@cdot65/daystrom 1.0.8 → 1.1.2
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/README.md +1 -1
- package/dist/airs/management.d.ts.map +1 -1
- package/dist/airs/management.js +6 -8
- package/dist/airs/management.js.map +1 -1
- package/dist/airs/promptsets.d.ts +24 -0
- package/dist/airs/promptsets.d.ts.map +1 -0
- package/dist/airs/promptsets.js +35 -0
- package/dist/airs/promptsets.js.map +1 -0
- package/dist/airs/scanner.d.ts +11 -0
- package/dist/airs/scanner.d.ts.map +1 -1
- package/dist/airs/scanner.js +31 -0
- package/dist/airs/scanner.js.map +1 -1
- package/dist/airs/types.d.ts +19 -0
- package/dist/airs/types.d.ts.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +36 -3
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/resume.d.ts.map +1 -1
- package/dist/cli/commands/resume.js +30 -3
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +15 -0
- package/dist/cli/prompts.js.map +1 -1
- package/dist/cli/renderer.d.ts +2 -0
- package/dist/cli/renderer.d.ts.map +1 -1
- package/dist/cli/renderer.js +8 -0
- package/dist/cli/renderer.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +2 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +6 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +2 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/core/loop.d.ts +5 -3
- package/dist/core/loop.d.ts.map +1 -1
- package/dist/core/loop.js +67 -5
- package/dist/core/loop.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/prompts/analyze-results.d.ts.map +1 -1
- package/dist/llm/prompts/analyze-results.js +15 -1
- package/dist/llm/prompts/analyze-results.js.map +1 -1
- package/dist/llm/prompts/generate-tests.d.ts.map +1 -1
- package/dist/llm/prompts/generate-tests.js +20 -7
- package/dist/llm/prompts/generate-tests.js.map +1 -1
- package/dist/llm/prompts/generate-topic.d.ts.map +1 -1
- package/dist/llm/prompts/generate-topic.js +12 -3
- package/dist/llm/prompts/generate-topic.js.map +1 -1
- package/dist/llm/prompts/improve-topic.d.ts.map +1 -1
- package/dist/llm/prompts/improve-topic.js +18 -3
- package/dist/llm/prompts/improve-topic.js.map +1 -1
- package/dist/llm/schemas.d.ts +10 -10
- package/dist/llm/schemas.js +1 -1
- package/dist/llm/service.d.ts +2 -2
- package/dist/llm/service.d.ts.map +1 -1
- package/dist/llm/service.js +12 -5
- package/dist/llm/service.js.map +1 -1
- package/dist/memory/extractor.d.ts.map +1 -1
- package/dist/memory/extractor.js +5 -1
- package/dist/memory/extractor.js.map +1 -1
- package/dist/memory/prompts/extract-learnings.d.ts.map +1 -1
- package/dist/memory/prompts/extract-learnings.js +7 -1
- package/dist/memory/prompts/extract-learnings.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/airs/management.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,IAAI,cAAc,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,MAAM,CAAmB;gBAErB,IAAI,CAAC,EAAE,uBAAuB;IAIpC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAK7C;;;;OAIG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GAAG,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"management.d.ts","sourceRoot":"","sources":["../../src/airs/management.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,IAAI,cAAc,EACnC,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,MAAM,CAAmB;gBAErB,IAAI,CAAC,EAAE,uBAAuB;IAIpC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAK7C;;;;OAIG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GAAG,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC;CAqDjB"}
|
package/dist/airs/management.js
CHANGED
|
@@ -44,24 +44,22 @@ export class SdkManagementService {
|
|
|
44
44
|
let topicGuardrails = modelProtection.find((mp) => mp.name === 'topic-guardrails');
|
|
45
45
|
if (!topicGuardrails) {
|
|
46
46
|
topicGuardrails = {
|
|
47
|
-
action: '
|
|
47
|
+
action: 'block',
|
|
48
48
|
name: 'topic-guardrails',
|
|
49
49
|
options: [],
|
|
50
50
|
'topic-list': [],
|
|
51
51
|
};
|
|
52
52
|
modelProtection.push(topicGuardrails);
|
|
53
53
|
}
|
|
54
|
+
// Ensure the guardrail-level action is always 'block' so violations are enforced.
|
|
55
|
+
// The allow/block distinction is controlled by which topic-list entry the topic is in.
|
|
56
|
+
topicGuardrails.action = 'block';
|
|
54
57
|
// Replace the entire topic-list with only the current topic under the given action.
|
|
55
|
-
//
|
|
56
|
-
const oppositeAction = action === 'block' ? 'allow' : 'block';
|
|
58
|
+
// AIRS rejects empty topic-list entries, so only include the entry with the topic.
|
|
57
59
|
topicGuardrails['topic-list'] = [
|
|
58
60
|
{
|
|
59
61
|
action,
|
|
60
|
-
topic: [{ topic_id: topicId, topic_name: topicName
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
action: oppositeAction,
|
|
64
|
-
topic: [],
|
|
62
|
+
topic: [{ topic_id: topicId, topic_name: topicName }],
|
|
65
63
|
},
|
|
66
64
|
];
|
|
67
65
|
// Write back
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"management.js","sourceRoot":"","sources":["../../src/airs/management.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,GAGjB,MAAM,yBAAyB,CAAC;AAGjC;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAmB;IAEjC,YAAY,IAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAiC;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAiC;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,OAAe,EACf,SAAiB,EACjB,MAAyB;QAEzB,uBAAuB;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,aAAa,CAAC,CAAC;QACxD,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,MAAM,CAAC,sBAAsB,CAAC,IAAI;YACnD,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAAE,EAAE;SACvD,CAAC;QACF,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAEjE,wDAAwD;QACxD,MAAM,eAAe,GAA8B,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACzF,IAAI,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC;QAEnF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG;gBAChB,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;aACjB,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"management.js","sourceRoot":"","sources":["../../src/airs/management.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type RedTeamClientOptions } from '@cdot65/prisma-airs-sdk';
|
|
2
|
+
import type { PromptSetService } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wraps the SDK's RedTeamClient.customAttacks to implement PromptSetService.
|
|
5
|
+
* Creates and populates custom prompt sets for AI Red Team.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SdkPromptSetService implements PromptSetService {
|
|
8
|
+
private client;
|
|
9
|
+
constructor(opts?: RedTeamClientOptions);
|
|
10
|
+
createPromptSet(name: string, description?: string): Promise<{
|
|
11
|
+
uuid: string;
|
|
12
|
+
name: string;
|
|
13
|
+
}>;
|
|
14
|
+
addPrompt(promptSetId: string, prompt: string, goal?: string): Promise<{
|
|
15
|
+
uuid: string;
|
|
16
|
+
prompt: string;
|
|
17
|
+
}>;
|
|
18
|
+
listPromptSets(): Promise<Array<{
|
|
19
|
+
uuid: string;
|
|
20
|
+
name: string;
|
|
21
|
+
active: boolean;
|
|
22
|
+
}>>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=promptsets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptsets.d.ts","sourceRoot":"","sources":["../../src/airs/promptsets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IAC1D,OAAO,CAAC,MAAM,CAAgB;gBAElB,IAAI,CAAC,EAAE,oBAAoB;IAIjC,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAStC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAQxF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { RedTeamClient } from '@cdot65/prisma-airs-sdk';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps the SDK's RedTeamClient.customAttacks to implement PromptSetService.
|
|
4
|
+
* Creates and populates custom prompt sets for AI Red Team.
|
|
5
|
+
*/
|
|
6
|
+
export class SdkPromptSetService {
|
|
7
|
+
client;
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
this.client = new RedTeamClient(opts);
|
|
10
|
+
}
|
|
11
|
+
async createPromptSet(name, description) {
|
|
12
|
+
const response = await this.client.customAttacks.createPromptSet({
|
|
13
|
+
name,
|
|
14
|
+
...(description ? { description } : {}),
|
|
15
|
+
});
|
|
16
|
+
return { uuid: response.uuid, name: response.name };
|
|
17
|
+
}
|
|
18
|
+
async addPrompt(promptSetId, prompt, goal) {
|
|
19
|
+
const response = await this.client.customAttacks.createPrompt({
|
|
20
|
+
prompt,
|
|
21
|
+
prompt_set_id: promptSetId,
|
|
22
|
+
...(goal ? { goal } : {}),
|
|
23
|
+
});
|
|
24
|
+
return { uuid: response.uuid, prompt: response.prompt };
|
|
25
|
+
}
|
|
26
|
+
async listPromptSets() {
|
|
27
|
+
const response = await this.client.customAttacks.listPromptSets();
|
|
28
|
+
return (response.data ?? []).map((ps) => ({
|
|
29
|
+
uuid: ps.uuid,
|
|
30
|
+
name: ps.name,
|
|
31
|
+
active: ps.active,
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=promptsets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptsets.js","sourceRoot":"","sources":["../../src/airs/promptsets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,yBAAyB,CAAC;AAGnF;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAgB;IAE9B,YAAY,IAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAAY,EACZ,WAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;YAC/D,IAAI;YACJ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAAmB,EACnB,MAAc,EACd,IAAa;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;YAC5D,MAAM;YACN,aAAa,EAAE,WAAW;YAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,MAAM,EAAE,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
|
package/dist/airs/scanner.d.ts
CHANGED
|
@@ -5,4 +5,15 @@ export declare class AirsScanService implements ScanService {
|
|
|
5
5
|
scan(profileName: string, prompt: string, sessionId?: string): Promise<ScanResult>;
|
|
6
6
|
scanBatch(profileName: string, prompts: string[], concurrency?: number, sessionId?: string): Promise<ScanResult[]>;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Debug wrapper that delegates to an inner ScanService and appends
|
|
10
|
+
* each raw response + prompt to a JSONL file for offline inspection.
|
|
11
|
+
*/
|
|
12
|
+
export declare class DebugScanService implements ScanService {
|
|
13
|
+
private inner;
|
|
14
|
+
private filePath;
|
|
15
|
+
constructor(inner: ScanService, filePath: string);
|
|
16
|
+
scan(profileName: string, prompt: string, sessionId?: string): Promise<ScanResult>;
|
|
17
|
+
scanBatch(profileName: string, prompts: string[], concurrency?: number, sessionId?: string): Promise<ScanResult[]>;
|
|
18
|
+
}
|
|
8
19
|
//# sourceMappingURL=scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/airs/scanner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/airs/scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,OAAO,CAA+B;gBAElC,MAAM,EAAE,MAAM;IAKpB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBlF,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,SAAI,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC;CAMzB;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAEhD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;gBADR,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM;IAGpB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAalF,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC;CAMzB"}
|
package/dist/airs/scanner.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
1
2
|
import { Content, init, Scanner } from '@cdot65/prisma-airs-sdk';
|
|
2
3
|
import pLimit from 'p-limit';
|
|
3
4
|
export class AirsScanService {
|
|
@@ -12,11 +13,13 @@ export class AirsScanService {
|
|
|
12
13
|
const action = response.action === 'block' ? 'block' : 'allow';
|
|
13
14
|
const detected = response.prompt_detected;
|
|
14
15
|
const triggered = !!(detected?.topic_guardrails_details || detected?.topic_violation);
|
|
16
|
+
const category = response.category ?? undefined;
|
|
15
17
|
return {
|
|
16
18
|
scanId: response.scan_id ?? '',
|
|
17
19
|
reportId: response.report_id ?? '',
|
|
18
20
|
action: action,
|
|
19
21
|
triggered,
|
|
22
|
+
category,
|
|
20
23
|
raw: response,
|
|
21
24
|
};
|
|
22
25
|
}
|
|
@@ -25,4 +28,32 @@ export class AirsScanService {
|
|
|
25
28
|
return Promise.all(prompts.map((prompt) => limit(() => this.scan(profileName, prompt, sessionId))));
|
|
26
29
|
}
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Debug wrapper that delegates to an inner ScanService and appends
|
|
33
|
+
* each raw response + prompt to a JSONL file for offline inspection.
|
|
34
|
+
*/
|
|
35
|
+
export class DebugScanService {
|
|
36
|
+
inner;
|
|
37
|
+
filePath;
|
|
38
|
+
constructor(inner, filePath) {
|
|
39
|
+
this.inner = inner;
|
|
40
|
+
this.filePath = filePath;
|
|
41
|
+
}
|
|
42
|
+
async scan(profileName, prompt, sessionId) {
|
|
43
|
+
const result = await this.inner.scan(profileName, prompt, sessionId);
|
|
44
|
+
const entry = JSON.stringify({
|
|
45
|
+
prompt,
|
|
46
|
+
profileName,
|
|
47
|
+
result,
|
|
48
|
+
raw: result.raw,
|
|
49
|
+
timestamp: Date.now(),
|
|
50
|
+
});
|
|
51
|
+
await fs.appendFile(this.filePath, `${entry}\n`);
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
async scanBatch(profileName, prompts, concurrency, sessionId) {
|
|
55
|
+
const limit = pLimit(concurrency ?? 5);
|
|
56
|
+
return Promise.all(prompts.map((prompt) => limit(() => this.scan(profileName, prompt, sessionId))));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
28
59
|
//# sourceMappingURL=scanner.js.map
|
package/dist/airs/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/airs/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,MAAM,MAAM,SAAS,CAAC;AAG7B,MAAM,OAAO,eAAe;IAClB,OAAO,CAA+B;IAE9C,YAAY,MAAc;QACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,MAAc,EAAE,SAAkB;QAChE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAC1C,EAAE,YAAY,EAAE,WAAW,EAAE,EAC7B,OAAO,EACP,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CACtC,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAsD,CAAC;QACjF,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,wBAAwB,IAAI,QAAQ,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/airs/scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/airs/types.d.ts
CHANGED
|
@@ -21,6 +21,25 @@ export interface ScanService {
|
|
|
21
21
|
/** Scan multiple prompts with concurrency control. */
|
|
22
22
|
scanBatch(profileName: string, prompts: string[], concurrency?: number, sessionId?: string): Promise<ScanResult[]>;
|
|
23
23
|
}
|
|
24
|
+
/** Contract for custom prompt set operations in AI Red Team. */
|
|
25
|
+
export interface PromptSetService {
|
|
26
|
+
/** Create a new custom prompt set. */
|
|
27
|
+
createPromptSet(name: string, description?: string): Promise<{
|
|
28
|
+
uuid: string;
|
|
29
|
+
name: string;
|
|
30
|
+
}>;
|
|
31
|
+
/** Add a prompt to an existing prompt set. */
|
|
32
|
+
addPrompt(promptSetId: string, prompt: string, goal?: string): Promise<{
|
|
33
|
+
uuid: string;
|
|
34
|
+
prompt: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** List all custom prompt sets. */
|
|
37
|
+
listPromptSets(): Promise<Array<{
|
|
38
|
+
uuid: string;
|
|
39
|
+
name: string;
|
|
40
|
+
active: boolean;
|
|
41
|
+
}>>;
|
|
42
|
+
}
|
|
24
43
|
/** Contract for AIRS topic CRUD and profile linking operations. */
|
|
25
44
|
export interface ManagementService {
|
|
26
45
|
/** Create a new custom topic. */
|
package/dist/airs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/airs/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,IAAI,cAAc,EAC9B,MAAM,yBAAyB,CAAC;AAKjC,YAAY,EAAE,wBAAwB,EAAE,cAAc,EAAE,CAAC;AAKzD,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAMD,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnF,sDAAsD;IACtD,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzF,mCAAmC;IACnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,8BAA8B;IAC9B,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACxC,+DAA+D;IAC/D,oBAAoB,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GAAG,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/airs/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,WAAW,IAAI,cAAc,EAC9B,MAAM,yBAAyB,CAAC;AAKjC,YAAY,EAAE,wBAAwB,EAAE,cAAc,EAAE,CAAC;AAKzD,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAMD,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnF,sDAAsD;IACtD,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC1B;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,8CAA8C;IAC9C,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,mCAAmC;IACnC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CACnF;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzF,mCAAmC;IACnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,8BAA8B;IAC9B,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACxC,+DAA+D;IAC/D,oBAAoB,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GAAG,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,gFAAgF;AAChF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyJ9D"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import { SdkManagementService } from '../../airs/management.js';
|
|
2
|
-
import {
|
|
3
|
+
import { SdkPromptSetService } from '../../airs/promptsets.js';
|
|
4
|
+
import { AirsScanService, DebugScanService } from '../../airs/scanner.js';
|
|
3
5
|
import { loadConfig } from '../../config/loader.js';
|
|
4
6
|
import { runLoop } from '../../core/loop.js';
|
|
5
7
|
import { createLlmProvider } from '../../llm/provider.js';
|
|
@@ -9,7 +11,7 @@ import { MemoryInjector } from '../../memory/injector.js';
|
|
|
9
11
|
import { MemoryStore } from '../../memory/store.js';
|
|
10
12
|
import { JsonFileStore } from '../../persistence/store.js';
|
|
11
13
|
import { collectUserInput } from '../prompts.js';
|
|
12
|
-
import { renderAnalysis, renderError, renderHeader, renderIterationStart, renderIterationSummary, renderLoopComplete, renderMemoryExtracted, renderMemoryLoaded, renderMetrics, renderTestProgress, renderTopic, } from '../renderer.js';
|
|
14
|
+
import { renderAnalysis, renderError, renderHeader, renderIterationStart, renderIterationSummary, renderLoopComplete, renderMemoryExtracted, renderMemoryLoaded, renderMetrics, renderTestProgress, renderTestsAccumulated, renderTopic, } from '../renderer.js';
|
|
13
15
|
/** Register the `generate` command — starts a new guardrail generation loop. */
|
|
14
16
|
export function registerGenerateCommand(program) {
|
|
15
17
|
program
|
|
@@ -22,8 +24,13 @@ export function registerGenerateCommand(program) {
|
|
|
22
24
|
.option('--intent <intent>', 'Intent: block or allow')
|
|
23
25
|
.option('--max-iterations <n>', 'Max iterations', '20')
|
|
24
26
|
.option('--target-coverage <n>', 'Target coverage %', '90')
|
|
27
|
+
.option('--accumulate-tests', 'Carry forward test prompts across iterations', false)
|
|
28
|
+
.option('--max-accumulated-tests <n>', 'Max accumulated test count cap')
|
|
25
29
|
.option('--memory', 'Enable learning memory (default)')
|
|
26
30
|
.option('--no-memory', 'Disable learning memory')
|
|
31
|
+
.option('--debug-scans', 'Dump raw AIRS scan responses to JSONL for debugging', false)
|
|
32
|
+
.option('--create-prompt-set', 'Create custom prompt set from test cases after loop', false)
|
|
33
|
+
.option('--prompt-set-name <name>', 'Override auto-generated prompt set name')
|
|
27
34
|
.action(async (opts) => {
|
|
28
35
|
try {
|
|
29
36
|
renderHeader();
|
|
@@ -41,6 +48,12 @@ export function registerGenerateCommand(program) {
|
|
|
41
48
|
profileName: opts.profile,
|
|
42
49
|
maxIterations: Number.parseInt(opts.maxIterations, 10),
|
|
43
50
|
targetCoverage: Number.parseInt(opts.targetCoverage, 10) / 100,
|
|
51
|
+
accumulateTests: opts.accumulateTests ?? false,
|
|
52
|
+
maxAccumulatedTests: opts.maxAccumulatedTests
|
|
53
|
+
? Number.parseInt(opts.maxAccumulatedTests, 10)
|
|
54
|
+
: undefined,
|
|
55
|
+
createPromptSet: opts.createPromptSet ?? false,
|
|
56
|
+
promptSetName: opts.promptSetName,
|
|
44
57
|
};
|
|
45
58
|
}
|
|
46
59
|
else {
|
|
@@ -67,7 +80,11 @@ export function registerGenerateCommand(program) {
|
|
|
67
80
|
const llm = new LangChainLlmService(model, memoryInjector);
|
|
68
81
|
if (!config.airsApiKey)
|
|
69
82
|
throw new Error('PANW_AI_SEC_API_KEY is required');
|
|
70
|
-
|
|
83
|
+
let scanner = new AirsScanService(config.airsApiKey);
|
|
84
|
+
if (opts.debugScans) {
|
|
85
|
+
const debugPath = path.join(config.dataDir, '..', `debug-scans-${Date.now()}.jsonl`);
|
|
86
|
+
scanner = new DebugScanService(scanner, debugPath);
|
|
87
|
+
}
|
|
71
88
|
const management = new SdkManagementService({
|
|
72
89
|
clientId: config.mgmtClientId,
|
|
73
90
|
clientSecret: config.mgmtClientSecret,
|
|
@@ -82,6 +99,15 @@ export function registerGenerateCommand(program) {
|
|
|
82
99
|
renderMemoryLoaded(learningCount);
|
|
83
100
|
}
|
|
84
101
|
const memoryExtractor = memoryStore ? new LearningExtractor(model, memoryStore) : undefined;
|
|
102
|
+
// Set up prompt set service if requested
|
|
103
|
+
const promptSets = userInput.createPromptSet
|
|
104
|
+
? new SdkPromptSetService({
|
|
105
|
+
clientId: config.mgmtClientId,
|
|
106
|
+
clientSecret: config.mgmtClientSecret,
|
|
107
|
+
tsgId: config.mgmtTsgId,
|
|
108
|
+
tokenEndpoint: config.mgmtTokenEndpoint,
|
|
109
|
+
})
|
|
110
|
+
: undefined;
|
|
85
111
|
// Run the loop
|
|
86
112
|
for await (const event of runLoop(userInput, {
|
|
87
113
|
llm,
|
|
@@ -89,6 +115,7 @@ export function registerGenerateCommand(program) {
|
|
|
89
115
|
scanner,
|
|
90
116
|
propagationDelayMs: config.propagationDelayMs,
|
|
91
117
|
memory: memoryExtractor ? { extractor: memoryExtractor } : undefined,
|
|
118
|
+
promptSets,
|
|
92
119
|
})) {
|
|
93
120
|
switch (event.type) {
|
|
94
121
|
case 'iteration:start':
|
|
@@ -97,6 +124,9 @@ export function registerGenerateCommand(program) {
|
|
|
97
124
|
case 'generate:complete':
|
|
98
125
|
renderTopic(event.topic);
|
|
99
126
|
break;
|
|
127
|
+
case 'tests:accumulated':
|
|
128
|
+
renderTestsAccumulated(event.newCount, event.totalCount, event.droppedCount);
|
|
129
|
+
break;
|
|
100
130
|
case 'test:progress':
|
|
101
131
|
renderTestProgress(event.completed, event.total);
|
|
102
132
|
break;
|
|
@@ -112,6 +142,9 @@ export function registerGenerateCommand(program) {
|
|
|
112
142
|
case 'memory:extracted':
|
|
113
143
|
renderMemoryExtracted(event.learningCount);
|
|
114
144
|
break;
|
|
145
|
+
case 'promptset:created':
|
|
146
|
+
console.log(` ✓ Custom prompt set created: ${event.promptSetName} (${event.promptCount} prompts)`);
|
|
147
|
+
break;
|
|
115
148
|
case 'loop:complete':
|
|
116
149
|
await store.save(event.runState);
|
|
117
150
|
renderLoopComplete(event.runState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuH5D"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
1
2
|
import { SdkManagementService } from '../../airs/management.js';
|
|
2
|
-
import {
|
|
3
|
+
import { SdkPromptSetService } from '../../airs/promptsets.js';
|
|
4
|
+
import { AirsScanService, DebugScanService } from '../../airs/scanner.js';
|
|
3
5
|
import { loadConfig } from '../../config/loader.js';
|
|
4
6
|
import { runLoop } from '../../core/loop.js';
|
|
5
7
|
import { createLlmProvider } from '../../llm/provider.js';
|
|
6
8
|
import { LangChainLlmService } from '../../llm/service.js';
|
|
7
9
|
import { JsonFileStore } from '../../persistence/store.js';
|
|
8
|
-
import { renderAnalysis, renderError, renderHeader, renderIterationStart, renderIterationSummary, renderLoopComplete, renderMetrics, renderTestProgress, renderTopic, } from '../renderer.js';
|
|
10
|
+
import { renderAnalysis, renderError, renderHeader, renderIterationStart, renderIterationSummary, renderLoopComplete, renderMetrics, renderTestProgress, renderTestsAccumulated, renderTopic, } from '../renderer.js';
|
|
9
11
|
/** Register the `resume` command — resumes a paused or failed run. */
|
|
10
12
|
export function registerResumeCommand(program) {
|
|
11
13
|
program
|
|
12
14
|
.command('resume <runId>')
|
|
13
15
|
.description('Resume a paused or failed run')
|
|
14
16
|
.option('--max-iterations <n>', 'Additional iterations to run', '10')
|
|
17
|
+
.option('--debug-scans', 'Dump raw AIRS scan responses to JSONL for debugging', false)
|
|
18
|
+
.option('--create-prompt-set', 'Create custom prompt set from test cases after loop', false)
|
|
19
|
+
.option('--prompt-set-name <name>', 'Override auto-generated prompt set name')
|
|
15
20
|
.action(async (runId, opts) => {
|
|
16
21
|
try {
|
|
17
22
|
renderHeader();
|
|
@@ -31,6 +36,8 @@ export function registerResumeCommand(program) {
|
|
|
31
36
|
const userInput = {
|
|
32
37
|
...existingRun.userInput,
|
|
33
38
|
maxIterations: existingRun.currentIteration + additionalIterations,
|
|
39
|
+
createPromptSet: opts.createPromptSet ?? false,
|
|
40
|
+
promptSetName: opts.promptSetName,
|
|
34
41
|
};
|
|
35
42
|
const model = await createLlmProvider({
|
|
36
43
|
provider: config.llmProvider,
|
|
@@ -46,7 +53,11 @@ export function registerResumeCommand(program) {
|
|
|
46
53
|
const llm = new LangChainLlmService(model);
|
|
47
54
|
if (!config.airsApiKey)
|
|
48
55
|
throw new Error('PANW_AI_SEC_API_KEY is required');
|
|
49
|
-
|
|
56
|
+
let scanner = new AirsScanService(config.airsApiKey);
|
|
57
|
+
if (opts.debugScans) {
|
|
58
|
+
const debugPath = path.join(config.dataDir, '..', `debug-scans-${runId}.jsonl`);
|
|
59
|
+
scanner = new DebugScanService(scanner, debugPath);
|
|
60
|
+
}
|
|
50
61
|
const management = new SdkManagementService({
|
|
51
62
|
clientId: config.mgmtClientId,
|
|
52
63
|
clientSecret: config.mgmtClientSecret,
|
|
@@ -54,12 +65,22 @@ export function registerResumeCommand(program) {
|
|
|
54
65
|
apiEndpoint: config.mgmtEndpoint,
|
|
55
66
|
tokenEndpoint: config.mgmtTokenEndpoint,
|
|
56
67
|
});
|
|
68
|
+
// Set up prompt set service if requested
|
|
69
|
+
const promptSets = userInput.createPromptSet
|
|
70
|
+
? new SdkPromptSetService({
|
|
71
|
+
clientId: config.mgmtClientId,
|
|
72
|
+
clientSecret: config.mgmtClientSecret,
|
|
73
|
+
tsgId: config.mgmtTsgId,
|
|
74
|
+
tokenEndpoint: config.mgmtTokenEndpoint,
|
|
75
|
+
})
|
|
76
|
+
: undefined;
|
|
57
77
|
console.log(` Resuming run ${runId} from iteration ${existingRun.currentIteration}...`);
|
|
58
78
|
for await (const event of runLoop(userInput, {
|
|
59
79
|
llm,
|
|
60
80
|
management,
|
|
61
81
|
scanner,
|
|
62
82
|
propagationDelayMs: config.propagationDelayMs,
|
|
83
|
+
promptSets,
|
|
63
84
|
})) {
|
|
64
85
|
switch (event.type) {
|
|
65
86
|
case 'iteration:start':
|
|
@@ -68,6 +89,9 @@ export function registerResumeCommand(program) {
|
|
|
68
89
|
case 'generate:complete':
|
|
69
90
|
renderTopic(event.topic);
|
|
70
91
|
break;
|
|
92
|
+
case 'tests:accumulated':
|
|
93
|
+
renderTestsAccumulated(event.newCount, event.totalCount, event.droppedCount);
|
|
94
|
+
break;
|
|
71
95
|
case 'test:progress':
|
|
72
96
|
renderTestProgress(event.completed, event.total);
|
|
73
97
|
break;
|
|
@@ -80,6 +104,9 @@ export function registerResumeCommand(program) {
|
|
|
80
104
|
case 'iteration:complete':
|
|
81
105
|
renderIterationSummary(event.result);
|
|
82
106
|
break;
|
|
107
|
+
case 'promptset:created':
|
|
108
|
+
console.log(` ✓ Custom prompt set created: ${event.promptSetName} (${event.promptCount} prompts)`);
|
|
109
|
+
break;
|
|
83
110
|
case 'loop:complete':
|
|
84
111
|
await store.save(event.runState);
|
|
85
112
|
renderLoopComplete(event.runState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,uFAAuF;AACvF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,uFAAuF;AACvF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,SAAS,CAAC,CA6E3D;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAY9D;AAED,kFAAkF;AAClF,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3F"}
|
package/dist/cli/prompts.js
CHANGED
|
@@ -42,6 +42,19 @@ export async function collectUserInput() {
|
|
|
42
42
|
min: 10,
|
|
43
43
|
max: 100,
|
|
44
44
|
})) ?? 90;
|
|
45
|
+
const accumulateTests = await confirm({
|
|
46
|
+
message: 'Accumulate test prompts across iterations?',
|
|
47
|
+
default: false,
|
|
48
|
+
});
|
|
49
|
+
let maxAccumulatedTests;
|
|
50
|
+
if (accumulateTests) {
|
|
51
|
+
const cap = await number({
|
|
52
|
+
message: 'Max accumulated tests (0 = no limit):',
|
|
53
|
+
default: 0,
|
|
54
|
+
min: 0,
|
|
55
|
+
});
|
|
56
|
+
maxAccumulatedTests = cap && cap > 0 ? cap : undefined;
|
|
57
|
+
}
|
|
45
58
|
return {
|
|
46
59
|
topicDescription,
|
|
47
60
|
intent,
|
|
@@ -49,6 +62,8 @@ export async function collectUserInput() {
|
|
|
49
62
|
seedExamples,
|
|
50
63
|
maxIterations,
|
|
51
64
|
targetCoverage: targetCoverageRaw / 100,
|
|
65
|
+
accumulateTests,
|
|
66
|
+
maxAccumulatedTests,
|
|
52
67
|
};
|
|
53
68
|
}
|
|
54
69
|
/** Prompt the user to select an LLM provider from the supported list. */
|
package/dist/cli/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAInE,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC;QACnC,OAAO,EAAE,+CAA+C;QACxD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC;KAC1E,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAoB;QAC7C,OAAO,EAAE,0CAA0C;QACnD,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YACjC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;SAClC;KACF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;QAC9B,OAAO,EAAE,6BAA6B;QACtC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC;KAC3E,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;QACpC,OAAO,EAAE,uCAAuC;QAChD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,IAAI,YAAkC,CAAC;IACvC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;YAC9B,OAAO,EACL,6FAA6F;SAChG,CAAC,CAAC;QACH,YAAY,GAAG,WAAW;aACvB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,aAAa,GACjB,CAAC,MAAM,MAAM,CAAC;QACZ,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,GAAG;KACT,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,MAAM,iBAAiB,GACrB,CAAC,MAAM,MAAM,CAAC;QACZ,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,GAAG;KACT,CAAC,CAAC,IAAI,EAAE,CAAC;IAEZ,OAAO;QACL,gBAAgB;QAChB,MAAM;QACN,WAAW;QACX,YAAY;QACZ,aAAa;QACb,cAAc,EAAE,iBAAiB,GAAG,GAAG;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/renderer.d.ts
CHANGED
|
@@ -24,4 +24,6 @@ export declare function renderIterationSummary(result: IterationResult): void;
|
|
|
24
24
|
export declare function renderMemoryLoaded(learningCount: number): void;
|
|
25
25
|
/** Render count of learnings extracted from the current run. */
|
|
26
26
|
export declare function renderMemoryExtracted(learningCount: number): void;
|
|
27
|
+
/** Render accumulated test count with optional dropped info. */
|
|
28
|
+
export declare function renderTestsAccumulated(newCount: number, totalCount: number, droppedCount: number): void;
|
|
27
29
|
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qCAAqC;AACrC,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQpD;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAe5D;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAe7D;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAW3D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAsB3D;AAED,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAUpE;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAEjE"}
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qCAAqC;AACrC,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,sCAAsC;AACtC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAQpD;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAe5D;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAe7D;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAW3D;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAsB3D;AAED,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAUpE;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAM9D;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,IAAI,CAMN"}
|
package/dist/cli/renderer.js
CHANGED
|
@@ -112,4 +112,12 @@ export function renderMemoryLoaded(learningCount) {
|
|
|
112
112
|
export function renderMemoryExtracted(learningCount) {
|
|
113
113
|
console.log(chalk.cyan(` Memory: extracted ${learningCount} learnings from this run`));
|
|
114
114
|
}
|
|
115
|
+
/** Render accumulated test count with optional dropped info. */
|
|
116
|
+
export function renderTestsAccumulated(newCount, totalCount, droppedCount) {
|
|
117
|
+
let msg = ` Tests: ${newCount} new, ${totalCount} total (accumulated)`;
|
|
118
|
+
if (droppedCount > 0) {
|
|
119
|
+
msg += chalk.yellow(` (${droppedCount} dropped by cap)`);
|
|
120
|
+
}
|
|
121
|
+
console.log(chalk.dim(msg));
|
|
122
|
+
}
|
|
115
123
|
//# sourceMappingURL=renderer.js.map
|
package/dist/cli/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"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"}
|