@gyoungwe/research-suite 0.1.3 → 0.1.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.
Files changed (146) hide show
  1. package/build-manifest.json +2 -2
  2. package/node_modules/@gyoungwe/pi-core/README.md +5 -3
  3. package/node_modules/@gyoungwe/pi-core/build-manifest.json +2 -2
  4. package/node_modules/@gyoungwe/pi-core/dist/index.mjs +435 -151
  5. package/node_modules/@gyoungwe/pi-core/package.json +1 -1
  6. package/node_modules/@gyoungwe/pi-knowledge/build-manifest.json +68 -3
  7. package/node_modules/@gyoungwe/pi-knowledge/dist/core/capability-discovery.d.ts +7 -0
  8. package/node_modules/@gyoungwe/pi-knowledge/dist/core/capability-discovery.d.ts.map +1 -0
  9. package/node_modules/@gyoungwe/pi-knowledge/dist/core/claim-conflicts.d.ts +30 -0
  10. package/node_modules/@gyoungwe/pi-knowledge/dist/core/claim-conflicts.d.ts.map +1 -0
  11. package/node_modules/@gyoungwe/pi-knowledge/dist/core/config.d.ts +55 -0
  12. package/node_modules/@gyoungwe/pi-knowledge/dist/core/config.d.ts.map +1 -0
  13. package/node_modules/@gyoungwe/pi-knowledge/dist/core/daily-discovery-prompt.d.ts +11 -0
  14. package/node_modules/@gyoungwe/pi-knowledge/dist/core/daily-discovery-prompt.d.ts.map +1 -0
  15. package/node_modules/@gyoungwe/pi-knowledge/dist/core/daily-discovery.d.ts +26 -0
  16. package/node_modules/@gyoungwe/pi-knowledge/dist/core/daily-discovery.d.ts.map +1 -0
  17. package/node_modules/@gyoungwe/pi-knowledge/dist/core/deliverable-review.d.ts +127 -0
  18. package/node_modules/@gyoungwe/pi-knowledge/dist/core/deliverable-review.d.ts.map +1 -0
  19. package/node_modules/@gyoungwe/pi-knowledge/dist/core/evolution.d.ts +39 -0
  20. package/node_modules/@gyoungwe/pi-knowledge/dist/core/evolution.d.ts.map +1 -0
  21. package/node_modules/@gyoungwe/pi-knowledge/dist/core/experience-store.d.ts +290 -0
  22. package/node_modules/@gyoungwe/pi-knowledge/dist/core/experience-store.d.ts.map +1 -0
  23. package/node_modules/@gyoungwe/pi-knowledge/dist/core/extension-helpers.d.ts +38 -0
  24. package/node_modules/@gyoungwe/pi-knowledge/dist/core/extension-helpers.d.ts.map +1 -0
  25. package/node_modules/@gyoungwe/pi-knowledge/dist/core/files.d.ts +39 -0
  26. package/node_modules/@gyoungwe/pi-knowledge/dist/core/files.d.ts.map +1 -0
  27. package/node_modules/@gyoungwe/pi-knowledge/dist/core/flow-cards.d.ts +77 -0
  28. package/node_modules/@gyoungwe/pi-knowledge/dist/core/flow-cards.d.ts.map +1 -0
  29. package/node_modules/@gyoungwe/pi-knowledge/dist/core/graph-cache.d.ts +14 -0
  30. package/node_modules/@gyoungwe/pi-knowledge/dist/core/graph-cache.d.ts.map +1 -0
  31. package/node_modules/@gyoungwe/pi-knowledge/dist/core/graph-retrieval.d.ts +44 -0
  32. package/node_modules/@gyoungwe/pi-knowledge/dist/core/graph-retrieval.d.ts.map +1 -0
  33. package/node_modules/@gyoungwe/pi-knowledge/dist/core/host.d.ts +9 -0
  34. package/node_modules/@gyoungwe/pi-knowledge/dist/core/host.d.ts.map +1 -0
  35. package/node_modules/@gyoungwe/pi-knowledge/dist/core/index.d.ts +46 -0
  36. package/node_modules/@gyoungwe/pi-knowledge/dist/core/index.d.ts.map +1 -0
  37. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-frontmatter.d.ts +125 -0
  38. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-frontmatter.d.ts.map +1 -0
  39. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-identity.d.ts +93 -0
  40. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-identity.d.ts.map +1 -0
  41. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-policy.d.ts +63 -0
  42. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ingest-policy.d.ts.map +1 -0
  43. package/node_modules/@gyoungwe/pi-knowledge/dist/core/layout.d.ts +47 -0
  44. package/node_modules/@gyoungwe/pi-knowledge/dist/core/layout.d.ts.map +1 -0
  45. package/node_modules/@gyoungwe/pi-knowledge/dist/core/maintenance.d.ts +16 -0
  46. package/node_modules/@gyoungwe/pi-knowledge/dist/core/maintenance.d.ts.map +1 -0
  47. package/node_modules/@gyoungwe/pi-knowledge/dist/core/memory-note.d.ts +14 -0
  48. package/node_modules/@gyoungwe/pi-knowledge/dist/core/memory-note.d.ts.map +1 -0
  49. package/node_modules/@gyoungwe/pi-knowledge/dist/core/metacognitive-policy.d.ts +116 -0
  50. package/node_modules/@gyoungwe/pi-knowledge/dist/core/metacognitive-policy.d.ts.map +1 -0
  51. package/node_modules/@gyoungwe/pi-knowledge/dist/core/note-title.d.ts +8 -0
  52. package/node_modules/@gyoungwe/pi-knowledge/dist/core/note-title.d.ts.map +1 -0
  53. package/node_modules/@gyoungwe/pi-knowledge/dist/core/orchestration-policy.d.ts +84 -0
  54. package/node_modules/@gyoungwe/pi-knowledge/dist/core/orchestration-policy.d.ts.map +1 -0
  55. package/node_modules/@gyoungwe/pi-knowledge/dist/core/project-identity.d.ts +70 -0
  56. package/node_modules/@gyoungwe/pi-knowledge/dist/core/project-identity.d.ts.map +1 -0
  57. package/node_modules/@gyoungwe/pi-knowledge/dist/core/publication-policy.d.ts +39 -0
  58. package/node_modules/@gyoungwe/pi-knowledge/dist/core/publication-policy.d.ts.map +1 -0
  59. package/node_modules/@gyoungwe/pi-knowledge/dist/core/publication.d.ts +24 -0
  60. package/node_modules/@gyoungwe/pi-knowledge/dist/core/publication.d.ts.map +1 -0
  61. package/node_modules/@gyoungwe/pi-knowledge/dist/core/recent-by-category.d.ts +15 -0
  62. package/node_modules/@gyoungwe/pi-knowledge/dist/core/recent-by-category.d.ts.map +1 -0
  63. package/node_modules/@gyoungwe/pi-knowledge/dist/core/related-notes.d.ts +4 -0
  64. package/node_modules/@gyoungwe/pi-knowledge/dist/core/related-notes.d.ts.map +1 -0
  65. package/node_modules/@gyoungwe/pi-knowledge/dist/core/reuse.d.ts +124 -0
  66. package/node_modules/@gyoungwe/pi-knowledge/dist/core/reuse.d.ts.map +1 -0
  67. package/node_modules/@gyoungwe/pi-knowledge/dist/core/review-policy.d.ts +12 -0
  68. package/node_modules/@gyoungwe/pi-knowledge/dist/core/review-policy.d.ts.map +1 -0
  69. package/node_modules/@gyoungwe/pi-knowledge/dist/core/runtime-host.d.ts +98 -0
  70. package/node_modules/@gyoungwe/pi-knowledge/dist/core/runtime-host.d.ts.map +1 -0
  71. package/node_modules/@gyoungwe/pi-knowledge/dist/core/search-policy.d.ts +14 -0
  72. package/node_modules/@gyoungwe/pi-knowledge/dist/core/search-policy.d.ts.map +1 -0
  73. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-model.d.ts +85 -0
  74. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-model.d.ts.map +1 -0
  75. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-provider.d.ts +41 -0
  76. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-provider.d.ts.map +1 -0
  77. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-settings.d.ts +30 -0
  78. package/node_modules/@gyoungwe/pi-knowledge/dist/core/semantic-settings.d.ts.map +1 -0
  79. package/node_modules/@gyoungwe/pi-knowledge/dist/core/service.d.ts +171 -0
  80. package/node_modules/@gyoungwe/pi-knowledge/dist/core/service.d.ts.map +1 -0
  81. package/node_modules/@gyoungwe/pi-knowledge/dist/core/source-links.d.ts +13 -0
  82. package/node_modules/@gyoungwe/pi-knowledge/dist/core/source-links.d.ts.map +1 -0
  83. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialist-delivery.d.ts +8 -0
  84. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialist-delivery.d.ts.map +1 -0
  85. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialist-host.d.ts +61 -0
  86. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialist-host.d.ts.map +1 -0
  87. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialists.d.ts +55 -0
  88. package/node_modules/@gyoungwe/pi-knowledge/dist/core/specialists.d.ts.map +1 -0
  89. package/node_modules/@gyoungwe/pi-knowledge/dist/core/task-feedback.d.ts +57 -0
  90. package/node_modules/@gyoungwe/pi-knowledge/dist/core/task-feedback.d.ts.map +1 -0
  91. package/node_modules/@gyoungwe/pi-knowledge/dist/core/tool-budget.d.ts +24 -0
  92. package/node_modules/@gyoungwe/pi-knowledge/dist/core/tool-budget.d.ts.map +1 -0
  93. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-candidate.d.ts +22 -0
  94. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-candidate.d.ts.map +1 -0
  95. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-memory.d.ts +79 -0
  96. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-memory.d.ts.map +1 -0
  97. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-probe.d.ts +2 -0
  98. package/node_modules/@gyoungwe/pi-knowledge/dist/core/topic-probe.d.ts.map +1 -0
  99. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ui-service.d.ts +360 -0
  100. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ui-service.d.ts.map +1 -0
  101. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ui-state.d.ts +28 -0
  102. package/node_modules/@gyoungwe/pi-knowledge/dist/core/ui-state.d.ts.map +1 -0
  103. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-model-review.d.ts +167 -0
  104. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-model-review.d.ts.map +1 -0
  105. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-policy.d.ts +34 -0
  106. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-policy.d.ts.map +1 -0
  107. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-review.d.ts +74 -0
  108. package/node_modules/@gyoungwe/pi-knowledge/dist/core/wiki-review.d.ts.map +1 -0
  109. package/node_modules/@gyoungwe/pi-knowledge/dist/core/worker.d.ts +2 -0
  110. package/node_modules/@gyoungwe/pi-knowledge/dist/core/worker.d.ts.map +1 -0
  111. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/internal-knowledge-extension.d.ts +42 -0
  112. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/internal-knowledge-extension.d.ts.map +1 -0
  113. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/knowledge-extension.d.ts +5 -0
  114. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/knowledge-extension.d.ts.map +1 -0
  115. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/knowledge-worker.d.ts +6 -0
  116. package/node_modules/@gyoungwe/pi-knowledge/dist/extension/knowledge-worker.d.ts.map +1 -0
  117. package/node_modules/@gyoungwe/pi-knowledge/dist/host.d.ts +7 -0
  118. package/node_modules/@gyoungwe/pi-knowledge/dist/host.d.ts.map +1 -0
  119. package/node_modules/@gyoungwe/pi-knowledge/dist/host.mjs +11638 -0
  120. package/node_modules/@gyoungwe/pi-knowledge/dist/index.d.ts +6 -0
  121. package/node_modules/@gyoungwe/pi-knowledge/dist/index.d.ts.map +1 -0
  122. package/node_modules/@gyoungwe/pi-knowledge/dist/index.mjs +4728 -10301
  123. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/plan.d.ts +41 -0
  124. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/plan.d.ts.map +1 -0
  125. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/prompts.d.ts +10 -0
  126. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/prompts.d.ts.map +1 -0
  127. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/run.d.ts +31 -0
  128. package/node_modules/@gyoungwe/pi-knowledge/dist/maintenance/run.d.ts.map +1 -0
  129. package/node_modules/@gyoungwe/pi-knowledge/lib/knowledge/runtime/.knowledge-worker-manifest.json +9 -0
  130. package/node_modules/@gyoungwe/pi-knowledge/lib/knowledge/runtime/worker.mjs +142 -12
  131. package/node_modules/@gyoungwe/pi-knowledge/package.json +21 -3
  132. package/node_modules/@gyoungwe/pi-knowledge/plugin.manifest.json +23 -1
  133. package/node_modules/@gyoungwe/pi-research/build-manifest.json +2 -2
  134. package/node_modules/@gyoungwe/pi-research/dist/index.mjs +3141 -613
  135. package/node_modules/@gyoungwe/pi-research/package.json +1 -1
  136. package/node_modules/@gyoungwe/plugin-api/dist/index.d.ts +101 -0
  137. package/node_modules/@gyoungwe/plugin-api/dist/index.d.ts.map +1 -1
  138. package/node_modules/@gyoungwe/plugin-api/dist/index.js +124 -0
  139. package/node_modules/@gyoungwe/plugin-api/dist/index.js.map +1 -1
  140. package/node_modules/@gyoungwe/plugin-api/dist/knowledge.d.ts +486 -0
  141. package/node_modules/@gyoungwe/plugin-api/dist/knowledge.d.ts.map +1 -0
  142. package/node_modules/@gyoungwe/plugin-api/dist/knowledge.js +251 -0
  143. package/node_modules/@gyoungwe/plugin-api/dist/knowledge.js.map +1 -0
  144. package/node_modules/@gyoungwe/plugin-api/package.json +6 -1
  145. package/package.json +58 -44
  146. package/plugin.manifest.json +39 -3
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Host-neutral knowledge contracts.
3
+ *
4
+ * This module intentionally has no dependency on Drone implementation
5
+ * packages. It is the contract that a future installable knowledge plugin
6
+ * can share with native Pi and Desktop hosts.
7
+ */
8
+ export const KNOWLEDGE_CONTRACT_VERSION = 1;
9
+ export const RESEARCH_CONTRACT_SCHEMA_VERSION = 1;
10
+ function canonicalize(value) {
11
+ if (Array.isArray(value))
12
+ return value.map(canonicalize);
13
+ if (!value || typeof value !== "object")
14
+ return value;
15
+ return Object.fromEntries(Object.entries(value)
16
+ .filter(([, item]) => item !== undefined)
17
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
18
+ .map(([key, item]) => [key, canonicalize(item)]));
19
+ }
20
+ /** Synchronous SHA-256 keeps the contract usable in native Pi and browsers. */
21
+ function sha256(text) {
22
+ const bytes = [];
23
+ for (const character of text) {
24
+ let point = character.codePointAt(0) ?? 0;
25
+ if (point >= 0xd800 && point <= 0xdfff)
26
+ point = 0xfffd;
27
+ if (point < 0x80)
28
+ bytes.push(point);
29
+ else if (point < 0x800)
30
+ bytes.push(0xc0 | (point >> 6), 0x80 | (point & 63));
31
+ else if (point < 0x10000)
32
+ bytes.push(0xe0 | (point >> 12), 0x80 | ((point >> 6) & 63), 0x80 | (point & 63));
33
+ else
34
+ bytes.push(0xf0 | (point >> 18), 0x80 | ((point >> 12) & 63), 0x80 | ((point >> 6) & 63), 0x80 | (point & 63));
35
+ }
36
+ const length = bytes.length * 8;
37
+ bytes.push(0x80);
38
+ while (bytes.length % 64 !== 56)
39
+ bytes.push(0);
40
+ const high = Math.floor(length / 0x100000000);
41
+ for (const word of [high, length >>> 0])
42
+ for (let shift = 24; shift >= 0; shift -= 8)
43
+ bytes.push((word >>> shift) & 255);
44
+ const state = [
45
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
46
+ ];
47
+ const constants = [
48
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
49
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
50
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
51
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
52
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
53
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
54
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
55
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
56
+ ];
57
+ const rotate = (value, bits) => (value >>> bits) | (value << (32 - bits));
58
+ for (let offset = 0; offset < bytes.length; offset += 64) {
59
+ const words = [];
60
+ for (let i = 0; i < 16; i += 1) {
61
+ const j = offset + i * 4;
62
+ words[i] =
63
+ ((bytes[j] ?? 0) << 24) |
64
+ ((bytes[j + 1] ?? 0) << 16) |
65
+ ((bytes[j + 2] ?? 0) << 8) |
66
+ (bytes[j + 3] ?? 0);
67
+ }
68
+ for (let i = 16; i < 64; i += 1) {
69
+ const x = words[i - 15] ?? 0;
70
+ const y = words[i - 2] ?? 0;
71
+ words[i] =
72
+ ((words[i - 16] ?? 0) +
73
+ (rotate(x, 7) ^ rotate(x, 18) ^ (x >>> 3)) +
74
+ (words[i - 7] ?? 0) +
75
+ (rotate(y, 17) ^ rotate(y, 19) ^ (y >>> 10))) |
76
+ 0;
77
+ }
78
+ let [a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0] = state;
79
+ for (let i = 0; i < 64; i += 1) {
80
+ const t1 = (h +
81
+ (rotate(e, 6) ^ rotate(e, 11) ^ rotate(e, 25)) +
82
+ ((e & f) ^ (~e & g)) +
83
+ (constants[i] ?? 0) +
84
+ (words[i] ?? 0)) |
85
+ 0;
86
+ const t2 = ((rotate(a, 2) ^ rotate(a, 13) ^ rotate(a, 22)) + ((a & b) ^ (a & c) ^ (b & c))) | 0;
87
+ h = g;
88
+ g = f;
89
+ f = e;
90
+ e = (d + t1) | 0;
91
+ d = c;
92
+ c = b;
93
+ b = a;
94
+ a = (t1 + t2) | 0;
95
+ }
96
+ for (const [i, value] of [a, b, c, d, e, f, g, h].entries())
97
+ state[i] = ((state[i] ?? 0) + value) | 0;
98
+ }
99
+ return state.map((value) => (value >>> 0).toString(16).padStart(8, "0")).join("");
100
+ }
101
+ export function canonicalContractJson(value) {
102
+ return JSON.stringify(canonicalize(value));
103
+ }
104
+ export function contractContentHash(value) {
105
+ return sha256(canonicalContractJson(value));
106
+ }
107
+ function computeResearchContractHash(value) {
108
+ const { contentHash: _contentHash, decisionHash: _decisionHash, ...body } = value;
109
+ return contractContentHash(body);
110
+ }
111
+ function assertContract(value) {
112
+ if (value.schemaVersion !== RESEARCH_CONTRACT_SCHEMA_VERSION)
113
+ throw new Error("Invalid schemaVersion");
114
+ if (!Number.isSafeInteger(value.revision) || value.revision < 0)
115
+ throw new Error("Invalid revision");
116
+ if (!/^[a-f0-9]{64}$/.test(value.contentHash))
117
+ throw new Error("Invalid contentHash");
118
+ if (!Array.isArray(value.parentRefs))
119
+ throw new Error("Invalid parentRefs");
120
+ if (value.contentHash !== computeResearchContractHash(value))
121
+ throw new Error("Contract contentHash mismatch");
122
+ }
123
+ function base(body, options = {}) {
124
+ const record = {
125
+ ...body,
126
+ schemaVersion: RESEARCH_CONTRACT_SCHEMA_VERSION,
127
+ revision: options.revision ?? 0,
128
+ parentRefs: [...(options.parentRefs ?? [])],
129
+ };
130
+ const result = {
131
+ ...record,
132
+ contentHash: computeResearchContractHash(record),
133
+ };
134
+ assertContract(result);
135
+ return result;
136
+ }
137
+ export function createKnowledgeSnapshot(input) {
138
+ return base({ ...input, kind: "knowledge-snapshot" }, input);
139
+ }
140
+ function requireRef(ref, label) {
141
+ if (!ref || (typeof ref === "string" ? !ref.trim() : !ref.id.trim() || !ref.kind.trim()))
142
+ throw new Error(`${label} is required`);
143
+ return ref;
144
+ }
145
+ function refOf(value) {
146
+ return { kind: value.kind, id: value.id, revision: value.revision, contentHash: value.contentHash };
147
+ }
148
+ export function createEvolutionCandidate(input) {
149
+ const minimumObservations = input.minimumObservations ?? 2;
150
+ if (!input.id.trim() || !input.proposal.trim())
151
+ throw new Error("Evolution candidate identity and proposal are required");
152
+ if (!Number.isSafeInteger(input.observationCount) || input.observationCount < minimumObservations)
153
+ throw new Error("Evolution candidate requires repeated observations before approval");
154
+ if (!Number.isSafeInteger(minimumObservations) || minimumObservations < 2)
155
+ throw new Error("Evolution candidate minimum observations must be at least two");
156
+ if (!input.runRefs.length || !input.experienceRefs.length)
157
+ throw new Error("Evolution candidate lineage is required");
158
+ if (input.experienceRefs.length < minimumObservations)
159
+ throw new Error("Evolution candidate experience lineage must cover every required observation");
160
+ return base({
161
+ kind: "evolution-candidate",
162
+ id: input.id,
163
+ projectRef: requireRef(input.projectRef, "projectRef"),
164
+ runRefs: [...input.runRefs],
165
+ knowledgeSnapshotRefs: [...(input.knowledgeSnapshotRefs ?? [])],
166
+ experienceRefs: [...input.experienceRefs],
167
+ observationCount: input.observationCount,
168
+ minimumObservations,
169
+ proposal: input.proposal,
170
+ status: "proposed",
171
+ executionEligible: false,
172
+ createdAt: input.createdAt,
173
+ updatedAt: input.createdAt,
174
+ });
175
+ }
176
+ export function approveEvolutionCandidate(candidate, approvalRef, updatedAt) {
177
+ if (candidate.status !== "proposed")
178
+ throw new Error("Only a proposed evolution candidate can be approved");
179
+ if (candidate.observationCount < candidate.minimumObservations)
180
+ throw new Error("Evolution candidate does not meet its repeated-observation gate");
181
+ const approval = requireRef(approvalRef, "approvalRef");
182
+ return base({
183
+ ...candidate,
184
+ status: "approved",
185
+ executionEligible: true,
186
+ approvalRef: approval,
187
+ updatedAt,
188
+ }, { revision: candidate.revision + 1, parentRefs: [refOf(candidate), approval] });
189
+ }
190
+ export function supersedeEvolutionCandidate(candidate, supersedingRef, updatedAt) {
191
+ if (candidate.status === "revoked")
192
+ throw new Error("A revoked evolution candidate cannot be superseded");
193
+ const superseding = requireRef(supersedingRef, "supersedingRef");
194
+ return base({
195
+ ...candidate,
196
+ status: "superseded",
197
+ executionEligible: false,
198
+ supersedesRef: superseding,
199
+ updatedAt,
200
+ }, { revision: candidate.revision + 1, parentRefs: [refOf(candidate), superseding] });
201
+ }
202
+ export function revokeEvolutionCandidate(candidate, revokedByRef, reason, updatedAt) {
203
+ if (!reason.trim())
204
+ throw new Error("Revocation reason is required");
205
+ const revokedBy = requireRef(revokedByRef, "revokedByRef");
206
+ return base({
207
+ ...candidate,
208
+ status: "revoked",
209
+ executionEligible: false,
210
+ revokedByRef: revokedBy,
211
+ reason,
212
+ updatedAt,
213
+ }, { revision: candidate.revision + 1, parentRefs: [refOf(candidate), revokedBy] });
214
+ }
215
+ export function createKnowledgeReuseDecision(input) {
216
+ return base({
217
+ kind: "knowledge-reuse-decision",
218
+ id: input.id,
219
+ projectRef: requireRef(input.projectRef, "projectRef"),
220
+ runRef: requireRef(input.runRef, "runRef"),
221
+ snapshotRef: requireRef(input.snapshotRef, "snapshotRef"),
222
+ status: input.reusable ? "eligible" : "blocked",
223
+ reusable: input.reusable,
224
+ reasons: [...input.reasons],
225
+ executionEligible: false,
226
+ evaluatedAt: input.evaluatedAt,
227
+ });
228
+ }
229
+ export function approveKnowledgeReuse(decision, approvalRef, evaluatedAt) {
230
+ if (decision.status !== "eligible" || !decision.reusable)
231
+ throw new Error("Only an eligible reuse decision can be approved");
232
+ const approval = requireRef(approvalRef, "approvalRef");
233
+ return base({
234
+ ...decision,
235
+ status: "approved",
236
+ executionEligible: true,
237
+ approvalRef: approval,
238
+ evaluatedAt,
239
+ }, { revision: decision.revision + 1, parentRefs: [refOf(decision), approval] });
240
+ }
241
+ export function revokeKnowledgeReuse(decision, revokedByRef, evaluatedAt) {
242
+ const revokedBy = requireRef(revokedByRef, "revokedByRef");
243
+ return base({
244
+ ...decision,
245
+ status: "revoked",
246
+ executionEligible: false,
247
+ revokedByRef: revokedBy,
248
+ evaluatedAt,
249
+ }, { revision: decision.revision + 1, parentRefs: [refOf(decision), revokedBy] });
250
+ }
251
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gyoungwe/plugin-api",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Stable host contracts for Drone capability plugins",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -19,6 +19,11 @@
19
19
  "types": "./dist/index.d.ts",
