@okrlinkhub/agent-factory 0.2.12 → 0.2.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/component/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/component/config.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,84 @@ export declare const setProviderRuntimeConfig: import("convex/server").Registere
120
120
  volumeSizeGb: number;
121
121
  };
122
122
  }, Promise<null>>;
123
+ export declare const deployGlobalSkill: import("convex/server").RegisteredMutation<"public", {
124
+ nowMs?: number | undefined;
125
+ actor?: string | undefined;
126
+ description?: string | undefined;
127
+ displayName?: string | undefined;
128
+ entryPoint?: string | undefined;
129
+ moduleFormat?: "esm" | "cjs" | undefined;
130
+ releaseChannel?: "stable" | "canary" | undefined;
131
+ version: string;
132
+ slug: string;
133
+ sourceJs: string;
134
+ }, Promise<{
135
+ skillId: import("convex/values").GenericId<"globalSkills">;
136
+ versionId: import("convex/values").GenericId<"globalSkillVersions">;
137
+ releaseId: import("convex/values").GenericId<"globalSkillReleases">;
138
+ slug: string;
139
+ version: string;
140
+ sha256: string;
141
+ releaseChannel: "stable" | "canary";
142
+ }>>;
143
+ export declare const listGlobalSkills: import("convex/server").RegisteredQuery<"public", {
144
+ status?: "active" | "disabled" | undefined;
145
+ limit?: number | undefined;
146
+ releaseChannel?: "stable" | "canary" | undefined;
147
+ }, Promise<{
148
+ skillId: any;
149
+ slug: string;
150
+ displayName: string;
151
+ description?: string;
152
+ status: "active" | "disabled";
153
+ updatedAt: number;
154
+ activeRelease: {
155
+ releaseId: any;
156
+ versionId: any;
157
+ version: string;
158
+ sha256: string;
159
+ moduleFormat: "esm" | "cjs";
160
+ entryPoint: string;
161
+ releaseChannel: "stable" | "canary";
162
+ activatedAt: number;
163
+ } | null;
164
+ }[]>>;
165
+ export declare const getWorkerGlobalSkillsManifest: import("convex/server").RegisteredQuery<"public", {
166
+ workspaceId?: string | undefined;
167
+ workerId?: string | undefined;
168
+ releaseChannel?: "stable" | "canary" | undefined;
169
+ }, Promise<{
170
+ manifestVersion: string;
171
+ generatedAt: number;
172
+ releaseChannel: "stable" | "canary";
173
+ workspaceId: string;
174
+ skills: {
175
+ slug: string;
176
+ version: string;
177
+ moduleFormat: "esm" | "cjs";
178
+ entryPoint: string;
179
+ sourceJs: string;
180
+ sha256: string;
181
+ }[];
182
+ }>>;
183
+ export declare const setGlobalSkillStatus: import("convex/server").RegisteredMutation<"public", {
184
+ nowMs?: number | undefined;
185
+ actor?: string | undefined;
186
+ status: "active" | "disabled";
187
+ slug: string;
188
+ }, Promise<{
189
+ updated: boolean;
190
+ slug: string;
191
+ status: "active" | "disabled";
192
+ }>>;
193
+ export declare const deleteGlobalSkill: import("convex/server").RegisteredMutation<"public", {
194
+ slug: string;
195
+ }, Promise<{
196
+ deleted: boolean;
197
+ slug: string;
198
+ deletedVersions: number;
199
+ deletedReleases: number;
200
+ }>>;
123
201
  export declare const generateMediaUploadUrl: import("convex/server").RegisteredMutation<"public", {}, Promise<{
124
202
  uploadUrl: string;
125
203
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/component/queue.ts"],"names":[],"mappings":"AA2EA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;8DA4FzB,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;GAiErC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;+DA6B7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;GA6ChC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;eAOZ,MAAM;eACN,OAAO;aACT,MAAM,GAAG,IAAI;KAiB1B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;0BAiBnC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;UAanC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;iBA0BtC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;UAahC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;iBA0BnC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;GASjC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;0BAQ5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;oBAoBhC,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;UA4FvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;oBAsDvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;oBAiFtB,CAAC;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;GA+GlB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;GAqE/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;GAqE3B,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAklBjC,MAAM,GAAG,IAAI;2BACH,MAAM,GAAG,IAAI;mBACrB,MAAM,GAAG,IAAI;gBAChB,MAAM,GAAG,IAAI;oBACT,MAAM,GAAG,IAAI;6BACJ,MAAM,GAAG,IAAI;;UAnflC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;GAgCxB,CAAC;AAEH,eAAO,MAAM,4BAA4B;;oBAevC,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;mBA6BhD,CAAC;AAEH,eAAO,MAAM,sCAAsC;;;mBA+BjD,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;KAsC3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;iBAiE5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;GAgBhC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;GA+BpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;oBAgCrC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;oBAmBjC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;UA+C1C,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;KAkClC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;mBAoBjC,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;GAyCzB,CAAC"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/component/queue.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,17 @@ const bridgeRuntimeConfigValidator = v.object({
42
42
  serviceKey: v.union(v.null(), v.string()),
43
43
  serviceKeySecretRef: v.union(v.null(), v.string()),
44
44
  });
