signetai 0.189.2 → 0.191.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mcp-stdio.js CHANGED
@@ -40914,6 +40914,23 @@ function up121(db) {
40914
40914
  VALUES (1, CURRENT_TIMESTAMP);
40915
40915
  `);
40916
40916
  }
40917
+ function up122(db) {
40918
+ const columns = db.prepare("PRAGMA table_info(dreaming_evidence_exclusions)").all();
40919
+ const names = new Set(columns.map((column) => column.name));
40920
+ if (!names.has("failure_class")) {
40921
+ db.exec("ALTER TABLE dreaming_evidence_exclusions ADD COLUMN failure_class TEXT NOT NULL DEFAULT 'unknown' CHECK (failure_class IN ('incomplete_transcript', 'source_projection', 'scope_mismatch', 'quote_mismatch', 'unknown'))");
40922
+ }
40923
+ if (!names.has("source_fingerprint")) {
40924
+ db.exec("ALTER TABLE dreaming_evidence_exclusions ADD COLUMN source_fingerprint TEXT");
40925
+ }
40926
+ if (!names.has("retry_count")) {
40927
+ db.exec("ALTER TABLE dreaming_evidence_exclusions ADD COLUMN retry_count INTEGER NOT NULL DEFAULT 0");
40928
+ }
40929
+ if (!names.has("last_requeued_at")) {
40930
+ db.exec("ALTER TABLE dreaming_evidence_exclusions ADD COLUMN last_requeued_at TEXT");
40931
+ }
40932
+ db.exec("CREATE INDEX IF NOT EXISTS idx_dreaming_evidence_exclusions_retry ON dreaming_evidence_exclusions (resolved_at, requeue_requested_at, failure_class, retry_count, last_requeued_at)");
40933
+ }
40917
40934
  var MIGRATIONS = [
40918
40935
  {
40919
40936
  version: 1,
@@ -41895,6 +41912,19 @@ var MIGRATIONS = [
41895
41912
  { table: "telemetry_events", column: "last_failure_code" }
41896
41913
  ]
41897
41914
  }
41915
+ },
41916
+ {
41917
+ version: 122,
41918
+ name: "dreaming-evidence-retry",
41919
+ up: up122,
41920
+ artifacts: {
41921
+ columns: [
41922
+ { table: "dreaming_evidence_exclusions", column: "failure_class" },
41923
+ { table: "dreaming_evidence_exclusions", column: "source_fingerprint" },
41924
+ { table: "dreaming_evidence_exclusions", column: "retry_count" },
41925
+ { table: "dreaming_evidence_exclusions", column: "last_requeued_at" }
41926
+ ]
41927
+ }
41898
41928
  }
41899
41929
  ];
41900
41930
  var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
@@ -45968,6 +45998,15 @@ function applyOperation(db, proposal, actor, writeCaps) {
45968
45998
  return applyArchiveEntityAlias(db, proposal.agent_id, proposal, payload);
45969
45999
  throw new OntologyProposalError(`Unsupported ontology proposal operation: ${proposal.operation}`, 400);
45970
46000
  }
46001
+ function createOntologyProposalsInTx(db, inputs) {
46002
+ if (inputs.length === 0)
46003
+ throw new OntologyProposalError("proposals are required", 400);
46004
+ if (inputs.length > 500)
46005
+ throw new OntologyProposalError("cannot create more than 500 proposals at once", 400);
46006
+ const ts = now();
46007
+ const items = inputs.map((input) => insertProposalInTx(db, input, ts));
46008
+ return { items, count: items.length };
46009
+ }
45971
46010
  function toDuplicateEntityRef(row, key) {
45972
46011
  return {
45973
46012
  id: row.id,
@@ -46789,6 +46828,13 @@ function toApplicatorPayload(accessor, agentId, operation2, payload2) {
46789
46828
  return payload2;
46790
46829
  }
46791
46830
  }
46831
+ function existingReviewProposalId(db, params) {
46832
+ const row = db.prepare(`SELECT id FROM ontology_proposals
46833
+ WHERE agent_id = ? AND operation = ? AND status IN ('pending', 'applied', 'rejected')
46834
+ AND payload = ? AND evidence = ?
46835
+ ORDER BY updated_at DESC LIMIT 1`).get(params.agentId, params.operation, JSON.stringify(params.payload), JSON.stringify(params.evidence));
46836
+ return typeof row?.id === "string" ? row.id : null;
46837
+ }
46792
46838
  function applyDreamingOperations(params) {
46793
46839
  if (params.operations.length === 0)
46794
46840
  return { ok: false, items: [], error: "operations are required" };
@@ -46861,7 +46907,8 @@ function applyDreamingOperations(params) {
46861
46907
  sourcePath: provenance.sourcePath,
46862
46908
  sourceRoot: provenance.sourceRoot
46863
46909
  },
46864
- attentionId
46910
+ attentionId,
46911
+ reviewOnly: operation2.risk === "review_required" && !HYGIENE_ARCHIVE_OPS.has(operation2.operation)
46865
46912
  });
46866
46913
  }
46867
46914
  const items = [];
@@ -46889,6 +46936,41 @@ function applyDreamingOperations(params) {
46889
46936
  items.push({ index, ok: true, result: { attentionId: entry.attentionId } });
46890
46937
  continue;
46891
46938
  }
46939
+ if (entry.reviewOnly) {
46940
+ const existingId = existingReviewProposalId(db, {
46941
+ agentId: params.agentId,
46942
+ operation: entry.input.operation,
46943
+ payload: entry.input.payload,
46944
+ evidence: entry.input.evidence ?? []
46945
+ });
46946
+ if (existingId !== null) {
46947
+ items.push({ index, ok: true, result: { reviewRequired: true, deduped: true, proposalId: existingId } });
46948
+ continue;
46949
+ }
46950
+ const created = createOntologyProposalsInTx(db, [
46951
+ {
46952
+ agentId: params.agentId,
46953
+ operation: entry.input.operation,
46954
+ payload: entry.input.payload,
46955
+ confidence: entry.input.confidence,
46956
+ rationale: entry.input.reason,
46957
+ evidence: entry.input.evidence,
46958
+ risk: entry.input.risk,
46959
+ sourceKind: entry.input.sourceKind,
46960
+ sourceId: entry.input.sourceId,
46961
+ sourcePath: entry.input.sourcePath,
46962
+ sourceRoot: entry.input.sourceRoot,
46963
+ createdBy: params.actor
46964
+ }
46965
+ ]);
46966
+ items.push({
46967
+ index,
46968
+ ok: true,
46969
+ proposal: created.items[0],
46970
+ result: { reviewRequired: true }
46971
+ });
46972
+ continue;
46973
+ }
46892
46974
  if (entry.attentionId !== null) {
46893
46975
  const pending = db.prepare(`SELECT 1 FROM dreaming_attention
46894
46976
  WHERE id = ? AND agent_id = ? AND resolved_at IS NULL`).get(entry.attentionId, params.agentId);
@@ -1,43 +1,43 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.189.2",
3
+ "version": "0.191.0",
4
4
  "assets": [
5
5
  {
6
6
  "name": "signet-darwin-arm64",
7
7
  "platform": "darwin-arm64",
8
- "sha256": "a22bac90de9c01334332c7f19ec2eda7c1f00c9aeb9feb2ea09ca3a42f133580",
9
- "size": 117457696
8
+ "sha256": "800cc78b99773331584f2f6f9223646413932650f9eccb35c637829a856d6533",
9
+ "size": 117507232
10
10
  },
11
11
  {
12
12
  "name": "signet-darwin-x64",
13
13
  "platform": "darwin-x64",
14
- "sha256": "4f526195f161ec9c7d4cde10068a7c734301b9bafb9704f0a9a79ebe9ec3132e",
15
- "size": 122079808
14
+ "sha256": "544e97f923a7020aba89f5aac1a0f4a78b0e532fa29d8e11ae16bf018d367da0",
15
+ "size": 122128960
16
16
  },
17
17
  {
18
18
  "name": "signet-linux-arm64",
19
19
  "platform": "linux-arm64",
20
- "sha256": "339060494673207d40f488a37eeb90bfda3b358402161ed8509b88de3a290824",
21
- "size": 154693985
20
+ "sha256": "3b2d163b50099112e7ce8de7058535c0ed46234f1f5c2f7df33765a5ea7a8985",
21
+ "size": 154748922
22
22
  },
23
23
  {
24
24
  "name": "signet-linux-x64",
25
25
  "platform": "linux-x64",
26
- "sha256": "0ffd9611372d99e9e21e112fbe79d4f8194208865ff52ac9f345f6eda67b7f88",
27
- "size": 155252970
26
+ "sha256": "ea119bd13a3d21913c113577980ecb51209207cd032833148463cc6456990531",
27
+ "size": 155307907
28
28
  },
29
29
  {
30
30
  "name": "signet-win32-x64.exe",
31
31
  "platform": "win32-x64",
32
- "sha256": "0f35ab8f74ff808e6a6676c3db9029b41edf07bb4a2665f553e7bbab3166bcd9",
33
- "size": 171385344
32
+ "sha256": "edcd0bc8d6308a40480c0748bc92eb3e3b2885e31ca68cd811f1ea8e3389246a",
33
+ "size": 171440640
34
34
  }
35
35
  ],
36
36
  "components": {
37
37
  "connectors": {
38
- "url": "signet-connectors-0.189.2.tar.gz",
39
- "sha256": "6a84385e683d34d7bf0fe7ca24cd7a9633d41b1183cdd55b357ac53c7032f7c9",
40
- "size": 16881
38
+ "url": "signet-connectors-0.191.0.tar.gz",
39
+ "sha256": "23926a85854295fab717b6f9ae0f6d31d9d9e58302c77d310f7520fa0e598b3a",
40
+ "size": 16885
41
41
  }
42
42
  }
43
43
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "signetai",
3
- "version": "0.189.2",
3
+ "version": "0.191.0",
4
4
  "description": "Signet native CLI installer wrapper",
5
5
  "type": "module",
6
6
  "bin": {
@@ -65,10 +65,10 @@
65
65
  "access": "public"
66
66
  },
67
67
  "optionalDependencies": {
68
- "signetai-darwin-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.189.2/signetai-darwin-arm64-0.189.2.tgz",
69
- "signetai-darwin-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.189.2/signetai-darwin-x64-0.189.2.tgz",
70
- "signetai-linux-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.189.2/signetai-linux-arm64-0.189.2.tgz",
71
- "signetai-linux-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.189.2/signetai-linux-x64-0.189.2.tgz",
72
- "signetai-win32-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.189.2/signetai-win32-x64-0.189.2.tgz"
68
+ "signetai-darwin-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.191.0/signetai-darwin-arm64-0.191.0.tgz",
69
+ "signetai-darwin-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.191.0/signetai-darwin-x64-0.191.0.tgz",
70
+ "signetai-linux-arm64": "https://github.com/Signet-AI/signetai/releases/download/v0.191.0/signetai-linux-arm64-0.191.0.tgz",
71
+ "signetai-linux-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.191.0/signetai-linux-x64-0.191.0.tgz",
72
+ "signetai-win32-x64": "https://github.com/Signet-AI/signetai/releases/download/v0.191.0/signetai-win32-x64-0.191.0.tgz"
73
73
  }
74
74
  }