20
20
  "import": "./dist/index.js",
21
21
  "default": "./dist/index.js"
22
+ },
23
+ "./knowledge": {
24
+ "types": "./dist/knowledge.d.ts",
25
+ "import": "./dist/knowledge.js",
26
+ "default": "./dist/knowledge.js"
22
27
  }
23
28
  },
24
29
  "files": [
package/package.json CHANGED
@@ -1,46 +1,60 @@
1
1
  {
2
- "name": "@gyoungwe/research-suite",
3
- "version": "0.1.3",
4
- "description": "Bundled Drone native Pi research suite",
5
- "keywords": ["pi-package", "research", "evidence"],
6
- "license": "MIT",
7
- "publishConfig": {"access": "public"},
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/Gyoungwe/drone-plugins.git",
11
- "directory": "packages/research-suite"
12
- },
13
- "type": "module",
14
- "files": ["package.json", "plugin.manifest.json", "README.md", "build-manifest.json", "prompts"],
15
- "scripts": {
16
- "build": "node scripts/build.mjs",
17
- "build:check": "node scripts/build.mjs --check",
18
- "typecheck": "node -e \"process.exit(0)\""
19
- },
20
- "pi": {
21
- "extensions": [
22
- "./node_modules/@gyoungwe/pi-core/dist/index.mjs",
23
- "./node_modules/@gyoungwe/pi-knowledge/dist/index.mjs",
24
- "./node_modules/@gyoungwe/pi-research/dist/index.mjs"
25
- ],
26
- "skills": [
27
- "./node_modules/@gyoungwe/pi-core/skills/*",
28
- "./node_modules/@gyoungwe/pi-knowledge/skills/*",
29
- "./node_modules/@gyoungwe/pi-research/skills/*"
30
- ],
31
- "prompts": ["./prompts/*.md"]
32
- },
33
- "dependencies": {
34
- "@gyoungwe/pi-core": "0.1.1",
35
- "@gyoungwe/pi-knowledge": "0.1.1",
36
- "@gyoungwe/pi-research": "0.1.0"
37
- },
38
- "bundleDependencies": [
39
- "@gyoungwe/pi-core",
40
- "@gyoungwe/pi-knowledge",
41
- "@gyoungwe/pi-research"
42
- ],
43
- "peerDependencies": {
44
- "@earendil-works/pi-coding-agent": ">=1.1.0 <2.0.0"
45
- }
2
+ "name": "@gyoungwe/research-suite",
3
+ "version": "0.1.6",
4
+ "description": "Bundled Drone native Pi research suite",
5
+ "keywords": [
6
+ "pi-package",
7
+ "research",
8
+ "evidence"
9
+ ],
10
+ "license": "MIT",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/Gyoungwe/drone-plugins.git",
17
+ "directory": "packages/research-suite"
18
+ },
19
+ "type": "module",
20
+ "files": [
21
+ "package.json",
22
+ "plugin.manifest.json",
23
+ "README.md",
24
+ "build-manifest.json",
25
+ "prompts"
26
+ ],
27
+ "scripts": {
28
+ "build": "node scripts/build.mjs",
29
+ "build:check": "node scripts/build.mjs --check",
30
+ "typecheck": "node -e \"process.exit(0)\"",
31
+ "test": "node --test test/manifest-tools.test.mjs"
32
+ },
33
+ "pi": {
34
+ "extensions": [
35
+ "./node_modules/@gyoungwe/pi-core/dist/index.mjs",
36
+ "./node_modules/@gyoungwe/pi-knowledge/dist/index.mjs",
37
+ "./node_modules/@gyoungwe/pi-research/dist/index.mjs"
38
+ ],
39
+ "skills": [
40
+ "./node_modules/@gyoungwe/pi-knowledge/skills/*",
41
+ "./node_modules/@gyoungwe/pi-research/skills/*"
42
+ ],
43
+ "prompts": [
44
+ "./prompts/*.md"
45
+ ]
46
+ },
47
+ "dependencies": {
48
+ "@gyoungwe/pi-core": "0.1.6",
49
+ "@gyoungwe/pi-knowledge": "0.2.0",
50
+ "@gyoungwe/pi-research": "0.1.1"
51
+ },
52
+ "bundleDependencies": [
53
+ "@gyoungwe/pi-core",
54
+ "@gyoungwe/pi-knowledge",
55
+ "@gyoungwe/pi-research"
56
+ ],
57
+ "peerDependencies": {
58
+ "@earendil-works/pi-coding-agent": ">=1.1.0 <2.0.0"
59
+ }
46
60
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "id": "drone-research-suite",
4
- "version": "0.1.3",
4
+ "version": "0.1.6",
5
5
  "pi": {
6
6
  "apiVersion": 1,
7
7
  "minHostVersion": "1.1.0",
@@ -14,16 +14,52 @@
14
14
  "entrypoints": {
15
15
  "extensions": [
16
16
  "./node_modules/@gyoungwe/pi-core/dist/index.mjs",
17
- "./node_modules/@gyoungwe/pi-knowledge/dist/index.mjs",
17
+ "./node_modules/@gyoungwe/pi-knowledge/dist/index.mjs",
18
18
  "./node_modules/@gyoungwe/pi-research/dist/index.mjs"
19
19
  ],
20
20
  "skills": [
21
- "./node_modules/@gyoungwe/pi-core/skills",
22
21
  "./node_modules/@gyoungwe/pi-knowledge/skills",
23
22
  "./node_modules/@gyoungwe/pi-research/skills"
24
23
  ]
25
24
  },
26
25
  "capabilities": ["knowledge", "research", "search", "evidence-context"],
26
+ "tools": [
27
+ "task_status",
28
+ "task_plan",
29
+ "task_wait",
30
+ "task_reconcile",
31
+ "task_evidence_restore",
32
+ "ask_user",
33
+ "set_status",
34
+ "todo",
35
+ "deliver_files",
36
+ "memory_save",
37
+ "knowledge_status",
38
+ "knowledge_search",
39
+ "research_prepare_knowledge",
40
+ "research_topics",
41
+ "research_resume_topic",
42
+ "research_read_knowledge",
43
+ "research_restore_evidence",
44
+ "research_search_knowledge",
45
+ "research_check_answer",
46
+ "research_task_status",
47
+ "research_search_explainers",
48
+ "research_knowledge_status",
49
+ "research_update_topic",
50
+ "research_archive_topic",
51
+ "research_maintain_knowledge",
52
+ "research_delegate_knowledge",
53
+ "research_archive_explainer",
54
+ "research_propose_wiki_update",
55
+ "research_wiki_review_status",
56
+ "research_search_sources",
57
+ "research_read_source",
58
+ "research_deposit_research_note",
59
+ "research_answer_sources",
60
+ "research_status",
61
+ "research_loop"
62
+ ],
27
63
  "hosts": ["native-pi", "drone-desktop"],
28
64
  "permissions": {
29
65
  "filesystem": ["workspace", "configured-vault"],