@yadsh/dsh-prompt-firewall 0.1.1 → 0.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/lib/client/index.js +39 -25
- package/lib/client/index.js.map +1 -1
- package/lib/client/settings-store.js +11 -0
- package/lib/client/settings-store.js.map +1 -0
- package/lib/client/styles.js +26 -4
- package/lib/client/styles.js.map +1 -1
- package/lib/client.js +109 -52
- package/lib/client.js.map +1 -1
- package/lib/index.js +17 -1
- package/lib/index.js.map +1 -1
- package/lib/typert.host.js +2 -2
- package/lib/typert.remote-client.js +2 -2
- package/lib/types/client/settings-store.d.ts +11 -0
- package/lib/types/index.d.ts +1 -0
- package/package.json +3 -2
package/lib/index.js
CHANGED
|
@@ -35,6 +35,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
35
35
|
import { Context } from '@deepseek-ai/cordis';
|
|
36
36
|
import { installSettingsSection, settingsNamespace } from '@deepseek-ai/dsh-settings';
|
|
37
37
|
import { Remote, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
38
|
+
import { createHostLoggerSink, getPluginLogger, } from '@yadsh/dsh-plugin-log';
|
|
38
39
|
import { AuditStore } from './audit.js';
|
|
39
40
|
import { ConfigSchema, resolveConfig } from './config.js';
|
|
40
41
|
import { applyFirewall } from './firewall.js';
|
|
@@ -75,8 +76,15 @@ let PromptFirewall = (() => {
|
|
|
75
76
|
compiledRules;
|
|
76
77
|
audits;
|
|
77
78
|
metrics = new FirewallMetrics();
|
|
79
|
+
logger;
|
|
78
80
|
constructor(ctx, config = {}) {
|
|
79
81
|
super(ctx, 'promptFirewall', { namespace: 'promptFirewall' });
|
|
82
|
+
this.logger = getPluginLogger({
|
|
83
|
+
pluginId: 'dsh-prompt-firewall',
|
|
84
|
+
console: 'trace',
|
|
85
|
+
consoleSink: createHostLoggerSink(ctx.logger),
|
|
86
|
+
});
|
|
87
|
+
ctx.effect(() => async () => this.logger.close(), 'dsh-prompt-firewall.logger');
|
|
80
88
|
this.entryConfig = structuredClone(config);
|
|
81
89
|
this.configSource = () => this.entryConfig;
|
|
82
90
|
this.resolvedConfig = resolveConfig(config);
|
|
@@ -95,10 +103,14 @@ let PromptFirewall = (() => {
|
|
|
95
103
|
config: this.resolvedConfig,
|
|
96
104
|
auditStore: this.audits,
|
|
97
105
|
metrics: this.metrics,
|
|
98
|
-
logger:
|
|
106
|
+
logger: this.logger,
|
|
99
107
|
evaluate: section => evaluateSection(section, this.compiledRules),
|
|
100
108
|
});
|
|
101
109
|
}, { prepend: true });
|
|
110
|
+
this.logger.info('plugin.ready', {
|
|
111
|
+
enabled: this.resolvedConfig.enabled,
|
|
112
|
+
mode: this.resolvedConfig.mode,
|
|
113
|
+
});
|
|
102
114
|
}
|
|
103
115
|
inspectLast() {
|
|
104
116
|
return this.audits.last();
|
|
@@ -158,6 +170,10 @@ let PromptFirewall = (() => {
|
|
|
158
170
|
this.resolvedConfig = resolveConfig(this.configSource());
|
|
159
171
|
this.compiledRules = compileRules(this.resolvedConfig);
|
|
160
172
|
this.audits.configure(this.resolvedConfig.audit.historySize, this.resolvedConfig.audit.highlightNewSections);
|
|
173
|
+
this.logger.info('firewall.rules.reloaded', {
|
|
174
|
+
enabled: this.resolvedConfig.enabled,
|
|
175
|
+
mode: this.resolvedConfig.mode,
|
|
176
|
+
});
|
|
161
177
|
}
|
|
162
178
|
};
|
|
163
179
|
})();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAa1D,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAS1B,wBAAwB;AACxB,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,cAAc,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,kCAAkC,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;AAGtF,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAA;AAElC,0EAA0E;IAC7D,cAAc;sBAAS,mBAAmB;;;;iBAA1C,cAAe,SAAQ,WAAmB;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,eAAe,GAEhB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAa1D,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAS1B,wBAAwB;AACxB,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,cAAc,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,kCAAkC,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;AAGtF,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAA;AAElC,0EAA0E;IAC7D,cAAc;sBAAS,mBAAmB;;;;iBAA1C,cAAe,SAAQ,WAAmB;;;mCAwFpD,MAAM,CAAC,SAAS,CAAC;4CAcjB,MAAM,CAAC,kBAAkB,CAAC;YAb3B,wKAAA,OAAO,6DAON;YAOD,mMAAM,gBAAgB,6DA8BrB;;;QApID,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,MAAM,CAAC,MAAM,GAAG,YAAY,CAAA;QAEX,WAAW,GAJjB,mDAAc,CAIyB;QAC1C,YAAY,CAA4B;QACxC,cAAc,CAA8B;QAC5C,aAAa,CAAA;QACJ,MAAM,CAAY;QAClB,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;QAC/B,MAAM,CAAc;QAErC,YAAY,GAAY,EAAE,MAAM,GAAyB,EAAE;YACzD,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;gBAC5B,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9C,CAAC,CAAA;YACF,GAAG,CAAC,MAAM,CACR,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EACrC,4BAA4B,CAC7B,CAAA;YACD,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAA;YAC1C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YAC3C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EACrC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAC/C,CAAA;YAED,sBAAsB,CACpB,GAAG,EACH,kCAAkC,EAClC,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB;gBACE,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA,CAAC,CAAC;gBACrD,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAC,CAAC;aACvC,CACF,CAAA;YAED,wEAAwE;YACxE,uEAAuE;YACvE,4EAA4E;YAC5E,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,KAAK,EACpC,SAAS,EACT,QAAQ,EACR,IAAI,EACqB,EAAE;gBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;gBAC3B,OAAO,aAAa,CAAC,MAAM,EAAE;oBAC3B,MAAM,EAAE,IAAI,CAAC,cAAc;oBAC3B,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;iBAClE,CAAC,CAAA;YACJ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAErB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC/B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;gBACpC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;aAC/B,CAAC,CAAA;QACJ,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3B,CAAC;QAED,cAAc;YACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC9B,CAAC;QAED,gBAAgB;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QACpC,CAAC;QAED,UAAU;YACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAChC,CAAC;QAED,SAAS;YACP,OAAO,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC7C,CAAC;QAED,wEAAwE;QAExE,OAAO;YACL,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;gBACxB,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;gBACxB,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACtC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,CAAA;QACH,CAAC;QAED,eAAe,CAAC,OAAyB;YACvC,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QACrD,CAAC;QAGD,KAAK,CAAC,gBAAgB,CACpB,IAAY,EACZ,MAAqB,EACrB,gBAAyB;YAEzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAA;YAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;YAC5F,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YACnC,MAAM,OAAO,GAAG,CAAC,MAAqC,EAAY,EAAE,CAAC,CACnE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAC/C,CAAA;YACD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACxD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YAC5D,IAAI,MAAM,KAAK,OAAO;gBAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBAC7C,IAAI,MAAM,KAAK,OAAO;gBAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBAClD,IAAI,MAAM,KAAK,SAAS;gBAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE3D,MAAM,QAAQ,CAAC,MAAM,CAAC,kCAAkC,EAAE;gBACxD,eAAe;gBACf,eAAe;gBACf,iBAAiB;aAClB,EAAE,gBAAgB,CAAC,CAAA;YACpB,wEAAwE;YACxE,gFAAgF;YAChF,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC;QAED,WAAW;YACT,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CACnB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EACrC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAC/C,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1C,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;gBACpC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;aAC/B,CAAC,CAAA;QACJ,CAAC;;;SAlJU,cAAc;AAqJ3B,eAAe,cAAc,CAAA"}
|
package/lib/typert.host.js
CHANGED
|
@@ -90,7 +90,7 @@ export const TYPERT = {
|
|
|
90
90
|
typeSymbol: '@yadsh/dsh-prompt-firewall/types#PromptFirewallInspectorSnapshot',
|
|
91
91
|
schema: _yadsh_dsh_prompt_firewall_promptFirewall_inspect_result$schema,
|
|
92
92
|
},
|
|
93
|
-
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":
|
|
93
|
+
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":140,"column":3},
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
96
|
id: '@yadsh/dsh-prompt-firewall#promptFirewall/setSectionPolicy',
|
|
@@ -136,7 +136,7 @@ export const TYPERT = {
|
|
|
136
136
|
typeSymbol: '@yadsh/dsh-prompt-firewall#promptFirewall/setSectionPolicy:result',
|
|
137
137
|
schema: _yadsh_dsh_prompt_firewall_promptFirewall_setSectionPolicy_result$schema,
|
|
138
138
|
},
|
|
139
|
-
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":
|
|
139
|
+
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":154,"column":9},
|
|
140
140
|
},
|
|
141
141
|
],
|
|
142
142
|
model: {
|
|
@@ -87,7 +87,7 @@ export const TYPERT_REMOTE = {
|
|
|
87
87
|
typeSymbol: '@yadsh/dsh-prompt-firewall/types#PromptFirewallInspectorSnapshot',
|
|
88
88
|
schema: _yadsh_dsh_prompt_firewall_promptFirewall_inspect_result$schema,
|
|
89
89
|
},
|
|
90
|
-
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":
|
|
90
|
+
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":140,"column":3},
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
id: '@yadsh/dsh-prompt-firewall#promptFirewall/setSectionPolicy',
|
|
@@ -133,7 +133,7 @@ export const TYPERT_REMOTE = {
|
|
|
133
133
|
typeSymbol: '@yadsh/dsh-prompt-firewall#promptFirewall/setSectionPolicy:result',
|
|
134
134
|
schema: _yadsh_dsh_prompt_firewall_promptFirewall_setSectionPolicy_result$schema,
|
|
135
135
|
},
|
|
136
|
-
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":
|
|
136
|
+
sourceLocation: {"file":"packages/dsh-prompt-firewall/src/index.ts","line":154,"column":9},
|
|
137
137
|
},
|
|
138
138
|
],
|
|
139
139
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React invokes external-store callbacks as plain functions. SettingsScope's
|
|
3
|
+
* methods depend on their receiver, so forward calls through stable wrappers.
|
|
4
|
+
*/
|
|
5
|
+
export declare function bindSettingsExternalStore<TSnapshot>(scope: {
|
|
6
|
+
subscribe(listener: () => void): () => void;
|
|
7
|
+
getSnapshot(): TSnapshot;
|
|
8
|
+
}): {
|
|
9
|
+
subscribe(listener: () => void): () => void;
|
|
10
|
+
getSnapshot(): TSnapshot;
|
|
11
|
+
};
|
package/lib/types/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare class PromptFirewall extends TypertRemoteService implements Promp
|
|
|
31
31
|
private compiledRules;
|
|
32
32
|
private readonly audits;
|
|
33
33
|
private readonly metrics;
|
|
34
|
+
private readonly logger;
|
|
34
35
|
constructor(ctx: Context, config?: PromptFirewallConfig);
|
|
35
36
|
inspectLast(): PromptAuditResult | null;
|
|
36
37
|
inspectHistory(): PromptAuditResult[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yadsh/dsh-prompt-firewall",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Prompt hygiene, observability, and policy middleware for DeepSeek Harness",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -84,7 +84,8 @@
|
|
|
84
84
|
"react": ">=18.2.0 <20"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"zod": "^4.4.3"
|
|
87
|
+
"zod": "^4.4.3",
|
|
88
|
+
"@yadsh/dsh-plugin-log": "^0.2.0"
|
|
88
89
|
},
|
|
89
90
|
"devDependencies": {
|
|
90
91
|
"@deepseek-ai/cordis": "4.0.1",
|