45
+ const globalSkillStatusValidator = v.union(v.literal("active"), v.literal("disabled"));
46
+ const globalSkillReleaseChannelValidator = v.union(v.literal("stable"), v.literal("canary"));
47
+ const globalSkillModuleFormatValidator = v.union(v.literal("esm"), v.literal("cjs"));
48
+ const globalSkillManifestItemValidator = v.object({
49
+ slug: v.string(),
50
+ version: v.string(),
51
+ moduleFormat: globalSkillModuleFormatValidator,
52
+ entryPoint: v.string(),
53
+ sourceJs: v.string(),
54
+ sha256: v.string(),
55
+ });
45
56
  const BRIDGE_SECRET_REFS = {
46
57
  serviceKey: "agent-bridge.serviceKey",
47
58
  baseUrl: "agent-bridge.baseUrl",
@@ -371,6 +382,342 @@ export const setProviderRuntimeConfig = mutation({
371
382
  return null;
372
383
  },
373
384
  });
385
+ export const deployGlobalSkill = mutation({
386
+ args: {
387
+ slug: v.string(),
388
+ displayName: v.optional(v.string()),
389
+ description: v.optional(v.string()),
390
+ version: v.string(),
391
+ sourceJs: v.string(),
392
+ entryPoint: v.optional(v.string()),
393
+ moduleFormat: v.optional(globalSkillModuleFormatValidator),
394
+ releaseChannel: v.optional(globalSkillReleaseChannelValidator),
395
+ actor: v.optional(v.string()),
396
+ nowMs: v.optional(v.number()),
397
+ },
398
+ returns: v.object({
399
+ skillId: v.id("globalSkills"),
400
+ versionId: v.id("globalSkillVersions"),
401
+ releaseId: v.id("globalSkillReleases"),
402
+ slug: v.string(),
403
+ version: v.string(),
404
+ sha256: v.string(),
405
+ releaseChannel: globalSkillReleaseChannelValidator,
406
+ }),
407
+ handler: async (ctx, args) => {
408
+ const nowMs = args.nowMs ?? Date.now();
409
+ const slug = args.slug.trim().toLowerCase();
410
+ const version = args.version.trim();
411
+ const entryPoint = (args.entryPoint ?? "default").trim();
412
+ const releaseChannel = args.releaseChannel ?? "stable";
413
+ const moduleFormat = args.moduleFormat ?? "esm";
414
+ const actor = args.actor?.trim() || "system";
415
+ const sourceJs = args.sourceJs.trim();
416
+ if (!/^[a-z0-9][a-z0-9-_]{1,127}$/.test(slug)) {
417
+ throw new Error("Invalid skill slug. Use lowercase letters, numbers, '-' and '_'.");
418
+ }
419
+ if (!/^\d+\.\d+\.\d+(?:[-+][A-Za-z0-9.-]+)?$/.test(version)) {
420
+ throw new Error("Invalid skill version. Use semantic versioning format.");
421
+ }
422
+ if (sourceJs.length < 16) {
423
+ throw new Error("Skill source is too short.");
424
+ }
425
+ if (sourceJs.length > 200_000) {
426
+ throw new Error("Skill source too large (max 200KB).");
427
+ }
428
+ if (!entryPoint) {
429
+ throw new Error("entryPoint is required.");
430
+ }
431
+ const sha256 = await computeSha256Hex(sourceJs);
432
+ const existingSkill = await ctx.db
433
+ .query("globalSkills")
434
+ .withIndex("by_slug", (q) => q.eq("slug", slug))
435
+ .unique();
436
+ const skillId = existingSkill?._id ??
437
+ (await ctx.db.insert("globalSkills", {
438
+ slug,
439
+ displayName: args.displayName?.trim() || slug,
440
+ description: args.description?.trim(),
441
+ status: "active",
442
+ createdBy: actor,
443
+ updatedBy: actor,
444
+ createdAt: nowMs,
445
+ updatedAt: nowMs,
446
+ }));
447
+ if (existingSkill) {
448
+ await ctx.db.patch(skillId, {
449
+ displayName: args.displayName?.trim() || existingSkill.displayName,
450
+ description: args.description !== undefined ? args.description.trim() : existingSkill.description,
451
+ status: "active",
452
+ updatedBy: actor,
453
+ updatedAt: nowMs,
454
+ });
455
+ }
456
+ const existingVersion = await ctx.db
457
+ .query("globalSkillVersions")
458
+ .withIndex("by_skillId_and_version", (q) => q.eq("skillId", skillId).eq("version", version))
459
+ .unique();
460
+ let versionId = existingVersion?._id;
461
+ if (!existingVersion) {
462
+ versionId = await ctx.db.insert("globalSkillVersions", {
463
+ skillId,
464
+ version,
465
+ moduleFormat,
466
+ entryPoint,
467
+ sourceJs,
468
+ sha256,
469
+ createdBy: actor,
470
+ createdAt: nowMs,
471
+ });
472
+ }
473
+ else if (existingVersion.sha256 !== sha256) {
474
+ throw new Error(`Skill ${slug}@${version} already exists with a different source.`);
475
+ }
476
+ const activeReleases = await ctx.db
477
+ .query("globalSkillReleases")
478
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skillId).eq("releaseChannel", releaseChannel).eq("isActive", true))
479
+ .collect();
480
+ for (const release of activeReleases) {
481
+ await ctx.db.patch(release._id, { isActive: false });
482
+ }
483
+ const releaseId = await ctx.db.insert("globalSkillReleases", {
484
+ skillId,
485
+ versionId: versionId,
486
+ releaseChannel,
487
+ isActive: true,
488
+ activatedBy: actor,
489
+ activatedAt: nowMs,
490
+ });
491
+ return {
492
+ skillId,
493
+ versionId: versionId,
494
+ releaseId,
495
+ slug,
496
+ version,
497
+ sha256,
498
+ releaseChannel,
499
+ };
500
+ },
501
+ });
502
+ export const listGlobalSkills = query({
503
+ args: {
504
+ releaseChannel: v.optional(globalSkillReleaseChannelValidator),
505
+ status: v.optional(globalSkillStatusValidator),
506
+ limit: v.optional(v.number()),
507
+ },
508
+ returns: v.array(v.object({
509
+ skillId: v.id("globalSkills"),
510
+ slug: v.string(),
511
+ displayName: v.string(),
512
+ description: v.optional(v.string()),
513
+ status: globalSkillStatusValidator,
514
+ updatedAt: v.number(),
515
+ activeRelease: v.union(v.null(), v.object({
516
+ releaseId: v.id("globalSkillReleases"),
517
+ versionId: v.id("globalSkillVersions"),
518
+ version: v.string(),
519
+ sha256: v.string(),
520
+ moduleFormat: globalSkillModuleFormatValidator,
521
+ entryPoint: v.string(),
522
+ releaseChannel: globalSkillReleaseChannelValidator,
523
+ activatedAt: v.number(),
524
+ })),
525
+ })),
526
+ handler: async (ctx, args) => {
527
+ const releaseChannel = args.releaseChannel ?? "stable";
528
+ const limit = Math.max(1, Math.min(args.limit ?? 200, 500));
529
+ const skills = args.status !== undefined
530
+ ? await ctx.db
531
+ .query("globalSkills")
532
+ .withIndex("by_status", (q) => q.eq("status", args.status))
533
+ .take(limit)
534
+ : await ctx.db.query("globalSkills").take(limit);
535
+ const sortedSkills = [...skills].sort((a, b) => a.slug.localeCompare(b.slug));
536
+ const out = [];
537
+ for (const skill of sortedSkills) {
538
+ const activeRelease = await ctx.db
539
+ .query("globalSkillReleases")
540
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", releaseChannel).eq("isActive", true))
541
+ .first();
542
+ let activeReleaseRow = null;
543
+ if (activeRelease) {
544
+ const version = await ctx.db.get(activeRelease.versionId);
545
+ if (version) {
546
+ activeReleaseRow = {
547
+ releaseId: activeRelease._id,
548
+ versionId: version._id,
549
+ version: version.version,
550
+ sha256: version.sha256,
551
+ moduleFormat: version.moduleFormat,
552
+ entryPoint: version.entryPoint,
553
+ releaseChannel: activeRelease.releaseChannel,
554
+ activatedAt: activeRelease.activatedAt,
555
+ };
556
+ }
557
+ }
558
+ out.push({
559
+ skillId: skill._id,
560
+ slug: skill.slug,
561
+ displayName: skill.displayName,
562
+ description: skill.description,
563
+ status: skill.status,
564
+ updatedAt: skill.updatedAt,
565
+ activeRelease: activeReleaseRow,
566
+ });
567
+ }
568
+ return out;
569
+ },
570
+ });
571
+ export const getWorkerGlobalSkillsManifest = query({
572
+ args: {
573
+ workspaceId: v.optional(v.string()),
574
+ workerId: v.optional(v.string()),
575
+ releaseChannel: v.optional(globalSkillReleaseChannelValidator),
576
+ },
577
+ returns: v.object({
578
+ manifestVersion: v.string(),
579
+ generatedAt: v.number(),
580
+ releaseChannel: globalSkillReleaseChannelValidator,
581
+ workspaceId: v.string(),
582
+ skills: v.array(globalSkillManifestItemValidator),
583
+ }),
584
+ handler: async (ctx, args) => {
585
+ const nowMs = Date.now();
586
+ const releaseChannel = args.releaseChannel ?? "stable";
587
+ const activeSkills = await ctx.db
588
+ .query("globalSkills")
589
+ .withIndex("by_status", (q) => q.eq("status", "active"))
590
+ .collect();
591
+ const sortedSkills = [...activeSkills].sort((a, b) => a.slug.localeCompare(b.slug));
592
+ const manifestSkills = [];
593
+ for (const skill of sortedSkills) {
594
+ const activeRelease = await ctx.db
595
+ .query("globalSkillReleases")
596
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", releaseChannel).eq("isActive", true))
597
+ .first();
598
+ if (!activeRelease)
599
+ continue;
600
+ const version = await ctx.db.get(activeRelease.versionId);
601
+ if (!version)
602
+ continue;
603
+ manifestSkills.push({
604
+ slug: skill.slug,
605
+ version: version.version,
606
+ moduleFormat: version.moduleFormat,
607
+ entryPoint: version.entryPoint,
608
+ sourceJs: version.sourceJs,
609
+ sha256: version.sha256,
610
+ });
611
+ }
612
+ manifestSkills.sort((a, b) => {
613
+ if (a.slug !== b.slug)
614
+ return a.slug.localeCompare(b.slug);
615
+ return a.version.localeCompare(b.version);
616
+ });
617
+ const fingerprintSeed = manifestSkills
618
+ .map((row) => `${row.slug}@${row.version}:${row.sha256}`)
619
+ .join("|");
620
+ const manifestVersion = await computeSha256Hex(fingerprintSeed || "empty");
621
+ return {
622
+ manifestVersion,
623
+ generatedAt: nowMs,
624
+ releaseChannel,
625
+ workspaceId: args.workspaceId ?? "default",
626
+ skills: manifestSkills,
627
+ };
628
+ },
629
+ });
630
+ export const setGlobalSkillStatus = mutation({
631
+ args: {
632
+ slug: v.string(),
633
+ status: globalSkillStatusValidator,
634
+ actor: v.optional(v.string()),
635
+ nowMs: v.optional(v.number()),
636
+ },
637
+ returns: v.object({
638
+ updated: v.boolean(),
639
+ slug: v.string(),
640
+ status: globalSkillStatusValidator,
641
+ }),
642
+ handler: async (ctx, args) => {
643
+ const slug = args.slug.trim().toLowerCase();
644
+ const nowMs = args.nowMs ?? Date.now();
645
+ const actor = args.actor?.trim() || "system";
646
+ const skill = await ctx.db
647
+ .query("globalSkills")
648
+ .withIndex("by_slug", (q) => q.eq("slug", slug))
649
+ .unique();
650
+ if (!skill) {
651
+ return { updated: false, slug, status: args.status };
652
+ }
653
+ await ctx.db.patch(skill._id, {
654
+ status: args.status,
655
+ updatedBy: actor,
656
+ updatedAt: nowMs,
657
+ });
658
+ return { updated: true, slug, status: args.status };
659
+ },
660
+ });
661
+ export const deleteGlobalSkill = mutation({
662
+ args: {
663
+ slug: v.string(),
664
+ },
665
+ returns: v.object({
666
+ deleted: v.boolean(),
667
+ slug: v.string(),
668
+ deletedVersions: v.number(),
669
+ deletedReleases: v.number(),
670
+ }),
671
+ handler: async (ctx, args) => {
672
+ const slug = args.slug.trim().toLowerCase();
673
+ const skill = await ctx.db
674
+ .query("globalSkills")
675
+ .withIndex("by_slug", (q) => q.eq("slug", slug))
676
+ .unique();
677
+ if (!skill) {
678
+ return { deleted: false, slug, deletedVersions: 0, deletedReleases: 0 };
679
+ }
680
+ const stableActiveReleases = await ctx.db
681
+ .query("globalSkillReleases")
682
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", "stable").eq("isActive", true))
683
+ .collect();
684
+ const stableInactiveReleases = await ctx.db
685
+ .query("globalSkillReleases")
686
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", "stable").eq("isActive", false))
687
+ .collect();
688
+ const canaryActiveReleases = await ctx.db
689
+ .query("globalSkillReleases")
690
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", "canary").eq("isActive", true))
691
+ .collect();
692
+ const canaryInactiveReleases = await ctx.db
693
+ .query("globalSkillReleases")
694
+ .withIndex("by_skillId_and_releaseChannel_and_isActive", (q) => q.eq("skillId", skill._id).eq("releaseChannel", "canary").eq("isActive", false))
695
+ .collect();
696
+ const allReleases = [
697
+ ...stableActiveReleases,
698
+ ...stableInactiveReleases,
699
+ ...canaryActiveReleases,
700
+ ...canaryInactiveReleases,
701
+ ];
702
+ const versions = await ctx.db
703
+ .query("globalSkillVersions")
704
+ .withIndex("by_skillId_and_createdAt", (q) => q.eq("skillId", skill._id))
705
+ .collect();
706
+ for (const release of allReleases) {
707
+ await ctx.db.delete(release._id);
708
+ }
709
+ for (const version of versions) {
710
+ await ctx.db.delete(version._id);
711
+ }
712
+ await ctx.db.delete(skill._id);
713
+ return {
714
+ deleted: true,
715
+ slug,
716
+ deletedVersions: versions.length,
717
+ deletedReleases: allReleases.length,
718
+ };
719
+ },
720
+ });
374
721
  export const generateMediaUploadUrl = mutation({
375
722
  args: {},
376
723
  returns: v.object({
@@ -1375,6 +1722,13 @@ function fingerprintConversationDelta(deltaContext) {
1375
1722
  }
1376
1723
  return `f${(hash >>> 0).toString(16)}`;
1377
1724
  }
1725
+ async function computeSha256Hex(input) {
1726
+ const bytes = new TextEncoder().encode(input);
1727
+ const digest = await crypto.subtle.digest("SHA-256", bytes);
1728
+ return Array.from(new Uint8Array(digest))
1729
+ .map((value) => value.toString(16).padStart(2, "0"))
1730
+ .join("");
1731
+ }
1378
1732
  function encryptSecretValue(plaintext) {
1379
1733
  const units = Array.from(plaintext);
1380
1734
  return units